# Configuration du noyau

## Anard

Bonjour,

J'utilise pour la compilation de mon noyau 

```
sudo genkernel --menuconfig all
```

D'ici, je peux charger mes réglages enregistrés auparavant à la racine de mon home.

Pourtant, quand je démarre, /proc/config.gz et /usr/src/linux*/.config ne semblent pas correspondre :

```
/proc/config.gz

[...]

# ARM devices

#

# end of ARM devices

CONFIG_DRM_RADEON=m

CONFIG_DRM_RADEON_USERPTR=y

CONFIG_DRM_AMDGPU=m

CONFIG_DRM_AMDGPU_SI=y

CONFIG_DRM_AMDGPU_CIK=y

CONFIG_DRM_AMDGPU_USERPTR=y

# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set

[...]

```

```
~/kernel-config-5.4.66-gentoo-x86_64

[...]

# ARM devices

#

# end of ARM devices

# CONFIG_DRM_RADEON is not set

# CONFIG_DRM_AMDGPU is not set

```

Est-ce que mon noyau compilé a bien pris en compte mes réglages sauvegardés dans ~/kernel-config-5.4.66-gentoo-x86_64 ou ai-je fait une erreur de manip ?

----------

## xaviermiller

Bonjour,

Que contient la config dans /usr/src/linux/.config ?

C'est ce fichier qui est finalement utilisé par le noyau, pas ce fichier sauvegardé hors de sa vue...

----------

## Anard

Il ressemble à s'y méprendre à /proc/config.gz

Je n'ai pas tout lu (car je suis loin de tout comprendre) mais la parrtie citée plus haut est identique..

 :Confused: 

```
/usr/src/linux/.config

[...]

# ARM devices

#

# end of ARM devices

CONFIG_DRM_RADEON=m

CONFIG_DRM_RADEON_USERPTR=y

CONFIG_DRM_AMDGPU=m

CONFIG_DRM_AMDGPU_SI=y

CONFIG_DRM_AMDGPU_CIK=y

CONFIG_DRM_AMDGPU_USERPTR=y

# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set

[...]

```

Lors du chargement de ma config depuis genkernel, j'ai bien vérifié que les réglages correspondaient à ce que je voulais. Lors du lancement de la compilation, j'ai ce message, je ne sais pas si c'est normal ?

```
*         >> Kernel version has changed (probably due to config change) since genkernel start:

*            We are now building Linux kernel 5.4.66-gentoo-x86_64 for x86_64 ...

```

----------

## netfab

 *Anard wrote:*   

> Il ressemble à s'y méprendre à /proc/config.gz

 

Pour afficher la différence tu fais ceci :

```

$ zdiff -Nru /proc/config.gz /usr/src/linux/.config

```

 *Anard wrote:*   

> 
> 
> Lors du chargement de ma config depuis genkernel, j'ai bien vérifié que les réglages correspondaient à ce que je voulais. Lors du lancement de la compilation, j'ai ce message, je ne sais pas si c'est normal ?
> 
> ```
> ...

 

Si tu utilises --menuconfig alors oui c'est normal.

----------

## Anard

Vu comme ça, ça me parait mieux (j'ai principalement touché aux réglages GPU pour désactiver ceux qui ne me servent pas) :

```

zdiff -Nru /proc/config.gz /usr/src/linux/.config 

[...]

 # Graphics support

@@ -5240,19 +5364,18 @@

 CONFIG_VGA_ARB_MAX_GPUS=16

 CONFIG_VGA_SWITCHEROO=y

 CONFIG_DRM=m

-CONFIG_DRM_MIPI_DSI=y

 CONFIG_DRM_DP_AUX_CHARDEV=y

 # CONFIG_DRM_DEBUG_SELFTEST is not set

 CONFIG_DRM_KMS_HELPER=m

 CONFIG_DRM_KMS_FB_HELPER=y

 CONFIG_DRM_FBDEV_EMULATION=y

 CONFIG_DRM_FBDEV_OVERALLOC=100

+# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set

 CONFIG_DRM_LOAD_EDID_FIRMWARE=y

 CONFIG_DRM_DP_CEC=y

 CONFIG_DRM_TTM=m

 CONFIG_DRM_VRAM_HELPER=m

 CONFIG_DRM_GEM_SHMEM_HELPER=y

-CONFIG_DRM_SCHED=m

 

 #

 # I2C encoder or helper chips

@@ -5268,32 +5391,14 @@

 #

 # end of ARM devices

 

-CONFIG_DRM_RADEON=m

-CONFIG_DRM_RADEON_USERPTR=y

-CONFIG_DRM_AMDGPU=m

-CONFIG_DRM_AMDGPU_SI=y

-CONFIG_DRM_AMDGPU_CIK=y

-CONFIG_DRM_AMDGPU_USERPTR=y

-# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set

+# CONFIG_DRM_RADEON is not set

+# CONFIG_DRM_AMDGPU is not set

[...]

```

Je suis en train de re-compiler en ayant retiré également les CPU que je n'ai pas sur le PC. Pour être plus sûr, j'ai copié ma config à la place de /etc/kernels/kernel-config-5.4.66-gentoo-x86_64 puisque c'est ce qu'il charge par défaut, et donc sans passer par menuconfig.

Je vais voir ce que ça donne au prochain reboot...

----------

## Anard

Rebonjour.

Je crois que je commence à comprendre certaines choses.

Désormais, lorsque je compile un nouveau noyau complet, je fais 

```
make && make modules_install && make install && genkernel --no-clean initramfs && grub-update
```

(je n'ai toujours pas compris comment fabriquer initramfs sans passer par genkernel...)

grub-update fait en fait 

```
$ cat /usr/local/bin/grub-update

#!/bin/bash

grub-mkconfig -o /boot/grub/grub.cfg
```

Si je n'ai modifié que des modules, j'ai cru comprendre que ceci suffisait

```
make modules && make modules_install && cp arch/x86_64/boot/bzimage /boot/vmlinuz-5.8.14-gentoo-testing && grub-update
```

En revanche, je compile toujours un noyau avec pour suffixe "-testing".

Une fois testé, je le recompile à nouveau en retirant le suffixe...   :Confused: 

Est-ce qu'il y aurait un moyen plus efficace pour simplement retirer le suffixe à un noyau fonctionnel ?

par exemple, est-ce qu'il retrouvera ses petits si je fais simplement ceci ?

```
mv /boot/initramfs-5.8.14-gentoo-testing.img /boot/initramfs-5.8.14-gentoo-x86_64.img

mv /boot/System.map-5.8.14-gentoo-testing /boot/System.map-5.8.14-gentoo-x86_64

mv /boot/vmlinuz-5.8.14-gentoo-testing /boot/vmlinuz-5.8.14-gentoo-x86_64

grub-update
```

Aussi, concrètement qu'est-ce que System.map* et à quoi sert-il ?

Merci pour vos éclaicissements.

----------

