# système init : changer OpenRC par systemd

## pti-rem

Bonjour,

J'ai cherché et je continue de chercher des ressources documentaires pour faire ce changement.

Je trouve une entrée en matière à : https://wiki.gentoo.org/wiki/Systemd

 *Quote:*   

> Changer de système init est une opération non triviale qui a des implications sur la façon dont le système est configuré, et parfois sur les logiciels qui peuvent être installés ou non.
> 
> Généralement, un système d'initialisation sera choisi au moment de l'installation (c'est-à-dire en téléchargeant soit un tarball systemd, soit un tarball OpenRC stage3), et seulement changé si nécessaire.
> 
> Dans le plus pur style Gentoo, en plus de systemd et OpenRC, plusieurs systèmes init sont supportés.

 

Il est nécessaire que je le change pour pouvoir faire tourner plusieurs applications "Gagnantes" h24 sur mon poste de travail sans avoir à allumer une autre machine.

La réinstallation semble être une solution séduisante mais je voudrais voir avant si il m'est possible de faire autrement.

Je ne sais pas à quelles difficultés je vais être confronté ni par où commencer.

Mon noyau actuel 4.19.97-gentoo est ancien, tout comme mon matériel en architecture amd64.

Sa dernière compilation date de février 2020 ; autant dire une éternité.

Il m'en reste quand même quelques notions.

Mon système est totalement en stable et il est régulièrement mis à jour.

Je cherche des conseils, de l'aide et des idées.

En gros, comment se passe une telle transition ?

MerciLast edited by pti-rem on Mon May 23, 2022 11:16 pm; edited 1 time in total

----------

## pti-rem

Je compile d'abord un noyau avec les réglages situés à https://wiki.gentoo.org/wiki/Systemd#Kernel

 *Quote:*   

> Mon noyau actuel 4.19.97-gentoo est ancien

 

Il ne figure plus dans la liste à https://packages.gentoo.org/packages/sys-kernel/gentoo-sources

Je ne parviens pas à le recompiler.

J'essaie avec la version =sys-kernel/gentoo-sources-4.19.237:4.19.237::gentoo

avec les mêmes réglages importés avec un make olddefconfig

```
# cd

# cp -avn /usr/src/linux/.config /usr/src/linux-4.19.237-gentoo/

# eselect kernel set linux-4.19.237-gentoo

# cd /usr/src/linux

# make olddefconfig

# make menuconfig

# make modules_prepare

# make -j3

# make modules_install

# emerge --ask @module-rebuild

# make install

# genkernel --mdadm --install initramfs
```

 *genkernel wrote:*   

> * Current kernel's LOCALVERSION is set to ''; Will ignore set --kernel-localversion value '-x86_64' because kernel was not build ...

 

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

J'essaie d'amorcer mon nouveau noyau... Je croise les doigts... Ouf !

```
rem@n73sm ~ $ uname -a

Linux n73sm 4.19.237-gentoo #1 SMP Wed May 11 16:28:09 CEST 2022 x86_64 Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz GenuineIntel GNU/Linux

rem@n73sm ~ $ uptime

 17:15:16 up 1 min,  1 user,  load average: 1,77, 0,67, 0,24

rem@n73sm ~ $
```

Last edited by pti-rem on Fri May 13, 2022 9:07 am; edited 1 time in total

----------

## pti-rem

J'ai continué en vérifiant les paramètres du noyau.

Puis j'ai suivi les étapes de https://wiki.gentoo.org/wiki/Systemd jusqu'à https://wiki.gentoo.org/wiki/Systemd#Profile

```
rem@n73sm ~ $ eselect profile list | grep "*"

  [10]  default/linux/amd64/17.1/desktop/systemd (stable) *

rem@n73sm ~ $
```

J'essaie de compiler mais j'ai un conflit que je n'arrive pas à résoudre.

J'ai bien suivi les https://wiki.gentoo.org/wiki/Systemd#Dependency_problems

J'essaie de compiler avec emerge -pvDN @world

```
 [blocks B      ] sys-apps/sysvinit ("sys-apps/sysvinit" is soft blocking sys-apps/systemd-250.4-r2)

Total: 73 packages (22 new, 51 reinstalls, 5 uninstalls), Size of downloads: 12 046 KiB

Conflict: 6 blocks (1 unsatisfied)

 * Error: The above package list contains packages which cannot be

 * installed at the same time on the same system.

  (sys-apps/sysvinit-3.01:0/0::gentoo, installed) pulled in by

    >=sys-apps/sysvinit-2.86-r6[selinux?] (>=sys-apps/sysvinit-2.86-r6) required by (sys-apps/openrc-0.44.10:0/0::gentoo, installed) USE="ncurses pam unicode -audit -bash -debug -netifrc -newnet (-selinux) -sysv-utils" ABI_X86="(64)"

  (sys-apps/systemd-250.4-r2:0/2::gentoo, ebuild scheduled for merge) pulled in by

une grande quantité d'ebuilds
```

```
n73sm ~ # equery d sys-apps/openrc

 * These packages depend on sys-apps/openrc:

app-admin/openrc-settingsd-1.1.0 (sys-apps/openrc)

net-misc/netifrc-0.7.3 (>=sys-apps/openrc-0.15)

virtual/service-manager-1 (!prefix-guest ? sys-apps/openrc)

n73sm ~ #
```

 :Smile:  Finalement, il a suffit de sortir net-misc/netifrc de @world pour débloquer la situation  :Smile: 

```
n73sm ~ # emerge --deselect net-misc/netifrc

>>> Removing net-misc/netifrc from "world" favorites file...

n73sm ~ #
```

----------

## pti-rem

Après la mise à jour globale, je me suis occupé du https://wiki.gentoo.org/wiki/Systemd#Bootloader puis j'ai fait un reboot immédiat pour changer d'init actif.

Je me suis retrouvé en console mais en graphical.target.

```
n73sm ~ # systemctl get-default

graphical.target

n73sm ~ #
```

Je n'ai pas encore fait le depclean ; si il faut le préciser.

Je m'identifie en console et je lance /usr/bin/startxfce4 pour obtenir mon bureau. Édition : c'est résolu avec l'activation du bon vieux service slim en configuration autologin.

« Avertissement : Avec la dernière version en 2013, le projet SliM semble abandonné. Veuillez envisager un autre gestionnaire d'affichage »

J'ai abandonné SliM au profit d'un login Xfce automatique sans gestionnaire d'affichage.

https://wiki.gentoo.org/wiki/Automatic_login_to_virtual_console#systemd

https://wiki.gentoo.org/wiki/X_without_Display_Manager#systemd

J'ai hésité à faire un depclean tellement l'avertissement à propos de la suppression d'openrc semblait important ; Je m'y suis résolu en fin de compte.

J'ai activé et démarré les services gpm et NetworkManager.

J'ai à charger manuellement le module bbswitch pour que mon GPU nVidia Optimus s'éteigne électriquement et ne surchauffe pas la machine inutilement.

Édition : c'est résolu avec un simple bbswitch dans /etc/modules-load.d/bbswitch.conf (avec le service systemd-modules-load activé et le /etc/modprobe.d/bbswitch.conf qui va bien)

```
n73sm ~ # modprobe bbswitch

n73sm ~ # cat /proc/acpi/bbswitch 

0000:01:00.0 OFF

n73sm ~ #
```

J'ai plusieurs targets et services qui sont en « not-found inactive dead » et dont je ne sais pas quoi en faire. Je suis gêné pour syslog ; il y a des plaintes à son propos.

Édition : j'ai essayé de comprendre https://wiki.gentoo.org/wiki/Syslog-ng et de faire avec... Et pour le service firewalld je suis paumé car j'ai déjà des règles iptables établies par Docker.

```
n73sm ~ # systemctl --all --full | grep "not-found"

● display-manager.service                                                                                          not-found inactive dead      display-manager.service

● firewalld.service                                                                                                not-found inactive dead      firewalld.service

● plymouth-quit-wait.service                                                                                       not-found inactive dead      plymouth-quit-wait.service

● plymouth-start.service                                                                                           not-found inactive dead      plymouth-start.service

● syslog.service                                                                                                   not-found inactive dead      syslog.service

● cryptsetup.target                                                                                                not-found inactive dead      cryptsetup.target

● syslog.target                                                                                                    not-found inactive dead      syslog.target

n73sm ~ #
```

Je ne sais pas bien utiliser systemd ; j'apprends. Si vous pouviez m'aider sur les points que j'ai évoqué ? Faire une remarque ou une proposition ?Last edited by pti-rem on Tue May 24, 2022 2:50 pm; edited 2 times in total

----------

## netfab

Salut,

Sur mes systèmes gentoo je n'y suis pas encore passé, mais il m'arrive d'y penser, parce que je me suis rendu compte que dès que j'utilise une autre distribution j'ai très rapidement affaire à systemd.

À l'époque je n'ai pas été spécialement réfractaire, je n'ai simplement jamais migré. Le problème c'est que le jour où je me lancerai je vais devoir migrer plusieurs systèmes en même temps, d'où mon hésitation.

Il faudrait donc d'abord que j'installe une VM gentoo avec openrc pour y faire mes expérimentations.

Mais je serais curieux de connaître le taux d'utilisation de systemd/openrc sur gentoo.

----------

## pti-rem

 *netfab wrote:*   

> je n'ai simplement jamais migré

 

Mon atterrissage est un peu dur.

Je ne regrette pas pour faire mon expérimentation e-monnaie sous systemd.

J'ai encore l'élément du noyau actif pour un openrc.

J'avais modifié /etc/default/grub pour ajouter init=/lib/systemd/systemd

ça marche : je le laisse !

Je ne fais rien, je connais pas encore si j'ai à faire quelque chose en particulier.

Je n'ai pas de news. c'est un bled sans missive  :Wink: 

C'est là que je remercie Portage

OpenRC demandait un peu de boulot ? Faut éclairer systemctl de suite ! Y-en-a trop pour la CLI ! Et tout US... Pfff

Je ne pense pas aller bien loin avec systemd mais je sais que l'on peut avantageusement le "redémarrer"

Il faut le courage d'apprendre encore. https://www.linuxtricks.fr/wiki/systemd-les-commandes-essentielles

La lecture de https://wiki.gentoo.org/wiki/Systemd n'est pas terminée...

Intéressé également sur la répartition des usages.Last edited by pti-rem on Sun May 29, 2022 8:36 am; edited 1 time in total

----------

## pti-rem

Bonjour,

Les profils systemd contiennent-ils un USE global udev ?

Comment le voir ?

C'est pour savoir si je peux enlever ce drapeau udev de mon make.conf

```
CPU_FLAGS_X86="aes avx mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3"

USE="aes avx mmx mmxext sse sse2 ssse3 sse4_1 sse4_2 nls unicode ssl \

 pulseaudio v4l -nautilus -airplay -consolekit systemd udev networkmanager handbook examples tools utils x265 aac fdk"
```

J'ai oublié pourquoi j'ai un -consolekit...

Édition : j'ai enlevé udev et -consolekit sans que cela ne bouscule quoi que ce soit  :Smile: 

Autre chose ?

Pour moi, enlever un USE global, c'est un pas dans un chemin vers la perfection.

« La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer »

– Antoine de Saint-Exupéry

----------

