Autour du noyau gravitent les GNU, Linux est le noyau et lui-même GNU. GNU/Linux prend en charge les fonctions principales de l’ordinateur (matériels, ressources: stockage … réseau …). Nb: le terme anglophone de noyau est kernel
Le(s) noyau(x) est présent dans le répertoire /boot Il est nommé vmlinuz, souvent un lien symbolique pointant vers le noyau par défaut.
exemple:
Nb: vmlinuz-2.4.27 ici 2.4.27 correspond à la version du noyau
A chaque noyau est associé un répertoire contenant les modules. Dans l’exemple ci-dessus ce répertoire sera: /lib/modules/2.4.27
Vérifier la configuration afin de permettre la compilation (noyau ou module)
- Version de gcc, le compilateur GNU:
Vérifier la version par défaut:
knoppix@ttyp0[knoppix]$ gcc -v
ou
knoppix@ttyp0[knoppix]$ la /usr/bin/gcc
Celui-ci doit être le même que celui utilisé pour compiler le noyau, vérification avec:
knoppix@ttyp0[knoppix]$ cat /proc/version
Pour connaître les versions de gcc disponibles:
ls /usr/bin/gcc-*
Pour changer de version de gcc par défaut (ici gcc-2.95):
root@ttyp0[knoppix]# ls -sfn /usr/bin/gcc-2.95 /usr/bin/gcc
ou bien en changeant la variable d’environnement (par et pour l’utilisateur qui compilera):
knoppix@ttyp0[knoppix]$ export CC=/usr/bin/gcc-2.95
- en-têtes ou sources du noyau
-Pour compiler un module, il vous faudra au moins les en-têtes du noyau. Le répertoire les contenant (par défaut) est /usr/src/linux
Exemple:
ls -la /usr/src/linux
renvoie:
/usr/src/linux -> kernel-source-2.6.7
signifie que le lien symbolique /usr/src/linux pointe vers le réperoire /usr/src/kernel-source-2.6.7
-Pour modifier ce lien:
knoppix@ttyp0[knoppix]$ ln -sfn /usr/src/linux-2.4.27 /usr/src/linux
Nb: l’utilisateur (knoppix ici) doit appartenir au groupe src (cf: kuser ou la commande adduser jody src).
Ps: Si lors de la compilation d’un module vous obtenez une erreur à propos de asm:
HOSTCC scripts/basic/fixdep
Dans le fichier inclus à partir de /usr/include/sys/socket.h:35,
à partir de /usr/include/netinet/in.h:24,
à partir de /usr/include/arpa/inet.h:23,
à partir de scripts/basic/fixdep.c:115:
/usr/include/bits/socket.h:305:24: asm/socket.h : Aucun fichier ou répertoire de ce type
make[1]: *** [scripts/basic/fixdep] Erreur 1
make: *** [scripts_basic] Erreur 2
ln -sfn /usr/src/linux/include/asm-i386 /usr/include/asm
AstuceDe Ebdomino:
ln -sfn /usr/src/linux /lib/modules/2.4.27/build
et disposer de auto-apt
Compilation Kaella 3.0
http://kaella.linux-azur.org/wiki/wakka.php?wiki=Compilation
Notes sur la réduction de la taille des sources
Les sources d’un noyau 2.6.9 décompacté (apres une première compilation) représente prés de 245 Mo.
Le répertoire arch contient les en-têtes pour l’ensemble des plateformes. Elles répresentes à elles seules prés de 44Mo.
L’architecture la plus courante étant i386 il est possible de retirer les en-têtes de toutes les autres architectures ormis x86_64 nécessaire à la compilation.
Page mise à jour le 29 novembre 2006 à 22h56.