Eu configurei o Raspberry Pi para executar o XBMC e quero que ele seja inicializado para sempre reproduzir uma lista de reprodução e arquivos no cartão SD. Desativei a atualização automática do Raspbmc. Ainda funciona bem quando troco o cartão SD para a posição "travada". Agora minhas perguntas são:
O sistema de cartão SD "somente leitura" funciona o tempo todo no meu aplicativo?
Como o cartão SD está sempre no modo somente leitura, se eu não usar o comando shutdown e desligar o interruptor, isso danificará o meu sistema?
Mesmo que isso funcione de maneira confiável, sempre aparecerá a mensagem "O Raaspbmc não foi desligado corretamente". Existe alguma maneira de desativar essa mensagem quando o Pi é ligado?
Respostas:
Eu tive um uso semelhante. Estou usando o Pi para estreitar páginas da Web em uma entrada de prédio. Ligando o Pi através da porta USB da TV.
Montagem / somente leitura.
Para torná-lo à prova de perda de potência, montei / somente leitura alterando uma linha
/etc/fstab
Bem simples. Mas alguns processos em uma máquina funcional precisam escrever.
Monte / tmp na memória.
Muitas coisas escrevem,
/tmp
então montei isso na memória adicionando uma linha ao/etc/fstab
Eu tinha um Pi de 512 MB disponível, então fiz / tmp 30M grande.
Desabilitar serviços que não precisam dessa gravação.
Eu desabilitei
rsyslog
para impedi-lo de registrar edphys-swapfile
como ele não tem um lugar real para escrever. A execução sem troca dará problemas se você fizer um trabalho pesado que consome muita memória. No meu caso, executar um único processo midori por um dia, não é.cat /etc/rc2.d/README
no seu Pi sobre como fazer isso. (o raspbian inicia no nível de execução 2 por padrão, o raspbmc pode ser diferente)Vamos serviços que eu não precisam de faux-write.
Você pode fornecer acesso de gravação a um sistema de arquivos na memória da maneira que um CD ao vivo faz; com um suporte de união . Mas eu não gostei da perspectiva de compilar meu próprio kernel para o unionfs ou os aufs posteriores . Felizmente
unionfs-fuse
é pré-construído disponível. Ele não pode ser montado em união/
, mas eu realmente preciso disso?Executando midori, preciso do X para trabalhar. X quer escrever
/home/pi
enquanto eu autologo como pi e em alguns lugares em que/var
eu decidi montá-los em lugares usando unionfs.e anexou 2 linhas a
/etc/fstab
Isso é bastante desagradável, pois grava em / var, / home e / tmp todas as finalizações em / tmp. Mas eu só preciso que minha máquina funcione por 8 a 10 horas e, em seguida, a energia fica cortada. Então isso serve.
Remontando a leitura e gravação ao ajustar coisas
Quando mudei de rede, o
/etc/resolv.conf
que o dhclient escreveu não funcionava mais.Não se esqueça de desligar corretamente ou remontar ro após remontar rw.
PS
Se você pode ler alemão, há uma maneira mais limpa (em archive.org). Deutsche Gründlichkeit ...
fonte
O pino de posição de bloqueio do cartão SD não está conectado na placa de circuito impresso; portanto, seu bloqueio é virtual, a menos que o cartão tenha um mecanismo de bloqueio interno. Tente escrever qualquer coisa no cartão SD enquanto estiver bloqueado e verifique você mesmo.
fonte
A opção somente leitura da SD é, na melhor das hipóteses, uma opção de software. Quase todos os dispositivos que eu tenho o ignoram e, se o comentário de avra estiver correto, o Raspberry Pi pode não ter como saber se está ativado ou desativado. Então, para suas perguntas:
fonte
Eu não usei o XBMC, mas isso não é uma boa ideia para o WRT em um sistema operacional normal, a menos que você faça alguns comprimentos para configurá-lo para esse fim. Por implicação, se o XBMC não estiver configurado explicitamente, não será uma boa ideia para ele.
Se o cartão for realmente somente de leitura , na verdade, NÃO danificará o sistema; no entanto, se realmente for de leitura, é improvável que você chegue ao ponto em que poderá executar o 'shutdown'. Se você o fez (ou seja, novamente, você tem certeza de que todo o cartão é realmente somente leitura!), Não se preocupe em executar o desligamento. Basta puxar o plugue. Como nada no cartão pode mudar, não importa o que você faça.
Claro, você pode encontrar os arquivos init responsáveis e editá-los (obviamente, o sistema de arquivos precisará ser gravável para fazer isso).
Realisticamente, se você montar o sistema de arquivos raiz como somente leitura (que pode ser mais difícil do que usar a alternância de travas), provavelmente não terá uma inicialização bem-sucedida, porque o sistema operacional precisa gravar no disco. No entanto, se você fizer isso, sinta-se à vontade para fazer o que quiser (e pode se safar). Se o cartão for somente leitura, ele não poderá ser alterado, portanto você não poderá causar nenhum dano.
fonte
Se você apenas fizer
1
2)
3)
então não deve haver nenhum problema. A boa pergunta é se realmente não haverá danos ao cartão SD, se apenas RO e plug / out power o tempo todo ...
Por fim, uma bela tela inicial e pronto, você tem um aparelho independente personalizado e barato. :) E adoro a idéia de alimentar a porta PI sobre USB da TV. Mas isso não está limitado a 500mA? Não tenho certeza, mas o PI precisa de aproximadamente 1A ou não?
fonte
Uma rápida olhada neste online sugere que ninguém postou nenhuma solução para a versão mais recente do XBMC.
A questão principal, como o Goldilocks apontou, é que o XBMC não foi projetado com a intenção de torná-lo somente leitura. Este ponto é aprofundado se você der uma olhada neste tópico no Fórum do OpenELEC Media Center. O consenso geral de que não é possível fazer Kodi somente para leitura.
O motivo de acordo com o usuário klojum foi:
Pode haver uma maneira de contornar isso, pois as pessoas encontraram soluções alternativas para versões mais antigas, mas, em geral, acho que não há necessidade.
Eu entendo como alguém que usa o Kodi há alguns anos o aborrecimento de um cartão SD se corrompendo. Mas existem outras maneiras mais simples de atenuar o problema que não incluíam ajustes de código de baixo nível.
A principal razão pela qual um cartão SD será corrompido é se houver uma queda repentina de energia. Existem algumas razões pelas quais isso pode acontecer. Alguém desconecta a energia do Pi no meio de uma gravação no cartão SD. Ou o sistema congela e você precisa desconectar a energia. Embora eu ache que a segunda razão tem menos probabilidade de causar corrupção. Ou sugere que há outra falha em jogo.
Nos primeiros dias do Pi, o circuito de fornecimento de energia na placa certamente deixava algo a desejar. Lembro-me dos dias em que causou uma falha no sistema simplesmente conectando um dongle USB ao Pi enquanto ele estava ligado. Se você não acredita em mim, há problemas ao executar o XBMC no Raspberry Pi 2011 . A outra questão é que o software nos primeiros dias não estava totalmente maduro. O Pi era uma visão diferente do que poderia ser um computador de mesa, e resolver problemas de software leva tempo. Portanto, muitas versões mais recentes do Kodi têm menos probabilidade de sofrer congelamentos aleatórios do sistema.
Para resolver o problema repentino de perda de energia, ligue seu Pi através de algum tipo de fonte de alimentação ininterrupta (UPS). Um no-break normal funcionaria, mas na verdade existem no-breaks especificamente projetados para Pi. Como esta fonte de alimentação ininterrupta para Raspberry Pi . Se ocorrer um congelamento do sistema, você deve estar preparado para isso. Isso significa configurar o sistema operacional com todas as configurações, aplicativos e preferências do seu gosto e criar uma imagem do cartão SD. Então, se algo der errado, você pode apenas re-imagem do cartão SD.
A outra razão pela qual um cartão SD falhará é devido ao desgaste. No entanto, este não é um problema que já experimentei. Se você usa um cartão SD de alta qualidade de uma marca respeitável, acho que provavelmente está no meio do caminho para resolver esse problema. Minimizar o desgaste do cartão SD significa garantir que o cartão SD esteja fazendo o mínimo absoluto. Não deve ser usado como espaço de armazenamento para sua vasta coleção de filmes, etc.
Uma opção que funcionará com o OpenELEC é executá-lo em uma unidade USB. É claro que todos os arquivos de inicialização terão que permanecer no cartão SD. Existem vários tutoriais sobre como fazer isso. Há uma que parece bastante fácil de seguir aqui , mas, para ser completo, darei uma visão geral:
O primeiro passo é configurar o cartão SD e a unidade USB. Usando um programa como o MiniTool Partition Wizard, formate o cartão SD como FAT32 com uma partição ativa primária de 150 MB ou mais; na verdade, todo o cartão SD pode ser formatado como FAT32. Apenas verifique se a partição está definida como principal ativa. Também pode ser útil rotular o cartão SD como algo como SYSTEM, para que você se lembre do que isso significa no futuro. Em seguida, formate a unidade USB inteira como uma partição ativa primária com o tipo de sistema de arquivos como EXT4, novamente valendo a pena rotulá-la como algo como ARMAZENAMENTO.
Depois de baixar e extrair o OpenELEC, vá para a pasta raiz. E selecione estes arquivos:
E copie-os para a raiz do cartão SD.
Em seguida, na
target
pasta, copie os arquivos:E cole-os novamente no diretório raiz do cartão SD.
A partir da
3rdparty/bootloader
pasta, copie os arquivos:E cole-os no diretório raiz do cartão SD.
O passo final é alterar o nome do arquivo do arquivo
KERNEL
no cartão SD parakernel.img
.Para criar os arquivos de inicialização, no diretório raiz do cartão SD, crie um arquivo chamado
cmdline.txt
e adicione a seguinte linha:Certifique-se de fechar o arquivo ao salvá-lo. E a partir daí você está pronto para ir. A fonte das informações sugeridas para executar o XBMC em uma unidade USB aumentou a capacidade de resposta. Não tenho tanta certeza dessa afirmação, mas você não verá nenhuma degradação no desempenho como resultado do uso desse método.
Quanto à sua coleção de mídia, sugiro armazená-la em uma segunda unidade, seja USB ou um local de rede.
fonte