Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[gentoo-user-fr] [Kernel] modifer le .config pour recompiler ce que l'on veut ?

4 réponses
Avatar
grillot sebastien
Bonjour,
je dois mettre en place de la QoS et pour ca je dois activer des
parametres dans mon noyau comme
bash-2.05b$ cat /usr/src/linux-2.6.9-gentoo-r9/.config | grep CONFIG_NETLIN=
K
# CONFIG_NETLINK_DEV is not set
qui devrait etre =E0=20
CONFIG_NETLINK_DEV=3Dy pour ce que je veux faire (par exemple).
Comme certains l'on certainement deja remarqu=E9 j'eprouve de grande
crainte des qu'il s'agit du noyau.... et je dois avouer avoir "peur"
de cette manip (la recompilation) car j'ai la trouille que ma machine
ne reparte pas et la je serais dans le caca car je l'utilise dans une
semaine....
Donc je me suis dit que comme je connais la liste des "parametres" qui
doivent etre =E0 yes dans le noyau je me suis dit que je n'aurais peut
etre qu'a modifier =E0 la main le fichier .config pour y rajouter ce que
je veux et lancer une recompile ? C'est possible ca de modifier ce
fichier a la main et de le "reinjecter" ? Si une ame charitable
pouvait de plus m'expliquer, de facon detaill=E9 si possible, comment
recompiler le noyau juste avec ce fichier .... je l'en remercie
d'avance ;o)

Je vous remercie grandement car c'est tres important pour moi :o)

Amicalement

Seb

--
gentoo-user-fr@gentoo.org mailing list

4 réponses

Avatar
Frédéric Grosshans
Le vendredi 04 mars 2005 à 12:02 +0000, grillot sebastien a écrit :


Comme certains l'on certainement deja remarqué j'eprouve de grande
crainte des qu'il s'agit du noyau.... et je dois avouer avoir "peur"
de cette manip (la recompilation) car j'ai la trouille que ma machine
ne reparte pas et la je serais dans le caca car je l'utilise dans une
semaine....



Quand tu recompile le noyau, il faut *toujours* enregistrer le noyau à
côté de l'ancien. Comme ça en cas de pépin, tu peux toujours rebooter
sur l'ancien noyau. Ma partion /boot contient des liens symboliques
'old' et 'current' qui pointent sur les noyaux adéquats. Et c'est vers
ces liens que pointe grub (c'est plus compliqué avec lilo). Comme ça les
risque que la machine ne reparte pas sont minimisés.

Donc je me suis dit que comme je connais la liste des "parametres" qui
doivent etre à yes dans le noyau je me suis dit que je n'aurais peut
etre qu'a modifier à la main le fichier .config pour y rajouter ce que
je veux et lancer une recompile ?



T'as la trouille de recompiler le noyau et tu préfère bidouiller
le .config à la main ? C'est bizarre, moi c'est l'inverse...

C'est possible ca de modifier ce
fichier a la main et de le "reinjecter" ?



Ça doit être possible, mais au début de mon fichier .config, il y a
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.10-gentoo-r6
# Fri Feb 18 13:12:37 2005
#

En plus, les utilitaires de configuration ont un certains nombres de
gardes-fous qui sautent si tu édite le fichier à la main. Je te
conseille plutôt d'aller dans /usr/src/linux/ et de taper
make menuconfig (en console) pour modifier ton .config. Tout est bien
organisé en menu, et si tu ne sais pas ou trouver ce que tu cherches, il
te suffit de taper /NETLINK_DEV, par exemple pour lancer une recherche.

Et pour mettre un .config à jour lorsque tu changes de noyau, make
oldconfig est ton ami.

A+

Fred

--
Frédéric Grosshans


--
mailing list
Avatar
Jean-Philippe ROPA
*Il n'y a aucune crainte* à avoir en recompilant un noyau,
i*l s'agit d'être organisé*, je vais donc essayer de te donner
la méthode que j'emploie :

Actuellement, je suis avec un noyau 2.6.10-gentoo-r6
Admettons, que je souhaite recompiler ce même
noyau 2.6.10-gentoo-r6 en changeant des options.

D'abord, identifions le risque :
mon noyau actuel se trouve dans */boot/*
soit le fichier */boot/kernel-2.6.10-gentoo-r6*, ainsi
que les fichiers */boot/System.map-2.6.10-gentoo-r6 *et
*/boot/config-2.6.10-gentoo-r6*, enfin tous ses modules
se trouvent dans */lib/modules/2.6.10-gentoo-r6/
*
Si je recompile mon noyau 2.6.10-gentoo-r6, celui-ci va écraser
(lors d'un : make modules_install) tous les anciens modules se
trouvant dans */lib/modules/2.6.10-gentoo-r6/* : pas bon ! :-(

Donc l'idée est de recompiler en donnant un nouveau nom : comment ?

D'abord tu vas dans le répertoire des sources du noyau
linux-2.6.10-gentoo-r6 :

cd /usr/linux/linux-2.6.10-gentoo-r6/

Puis tu édites le Makefile de ce répertoire en modifiant *EXTRAVERSION :*

14:28:40 $ more Makefile
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 10
*EXTRAVERSION = -gentoo-r6*
NAME=Woozy Numbat
...

Devient

14:30:05 $ more Makefile
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 10
*EXTRAVERSION = -gentoo-r6_01*
NAME=Woozy Numbat
...

*EXTRAVERSION *correspond* *à la fin du nom du noyau,
ici le nouveau noyau s'appellera donc *kernel-2.6.10-gentoo-r6_01*
et plus *kernel-2.6.10-gentoo-r6 :-) *

Puis, tu peux copier ton ancien fichier de configuration dans le répertoire
sous le nom de .config (par exemple pour moi) :

cp /boot/config-2.6.10-gentoo-r6 /usr/src/linux-2.6.10-gentoo-r6/.config

Ensuite, tu le modifies à ton gré :

make menuconfig
(où directement en éditant .config mais bien compliqué)

Tu le compiles (aucun risque ici, tout se passe dans le dossier
/usr/src/linux-2.6.10-gentoo-r6/ qui est juste un répertoire avec
les sources et le résultat de ta compilation)

make

Il ne reste plus qu'à installer ce nouveau noyau :

make modules_install
(va copier tous les modules dans */lib/modules/2.6.10-gentoo-r6_01/
*et donc laisser intact */lib/modules/2.6.10-gentoo-r6/ :-) *)

cp arch/i386/boot/bzImage /boot/kernel-2.6.10-gentoo-r6_01
(copie le nouveau noyau dans /boot/ et laisse intact l'ancien
/boot/kernel-2.6.10-gentoo-r6, attention ici de bien taper le _01 à la
fin ;-) )

De même :
cp System.map /boot/System.map-2.6.10-gentoo-r6_01
cp .config /boot/config-2.6.10-gentoo-r6_01

Il ne reste plus qu'à modifier ton /boot/grub/grub.conf ou /etc/lilo.conf
Personnellement, j'utilise grub.

Mon ancien noyau se lance via ces lignes dans grub.conf :

# For booting GNU/Linux
title Gentoo-2.6.10-r6
root (hd0,5)
kernel /kernel-2.6.10-gentoo-r6 root=/dev/hda8 vga=0x307 gentoo=nodevfs

Il suffit alors de rajouter ces mêmes lignes avec un _01 à la fin, soit :

# For booting GNU/Linux
title Gentoo-2.6.10-r6_01
root (hd0,5)
kernel /kernel-2.6.10-gentoo-r6_01 root=/dev/hda8 vga=0x307 gentoo=nodevfs

Dorénavant, grub montrera la possibilité de lancer le nouveau noyau
Gentoo-2.6.10-r6_01
Vérifies que tu as le temps de choisir, c'est-à-dire dans grub.conf :
# Boot automatically after 7 secs.
timeout 7

Avec grub, c'est fini (avec lilo tu dois lancer lilo pour
qu'il tienne compte des modifications)
et il suffit de rebooter, puis choisir le nouveau noyau,
et si ça plante tu redémarre avec l'ancien, puis tu tentes une nouvelle
compilation en changeant tes options.

Il se peut que tu doives recompiler certains paquets (très peu).
Par exemple, j'ai un carte nvidia et donc je dois faire un :

emerge nvidia-kernel (sinon X ne démarre pas, manque le module nvidia.ko)

Quand, j'y suis si tu changes de numéro de noyau, tu es obligé de faire
pointer /usr/src/linux vers le répertoire contenant les sources du noyau que
tu utilises :

rm /usr/src/linux && ln -s /usr/src/linux-2.6.10-gentoo-r6 /usr/src/linux

Pour finir, tu peux ainsi avoir plusieurs noyaux sur ton système
et choisir à chaque démarrage. Chez moi :

04/03/2005 [/usr/src]
14:59:53 $ ll /boot/
total 6,4M
lrwxrwxrwx 1 root root 1 jui 26 2004 boot -> ./
-rw-r--r-- 1 root root 31K jan 15 16:36 config-2.6.10-gentoo-r4_02
-rw-r--r-- 1 root root 30K fév 25 01:21 config-2.6.10-gentoo-r6_01
-rw-r--r-- 1 root root 29K oct 18 09:21 config-2.6.8-gentoo-r7_03
drwxr-xr-x 2 root root 1,0K fév 24 23:14 grub/
-rw-r--r-- 1 root root 1,4M jan 15 16:35 kernel-2.6.10-gentoo-r4_02
-rw-r--r-- 1 root root 1,4M fév 25 01:21 kernel-2.6.10-gentoo-r6_01
-rw-r--r-- 1 root root 1,3M oct 18 09:20 kernel-2.6.8-gentoo-r7_03
drwx------ 2 root root 12K jui 9 2004 lost+found/
drwxr-xr-x 2 root root 1,0K fév 3 14:07 memtest86plus/
-rw-r--r-- 1 root root 753K jan 15 16:36 System.map-2.6.10-gentoo-r4_02
-rw-r--r-- 1 root root 746K fév 25 01:21 System.map-2.6.10-gentoo-r6_01
-rw-r--r-- 1 root root 718K oct 18 09:21 System.map-2.6.8-gentoo-r7_03

04/03/2005 [/usr/src]
15:01:26 $ ll /lib/modules/
total 12K
drwxr-xr-x 4 root root 4,0K fév 24 11:22 2.6.10-gentoo-r4_02/
drwxr-xr-x 4 root root 4,0K mar 4 14:38 2.6.10-gentoo-r6_01/
drwxr-xr-x 4 root root 4,0K déc 10 18:53 2.6.8-gentoo-r7_03/

Chaque fois, j'ai modifié le Makefile en rajoutant _01 ou _02 ou _03 ou ...
Si, j'en ai assez du _03 je supprime tout les fichiers terminant par _03
dans /boot et le répertoire /lib/modules/2.6.8-gentoo-r7_03/

Tiens, il va falloir que je l'enlève ;-)


J'espère que j'ai été clair, et que cela ôtera toute crainte pour
recompiler un noyau.

Jean-Philippe ROPA

Le vendredi 04 mars 2005 à 12:02 +0000, grillot sebastien a écrit :




Comme certains l'on certainement deja remarqué j'eprouve de grande
crainte des qu'il s'agit du noyau.... et je dois avouer avoir "peur"
de cette manip (la recompilation) car j'ai la trouille que ma machine
ne reparte pas et la je serais dans le caca car je l'utilise dans une
semaine...








--
mailing list
Avatar
Frédéric Grosshans
Le vendredi 04 mars 2005 à 15:13 +0100, Jean-Philippe ROPA a écrit :

Donc l'idée est de recompiler en donnant un nouveau nom : comment ?

D'abord tu vas dans le répertoire des sources du noyau
linux-2.6.10-gentoo-r6 :[...]



Il y a maintenant beaucoup plus simple pour faire ça. L'option
CONFIG_LOCALVERSION (dans General Setup --> Local version - append to
kernel release)


[...]



Rien à dire sur la suite, sauf grub : Utilise des liens symboliques,
comme ça tu n'as pas à éditer grub.conf à chaque fois. (ça marche mal
avec lilo)

Quand, j'y suis si tu changes de numéro de noyau, tu es obligé de faire
pointer /usr/src/linux vers le répertoire contenant les sources du noyau que
tu utilises :

rm /usr/src/linux && ln -s /usr/src/linux-2.6.10-gentoo-r6 /usr/src/linux



Si tu télécherge tes noyaux avec emerge, tu peux utiliser USE="symlink"
qui te le fait tout seul.

--
Frédéric Grosshans


--
mailing list
Avatar
Jean-Philippe ROPA
Merci de ces précisions

Jean-Philippe

Frédéric Grosshans a écrit :

Le vendredi 04 mars 2005 à 15:13 +0100, Jean-Philippe ROPA a écrit :



Donc l'idée est de recompiler en donnant un nouveau nom : comment ?

D'abord tu vas dans le répertoire des sources du noyau
linux-2.6.10-gentoo-r6 :[...]





Il y a maintenant beaucoup plus simple pour faire ça. L'option
CONFIG_LOCALVERSION (dans General Setup --> Local version - append to
kernel release)




[...]





Rien à dire sur la suite, sauf grub : Utilise des liens symboliques,
comme ça tu n'as pas à éditer grub.conf à chaque fois. (ça marche mal
avec lilo)



Quand, j'y suis si tu changes de numéro de noyau, tu es obligé de faire
pointer /usr/src/linux vers le répertoire contenant les sources du noyau que
tu utilises :

rm /usr/src/linux && ln -s /usr/src/linux-2.6.10-gentoo-r6 /usr/src/linux





Si tu télécherge tes noyaux avec emerge, tu peux utiliser USE="symlink"
qui te le fait tout seul.







--
mailing list