O kexec pode ser construído para um binário independente, a ser usado onde o kexec não foi construído no kernel?

3

Tenho dispositivos Linux incorporados remotos Estou tentando atualizar para um novo kernel sem ter que acessar fisicamente. No entanto, as opções de linha de comando com as quais elas são inicializadas tornam um dos MTDs somente leitura - não posso modificar o kernel, e o U-Boot é acessível somente por meio de uma conexão física serial.

O suporte a kexec não foi instalado.

Estou tentando construir o kexec, mas não tendo sucesso algum. Eu construí o kexec do kexec-tools, mas quando eu tento carregar um kernel, eu recebo:

kexec_load failed: Function not implemented

Existe alguma maneira de salvar essa situação? O kexec pode ser feito como um único executável binário? Eu tenho visto em fóruns onde as pessoas sugeriram que eles estavam usando desta forma, mas eu não consigo construí-lo como tal.

Editar: Se o trabalho do kexec não for uma opção, existe alguma maneira de obter acesso ao MTD0? Eu não tenho acesso a um dos dispositivos neste segundo, mas há algo como / proc / something / devices / virtual / mtd0 / ro, que é 1, e se eu chmod 777 eu posso echo 0 > para ele sem nenhum erro, mas não fica preso.

    
por trycatch 09.05.2013 / 00:11

1 resposta

2

kexec é um mecanismo pelo qual o kernel em execução se substitui por outro. Um programa externo fazendo isso teria que ter um conhecimento profundo do (s) kernel (s) envolvido (s), e acesso ao nível do kernel para tudo na máquina também. Talvez factível, mas acho que ninguém é louco o suficiente para tentar.

    
por 09.05.2013 / 00:15