« aptitude Method rred | Home | 2.6.32 et rt61 »

initrd sur 2.6.3*

posté par cep le 12 novembre 2009

Un ami devait recompiler son noyau pour y modifier une option concernant la gestion de la mémoire. Après avoir récupéré le linux-source xxx et fait toutes les procédures de compilation, y compris le :

fakeroot make-kpkg –initrd etc. etc.

à la fin, après installation du nouveau kernel il n’y avait pas d’ initrd.img-xxxx dans /boot/ et cela malgré la présence du fichier /etc/kernel/postinst.d/initramfs-tools créé lors de l’installation du paquet initramfs-tools.

La commande dpkg-reconfigure linux-image-2.6.3xxxx ne générait pas non plus l’initrd.

Bien sûr il a tout de suite résolu son problème en faisant un : update-initramfs -c -k 2.6.3xxxx
suivi d’un update-grub. Mais cela ne le satisfaisait pas.

Nous avons fait quelques recherches google, lu le man make-kpkg, man kernel-package, différents man de initramfs-tools pour enfin se rendre compte qu’il fallait compléter les scripts dans /etc/kernel/postinst.d.

Après avoir récupéré dans /usr/share/kernel-package/examples/etc/kernel/postinst.d l’exemple de script initramfs nous l’avons ajouté dans le répertoire /etc/kernel/postinst.d et l’avons rendu exécutable.

Après cela la commande dpkg-reconfigure linux-image-2.6.3xxxx générait bien l’initrd :

$ sudo dpkg-reconfigure linux-image-2.6.30-mem
Running depmod.
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/initramfs
2.6.30-mem /boot/vmlinuz-2.6.30-mem
run-parts: executing /etc/kernel/postinst.d/initramfs-tools
2.6.30-mem /boot/vmlinuz-2.6.30-mem
Running postinst hook script update-grub.
. . .

Donc si on utilise les dernières versions de kernel-package, initramfs-tools, et que l’on compile son kernel avec génération d’un initrd penser à compléter les scripts dans /etc/kernel/postinst.d/ en piochant dans /usr/share/kernel-package/examples/*.

Accessoirement, en ce qui me concerne pour faire une petite modification sur un kernel officiel debian que je ne vais pas conserver longtemps je procède de la manière suivante :

$ apt-get source  linux-source-2.6.31
$ cd linux-2.6-2.6.31/

Là je change le paramètre désiré (à noter qu’il n’est pas conseillé de changer ce paramètre) :
$ perl -i -p -e ’s/CONFIG_STRICT_DEVMEM=y/CONFIG_STRICT_DEVMEM=n/g;’ debian/config/kernelarch-x86/config

Puis je reprends la procédure :

$ fakeroot debian/rules
$ cd ..
$ fakeroot make -f debian/rules.gen binary-arch_i386_none_686
$ ls ../*deb
../linux-headers-2.6.31-1-686_2.6.31-1_i386.deb  ../linux-image-2.6.31-1-686_2.6.31-1_i386.deb
$ sudo dpkg -i ../*.deb

cep

Topics: Général, debian |

Comments

*
Pour prouver que vous n'êtes pas un bot, recopiez le code ci-dessous
Anti-Spam Image