Defina o nível de execução na inicialização via entrada de hardware (analógica), switch, etc.?

1

Tenho uma experiência bastante sólida no Linux, mas pouco na área do sistema incorporado / pequeno, e este me deixou perplexo.

Concordei em ajudar um amigo a trabalhar em um projeto usando um pequeno SBC compatível com x86. É suposto ser um registrador de dados e exibição para um aplicativo de monitoramento, usando um monte de sensores e ADCs USB. Ele precisa de uma inicialização extremamente rápida, por isso estamos brincando com várias otimizações de inicialização, desativando serviços, etc.

O resultado final de que ele precisa é de uma máquina que pode inicializar rapidamente no nível de execução 2 (sem rede, somente console, ignora todos os serviços, mas o que é necessário para o registro e exibição de dados) ou inicializa no nível de execução 3 com SSH, etc. e serviços de rede, incluindo DHCP, para permitir acesso remoto e um script para copiar os dados registrados via SCP para outro host.

Infelizmente, como isso vai acabar sendo um sistema embarcado, eu preciso encontrar alguma maneira de usar uma entrada de hardware analógico - um interruptor ou botão ou algo assim - que diga ao bootloader / kernel para inicializar o nível de execução 2 ou 3.

Alguém já ouviu falar disso? Além de remendar o GRUB ou o próprio kernel para pesquisar algum tipo de IO (eu acho serial, paralelo ou algum tipo de GPIO), alguma sugestão / idéia?

Obrigado Jason

    
por Jason Antman 14.07.2011 / 04:45

1 resposta

2

Eu não sei a resposta definitiva, mas eu acho que é improvável e / ou difícil de fazer.

Então, minha sugestão é: por que não sempre inicializar para executar o nível 2 e escrever um programa que verifique a porta serial (ou o que estiver usando) para a condição do comutador, em torno de 10 segundos ou mais, 3. Dessa forma, você tem sua inicialização rápida e sua capacidade de alterar o nível de execução sem muita confusão.

    
por 14.07.2011 / 05:02