O vmlinux pode ser usado em vez do uImage?


9

Eu quero usar uma imagem de kernel descompactada e inicializar o BeagleBoard. Geralmente eu uso o uImage para inicializar o kernel que está no formato compactado. Como uso uma imagem de kernel descompactada?


Você está usando o U-Boot como o carregador de inicialização, certo?
Gilles 'SO- stop be evil'

sim! É possível usar o uboot?
Sharanya

Respostas:


7

Até onde eu sei, o U-Boot não pode inicializar diretamente uma imagem ELF "bruta" ( vmlinux). Você precisa transformá-lo no uImageformato, que contém os vmlinuxbytes compactados mais alguns bytes extras de metadados que descrevem o endereço de carregamento do kernel. U-Boot FAQ 2.19 explica como gerar uImage; é bastante simples, usando o mkimageutilitário na árvore de origem do U-Boot:

 mkimage -A arm -O linux -T kernel -C gzip … -d vmlinux uImage

(Você pode precisar de parâmetros extras indicando o endereço de carregamento.)


11
Descomprimir a uImage durante a inicialização leva algum tempo. Eu preciso minimizar isso. Então eu pensei por que não tento com o arquivo cru descompactado vmlinux.
Sharanya

3
O efeito que você deseja obter pode ser oposto ao pretendido. O tempo de descompressão é geralmente menor que o tempo de cópia de dados do flash.
Maciej Kucia

3
 mkimage -A arm -O linux -T kernel -C gzip … -d vmlinux uImage

Altere gzip no exemplo acima para none e você criará uma imagem não compactada compatível com u-Boot.


1

Se você estiver usando o Buildroot, selecione um uImagearquivo de saída do kernel ( BR2_LINUX_KERNEL_UIMAGE=y). Compile normalmente e o Buildroot também criará um vmlinuxarquivo em uma etapa intermediária. Enquanto o vmlinuxarquivo não é copiado para o /output/imagesdiretório, ele pode ser encontrado ./output/build/linux-custom/(ou executando find . -name "vmlinux").

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.