Estações de trabalho on-line OnWorks Linux e Windows

Logotipo

Hospedagem online grátis para estações de trabalho

<Anterior | Conteúdo | Próxima>

A inicialização da rede em sistemas usando o firmware U-Boot consiste em três etapas: a) configurar a rede, b) carregar as imagens (kernel / disco em memória inicial / dtb) na memória ec) executar efetivamente o código carregado anteriormente.

Primeiro você deve configurar a rede, automaticamente via DHCP executando


setenv autoload sem dhcp


ou manualmente definindo várias variáveis ​​de ambiente


setenv ipaddr máscara de rede setenv

setenv serverip setenv dnsip

setenv gatewayip


Se preferir, você pode tornar essas configurações permanentes executando


salvarenv


Depois disso, você precisa carregar as imagens (kernel / ramdisk inicial / dtb) na memória. Isso é feito com o comando tftpboot, que deve ser fornecido com o endereço no qual a imagem deve ser armazenada na memória. Infelizmente, o mapa de memória pode variar de sistema para sistema, então não existe uma regra geral sobre quais endereços podem ser usados ​​para isso.


Em alguns sistemas, o U-Boot predefine um conjunto de variáveis ​​de ambiente com endereços de carregamento adequados: kernel_addr_r, ramdisk_addr_r e fdt_addr_r. Você pode verificar se eles estão definidos executando


printenv kernel_addr_r ramdisk_addr_r fdt_addr_r


Se eles não estiverem definidos, você deve verificar a documentação do seu sistema para os valores apropriados e configurá-los manualmente. Para sistemas baseados em SOCs Allwinner SunXi (por exemplo, Allwinner A10, nome da arquitetura “sun4i” ou Allwinner A20, nome da arquitetura “sun7i”), você pode, por exemplo, usar os seguintes valores:


setenv kernel_addr_r 0x46000000 setenv fdt_addr_r 0x47000000 setenv ramdisk_addr_r 0x48000000


Quando os endereços de carregamento são definidos, você pode carregar as imagens na memória a partir do servidor tftp previamente definido com


tftpboot $ {kernel_addr_r} tftpboot $ {fdt_addr_r}

tftpboot $ {ramdisk_addr_r}


A terceira parte é definir a linha de comando do kernel e realmente executar o código carregado. O U-Boot passa o conteúdo da variável de ambiente “bootargs” como linha de comando para o kernel, portanto, quaisquer parâmetros para o kernel e o instalador - como o dispositivo de console (consulte a Seção 5.3.1) ou opções de pré-configuração (consulte a Seção 5.3.2 .XNUMX e Apêndice B) - pode ser definido com um comando como


setenv bootargs console = ttyS0,115200 rootwait panic = 10


O comando exato para executar o código carregado anteriormente depende do formato de imagem usado. Com uImage / uInitrd, o comando é


bootm $ {kernel_addr_r} $ {ramdisk_addr_r} $ {fdt_addr_r}


e com imagens nativas do Linux é


bootz $ {kernel_addr_r} $ {ramdisk_addr_r}: $ {filesize} $ {fdt_addr_r}


Nota: Ao inicializar imagens linux padrão, é importante carregar a imagem ramdisk inicial após o kernel e o dtb, pois o U-Boot define a variável de tamanho do arquivo para o tamanho do último arquivo carregado e o comando bootz requer o tamanho da imagem ramdisk para funcionar corretamente. No caso de inicializar um kernel específico da plataforma, ou seja, um kernel sem árvore de dispositivos, simplesmente omita o parâmetro $ {fdt_addr_r}.


5.2. Acessibilidade

Top OS Cloud Computing na OnWorks: