cpio initrd aus und wieder einpacken

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Benutzeravatar
lisan
Beiträge: 658
Registriert: 22.02.2003 19:05:04
Wohnort: Berlin
Kontaktdaten:

cpio initrd aus und wieder einpacken

Beitrag von lisan » 09.12.2005 14:23:36

Hi,

Packe ich ein initrd aus (gunzip und cpio) und packe es mit find . | cpio -o wieder ein
und komprimiere es - stimmt zwar die groesse wie zuvor aber der kernel macht nen panic beim booten.

Muss das image einen speziellen namen tragen ?
Was mache ich falsch ?

Ich moechte ein fbsplash initrd um das compressor modul 'lzf' erweitern.

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22455
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 09.12.2005 14:36:26

Die Initrd Von Debian ist alles nichts vom dem. Sie wird im Cramfsformat geschrieben und läßt sich ganz normal mount. Beispelsweise so.

Code: Alles auswählen

mount -o loop /boot/initrd.img-2.6.13.1-0-k7  /mnt
Da wäre es aber besser wenn du eine neue Intrd erstellst.
Das Modul in die Konfiguration aufnehmen. eine neue Intrd wird mit

Code: Alles auswählen

mkintrd 
gebaut.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
lisan
Beiträge: 658
Registriert: 22.02.2003 19:05:04
Wohnort: Berlin
Kontaktdaten:

Beitrag von lisan » 09.12.2005 14:48:46

Ich habe aber ein cpio initrd und kein cramfs ;).

Ich ueberlege auch, ob ich das mit einem ordendlichem fs mache, kann man images auch in images verpacken, hab ich irgendwo mal gesehen.

Die bootsplash images wuerde ich so gerne in das cramfs initrd verpacken - ginge so etwas ?
Was ich auch nicht herausbekommen habe, wie ich mit mkinitrd ein einzellnes modul und nich t alle oder keines in das initrd aufnehme.

Benutzeravatar
roland
Beiträge: 159
Registriert: 24.08.2004 14:41:41
Wohnort: 754xx
Kontaktdaten:

Beitrag von roland » 09.12.2005 15:25:52

So ein Zufall, die gleiche Frage wollte ich auch gerade stellen. Ich bin leicht am verzweifeln, denn cpio --extract und cpio --create erzeugt ein ungültiges initrd.

Die Abfolge der Befehle steht z.B. hier:

http://lists.suse.com/archive/suse-auto ... /0090.html

Die Variante mit dem cramfs tut auch nicht, nach dem Mounten kann ich im Image nichts schreiben (ja, ist mit -o rw gemountet).

Hat das schon mal jemand erfolgreich hinbekommen bzw. wer benutzt yaird und suspend2?

Danke schonmal,

roland

Benutzeravatar
lisan
Beiträge: 658
Registriert: 22.02.2003 19:05:04
Wohnort: Berlin
Kontaktdaten:

Beitrag von lisan » 09.12.2005 15:33:23

Ich benutze suspend2 und fbsplash, dafuer will ich grad das initrd bauen, ich moechte zu dem splash image noch den lzf compressor fuer suspend2 hinzufuegen.

Ich schau mir mal yaird an.

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 10.12.2005 21:28:41

auspacken eines initramfs:

Code: Alles auswählen

mv initrd-x.y.z.img initrd-x.y.z.img.gz # sonst meckert gunzip
gunzip initrd-x.y.z.img.gz
cpio -i < initrd-x.y.z.img
einpacken:

Code: Alles auswählen

cpio --quiet --dereference -o -H newc | gzip -9 > initrd-new.img
Einfacher geht's, wenn man einfach mkinitramfs direkt benutzt. "mkinitramfs -o outputfile" generiert aus den Settings in /etc/mkinitramsfs/ ein fertiges neues initramfs.

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Antworten