Adicionar arquivos ao initrd faz com que o linux não seja capaz de lê-lo

6

Estou usando o clonezilla-1.2.12 e preciso adicionar o firmware da Broadcom ao initrd para que ele possa ser inicializado pela rede.

(o clonezilla é baseado no Debian e o debian não inclui mais os blobs de firmware, pois eles não são livres. Naturalmente, o clonezilla também não.)

(Eu não posso usar o clonezilla baseado no Ubuntu, pois o Ubuntu tem um bug nele, onde o chipset Broadcom 5708 simplesmente não funciona.)

Eu tenho o que parece ser um bom processo para fazer isso:

~# mkdir /tmp/cz-newinitrd 
~# cd /tmp/cz-newinitrd
/tmp/cz-newinitrd# xzcat /media/CLONEZILLA/live/initrd.img.orig > initrd
/tmp/cz-newinitrd# (cd /; find lib/firmware/bnx2 | cpio -o -H newc --append -O /tmp/cz-newinitrd/initrd)
/tmp/cz-newinitrd# xz -c initrd > /media/CLONEZILLA/live/initrd.img

MAS o linux se recusa a reconhecer o initrd refeito:

Eu também tentei criar um único arquivo cpio (sem usar o --append) e obtive o mesmo resultado.

Se eu ignorar completamente a modificação do arquivo e apenas descompactar / recomprimir, ainda recebo o mesmo resultado.

O que está errado aqui?

    
por MikeyB 22.03.2012 / 19:03

1 resposta

2

O culpado culpado aqui foi a etapa xz . Parece que a versão do xz no meu desktop estava fazendo algo incompatível com o descompactador no kernel do clonezilla.

Mudar para o gzip faz com que funcione bem.

De acordo com o Steven Shiau , é necessário usar --check=crc32 ao recomprimir o initrd com xz. Depois disso, tudo funciona bem!

    
por 22.03.2012 / 19:41