Chain carregando o kernel sem um carregador de boot

3

Estou trabalhando em um projeto incorporado que fará atualizações no local. Pode chegar um momento em que uma atualização precisará reinstalar tudo. Como isso é uma coisa muito arriscada, eu gostaria de ter algum tipo de modo fail-back para tentar atualizar novamente.

Estou pensando em adicionar um kernel muito básico que tenha o suficiente para tentar outra atualização. Eu quero sempre inicializar neste kernel básico, verificar GPIOs e, em seguida, inicializar no outro kernel ou continuar a inicialização, dependendo do estado dos GPIOs. Vou instalar um botão no gabinete para sinalizar o GPIO apropriado.

Eu não sei como o gerenciador de inicialização funciona, e o grub / syslinux não está disponível AFAIK.

Esse tipo de coisa é possível? Estou complicando demais o problema?

    
por beatgammit 04.12.2012 / 00:19

1 resposta

2

Um gerenciador de partida Linux deve, no mínimo, carregar o kernel e passar alguns parâmetros para informar ao kernel onde ele está carregado. Muitas configurações também exigem a capacidade de passar uma linha de comando e uma unidade RAM inicial, embora em um sistema embarcado com uma configuração de hardware conhecida isso possa ser supérfluo.

A melhor maneira de obter um gerenciador de inicialização confiável é usar um gerenciador de inicialização em funcionamento. Tenha um gerenciador de inicialização de primeiro estágio simples em uma configuração fixa que carregue em cadeia um gerenciador de inicialização Linux (U-Boot ou qualquer que seja seu sistema integrado), com um mecanismo de fallback. O próprio U-Boot pode implementar um mecanismo de fallback - consulte “Implementando o fallback de imagem de inicialização no U-Boot ”, na lista de discussão Usuários U-Boot , e Imagens Redundantes on xpedite5370 para um exemplo.

    
por 04.12.2012 / 00:42