u-boot não pode salvar parâmetros de ambiente quando 'bootm' especificado

3

Estou tentando modificar os parâmetros do ambiente de inicialização com o comando setenv .

Quando eu configuro bootcmd tftpboot 0x80800000 192.168.2.2:uImage2; bootm com bootm especificado, o uboot começa a carregar o kernel do Linux, mas não consigo salvar parâmetros com saveenv .

Quando eu configuro bootcmd sem bootm eu posso salvar os parâmetros com saveenv mas então o uboot não pode carregar o kernel, eu tenho o seguinte log

T T T T T T #################################################################
     #################################################################
     #################################################################
     #################################################################
     #################################################################
     #################################################################
     #################################################################
     ##########
done
Bytes transferred = 2378156 (2449ac hex)
Unauthorized > 

Eu posso carregar o kernel diretamente executando bootm .

    
por Makhlouf GHARBI 17.05.2017 / 10:53

2 respostas

3

Estou assumindo que você está chamando isso na linha de comando do u-boot.

bootcmd tftpboot 0x80800000 192.168.2.2:uImage2; bootm

A nota importante aqui é que o ponto-e-vírgula é um separador de comandos. Uma correção simples (não testada) adicionaria o comando saveenv antes do comando bootm.

bootcmd tftpboot 0x80800000 192.168.2.2:uImage2; saveenv; bootm

Isto configuraria a variável bootcmd para: tftpboot 0x80800000 192.168.2.2:uImage2

Em seguida, saveenv salvaria a (s) variável (s)

Então o bootm inicializaria a imagem na memória.

Você não precisa fazer isso em cada inicialização se salvar as variáveis depois de se contentar com a ordem de inicialização.

Primeiro, defina todas as variáveis de inicialização para sua configuração. (apenas exemplos. ajuste para sua configuração)

  • setenv autostart yes
  • setenv bootfile uImage2
  • setenv ipaddr 192.168.2.2
  • setenv serverip 192.168.2.X
  • setenv bootcmd tftpboot 0x80800000 192.168.2.2:uImage2

OR

  • bootecd bootcmd setenv 0x80800000 uImage2

Salve as variáveis de inicialização para mídia persistente

saveenv

Teste as opções de inicialização executando o bootcmd

run bootcmd

Repita até que as variáveis estejam definidas corretamente e o bootcmd funcione.

If U-Boot is not interrupted after the delay established in bootdelay, the automatic boot process takes place. Automatic booting consists of running what is specified in the bootcmd environment variable

Algumas variáveis do sistema:

  • bootcmd : Define uma string de comando que é executada automaticamente quando a contagem regressiva inicial não é interrompida. Executado somente quando a variável bootdelay também é definida.
  • autoload : Se definido como "no" (ou qualquer string que comece com 'n'), o comando rarpboot, bootp ou dhcp executará uma pesquisa de configuração do servidor BOOTP / DHCP, mas não tentará carregar qualquer imagem usando TFTP.
  • autostart : Se definido como "yes", uma imagem carregada usando os comandos rarpboot, bootp, dhcp ou tftpboot é iniciada automaticamente (chamando internamente o comando bootm).
  • bootfile: nome da imagem padrão a ser carregada com TFTP.
por 17.05.2017 / 16:59
0

Eu consegui salvar todo o comando bootcmd tftpboot 0x80800000 192.168.2.2:uImage2; saveenv; bootm adicionando aspas duplas após bootcmd

setenv bootcmd "tftpboot 0x80800000 192.168.2.2:uImage2; bootm"
    
por 18.05.2017 / 10:01

Tags