Como acessar o ambiente de inicialização do linux?

4

Como posso acessar e alterar as variáveis de env do u-Boot no linux. Usando o diretório u-boot / tools / env no diretório de inicialização do u:

u-boot$ make env 

Que criou o arquivo executável fw_printenv . Eu copiei isso para / usr / sbin e no arquivo target etc / fw_env.config:

# Configuration file for fw_(printenv/saveenv) utility.
# Up to two entries are valid, in this case the redundand
# environment sector is assumed present.
# MTD device name     Device offset    Env. size    Flash sector size
/dev/mtd0          0x00000                0x20000         0x20000
target#./fw_printenv
SEGV

O que está causando esse erro?

/ proc / mtd

dev:    size   erasesize  name                                                  
mtd0: 00020000 00020000 "flash_uboot_env"                                       
mtd1: 002e0000 00020000 "flash_linux_image"                                     
mtd2: 00900000 00020000 "flash_jffs2"                                           
mtd3: 00900000 00020000 "flash_data"
    
por amar 22.04.2013 / 14:57

1 resposta

1

Seu fw_env.config é diferente do meu. Eu tenho o u-boot env no intervalo 0x00260000-0x00280000. Pelo que me lembro, o arquivo fw_env é bastante sensível, e se você esquecer alguma coluna, o fw_setenv irá retornar a algum valor padrão que pode causar todos os tipos de erros estranhos.

Apenas para referência, aqui está o meu fw_env.config

root@linux:~# cat /etc/fw_env.config 
# Dev. name    offset    env. size     flash sector size    nbr. sectors
  /dev/mtd1    0x00      0x2000        0x20000              1

Você pode cruzar compilar strace e usá-lo para solucionar problemas.

    
por 22.04.2013 / 16:34