# [noyau, modules et dépendances] ;-) (résolu)

## yoyo

Bonjour à tous,

Après un petit "emerge sync" je m'apperçois avec bonheur que dans mon "emerge -up world" se trouve la r3 du noyau que j'utilise (à savoir le gaming-source).

Je me dis que tant que j'y suis à compiler du noyau, je vais tenter un dev-source pour voir si tout le bien qu'on en dit est fondé  :Wink:  .

j'emerge mes sources et hop un petit saut dans /usr/src et là, il y a 2 liens : un "linux" qui pointe vers mes anciennes sources et un "linux-beta" qui pointe vers les dev sources.

Comment être sûr que lors de la compilation du dev-source il va bien utiliser le lien adéquat (ou est-ce que je m'inquiète pour rien   :Confused:  ) ??

Autre question, faut-il réinstaller les drivers alsa à chaque compilation de noyau (de même source bien sûr) ??

Enfin, comment faire pour que mon noyau "toto" utilise "/lib/modules/toto" et que mon noyau "titi" utilise "/lib/modules/titi" ??

Merci à tous.Last edited by yoyo on Thu Apr 01, 2004 8:27 am; edited 1 time in total

----------

## sebweb

Tu t'inquiete pour rien !  :Smile: 

Tu fait de la même maniere qu'avant. Tu te déplace dans le repertoir du noyau que tu veut utiliser et pis make config ....

Le lien /usr/src/linux est utiliser parfois pour compiler certain driver qui ne sont pas nativement dans le noyau. Si je me souvien bien c'était le cas des premier driver Nvidia. Je ne sait pas si c'est encore le cas aujourd'hui.

Pour tes modules, pas d'inquiétude non plus.

Lors du make modules_install il vas te creer un repertoir dans /lib/module/2.5.xx/ ou xx représente le numéro de version de ton kernel 2.5

Dailleur si tu regarde déja tu doit trouver un repertoir /lib/module/2.4.20

Maintenant en ce qui concerne ALSA je n'en sait rien je l'utilise pas

----------

## arlequin

Si tu changes de kernel, il te faudra impérativement recompiler les pilotes tels que alsa, nvidia et autres... sinon ça ne marchera plus   :Confused: 

C'est d'ailleurs là que tu risques d'avoir des soucis avec ton 'linux' et 'linux-beta'... faudra se méfier !

----------

## yoyo

 *arlequin wrote:*   

> Si tu changes de kernel, il te faudra impérativement recompiler les pilotes tels que alsa, nvidia et autres... sinon ça ne marchera plus  
> 
> C'est d'ailleurs là que tu risques d'avoir des soucis avec ton 'linux' et 'linux-beta'... faudra se méfier !

 

Mais est-ce que si je compile mes pilotes alsa etc. pour le dev, il seront toujours dispos pour le gaming (ils ont été compilés avant) ??

Où est-ce indiqué que le noyau dev utilise tels pilotes et le gaming tels autres (tel répertoire /lib/modules/x) ??

----------

## arlequin

En fait, pour éviter tout conflit, il vaut mieux les désinstaller et les réinstaller... enfin, ceci dit, il est possible de contourner ce problème. Mais je ne sais pas vraiment comment, ne m'étant jamais retrouvé dans ce cas de figure.

Pour les modules, il y a un fichier nommé 'modules.conf' il me semble. Il contient la liste des modules disponibles... enfin, je dis ça de mémoire.

----------

## sebweb

J'utilise plusieur noyau. Le noyau standar gentoo, le gaming-source ... Et je ne vois aucun conflit pour mes driver nvidia.

A chaque changement/recompilation de noyau je réinstalle mon driver et hop la ca marche nickel. Pas besoin de désinstaller avant.

----------

## arlequin

Ouais, ça marche pour le pilote nvidia, parce qu'il le met dans le répertoire '/lib/modules/version_du_kernel/video' (ou qqchose comme ça). Donc à chaque kernel son pilote nvidia. Par contre, pour alsa ça ne marchera pas. D'ailleurs, il y a un message à la fin de l'ebuilds (après emerge alsa-drivers) qui stipule qu'il faut recompiler le pilotes si on change de kernel...

Voilà   :Wink: 

----------

## yoyo

 *arlequin wrote:*   

> Ouais, ça marche pour le pilote nvidia, parce qu'il le met dans le répertoire '/lib/modules/version_du_kernel/video' (ou qqchose comme ça). Donc à chaque kernel son pilote nvidia. Par contre, pour alsa ça ne marchera pas. D'ailleurs, il y a un message à la fin de l'ebuilds (après emerge alsa-drivers) qui stipule qu'il faut recompiler le pilotes si on change de kernel...
> 
> Voilà  

 

Donc, à chaque fois que je boote sur un noyau différent il faut que je réinstalle alsa-drivers !! PAS COOL   :Crying or Very sad: 

Il n'existe pas un moyen de compiler alsa-drivers pour chaque noyau (quitte à démarrer une fois sur chaque noyau pour le faire) une bonne fois pour toute et de spécifier au démarrage le répertoire contenant ces drivers en fonction du kernel choisi ??

Ma reconnaissance éternelle à qui m'apportera une solution   :Wink: 

----------

## ghoti

 *arlequin wrote:*   

> Ouais, ça marche pour le pilote nvidia, parce qu'il le met dans le répertoire '/lib/modules/version_du_kernel/video' (ou qqchose comme ça). Donc à chaque kernel son pilote nvidia. Par contre, pour alsa ça ne marchera pas. D'ailleurs, il y a un message à la fin de l'ebuilds (après emerge alsa-drivers) qui stipule qu'il faut recompiler le pilotes si on change de kernel...

 Le problème est identique pour nVIDIA et Alsa : dans les deux cas, il y a une compilation qui prend en compte la version du kernel.

Au niveau nvidia, la partie compilée sert d'interface entre la partie binaire du driver (closed source) et le kernel.

Dans les 2 cas, les drivers résultant sont installés dans /lib/modules/version_kernel :

nvidia ==> /lib/modules/xxx/video

alsa ==> /lib/modules/xxx/kernel/sound

Si on possède 2 noyaux, il faut 2 exemplaires du driver nvidia et 2 exemplaires des drivers alsa.

C'est l'exemplaire actif du noyau qui décide quelle version des drivers seront activés. Modprobe cherche dans /lib/modules/xxx où xxx correspond à 'uname -r' .

----------

## arlequin

Ben ouais, mais en même temps, c'est un peu bizarre d'avoir une demi-douzaine de kernel différent... ce qui me semble jouable, c'est d'installer alsa pour le kernel que tu utilises le plus, et pour les autres tu fous le support en module/dur dans le kernel...

----------

## ghoti

 *yoyo wrote:*   

> Donc, à chaque fois que je boote sur un noyau différent il faut que je réinstalle alsa-drivers !! PAS COOL

 

Non, pas du tout ! C'est uniquement au moment de l'installation d'un nouveau noyau qu'il faut réinstaller tes drivers.

En réalité il faut faire exactement comme tu le décris (voir aussi mon post précédent) :  *Quote:*   

> Il n'existe pas un moyen de compiler alsa-drivers pour chaque noyau (quitte à démarrer une fois sur chaque noyau pour le faire) une bonne fois pour toute et de spécifier au démarrage le répertoire contenant ces drivers en fonction du kernel choisi ??

 

C'est bien ça : après compilation d'un nouveau kernel,  tu compiles les drivers alsa, nvidia, ...  (donc, ceux qui ne sont pas fournis d'origine avec ton noyau).

Il n'est même pas nécessaire de booter au préalable sur le nouveau noyau : il suffit que le lien /usr/src/linux soit bien positionné sur les sources du nouveau kernel.

Bien entendu, cela ne doit être fait qu'une seule fois !!. Au boot suivant, les drivers seront trouvés automatiquement à l'endroit kivabien, en fonction du kernel choisi  :Smile: Last edited by ghoti on Mon May 05, 2003 8:22 pm; edited 1 time in total

----------

## ghoti

 *arlequin wrote:*   

> Ben ouais, mais en même temps, c'est un peu bizarre d'avoir une demi-douzaine de kernel différent... ce qui me semble jouable, c'est d'installer alsa pour le kernel que tu utilises le plus, et pour les autres tu fous le support en module/dur dans le kernel...

 

Une demi-douzaine, évidemment, ça fait un peu souk  !  :Wink: 

Ce qui est par contre normal : 

- le noyau courant "habituel"

- la version précédente (au cas où  :Wink:  )

- éventuellement, une version de test si on aime expérimenter ...

Mais la question "modules/dur" n'a pas d'importance : tout est parfaitement géré par les modutils. 

Ce qui est important, par contre, c'est de donner des noms bien distincts aux différents kernels. Pour ça on peut jouer sur le paramètre EXTRAVERSION dans le Makefile principal.

Tant qu'on maîtrise et qu'on garde une vue claire, il n'y a pas de problème.  :Smile: 

----------

## yoyo

 *ghoti wrote:*   

> Il n'est même pas nécessaire de booter au préalable sur le nouveau noyau : il suffit que le lien /usr/src/linux soit bien positionné sur les sources du nouveau kernel.

 

Quel est alors le rôle du lien "linux-beta" ??

Sinon, comme le dit ghoti, je pense avoir 3 noyaux ("le passé", "le présent" et "le futur")  :Wink:  .

 :Very Happy:  Ma reconnaissance éternelle à vous Maître GHOTI et Maître ARLEQUIN et  Maître SEBWEB  :Very Happy: Last edited by yoyo on Tue May 06, 2003 8:17 am; edited 1 time in total

----------

## arlequin

Owh, jeune padawan   :Surprised: 

Le lien 'linux-beta' reste inexpliqué... mais n'oublis pas de la changer si tu recompile alsa ou qq autre drivers. T'en profitera aussi pour dire si ça marche. J'vais me tenter un gaming-sources ce soir, donc je me retrouverai un peu dans le même cas que toi (plusieurs kernel)   :Wink: 

----------

## sebweb

 *yoyo wrote:*   

> 
> 
>  Ma reconnaissance éternelle à vous Maître GHOTI et Maître ARLEQUIN 

 

Et be et moi alors   :Crying or Very sad: 

----------

## yoyo

 *arlequin wrote:*   

> Owh, jeune padawan  
> 
> Le lien 'linux-beta' reste inexpliqué... mais n'oublis pas de la changer si tu recompile alsa ou qq autre drivers. T'en profitera aussi pour dire si ça marche. J'vais me tenter un gaming-sources ce soir, donc je me retrouverai un peu dans le même cas que toi (plusieurs kernel)  

 

Je suis en gaming-r2 et sa marche plutôt bien (en desktop).

Par contre, j'ai changé mon lien "linux" vers la r3, compilé mon noyau  :Arrow:  NO PROBLEM

Toujours sous R2 je décide d'installer les pilotes nvidia (le lien pointant toujours sur la R3). Un emerge nvidia-kernel plus tard, je vais faire un tour du côté de /lib/modules/2.4.20-gaming-r3 et la MIRACLE, un nouveau répertoire "video" est apparu.

Un petit tour du côté de /lib/modules/2.4.20-gaming-r2 et la HORREUR, mon répertoire video a DISPARU.

Me suis-je trompé lors du emerge nvidia-kernel ?? Y avait-il une option à passer pour conserver mes pilotes pour la R2 ??

Le côté obscur a pris le contrôle de ma Gentoo !! HELP ME

----------

## yoyo

 *sebweb wrote:*   

> Et be et moi alors  

 

OOOOPS   :Embarassed:   :Embarassed:   :Embarassed:   :Exclamation:   :Exclamation:   :Exclamation: 

J'oublie le premier Maître à m'avoir porté secours !!

Honte sur moi. Je corrige cet affront de ce pas  :Wink: 

----------

## sebweb

 *yoyo wrote:*   

> 
> 
> Je suis en gaming-r2 et sa marche plutôt bien (en desktop).
> 
> Par contre, j'ai changé mon lien "linux" vers la r3, compilé mon noyau  NO PROBLEM
> ...

 

Le mieu je pense est le suivant :

Refait ton lien vers le R2 et reinstall tes driver nvidia

reboot sur le nouveau R3, refait le lien et reinstalle les drivers 

Ca devrait marcher comme ça

----------

## yoyo

 *sebweb wrote:*   

> Le mieu je pense est le suivant :
> 
> Refait ton lien vers le R2 et reinstall tes driver nvidia
> 
> reboot sur le nouveau R3, refait le lien et reinstalle les drivers 
> ...

 

Ok, j'essaie et je vous tiens informés.

Merci.

----------

## yoyo

 *yoyo wrote:*   

> Ok, j'essaie et je vous tiens informés.

 

Voici la suite des évènements.

J'ai réinstallé mes pilotes pour la R2 (ce qui a supprimé mes pilotes pour la R3), puis rebooté sur la R3.

J'ai modifié le lien pour qu'il pointe vers la R3 et installé les pilotes. Petit tour sur /lib/modules/2.4.20-gaming-r2 et là, le répertoire "video" a de nouveau DISPARU  :Evil or Very Mad:   :Crying or Very sad:   :Crying or Very sad:  .

D'ailleurs, en observant l'emerge j'ai vu qu'il nettoyait le répertoire /lib/modules/2.4.20-gaming-r2 à la fin (et cela pour les pilotes nvidia et alsa).

Y-a-t-il une option à passer lors de l'emerge pour qu'il ne touche pas à ces répertoires ???Last edited by yoyo on Tue May 06, 2003 5:19 pm; edited 2 times in total

----------

## arlequin

 *yoyo wrote:*   

> Y-a-t-il une option à passer lors de l'emerge pour qu'il ne touche pas à ces répertoires ???

 

Regardes si c'est l'ebuild qui fait le nettaoyage. Dans ce cas, qq petits # pourraient lui éviter de faire le sauvage...

----------

## yoyo

 *arlequin wrote:*   

> Regardes si c'est l'ebuild qui fait le nettaoyage. Dans ce cas, qq petits # pourraient lui éviter de faire le sauvage...

 

Peux-tu m'aider sur ce coup là ?? Je ne connais rien en ebuild  :Embarassed:  !!

J'ai édité celui du nvidia-kernel mais je n'ai rien trouvé de parlant (je ne connais rien non plus en language mis à part matlab   :Embarassed:   :Embarassed:  ).

Merci

----------

## DuF

perso hormis le "clean nvidia.o" je ne vois pas ce qui pourrait causer la suppression du module dans l'ebuild, mais l'ebuild fait appel à des scripts nvidia, peut être c'est l'un d'eux qui est en cause.

Sinon dans l'ebuild nvidia-glx y a aussi des rm rf ..... mais ça n'a pas l'air lié à ce qu'il y a dans /lib/modules.....

----------

## ghoti

 *yoyo wrote:*   

> Y-a-t-il une option à passer lors de l'emerge pour qu'il ne touche pas à ces répertoires ???

 

Le problème a été signalé sur Bugzilla (bug #12170.)

En attendant une solution générique, on propose ceci :

```
Workaround after building kernel:

for package in {nvidia-kernel,alsa-driver,lm_sensors} ; do

   echo "Removing installation records for $package from /var/db/pkg/"

   rm -Rf /var/db/pkg/$(epm -qaG|grep $package)

   echo "Emerging $package"

   emerge $package

done
```

Cela a pour effet de supprimer les enregistrements qui notent les installations précédentes et cela avant de procéder à la nouvelle installation. 

De cette manière, les anciennes installations ne sont pas effacées

----------

## yoyo

 *ghoti wrote:*   

> Le problème a été signalé sur Bugzilla (bug #12170.)
> 
> En attendant une solution générique, on propose ceci :

 

Ou cela :

 *Quote:*   

> I have been manually copying
> 
> /lib/modules/<last-kernel-drivers were emerged against>
> 
> to a backup directory, performing the emerge and then restoring the directory.
> ...

 

sur bugzilla (bug #1477).

Apparemment, ce problème serait récurent pour tous les modules qui ne sont pas inclus dans le noyau  :Sad:  .

Si quelqu'un a la réponse à la question sur le CONFIG_PROTECT qu'il ne nous en prive pas  :Wink: 

----------

## dju`

perso j'utilise CONFIG_PROTECT="/lib/modules" dans le make.conf, ok c du bidouillage mais ca marche.

----------

## dju`

portage 2.0.50 doit utiliser le même genre de technique d'ailleurs.

----------

