Compilation d'un noyau sur un système SMP
Avant de compiler le noyau, il faut récupérer les sources (on travail sur Débian):
server:/# apt-get install kernel-package
server:/# apt-get install kernel-source-2.6.8
server:/# apt-get install kernel-headers-2.6.8-2-686-smpOn décompresse le noyau
server:/# cd /usr/src
server:/usr/src# bzip2 -d kernel-source-2.6.8.tar.bz2
server:/usr/src# tar xvf kernel-source-2.6.8.tarPuis il faut créer un lien symbolique entre les sources et un repertoire "linux" :
server:/usr/src# ln -s kernel-source-2.6.8 linux
server:/usr/src# ll
total 191500
drwxr-xr-x 16 root root 496 2005-08-18 23:35 kernel-headers-2.6.8-2
drwxr-xr-x 4 root root 784 2005-08-19 23:17 kernel-headers-2.6.8-2-686-smp
drwxr-xr-x 3 root root 72 2005-08-18 23:35 kernel-kbuild-2.6-3
drwxr-xr-x 18 root root 704 2005-05-19 12:52 kernel-source-2.6.8
-rw-r--r-- 1 root root 195901440 2005-05-19 12:53 kernel-source-2.6.8.tar
lrwxrwxrwx 1 root src 19 2005-08-19 23:17 linux -> kernel-source-2.6.8
On verifie que linux n'est pas un lien rompu
On passe maintenant dans le repertoire linux
server:/usr/src# cd linux
On va maintenant paramétrer le nouveau noyau avec un générateur
server:/usr/src/linux# make menuconfig
HOSTCC scripts/basic/fixdep
HOSTCC scripts/basic/split-include
HOSTCC scripts/basic/docproc
HOSTCC scripts/kconfig/conf.o
HOSTCC scripts/kconfig/mconf.o
HOSTCC -fPIC scripts/kconfig/zconf.tab.o
HOSTLLD -shared scripts/kconfig/libkconfig.so
HOSTLD scripts/kconfig/mconf
/usr/bin/ld: cannot find -lncurses
collect2: ld returned 1 exit status
>> Unable to find the Ncurses libraries.
>>
>> You must install ncurses-devel in order
>> to use 'make menuconfig'
make[2]: *** [scripts/lxdialog/ncurses] Error 1
make[1]: *** [menuconfig] Error 2
make: *** [menuconfig] Error 2
Apparemment, il manque un paquet, c'est pas grave.. on l'installe
server:/usr/src/linux# apt-get install libncurses5-dev
On rééxecute l'installation
server:/usr/src/linux# make menuconfig
Ce qui donne le menu ncurse suivant
Linux Kernel v2.6.8-2-686-smp Configuration
---------------------------------------------------------------------------------
+------------------------ Linux Kernel Configuration ------------------------+
¦ Arrow keys navigate the menu. <Enter> selects submenus --->. ¦
¦ Highlighted letters are hotkeys. Pressing <Y> includes, <N> excludes, ¦
¦ <M> modularizes features. Press <Esc><Esc> to exit, <?> for Help. ¦
¦ Legend: [*] built-in [ ] excluded <M> module < > module capable ¦
¦ +------------------------------------------------------------------------+ ¦
¦ ¦ Code maturity level options ---> ¦ ¦
¦ ¦ General setup ---> ¦ ¦
¦ ¦ Loadable module support ---> ¦ ¦
¦ ¦ Processor type and features ---> ¦ ¦
¦ ¦ Power management options (ACPI, APM) ---> ¦ ¦
¦ ¦ Bus options (PCI, PCMCIA, EISA, MCA, ISA) ---> ¦ ¦
¦ ¦ Executable file formats ---> ¦ ¦
¦ ¦ Device Drivers ---> ¦ ¦
¦ ¦ File systems ---> ¦ ¦
¦ ¦ Profiling support ---> ¦ ¦
¦ +----------(+)-----------------------------------------------------------+ ¦
+----------------------------------------------------------------------------¦
¦ <Select> < Exit > < Help > ¦
+----------------------------------------------------------------------------+
Utilisez cette interface pour paramétrer votre noyau, à la fin,
n'oubliez pas de sauver le fichier de config (.config)
Une fois revenu à la console, on nettoie une éventuelle compilation précédente
server:/usr/src/linux# make clean
CLEAN include/asm-i386/asm_offsets.h
On crée l'image du noyau en SMP donc je met 3 (2CPU + 1 pour le temps libre..)
server:/usr/src/linux# make bzImage MAKE="make -j3"
CHK include/linux/version.h
UPD include/linux/version.h
SYMLINK include/asm -> include/asm-i386
SPLIT include/linux/autoconf.h -> include/config/*
HOSTCC scripts/basic/fixdep
HOSTCC scripts/basic/split-include
HOSTCC scripts/basic/docproc
HOSTCC scripts/genksyms/genksyms.o
...
OBJCOPY arch/i386/boot/vmlinux.bin
BUILD arch/i386/boot/bzImage
Root device is (253, 0)
Boot sector 512 bytes.
Setup is 4831 bytes.
System is 1152 kB
Kernel: arch/i386/boot/bzImage is ready
Une fois cette étape de terminée.. on lance la compilation des modules
server:/usr/src/linux# make modules MAKE="make -j3"
...
server:/usr/src/linux# make modules_install MAKE="make -j3"
ça y est .. c'est compilé..
Aucun commentaire - VOUS NE POUVEZ PAS POSTER DE COMMENTAIRES = votre IP n'est pas valide (spam ?)
.: Dernière mise à jour le 19/07/2008




Uptime :