Como comprimir um kernel do vmlinux no vmlinuz?

3

A questão é bem resumida pelo título - acabei de criar um kernel que gerou o arquivo de saída do vmlinux. Como faço para compactar isso em uma imagem vmlinuz?

    
por jackweirdy 06.07.2012 / 01:50

3 respostas

2

A compactação é uma opção em tempo de compilação.

O processo é bastante complicado, pois o arquivo resultante irá iniciar com código nativo que descomprime o resto do kernel e salta para lá.

Portanto, não há um caminho direto, e ninguém nunca gastou tempo para implementar a recompressão (pelo menos até onde eu sei), já que é simples o suficiente para recompilar.

Em conclusão, você terá que usar make bzImage .

    
por 06.07.2012 / 18:56
0

De acordo com a documentação , você precisa executar:

make bzImage

e depois:

cp bzImage vmlinuz

para criar o arquivo vmlinuz .

    
por 08.03.2015 / 04:23
-1

Do artigo da Wikipedia sobre vmlinux :

Compression

Traditionally, when creating a bootable kernel image, the kernel is also compressed using the zlib algorithm, or since Linux 2.6.30 using LZMA or BZIP2, which requires a very small decompression stub to be included in the resulting image. The stub decompresses the kernel code, on some systems printing dots to the console to indicate progress, and then continues the boot process.

The decompression routine is a negligible factor in boot time, and prior to the development of the bzImage, the size constraints of some architectures, notably i386, were extremely limiting, making compression a necessity.

On the SPARC architecture, the vmlinux file is compressed using simple gzip, because the SILO boot loader transparently decompresses gzipped images.

The filename of the bootable image is not important, but by convention it is called vmlinuz or zImage.

Então, dependendo de qual arquitetura você está rodando, e qual versão do Linux, a resposta irá variar.

A melhor maneira é deixar o processo de compilação do kernel compactá-lo para você.

    
por 06.07.2012 / 02:16