Se o seu sistema já estiver configurado, você pode usar o método descrito por @Joe Kul.
Com efeito, você define uma variável de ambiente com as opções de inicialização desejadas e salva o arquivo de configuração da inicialização em sua mídia.
Se você ainda está depurando sua instalação, você pode querer definir sua variável de ambiente no código-fonte e então recompilar. Depois que você descobrir seus comandos de inicialização,
O arquivo a ser editado depende de qual placa você está usando. Eu uso o mx23evk, então eu edito o arquivo /include/configs/mx23evk.h
. Veja a seção /* Extra Environments */
.
Eu removi tudo o que estava nessa seção e substituí-lo por isso.
/* Extra Environments */
#define CONFIG_EXTRA_ENV_SETTINGS \
"boot_mfg=echo Running mfgtools...; " \
"ext2load mmc 0:6 0x40600000 /boot/uboot/mfgupdat.zIm; " \
"ext2load mmc 0:6 0x40a00000 /boot/uboot/mfgupdat.dtb; " \
"bootz 40600000 - 40a00000;ext2load mmc 0:6 0x40600000 /boot/uboot/mfgupdat.zIm
" \
"boot_pro=echo Running Production...; " \
"ext2load mmc 0:6 0x40600000 /boot/uboot/pro_1.zIm; " \
"ext2load mmc 0:6 0x40a00000 /boot/uboot/pro_1.dtb; " \
"bootz 40600000 - 40a00000;run my_boot_variable
" \
"boot_rescue=echo Running Rescue...; " \
"bootz 40600000 - 40a00000;/* Extra Environments */
#define CONFIG_EXTRA_ENV_SETTINGS \
"boot_mfg=echo Running mfgtools...; " \
"ext2load mmc 0:6 0x40600000 /boot/uboot/mfgupdat.zIm; " \
"ext2load mmc 0:6 0x40a00000 /boot/uboot/mfgupdat.dtb; " \
"bootz 40600000 - 40a00000;ext2load mmc 0:6 0x40600000 /boot/uboot/mfgupdat.zIm
" \
"boot_pro=echo Running Production...; " \
"ext2load mmc 0:6 0x40600000 /boot/uboot/pro_1.zIm; " \
"ext2load mmc 0:6 0x40a00000 /boot/uboot/pro_1.dtb; " \
"bootz 40600000 - 40a00000;run my_boot_variable
" \
"boot_rescue=echo Running Rescue...; " \
"bootz 40600000 - 40a00000;%pre%" \
" \
Na linha de comando da u-boot, posso escolher entre as três configurações predefinidas de inicialização: run boot_mfg
OR run boot_pro
...
Isso me permite inicializar rapidamente em três configurações diferentes. Basta definir um como padrão quando terminar sua depuração.
Se bem me lembro, as variáveis CONFIG_BOOTDELAY
e CONFIG_BOOTCOMMAND
têm algo a ver com a inicialização padrão.
Primeiro, eu inicializo, já que você descobriu quais comandos permitem inicializar na mídia na partição com o kernel e a raiz que você deseja.
%pre%
Depois, altero meu código-fonte para refletir esse comando, não a inicialização automática, executando a variável definida no código-fonte.
%pre%
Se você estiver feliz com isso, altere o código-fonte novamente para a inicialização automática usando essa variável com ou sem um atraso cronometrado. Você pode adicionar várias variáveis de inicialização e selecionar variáveis diferentes pressionando a tecla.
Eu não tenho trabalhado com isso em alguns meses, então eu posso estar deixando de fora informações importantes, mas isso deve fazer você olhar na direção certa.