La version du noyau utilisée est : 2.6.12.6
NB : la version utilisée peut paraître obsolète, mais c'est la "dernière" qui fournit devfs, nécessaire à l'installateur Debian Sarge. En 2.6.13 et supérieur, il m'a été impossible de poursuivre la mise-à-jour de ce CDROM d'installation.
La Debian 3.1 est sortie avec un noyau 2.6.8, qui est déjà malheureusement un peu vieux pour tourner sur certaines machines. L'idée de cette page est de reprendre l'installateur Debian "netinst", et de lui intégrer un noyau plus récent.
L'image ISO de l'installateur pour Sarge (netinst) avec noyau 2.6.12.6 est téléchargeable ici (90MB). Lors du démarrage, seules les options linux26 (le défaut) et expert26 existent. Celles concernant le boot avec noyau 2.4 ont été supprimées, car ce noyau n'est pas intégré à la nouvelle image ISO. Le framebuffer est désactivé par défaut.
Mise-à-jour : Cette image ne fonctionnait pas bien avec les dernières machines DELL en SATA (chipset ICH7). Pour forcer la détection des disques, j'ai rajouté un script, lancé lors du boot sur le cdrom, effectuant le chargement des modules libata et ata_piix.
NB : le noyau est configuré pour des machines 686 (PPRO), avec le SMP activé ainsi que le support de la RAM jusqu'à 4GB. Le maximum de choses est compilé en modules. Le fichier de configuration correspondant est disponible ici. De plus, ce noyau a été patché pour éliminer des messages d'erreur récurrents concernant la version de mount pour les montages NFS, ainsi que des messages de déboguage de TCP qui arrivent lors des synchronisations par rsync. Vous pouvez télécharger le patch lié à ces modifications.
Les différents paquets générés depuis ce noyau se trouvent ici:
Bonus : pour ceux qui ont des machines avec cartes graphiques nvidia ou ati non-supportées par le XFree86 fourni avec sarge, j'ai également fait les paquets pour les modules nvidia et fglrx.
Le principe général pour mettre à jour le noyau de l'installateur de sarge est composé de :
Attention : il faut avoir la faveur -686 dans le nom du paquet à générer. Cette faveur est utilisée ultérieurement pour la reconstruction des paquets udeb et des images vmlinuz/initrd.gz du cdrom.
Dans le répertoire qui contient les sources du noyau, les commandes suivantes, génèrent le paquet. Je sais que ce n'est pas recommandé, mais toutes ces commandes sont effectuées en tant que root ; normalement, il faudrait passer par fakeroot, mais je ne suis pas intéressé à la question...
# export INITRD_OK=yes # make-kpkg clean # make-kpkg --revision 1 \ --initrd \ --append-to-version -686 \ kernel_image
On installe ensuite ce noyau.
# dpkg -i ../kernel-image-2.6.12.6-686_1_i386.deb
Le paquet linux-kernel-di-i386-2.6 utilisé après dépend de kernel-wedge. Afin d'éviter quelques problèmes, il faut utiliser une version très récente de ceux-ci, et donc faire un "backport" de unstable vers sarge. If faut donc ajouter la ligne suivante dans /etc/apt/sources.list pour obtenir les sources des paquets de unstable :
deb-src http://ftp.fr.debian.org/debian unstable main contrib non-free
# apt-get source kernel-wedge
# cd kernel-wedge-[version] # dpkg-checkbuilddeps # apt-get install [paquets manquants]
# ./debian/rules binary # dpkg -i ../kernel-wedge*.deb
# apt-get source linux-kernel-di-i386-2.6 # cd linux-kernel-di-i386-2.6-[version]
# arch version flavour installedname suffix build-depends i386 2.6.12.6 686 2.6.12.6-686 - kernel-image-2.6.12.6-686
# ./debian/rules binary
Lorsque kernel-wedge s'arrete avec - par exemple - le message :
missing module megaraid command exited with status 1
il faut aller éditer le fichier contenant la definition de ce module dans /usr/share/kernel-wedge/modules/[fichier-modules], en préfixant le nom du module par "-". Dans l'exemple ci-dessus, le fichier est scsi-extra-modules, dans lequel il faut remplacer la ligne contenant "megaraid" par "-megaraid". Si le fichier de définition des modules à inclure n'existe pas dans le répertoire ci-dessus, il faut aller le chercher dans les sources de linux-kernel-di-i386-2.6, sous-répertoire modules/i386/.
Pour trouver facilement et rapidement dans quel fichier est mentionné le module manquant, procéder comme suit:
missing module aes
command exited with status 1
# find modules/ -type f -exec grep -H "aes" {} \;
# find /usr/share/kernel-wedge/ -type f -exec grep -H "aes" {} \;
/usr/share/kernel-wedge/modules/crypto-modules:aes
Dans cet exemple, il ne reste qu'a éditer le fichier
"/usr/share/kernel-wedge/modules/crypto-modules" et de
commenter la ligne "aes"
Attention, il faut utiliser les sources de l'installateur de sarge, et donc il est nécessaire de re-modifier le fichier /etc/apt/sources.list pour utiliser la bonne version.
# apt-get source debian-installer # cd debian-installer-[version] # dpkg-checkbuilddeps # apt-get install [paquets manquants] # cd build
# vi config/i386.cfg
# make build_cdrom_isolinux-2.6
deb http://ftp.fr.debian.org/debian stable main/debian-installer
# make build_cdrom_isolinux-2.6
Il faut d'abord récupérer l'image ISO netinst, par exemple ici.
# mount -t iso9660 -o loop debian-31r0a-i386-netinst.iso /mnt # mkdir cdimage # rsync -avxH /mnt/ cdimage/ # umount /mnt
Dir {
ArchiveDir "/chemin/complet/vers/cdimage/";
OverrideDir "indices";
CacheDir "indices";
};
TreeDefault {
Directory "pool/";
};
BinDirectory "pool/main" {
Packages "dists/sarge/main/debian-installer/binary-i386/Packages";
BinOverride "override";
ExtraOverride "override.extra";
};
Default {
Packages {
Extensions ".udeb";
};
};
# mkdir cdimage/indices # links -dump 'http://ftp.fr.debian.org/debian/indices/override.sarge.main.gz' > cdimage/indices/override
# cd cdimage/ # apt-ftparchive generate ../config
# dpkg-scanpackages pool/main/ /dev/null > \ dists/sarge/main/binary-i386/Packages # gzip -c < dists/sarge/main/binary-i386/Packages \ > dists/sarge/main/binary-i386/Packages.gz
md5sum `find -follow -type f` > md5sum.txt
# mkisofs -o ../sarge-netinst.iso -r -J -no-emul-boot -boot-load-size 4 \ -boot-info-table -b isolinux/isolinux.bin -c isolinux/boot.cat .
Maintenant que la nouvelle image est prête, il suffit de la graver, puis de vérifier que tout fonctionne bien.
Dernière modification : Saturday January 31, 2009, Nicolas KOWALSKI
|
|
|
|
|