Estou procurando uma maneira de editar os parâmetros da linha de comando do kernel no espaço do usuário, sem a necessidade de parar no U-Boot e modificar os valores manualmente. Quero alterar os parâmetros do kernel para a próxima inicialização. Por exemplo, se a linha de comando do kernel incluísse um parâmetro chamado example1=true' I would like to change it to the following boot to
example1=false`
Estou usando um sistema baseado em OpenWRT.
Responder1
Uma rápida pesquisa no wiki OpenWrt em Das U-Boot Environment...
"O U-Boot usa uma pequena quantidade de espaço no armazenamento flash, geralmente na mesma partição em que está armazenado para armazenar alguns parâmetros de configuração importantes."
especificamente...
bootargs: O conteúdo desta variável é passado para o kernel do Linux como argumentos de inicialização (também conhecido como "linha de comando").
Fazendo algumas suposições, mas você poderá editar este arquivo de configuração a partir do kernel em execução. Pode ser necessário localizar a partição u-boot e o arquivo de configuração está localizado e montá-lo R/W. Além disso, você também poderá editar este arquivo de configuração na linha de comando do u-boot, apenas uma vez se salvar a variável com saveenv
.
Responder2
Talvez eu esteja entendendo mal aqui, mas você não pode alterar os argumentos da linha de comando que o bootloader passa para o kernel depois de já estar executando o kernel, até onde eu sei, ... se você quer dizer como configurar os parâmetros do kernel em tempo de execução, então a ferramenta é chamada sysctl
.
Se, por exemplo, você quisesse mudar:
sysctl -w kernel.stack_tracer_enabled=1
Essas alterações serão perdidas após uma reinicialização.