[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ suivant ]
Debian a une manière de recompiler le noyau Linux et les modules associés qui lui est propre. Voir aussi Debian et le noyau, Section 2.7.
L'utilisation de gcc, binutils et
modutils de Debian unstable peut aider lors de la
compilation du dernier noyau Linux. Voir
/usr/share/doc/kernel-package/README.gz, et spécialement la fin,
pour l'information officielle.
Comme c'est en évolution constante, la compilation d'un noyau est difficile même pour les meilleurs développeurs :
--initrd nécessite un patch cramfs de Debian.
Non, il n'y en a pas besoin, tout ce qu'il faut faire pour utiliser un système
de fichier autre que CRAMFS est de configurer MKIMAGE dans
/etc/mkinitrd/mkinitrd.conf.
Attention et reposez-vous toujours sur
/usr/share/doc/kernel-package/README.gz de Manoj et Kent.
Assurez-vous d'obtenir la dernière version de kernel-package de
unstable si vous voulez compiler la dernière version du noyau.
initrd n'est pas nécessaire pour un noyau compilé pour une seule
machine. Je l'utilise parce que je veux que mon noyau soit presque identique à
celui fournit par kernel-image. Si vous utilisez initrd, lisez
bien mkinitrd(8) et mkinitrd.conf(5). Voir aussi
http://bugs.debian.org/149236.
Soyez attentifs aux rapports de bogues relatifs à kernel-package
gcc, binutils et modutils. Utilisez une
nouvelle version de ceux-ci si nécessaire.
Sous Debian, compiler un noyau personnalisé à partir des sources nécessite de
prendre certaines précautions. Utilisez la nouvelle option
--append_to_version avec make-kpkg pour compiler
plusieurs images du noyau.
# apt-get install debhelper modutils kernel-package libncurses5-dev
# apt-get install kernel-source-2.4.18 # utilisez la dernière version
# apt-get install fakeroot
# vi /etc/kernel-pkg.conf # entrez votre nom et adresse électronique
$ cd /usr/src # dossier où va se faire la compilation
$ tar --bzip2 -xvf kernel-source-2.4.18.tar.bz2
$ cd kernel-source-2.4.18 # si c'est votre source du noyau
$ cp /boot/config-2.4.18-386 .config # récupérez la configuration
actuelle comme defaut
$ make menuconfig # personnalisez votre noyau
$ make-kpkg clean # obligatoire (voir : man make-kpkg)
$ fakeroot make-kpkg --append_to_version -486 --initrd \
--revision=rev.01 kernel_image \
modules_image # modules_image pour pcmcia-cs* etc.
$ cd ..
# dpkg -i kernel-image*.deb pcmcia-cs*.deb # installation
En réalité, make-kpkg kernel_image lance make oldconfig et make dep. N'utilisez pas --initrd si initrd n'est pas utilisé.
Si vous voulez les modules de pcmcia-cs, ou pas de support pcmcia, sélectionnez « General setup —> » dans « PCMCIA/CardBus support —> » dans make menuconfig et en mettant la configuration à « < > PCMCIA/CardBus support » (càd décocher la case).
Sur une machine SMP, configurez CONCURRENCY_LEVEL selon
kernel-pkg.conf(5).
Récupérez les sources officielles depuis :
linux : http://www.kernel.org/
pcmcia-cs : http://pcmcia-cs.sourceforge.net/
ou utilisez les sources équivalentes dans Debian et faites ce qui suit :
# cd /usr/src
# tar xfvz linux-whatever.tar.gz
# rm -rf linux
# ln -s linux-whatever linux
# tar xfvz pcmcia-cs-whatever.tar.gz
# ln -s pcmcia-cs-whatever pcmcia
# cd linux
# make menuconfig
... configurez ...
# make dep
# make bzImage
... editions des fichiers de configuration pour lilo / grub ...
... déplacez /usr/src/linux/arch/i386/boot/bzImage vers boot ...
... /sbin/lilo ou ce qui se fait pour grub
# make modules; make modules_install
# cd ../pcmcia
# make config
# make all
# make install
... ajoutez les noms des modules dont vous avez besoin dans /etc/modules
# shutdown -r now
... redémarrez avec le nouveau noyau ...
La plupart des programmes « normaux » n'ont pas besoin des en-têtes
du noyau et peuvent même planter si vous les utilisez directement ; à la
place, ils doivent être compilés avec les en-têtes avec lesquels la
glibc a été compilée, qui sont les versions de
/usr/include/linux et /usr/include/asm du système
Debian.
Donc, ne créez pas de liens vers /usr/src/linux depuis
/usr/include/linux et /usr/include/asm, comme suggéré
par certains documents trop vieux.
Si vous avez besoin d'en-têtes du noyau particuliers pour une
application spécifique à un noyau, changez le Makefile pour
inclure les chemins vers
rep-des-entêtes-particulières/include/linux et
rep-des-entêtes-particulières/include/asm.
Les nouveaux noyaux 2.4 Debian fournis dans kernel-image-2.4.NN sont très modulaires. Vous devez vous assurer que les modules effectuant les fonctions du noyau que vous recherchez sont là.
Bien qu'il y ait de nombreux exemples pour /etc/modules dans la
section suivante, on me dit qu'un moyen correct de corriger les problèmes
relatifs aux modules est de fournir un alias au périphérique dans un fichier de
/etc/modutils/ puisqu'assez d'alias sont disponibles avec les
noyaux actuels.
Voir Dispositions spéciales pour
manipuler les modules, Section 2.7.3 et Documentation/*.txt
dans les sources de Linux pour l'information précise.
/etc/modules doit contenir les lignes suivantes pour que PCMCIA
fonctionne :
# driver ISA PnP
isa-pnp
# driver PCMCIA bas niveau
# yenta_socket # je n'en ai apparemment pas besoin
Le reste est pris en charge par des scripts PCMCIA (du paquet
pcmcia-cs), depmod et kmod. J'ai besoin
de isa-pnp, sûrement parce que mon portable possède une vieille
interface ISA-PCMCIA. Des portables récents avec une interface Cardbus/PCMCIA
peuvent ne pas en avoir besoin.
Miquel van Smoorenburg miquels@cistron.nl nous dit :
« J'ai tout simplement supprimé tout ce qui a rapport à pcmcia sur mon
portable au travail, y compris cardmgr, et j'ai installé un noyau 2.4 avec le
support cardbus, et le nouveau paquet hotplug de Woody.
Si vous avez une carte 32 bits, vous n'avez pas besoin du paquet pcmcia ; le noyau 2.4 comprend cardservices. Et le pilote tulip standard devrait marcher avec votre carte dlink.
—Mike »
[NON TESTE] /etc/modules doit contenir les lignes suivantes pour
que SCSI fonctionne :
# noyau SCSI
scsi_mod
# driver générique SCSI
sg
# disque SCSI
sd_mod
# Tous les autres modules nécessaires pour le matériel
...
depmod peut peut-être se charger lui-même de certains de ces
modules.
/etc/modules doit contenir les lignes suivantes pour obtenir des
fonctionnalités réseau supplémentaires :
# net/ipv-4
ip_gre
ipip
# net/ipv-4/netfilter
# iptable (dans l'ordre)
ip_tables
ip_conntrack
ip_conntrack_ftp
iptable_nat
iptable_filter
iptable_mangle
#
ip_nat_ftp
ip_queue
#
ipt_LOG
ipt_MARK
ipt_MASQUERADE
ipt_MIRROR
ipt_REDIRECT
ipt_REJECT
ipt_TCPMSS
ipt_TOS
ipt_limit
ipt_mac
ipt_mark
ipt_multiport
ipt_owner
ipt_state
ipt_tcpmss
ipt_tos
ipt_unclean
#
#ipchains
#ipfwadm
Ces lignes ne sont pas optimisées. depmod pourrait se charger de
certains des modules.
Les étapes suivantes sont nécessaires pour activer le système de fichiers journalisé Ext3, en utilisant une image du noyau Debian précompilée ( > 2.4.17) :
# cd /etc; mv fstab fstab.old
# sed 's/ext2/ext3,ext2/g' <fstab.old >fstab
# vi /etc/fstab
... mettre le type du système de fichiers racine à "auto"
au lieu de "ext3,ext2"
# cd /etc/mkinitrd
# echo jbd >>modules
# echo ext3 >>modules
# echo ext2 >>modules
# cd /
# apt-get update; apt-get install kernel-image-2.4.17-686-smp
... installe le noyau le plus récent
et configure le démarrage du système (lilo est exécuté)
# tune2fs -j -i 0 /dev/hda1
# tune2fs -j -i 0 /dev/hda2
... Pour tous les systèmes de fichier EXT2 convertis en EXT3
# shutdown -r now
La journalisation EXT3 du système de fichier est maintenant activée. Une
entrée « type » ext3,ext2 dans fstab assure
un passage sûr à EXT2 si le noyau ne supporte pas EXT3 pour les partitions
autres que la partition racine.
Si un noyau 2.4 est déjà installé et que vous ne souhaitez pas le réinstaller,
faites la même chose jusqu'aux commandes apt-get et :
# mkinitrd -o /boot/initrd.img-2.4.17-686-smp /lib/modules/2.4.17-686-smp
# lilo
# tune2fs -j -i 0 /dev/hda1
# tune2fs -j -i 0 /dev/hda2
... pour tous les FS EXT2 convertis en EXT3
# shutdown -r now
La journalisation EXT3 du système de fichier est maintenant activée.
Si /etc/mkinitrd/modules n'a pas été configuré quand
mkinitrd a été exécuté et que vous souhaitez ajouter des modules
au démarrage du système :
... à l'invite de initrd pour accéder au shell (5 sec.), appuyer sur RETURN
# insmod jbd
# insmod ext3 # modprobe ext3 prend peut-être tout en charge
# insmod ext2
# ^D
... continue le démarrage
Sur l'écran de démarrage (dmesg), « cramfs: wrong
magic » apparaît mais cette erreur est connue pour être sans conséquence.
Ce problème a été résolu dans Sarge (10/2002). Voir http://bugs.debian.org/135537
et le EXT3 File System
mini-HOWTO ou
/usr/share/doc/HOWTO/en-txt/mini/extra/ext3-mini-HOWTO.gz pour
plus d'information.
Sur certains systèmes, le noyau se bloque lorsque EXT3 est activé mais je n'ai eu aucun problème (avec 2.4.17).
Pour une raison inconnue, le module RTL-8139 ne s'appelle plus rtl8139, mais 8139too. Éditez simplement votre fichier /etc/modules pour changer l'entrée correspondante lorsque vous mettez à jour un noyau 2.2 en 2.4.
Avec kernel-image-2.4.*, le support du port parallèle est fournit
en module. Activez-le avec :
# modprobe lp
# echo lp >> /etc/modules
Voir Documentation/parport.txt dans le source de Linux.
Le noyau Linux peut se plaindre : « Too many open files » (trop
de fichiers ouverts). Cela est dû à la petite valeur (8096) de
file-max. Pour corriger ce problème, lancez les commandes
suivantes en tant que root (ou mettez-les dans un script de démarrage de
/etc/rcS.d/*.
# echo "65536" >/proc/sys/fs/file-max # pour les noyaux 2.2 et 2.4
# echo "131072" >/proc/sys/fs/inode-max # pour le noyau 2.2 seulement
Pour plus d'information sur le changement des paramètres du noyau dans le
système de fichiers /proc, lisez
Documentation/sysctl/* dans les sources de Linux.
D'autres exemples de manipulation des paramètres du noyau sont dans
/etc/init.d/networking et Étranges problèmes d'accès à certains sites
web, Section 3.7.5.
[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ suivant ]
Guide de référence pour Debian
CVS, jeu 18 jan 2007 11:52:23 UTCosamu#at#debian.orggerbs#at#free.fr