« 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
