# [RÉSOLU] [UDEV] Mise à jour avec /usr séparé

## HazeC5

Salut la communauté   :Wink: 

Cela fait 1 moment que je n'ai pas posté sur le forum (en effet je ne poste que lorsque je ne trouve pas les solutions par moi même   :Exclamation:  )... Tout comme, par manque de temps, je n'avais pas mis à jour ma gentoo 64 bits en ~arch, depuis environ 7 mois.

Je requiers votre aide car ayant mis à jour udev à la version 197-r9, quelle ne fût pas ma surprise au reboot de constater qu'X refusait de se lancer avec pou erreur: *Quote:*   

> no device and no screen found

 ....

Ayant pour réflexe avant toute mise à jour d'utiliser  quickpkg , j'ai donc remis la version que j'avais depuis un moment à savoir la version "171-r10"

M'ayant brièvement documenté j'ai appris que la raison de cette erreur est que j'ai une partition /usr séparée, ce que j'ai toujours eu depuis que j'utilise Gnu/Linux. Et appris aussi qu'il me fallait utilisé initramfs. Or je ne sais ce qu'est ce truc, ne l'ai jamais utilisé, ni même ne sait ce que c'est exactement.

Mes questions sont donc:

 *Quote:*   

> - Comment migrer vers les dernières versions d'udev ? Afin d'avoir toujours un système le plus à jour possible
> 
> - Comment mettre en place cet "initramfs" ? Et éditer fstab en conséquence ?
> 
> 

 

Petite précision, j'ai toujours compilé mes kernels à la main, je n'ai jamais utilisé genkernel.

Je ne dispose plus d'autant de temps qu'auparavant  pour faire des recherches approfondies sur le sujet, d'où ce post. Je suis toujours autant passionné par gentoo, le temps me faisant défaut malheureusement.

Le config de mon kernel si besoin. De même s'il vous faut des informations complémentaires, n'hésitez pas à me le demander.   :Wink: 

Par avance merci beaucoup pour votre aide   :Exclamation: 

Bonne soirée @vous   :Exclamation:   :Smile: 

----------

## netfab

Salut,

Relis tes logs. Particulièrement le passage où udev-197 demande que l'option suivante soit activée dans le kernel :

 *Quote:*   

> 
> 
> # CONFIG_DEVTMPFS is not set
> 
> 

 

Et as tu correctement effectué le revdep-rebuild demandé (rapport à libudev.so.0) ?

----------

## GentooUser@Clubic

Dracut gère le /usr séparé

Ça donne un /etc/dracut.conf.d/local.conf à peu près comme-ça :

```
# Local Dracut config file

add_dracutmodules+="usrmount"

```

Ensuite tu génère ton initramfs avec dracut --kver <ta version du noyau> (/boot doit être monté à ce moment) et n'oublie pas d'ajouter ton initramfs dans la config de ton booloader. 

Si tu n'a jamais utilisé d'initramfs, ton noyau boot sans avoir besoin de modules externes, tu peut donc virer le module kernel-modules pour avoir un boot plus rapide et un initramfs plus léger :

```
omit_dracutmodules+="kernel-modules"
```

EDIT: mais comme le dit netfab ton problème vient peut-être que  manque du CONFIG_DEVTMPFS indispensable à tous les devmanagers modernes. udev ne gère pas le boot avec un /usr séparé, mais jusqu'ici ça a toujours marché sur les systèmes non systemd.

----------

## HazeC5

Salut.

Alors en effet sur le kernel que j'utilise actuellement 

```
CONFIG_DEVTMPFS
```

 n'était pas activé. Par contre sur celui que j'ai compilé il y a 7 jours je l'ai de suite activé, mais n'ai pas booté dessus encore.

Est-il vraiment nécessaire d'installer 

sys-kernel/dracut ?

Et excusez moi pour cette question stupide mais comment procéder pour générer cet initramfs ?

Uniquement de la manière dont  GentooUser@Clubic le mentionne ? Ou il y a encore d'autre manipulation à faire, et dan ce cas lesquelles sont-elles, svp ?

Par avance merci   :Exclamation:   :Wink: 

----------

## boozo

'alute

il y a _toujours_ plusieurs chemins : à la main avec cpio ou via genkernel p.e. ou d'autres scripts que tu trouveras ici et là. La méthode "à la main" est la plus utile pour comprendre/maitriser le principe et les outils cités les plus rapides pour la mise en oeuvre.

Vala après les goûts, les couleurs, etc ...   :Wink: 

-> Un peu de doc ici pour exemple sinon en suivant ses liens

Edit: Arf! Je ne retrouve plus le lien original que j'avais d'un de nos mods pour faire çà à la main mais je t'ai trouvé une copie ici.

Mais tu peux aussi voir du côté de l'arborescence Documentation dans les sources du kernel (Documentation/filesystems/ramfs-rootfs-initramfs.txt)

----------

## netfab

 *HazeC5 wrote:*   

> 
> 
> Uniquement de la manière dont  GentooUser@Clubic le mentionne ?
> 
> 

 

Non. Il y a différentes possibilités. Regarde ici : http://wiki.gentoo.org/wiki/Initramfs

J'utilise la méthode du premier lien, çà consiste en fait à utiliser les outils fournis par le kernel, à écrire ton propre script d'init, et à inclure exactement ce dont tu as besoin (et rien de plus) dans ton initramfs. Je n'ai jamais testé dracut et autres usines à gaz, d'abord parce que ce n'est même pas stabilisé, et ensuite parce que si je configure et compile mon kernel à la main, pourquoi utiliser une boîte noire pour générer un initramfs ? Mais à toi de voir quelle méthode tu préfères.

----------

## xaviermiller

Merci pour ton retour, netfab.

Je serais bien tenté de faire un mini rescue dans un initramfs à la mano  :Wink: 

----------

## HazeC5

Merci pour votre rapidité de réaction.

Je testerai tout ça dès que j'aurai un peu de temps, et dès ce soir je vais déjà lire les liens proposés afin de ma familiariser avec cet initramfs, car c'est vraiment quelque chose dont je n'ai jamais eu affaire, j'en avais juste entendu parler ci et là.

Je vous tiendrai au courant de la suite des évènements.

Encore merci   :Exclamation: 

Bonne soirée @ vous.   :Wink:  

----------

## El_Goretto

Mmmm, je l'ai déjà dit, mais usine à gaz, je ne sais pas, et même si ça m'irrite les gencives de savoir d'où il vient, dracut (sur mon dekstop) est une méthode sans prise de tête pour générer le bout d''initrd qui va bien pour mon kernel fait main avec amour  :Wink: 

----------

## HazeC5

Donc voilà , j'ai installé sys-kernel/dracut

J'ai édité le fichier 

```
/etc/dracut.conf.d/gentoo.conf 
```

 ainsi que 

```
grub.conf
```

 comme ceci !

Pouvez vous me dire si vous détectez des erreurs , ou si je dois éditer autre chose dans le fichier de dracut ?

Ensuite j'ai donc taper la commande:

```
 dracut --kver 3.8.0
```

Mais il me sort comme erreur:

```
/lib/modules/3.8.0//modules.dep is missing. Did you run depmod?
```

Je tourne actuellement sur le kernel 3.5.0...Faut-il que je boot sur le 3.8.0 afin que le commande puisse aboutir ? Car là aussi depmod est un outil que je ne connais pas du tout !

Merci pour votre précieuse aide   :Wink:  !

----------

## boozo

btw, excusez ma question car je procède(/procédais) +/- comme netfab et je n'ai jamais vraiment compris en quoi dracut apportait un plus par rapport à l'outil "maison" (genkernel) ?

(ce me semble être sensiblement la même chose mais issu d'une autre saveur de linux non ?)

----------

## GentooUser@Clubic

 *boozo wrote:*   

> btw, excusez ma question car je procède(/procédais) +/- comme netfab et je n'ai jamais vraiment compris en quoi dracut apportait un plus par rapport à l'outil "maison" (genkernel) ?
> 
> (ce me semble être sensiblement la même chose mais issu d'une autre saveur de linux non ?)

 Dracut a l'objectif d'être universel et n'est pas rattaché à une distrib en particulier, mais je crois que c’est surtout RedHat qui bosse dessus.

Concernant l'avantage par rapport à  genkernel, dracut est vraiment plus rapide et il apporte le support de plymouth.

J'utilise un initrd uniquement pour lancer plymouth et je vient de passer de dracut à un script maison de moins de 100 lignes, j'ai gagné ~200 PID, mais seulement 400ms au boot, c'est dire à quel point dracut est optimisé à la base, sachant qu'il gère beaucoup plus de choses que mon initrd perso.Last edited by GentooUser@Clubic on Thu Feb 28, 2013 8:29 pm; edited 2 times in total

----------

## GentooUser@Clubic

 *HazeC5 wrote:*   

> Donc voilà , j'ai installé sys-kernel/dracut
> 
> J'ai édité le fichier 
> 
> ```
> ...

 

À ce que je voit version de ton noyau c'est 3.8.0_64bits il faut donc faire dracut --kver 3.8.0_64bits. depmod est exécuté lors de l'installation des modules du noyau (make modules_install)

Et aussi les images dracut ont par défaut l’extension .img donc vérifie que ta ligne initrd dans ton grub.conf correspond bien à un fichier existant dans /boot   :Wink:  pour moi ton grub.conf devrait plutôt ressembler à ça :

```

title=Gentoo-E17 kernel-3.8.0_64bits

root  (hd0,6)

kernel /kernel-3.8.0_64bits root=/dev/sda6

initrd /initramfs-3.8.0_64bits.img

```

----------

## boozo

@GentooUser@Clubic:> A ben voilà une réponse claire. Merci.   :Smile: 

Là au moins je comprends mieux pourquoi vous me parlez tous de dracut ; et pour une fois je me coucherai moins c** vu que je vais en plus chercher ce qu'est plymouth (car pour moi c'est un tuyau en pvc noir assez récalcitrant qui me sert au transport de la flotte   :Laughing: )

----------

## HazeC5

Salut @ tous   :Exclamation: 

Superbe, merci GentooUser@Clubic pour ces éclaircissements, je pense que ton explication est la bonne, et que ça devrait fonctionner car c'est tout à fait logique finalement.

N'ayant que très peu de temps ce soir, je suis passé juste pour répondre. Cependant dès demain soir j'aurai la soirée et dimanche pour m'occuper de tout ceci.

Je pourrai dès lors te donner le retour des commandes que tu donnes. J'pense que tu as juste, je le sens bien ,lol   :Razz: 

Merci et @ très vite donc pour marqué [RÉSOLU] dans le titre.   :Wink:   :Very Happy: 

Bonne soirée @tous.

----------

## HazeC5

Salut. 

GentooUser@Clubic j'ai beau tapé la commande que tu m'as conseillé, j'ai toujours la même erreur concernant depmod...

J'ai tenté en me plaçant dans /boot ou dans le dossier /usr/src/linux-3.8.0 , rien n'y fait   :Crying or Very sad: 

Mon noyau 3.8.0_64bits c'est moi qui le nomme ainsi, ayant aussi 1 système 32 bits... Enfin je suppose que tu y avais pensé.

Ne connaissant déjà ni depmod, ni dracut ! En regardant l'aide de ce dernier j'y vois plein d'options possibles, ne faut-il pas que je lance la commande avec d'autres options ?

 *Quote:*   

> Usage: /usr/bin/dracut [OPTION]... [<initramfs> [<kernel-version>]]

 

J'ai donc essayé:

```
dracut --kver initramfs-3.8.0_64bits.img kernel-3.8.0_64bits
```

 (avec et sans "kernel") b, résultat identique.

 *Quote:*   

> /lib/modules/initramfs-3.8.0.img//modules.dep is missing. Did you run depmod?
> 
> 

 

Si depmod est exécuté lors du make modules_install , pourquoi donc ai-je droit à cette erreur? Je comprends pas du tout là   :Confused: 

Bref je nage grave sur ce coup!

Merci.

[ÉDIT]Après une recherche sur google, j'ai trouvé la solution ici

Il me faut taper:

```
dracut -k /lib/modules/`uname -r`
```

 et ainsi j'ai bien l'initramfs généré, par contre il me faut booter sur le kernel en question, car après test de la commande:

```
 dracut -k /lib/modules/3.8.0-gentoo
```

même avec l'option --force (conseillée par dracut, lorsque je relance la commande) ça ne génère toujours qu'un .img du kernel actuel. 

À moins que ce soit tout de même faisable avec d'autres options, mais là il est tard je dois aller dormir, sinon me connaissant si je commence je n'arrête plus...Je devais déjà aller me coucher avant de répondre à ce post et 1 autre...Il y a plus de 2h de cela (sic!)   :Laughing: 

Ah ben j'ai trouvé....

```
dracut -k  /lib/modules/`uname -r` --kver 3.8.0
```

Et voilà que ça me génère l'initramfs du kernel qui va bien...

Me restera plus qu'à tester si ça boot bien comme il se doit.

Par contre pour voir si l'initramfs boot correctement, il me faudra mettre à jour udev... Et si ça ne boot pas, devoir chrooté vie la cd minimal et utiliser emerge -K.

En espérant que cette fois ce sera la bonne et que je pourrai migrer à udev sans autres pépins. Je verrai ça demain soir ou mardi soir.

[/ÉDIT]

Bonne nuit

----------

## GentooUser@Clubic

EDIT suite à ton EDIT  :Wink:  :

L'option -k permet de changer le répertoire dans lequel dracut va chercher les modules, pas de changer le noyau pour lequel l'initrd va être construit (par défaut le noyau actuel), pour ça qu'il faut utiliser --kver

Le mieux c'est que tu postes de résultat de ls /boot et ls /lib/modules 

Tu a bien installé ton noyau ? C'est quoi son nom dans /boot ?

tu dois déjà le savoir mais pour installer un noyau c'est make install (pour copier l'image du noyau dans /boot) et make modules_install (pour copier les modules dans /lib/modules/<kver>)

Chez moi :

```

# ls /boot 

System.map-3.8.1  boot@  config-3.8.1  grub2/ initramfs-generic.img  lost+found/  vmlinuz-3.8.1

```

Mon noyau s’appelle vmlinuz-3.8.1, lance donc dracut --kver 3.8.1 :

```
# dracut --kver 3.8.1                        

I: dracut module 'kernel-modules' will not be installed, because it's in the list to be omitted!

I: dracut module 'usrmount' will not be installed, because it's in the list to be omitted!

I: dracut module 'kernel-modules' will not be installed, because it's in the list to be omitted!

I: dracut module 'usrmount' will not be installed, because it's in the list to be omitted!

I: *** Including module: dash ***

I: *** Including module: i18n ***

I: *** Including module: plymouth ***

I: *** Including module: resume ***

I: *** Including module: rootfs-block ***

I: *** Including module: terminfo ***

I: *** Including module: udev-rules ***

I: *** Including module: base ***

I: *** Including module: fs-lib ***

I: *** Including module: shutdown ***

I: *** Including modules done ***

I: *** Installing kernel module dependencies and firmware ***

I: *** Installing kernel module dependencies and firmware done ***

I: *** Resolving executable dependencies ***

I: *** Resolving executable dependencies done***

I: *** Stripping files ***

I: *** Stripping files done ***

I: *** Creating image file ***

I: *** Creating image file done ***

I: Wrote /boot/initramfs-3.8.1.img:

I: -rw------- 1 root root 4219958  4 mars  02:23 /boot/initramfs-3.8.1.img

```

Last edited by GentooUser@Clubic on Mon Mar 04, 2013 1:36 am; edited 1 time in total

----------

## HazeC5

Ah désolé GentooUser@Clubic j'ai édité mon post pendant que tu écrivais le tien ... J'ai préférai ça plutôt que d'en poster un nouveau...J'aurai pas du   :Crying or Very sad: 

Et oui j'utilise bien 

```
make && make modules_install
```

 pour compiler mes noyaux ^^   :Wink: 

J'ai trouvé la solution, que j'ai inscrite dans l'ÉDIT de mon post précèdent.

Toutes mes excuses.

Merci.

----------

## GentooUser@Clubic

J'ai édité moi aussi   :Wink: 

EDIT:  le répertoire de tes modules c'est /lib/modules/3.8.0-gentoo ?

Donc la commande qui devrait marcher c'est dracut --kver 3.8.0-gentoo

----------

## HazeC5

Voilà le résultat de la commande ls  demandée:

Ici ( Dans le doute, j'ai modifié le nom du kernel, j'ai mis celui par défaut )

Je verrai le reste demain, là faut vraiment que j'aille me coucher, je perds 1 temps de sommeil précieux.   :Laughing: 

[ÉDIT]Uhu, honte à moi, oui c'est bien ce nom de dossier, et dans mes tests j'avais pas mis le -gentoo...Du coup oui avev juste:

```
dracut --kver 3.8.0-gentoo
```

ça fonctionne, et génère l'initramfs: *Quote:*   

> initramfs-3.8.0-gentoo.img

 

[/ÉDIT]

Merci pour ton aide GentooUser@Clubic @ demain.

Bonne nuit

----------

## GentooUser@Clubic

Bonne nuit, 

Et pour nommer tes noyaux, si tu veux ajouter un suffixe genre _64bits le mieux c'est d'utiliser  CONFIG_LOCALVERSION c'est dans "General setup  --->  Local version - append to kernel release"

----------

## HazeC5

Salut

Ah oui merci de me l'avoir rappeler..Je l'utilisais à l'époque où je compilais un autre kernel que le kernel gentoo.

----------

## HazeC5

Salut @ tous  :Exclamation: 

Bien j'ai donc mis à jour udev, après avoir généré l'initramfs qui va bien... La bonne nouvelle c'est que le système boot parfaitement.

La très mauvaise nouvelle, c'est que du coup 1x que gdm est lancé, le clavier et la souris ne fonctionnent plus du tout   :Crying or Very sad:  ... Et ce quelque soit le kernel sur lequel je boot.

Je n'ai trouvé aucune erreur relative à ce soucis dans les logs.

Pour avoir de nouveaux ces 2 prériphs fonctionnels , j'ai du désactiver xdm en tant que run level, afin que je puisse avoir accès au TTY et revenir aux versions antérieures de udev et virtual/udev.

Je suis déçu car je pensais que tout allait se dérouler à merveille, or non... Cela dit je le suis moins depuis que j'ai pu downgrader udev .

Merci pour vos éventuelles idées.

@très vite   :Exclamation: 

----------

## xaviermiller

C'est bizare, ça...

Essaie de recompiler les modules X11 avec

```
emerge @x11-module-rebuild
```

----------

## HazeC5

Je précise que j'avais aussi recompiler evdev, pensant que ca pourrait venir de là mais ça n'a rien changé.

@XavierMiller Ok je vais tester mais avant ça, pourrai tu m'expliquer en quoi cela pourrai changer quelques chose ? Car je n'ai que ce qui est relatif au son en module dans le kernel. Non que je doute de ton idée, c'est juste que j'aimerai comprendre.

Et je suppose que pour que cette commande fonctionne il me faut à nouveau passer à la dernière version d'udev ?

Actuellement, comme dit dans le post précèdent je suis revenu à la version udev-197-r10...Je viens de taper ta commande, et effectivement emerge recompile evdev, intel et joystick, mais j'avais déjà recompiler ces paquets (sauf joystick) il y a 20mn avec le dernier udev et sans succès. Cependant je n'avais pas utilisé 

```

emerge @x11-module-rebuild
```

 , mais simplement emerge... Je ne sais si cela a une incidence, je pense que non mais je peux me tromper.

[ÉDIT]Ah ce n'est pas @modules-rebuild, mais x11-module-rebuild...Je n'avais pas vu la différence. [/ÉDIT]

Merci

----------

## xaviermiller

En fait, essaie de recompiler les applications dépendant de libudev ; recompiler les modules X11 va peut-être aider à les retrouver.

----------

## HazeC5

Salut

Bon après avoir fais tout ce que XavierMiller m'a recommandé. 

À savoir donc passer sur le dernier udev, booter sur le kernel et faire le 

```
emerge @x11-module-rebuild
```

+ j'ai compilé 1 autre kernel , le ck-sources en l'occurence, afin de voir si le soucis ne venait pas du kernel...

Éh bien malheureusement rien n'y fait dès que je lance gdm je n'ai plus ni clavier ni souris, et ce quelque soit le kernel que j'ai utilisé.

Par contre lors d'un boot sur le kernel 3.8.0 à un moment j'ai entre aperçu, car ça va très vite, qu'une partition s'était monté en read-only... Il s'est avéré par la suite que sur 1 kernel j'ai ce message avec alsa, ainsi que toute l'aide d'alsa_truc durant le boot. Je ne sais pourquoi, puisque le son marche à merveille. J'ai vérifié, mes partitions étaient toutes en read-write.

J'ai aussi eu 2-3 services du boot en rouge avec ce message: *Quote:*   

> caught SIGTERM, aborting

 

Je viens de les retrouver voir ds le log de rc.conf ...IL s'agit de: *Quote:*   

> - urandom
> 
> - metalog
> 
> - mtab

 

Voilà les infos que j'ai pu avoir et vous retransmets.... Je suis sidéré être le seul à expérimenter ce problème, c'est dingue quand même.

En + hier après midi, j'ai configuré un kernel en repartant de A à Z, j'ay ai bien mis ce qui concerne clavier/souris...

D'après moi le soucis vient de la partition /usr , mais ce n'est qu'une intuition. Par contre je ne trouve comment le résoudre   :Crying or Very sad: 

Merci , bonne matinée/journée et @ plus tard   :Exclamation:   :Wink: 

----------

## HazeC5

Salut 

Après avoir consulté le forum anglais j'ai trouvé un topic où le même problème est abordé.

Il y a d'ailleurs 1 bug ouvert sur bugzilla mais je comprends pas bien ce que je dois faire exactement.

Puis je n'ai jamais eu à patcher quoi que ce soit. J'ai posé la question sur le forum anglais, j'attends 1 réponse puis je posterai ici.

Merci

----------

## boozo

'alute

avant de patcher, tu as essayé de voir la différence de comportement en modifiant rc_coldplug ?

Si tu es bien dans le cas de figure alors le plus simple si l'ebuild le supporte c'est d'utiliser la feature epatch_user de portage (voir 6.f. Applying Non-Standard Patches) => tu créés un repertoire spécifique au programme qui te concerne dans /etc/portage/patches/ et tu y mets le patch en question issu du bugzilla et tu laisses portage s'en charger à la recompilation du programme   :Wink: 

/off: Mmm... j'adore udev de plus en plus surtout depuis que je m'en passe  :Mr. Green: 

 *b.g.o #461838 - comment 8 wrote:*   

> <Poly-C_atwork> WilliamH: (...) So I suspect udev currently is buggy because it should still process already existing devices on startup to get permissions right.

 

----------

## HazeC5

Salut !

Non je n'ai encore rien fait, je m'apprêtais à le faire, sauf que je vient de me rendre compte que dans mon rc.conf je n'ai pas  *Quote:*   

> rc_coldplug

  mais  *Quote:*   

> rc_hotplug

 

Du coup je ne sais pas si je dois le rajouter ou non.

Et merci boozo pour cette astuce d'epatch_user je n'en avais jamais entendu parler.

je m'en occupe dès que j'ai plus amples informations quand à ce rc_hotplug/rc_coldplug

----------

## HazeC5

Bon ben le problème reste identique, même après avoir rajouté le USE=openrc à udev , qui a installé:

 *Quote:*   

> sys-fs/udev-init-scripts-24

 .

Et la ligne:

 *Quote:*   

> rc_coldplug

  n'était toujours pas présent dans le rc.conf. Alors je l'ai ajouté, et ai testé avec les valeurs NO et YES... Sans succès   :Evil or Very Mad:   :Crying or Very sad: 

----------

## boozo

Regarde là pour plus de détails :

 */etc/conf.d/udev wrote:*   

> 
> 
> ```
> # /etc/conf.d/udev: config file for udev
> 
> ...

 

----------

## HazeC5

Salut.

Bien bien, après avoir suivi le bug en question sur bugzilla, et ayant constaté qu'il était résolu. Je m'y suis donc mis à la tâche afin de constater si mon clavier/souris serait finalement enfin fonctionnels une fois X lancé.

Éh bien bingo , voilà le bug résolu.

Par contre j'ai pas cherché trop loin, à savoir si en mettant: *Quote:*   

> rc_coldplug="NO"

  ça fonctionnerait aussi ou pas.

Comme je compile actuellement un nouveau kernel, je testerai en mettant l'option à "NO" histoire de voir, que je sache si le problème venait de là ou bien s'il venait du paquet:

 *Quote:*   

> sys-fs/udev-init-scripts

 

que je n'avait jamais installé avant ça.

Merci pour votre aide @ tous   :Wink: 

Éh encore 1 problème résolu grâce à la communauté adorée Gentoo   :Razz: 

----------

