Estabilidade do Linux Embarcado

Estabilidade do Linux Embarcado

Estou desenvolvendo um Linux embarcado (já está quase acabando). O que estou enfrentando é que o sistema fica instável, cortando a fonte de energia com frequência e não inicializa mais. Ele ainda não funciona fsck.

O sistema possui apenas um XFCE com um aplicativo Qt fixo carregado automaticamente para exibir alguns gráficos.

Minha pergunta é como as distros Linux embarcadas comerciais (como o Linux de gerenciamento do Wifi AP, ...) evitam esse problema?

Você tem alguma ideia?

Responder1

A maioria faz uma de duas coisas:

Eles executam o sistema de arquivos principal somente leitura e possuem uma área separada para armazenamento de dados que é montada para leitura e gravação,

ou

Eles têm o sistema de arquivos principal compactado em um arquivo que é expandido em um disco RAM no momento da inicialização.

Isso significa que o sistema de arquivos está sempre no mesmo estado, aconteça o que acontecer. Há apenas uma pequena área de armazenamento de configuração com a qual se preocupar, e isso pode ter um sistema de arquivos que não se preocupe muito com perda de energia.

Outra dica é desabilitar todo o cache na partição de armazenamento para que todas as alterações sejam gravadas imediatamente no disco.

Responder2

Sim, de modo geral, eles não.

No final das contas, todo mundo provavelmente já falhou em dispositivos incorporados - sejam equipamentos de rede, dispositivos IP ou outros.

Simplificando, crie seu aplicativo da melhor maneira possível - como desenvolvedor, isso é tudo que você pode fazer.

Tente tornar seu aplicativo o mais robusto possível - coloque a verificação de erros no nível mais alto/todos. Por exemplo, se você tiver um arquivo de configuração necessário e seu aplicativo não puder ser executado sem ele, coloque um bipe/feedback se ele não for encontrado - avise o usuário.

O próximo nível realmente vem do fabricante do hardware - redundância ou robustez é fundamental e, novamente, certifique-se de que o fornecedor do hardware siga as idéias acima, como verificação de erros/feedback detalhado, para que, se algo falhar, as pessoas saibam por que/o que aconteceu.

Não entrei em muitos detalhes, mas espero que isso ajude e indique a direção certa.

informação relacionada