Usando ramfs no sistema embarcado

3

Eu tenho que escrever algum software para rodar no Linux instalado em uma instalação embutida baseada em x86 que tenha uma unidade flash compacta de 8GB para armazenamento de dados. Os requisitos críticos são o registro de dados de medição para o arquivo a cada 30 segundos e a robustez para perda de energia (meu sistema DEVE ser capaz de reinicializar com êxito todas as vezes e os dados de registro não devem ser corrompidos). Eu usei o buildroot para gerar meu kernel, crosstools e sistema de arquivos. Atualmente eu tentei duas coisas

  1. Inicializando usando apenas o sistema de arquivos .cpio fornecido pelo buildroot.
  2. Copiando o sistema de arquivos para uma partição ext3 e informando ao syslinux que o sistema de arquivos raiz está localizado lá.

Se eu usar a opção 1. e tiver meu sistema de arquivos raiz na RAM, perderei meus dados no desligamento. Se eu usar a opção 2., corro o risco de os arquivos do sistema serem corrompidos no desligamento. A resposta a esta pergunta > O uso de um sistema de arquivos raiz somente leitura é uma boa idéia para a configuração integrada? me levou a considerar o uso de um sistema de arquivos somente leitura, mas a única resposta que recebi atualmente está avançada demais para meu nível de experiência em Linux . Isso me levou a considerar o uso de um sistema de arquivos baseado em RAM. No caso de um sistema de arquivos RAM que usa o arquivo .cpio para inicializar, como posso operar as coisas para garantir a segurança e obter armazenamento de dados persistente para os requisitos de registro de dados?

    
por mathematician1975 14.01.2013 / 11:37

1 resposta

1
  1. Execute o seu sistema de RAM (mais rápido, somente leitura, vai aparecer em bom estado conhecido, etc.)
  2. Registre seus dados em uma partição separada no pendrive. Pode tentar montá-lo com sync se suas gravações não forem muito frequentes.
por 14.01.2013 / 16:01