# [Genkernel] Temps compilation noyau

## drivedric

Salut,

J'aimerais savoir s'il est normal que la compilation du noyau avec genkernel all

soit excessivement longue. J'ai lancé la commande il y a environ deux heures et depuis j'ai :

*Linux Kernel 3.2.1-gentoo-r2 for x86

*kernel: Using config from /usr/share/genkernel/arch/x86/kernel-config

*kernel: >> Running mrproper

*           >> Running oldconfig

*kernel: >> Cleaning

*           >> Compiling 3.2.1-gentoo-r2 bzImage

*           >> Not installing firmware as it's included in the kernel already

*           >> Compiling 3.2.1-gentoo-r2 modules...

La bête est un AMD Duron 800Mhz avec quelques 400MB de RAM.

Est-ce normal ? Si oui, pour combien de temps en ai-je encore ?

Merci !

----------

## jaypeche

Rien d'anormal, vu ta config, 3 à 4h de compilation me semble raisonnable...   :Wink: 

----------

## loopx

 *jaypeche wrote:*   

> Rien d'anormal, vu ta config, 3 à 4h de compilation me semble raisonnable...  

 

Hein ?!?

Hein ?!?

Hein ?!?

Hein ?!?Hein ?!?Hein ?!?Hein ?!?Hein ?!?Hein ?!?Hein ?!?

Ah oui, c'est Genkernel ... 

Tu devrais apprendre à le compiler à la main avec juste ce qu'il faut, tu passerais bien moins de temps  :Wink:  (m'enfin, c'est vrai que ton pc n'est pas une fusée donc, pas certain d'y gagner des heures ...)

 :Wink: 

----------

## k-root

 *loopx wrote:*   

> m'enfin, c'est vrai que ton pc n'est pas une fusée donc, pas certain d'y gagner des heures ...
> 
> 

 

make clean + make + make modules + reboot +  make modules + reboot  

ca reste moins long qu'un genkernel  !

 surtout en s'aidant d'un livecd pour identifier les modules   :Embarassed: 

----------

## guilc

Il est effectivement normal que le genkernel soit très long, sur une si petite machine. La logique de genkernel "de base", c'est de compiler tout, pour pouvoir avoir de quoi booter n'importe quoi. Un peu comme le noyau générique d'ubuntu.

Donc pour raccourcir ce temps de compilation, soit utiliser genkernel avec MENUCONFIG, soit mieux, faire soi-même son marché dans la conf du noyau.

PS: au passage, peux-tu mettre ton titre du topic en conformité avec les conventions de notre forum s'il te plaît ? Merci  :Smile: 

----------

## loopx

 *k-root wrote:*   

>  *loopx wrote:*   m'enfin, c'est vrai que ton pc n'est pas une fusée donc, pas certain d'y gagner des heures ...
> 
>  
> 
> make clean + make + make modules + reboot +  make modules + reboot  
> ...

 

Tu as oublié le "make menuconfig" après le clean  :Wink: 

Je ne comprend pas pourquoi tu fais 2x les modules et le reboot   :Laughing: 

----------

## tjs

Sur ma machine (Core2Duo 2.4Ghz, 4GB RAM), ça prend environ 20 minutes. Alors c'est tout à fait normal.

----------

## kwenspc

 *k-root wrote:*   

>  *loopx wrote:*   m'enfin, c'est vrai que ton pc n'est pas une fusée donc, pas certain d'y gagner des heures ...
> 
>  
> 
> make clean + make + make modules + reboot +  make modules + reboot  
> ...

 

Arrêtez avec genkernel: voyez un peu le genkernel --help avant de critiquer    :Razz: 

```

genkernel all --install --menuconfig --oldconfig --save-config --splash=natural_gentoo

```

Ça revient *strictement* au même que les commandes make sous /usr/src/linux

Oui il y a le menuconfig et donc oui on peut selectionner aux petits oignons ce que l'on veut, et ça gere meme le splash si on en a envie (virer l'option --splash sinon, ou alors passer par kernel à la place de all... fin bref rtfm quoi).

Et idem pour l'initramfs. 

Le tout c'est de ne PAS utiliser genkernel tel quel: genkernel all 

Là forcément il va vous faire la compil de référence gentoo: tous les supports etc...

----------

## Arkhelion

Hello,

Je suis en phase avec kwenspc, personnellement, j'utilise systématiquement genkernel (par fainéantise, mais ça n'a jamais été un défaut que d'utiliser des outils existants).

Personnellement :

```
#genkernel --install --kernel-config=/etc/kernels/kernel-config-x86_64-$.$.$-gentoo [--menuconfig] --lvm all

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

A l'arrivée, si on a fait ne serait-ce qu'une fois un menuconfig en prenant le temps de le faire correctement on obtient quelque chose de très correct. Sans être allé nécessairement au fond des choses, voici les noyaux chargés sur ma machine (la plupart viennent de paquets non intégrés au noyau) :

```
#lsmod

Module                  Size  Used by

iptable_filter          1000  1

ip_tables              12312  1 iptable_filter

x_tables               11488  2 iptable_filter,ip_tables

kvm_intel             106788  0

kvm                   172204  1 kvm_intel

w83627ehf              24472  0

vboxnetadp              4112  0

vboxnetflt             11536  0

vboxpci                 9808  0

vboxdrv              1736244  3 vboxnetadp,vboxnetflt,vboxpci

fglrx                2801736  93

i2c_i801                6736  0

sha256_generic          9352  0

scsi_wait_scan           536  0

```

Et dans /boot :

1,3M    /boot/initramfs-genkernel-x86_64-3.3.0-gentoo

3,7M    /boot/kernel-genkernel-x86_64-3.3.0-gentoo

2,4M    /boot/System.map-genkernel-x86_64-3.3.0-gentoo

Je suis persuadé qu'on pourrait encore l'optimiser (j'ai notamment laissé pas mal de drivers compilés dans le noyau pour l'USB ou les webcam), mais déjà j'arrive à compiler ce noyau en deux ou trois minutes (certes avec un Core i7).

Donc pour moi l'outil genkernel n'est pas en cause, il s'agit de l'utilisation qui en est faite. Le choix de l'OP de compiler un noyau par défaut (type LiveCD) ferait que passer par la ligne de commande (make / make modules et compagnie) ne rendrait pas la compilation plus rapide.

Il gagnerait le temps de génération de l'initrd, probablement, mais celui-ci prend quelques secondes et puis quand on fait du root-on-lvm, c'est quand même pratique genkernel pour faire son initrd avec le noyau  :Very Happy: 

----------

