Gentoo c'est bien, mais je reviens sous Calculate Linux (Billet long de l’expérience Gentoo)
Bonjour à tous,
Pour ceux qui n'ont pas suivi le premier épisode, je vous remets le lien de l'article écrit le 25 Janvier : Le PC Fixe passe ... Sous Gentoo ! => https://www.linuxtricks.fr/news/10-logiciels-libres/456-le-pc-fixe-passe--sous-gentoo/
Dans cet article, pour résumer, j'indiquais installer Gentoo sur mon PC principal en dual-boot avec ma Calculate Linux.
Le /home est commun, les 2 utilisateurs étant les mêmes, les systèmes étant aussi les mêmes (version des logiciels identiques), il n'y a pas de problème à partager le home.
Sur les 2 systèmes, j'utilise OpenRC, et l'environnement de bureau GNOME que j’apprécie particulièrement pour sa simplicité, sa fluidité et surtout le fait qu'il soit complet (intégration parfaite de Nextcloud, au niveau du calendrier et de l'accès des dossiers partagés depuis Nautilus depuis "Comptes en Lignes"). PulseAudio et NetworkManager sont utilisés sur les deux systèmes.
Depuis 10 jours, j'ai donc installé et utilisé pleinement Gentoo.
J'ai d'ailleurs connecté un lecteur de carte SD sur la tour, et cela a parfaitement été reconnu, car j'avais prévu l'option dans le noyau.
De manière globale, je suis satisfait du système Gentoo, et c'est aussi pourquoi j'utilise Calculate Linux aujourd'hui, et ce depuis 2012.
Note à ceux qui ne savent pas, Calculate Linux est basé sur Gentoo.
Alors, pourquoi installer Gentoo en dual boot avec Calculate Linux ?
Et bien pour tester les "performances" ! Oui !
La différence avec Calculate Linux, c'est que sous Gentoo, on compile tout, y compris le noyau. Là où Calculate offre des binaires par défaut (bien qu'on puisse compiler).
L'objectif était de savoir si les performances sont meilleures sous Gentoo que sous Calculate, ou pas. Aussi, est-ce que ça vaut le coup de compiler pour les performances attendues ?
L'installation du système de base m'a pris une petite heure (profile default/linux/amd64/17.1 sans X ni GNOME). Ensuite, pour installer GNOME + Mes applications, j'ai lancé la méga commande
J'avais fait les simulations avec emerge -pv avant et j'ai lancé ça le matin, avant d'aller travailler. En revenant, c'était fini.
Evidemment, j'ai installé Firefox et non firefox-bin, LibreOffice et non libreoffice-bin, afin d'avoir tout de compilé. D'ailleurs, je pouvais me le permettre sur un Ryzen (Chiffres plus bas)
D'abord, reprenons les points forts de Gentoo :
- La modularité : Avec portage, chaque paquet est personnalisable avec les USE Flags. Sur mon système j'ai plus de 1200 Paquets, j'ai principalement laissé les USE imposés par le profile "17.1/desktop/gnome". Pour les curieux, vous pouvez voir sur mon github la personnalisation du make.conf et des différents package.{use,accept_keywords} : https://github.com/aaaaadrien/gentoo-config
- Le kernel que je veux : En effet, j'ai installé le gentoo-sources. Ensuite, à moi de jouer pour la compilation. Pas de genkernel qui compile plein de trucs tout seul sans réelle maîtrise. J'ai suivi les guides Ryzen et AMDGPU pour les options. J'ai du cependant utiliser dracut pour générer un initramfs, puisque j'utilise du LVM. Même avec un /boot séparé, visiblement, sans initramfs, ça ne fonctionne pas. Ca ralentit le boot mais c'est pas très grave. Étonnamment, sur le Dell Poweredge R210 avec sa carte RAID matérielle LSI, je n'avais pas eu besoin d'initramfs. J'ai utilisé dracut car je connais bien cet outil, mais on peut utiliser mkinitrd ou genkernel pour générer cette image disque.
- Rolling : Bon, ça marche aussi pour Calculate, mais c'est un réel plaisir de ne pas mettre à niveau son système tous les X mois ou X années (Oui, mon système, je l'utilise sur le long terme). Le système installé sur le PC fixe le sera encore dans 5 ans. Mais avec tout à jour.
- Formateur : Oui, Gentoo est très formateur, plus que Calculate d'ailleurs. Puisqu'on installe tout y compris son noyau. Après avoir fait de nombreuses installations de Gentoo sur du matériel différent (VirtualBox, VMWare, Dell Poweredge R210, Dell Optiplex 780, Asus N76VZ, Toshiba Sattelite pro P100, Dell E5500) en mode serveur et graphique, j'ai complété mon "palmarès" avec une première installation sur du matériel full AMD (CPU+GPU). Très instructif !
- La documentation : La documentation de Gentoo (Wiki) est une des plus complète avec celle d'Arch Linux. Une vraie mine d'or ! De fait, cette documentation est disponible pour Calculate Linux ! Par exemple, la mise en place d'un serveur Samba ne diffère pas entre Gentoo et Calculate Linux.
Cependant, il y a quand même quelques points négatifs :
- La compilation, c'est long : Alors oui, c'est optimisé, grâce aux CFLAGS paramétrés (-O2 -pipe -march=native), je n'installe pas des logiciels tous les jours (j'ai mes logiciels installés et depuis quelques années, je ne fais que mettre à jour mon système). Cependant, j'avais oublié d'installer Teamspeak avant de faire une partie de CS:GO avec mes amis le lendemain (Je reviendrai sur Steam après). Et bien, il m'a fallu pas loin de 3h pour installer Teamspeak. Non pas que Teamspeak soit long à installer (ça s'est fait en 3 secondes) mais il a fallu installer des dépendances qui prennent énormément de temps à compiler.
Le coupable s'appelle qtwebengine :
Oui, 2h16 à compiler !
Après activation du USE "jumbo-build", qtwebengine ne met "que" 1h environ à se compiler :
Pour comparaison, le moteur webkit chez GTK on est de l'ordre de 20-25 minutes :
Le USE jumbo-build a disparu de chromium récemment, du coup le navigateur libre met un temps certain à se compiler. Ci-dessous quelques temps de compilation de "gros" logiciels :
- La compilation OUI, mais pas de gain de performance significatifs ! Sous CS:GO, jeu natif Linux, je tourne à environ 120FPS en jeu.... sous Gentoo ou Calculate Linux, sur la même machine, avec les mêmes options. Le lancement de LibreOffice est aussi rapide, SMPlayer aussi, Audacity pareil et Gimp aussi.
Voilà pour le bilan des plus et des moins. Vous aurez donc compris que le gain n'est pas au rendez-vous. De fait, la base me plaisant énormément, je vais conserver Calculate Linux comme système principal. La Gentoo sera mise à jour depuis Calculate via chroot. Ainsi, pas besoin de démarre Gentoo pour la mettre à jour :
Concernant Steam, c'est le seul logiciel qui a besoin de librairies 32bits. 2 choix s'offraient à moi :
- Recompiler les logiciels (mesa, alsa, pulseaudio, etc.) avec le support 32.
- Utiliser le flatpak de Steam.
J'ai commencé par la deuxième solution (facilité, je sais) mais le flatpak ne savait pas lire les jeux déjà téléchargés dans mon home.
J'ai donc supprimé les flatpak et recompilé les logiciels concernés en 32bits (la liste est donnée en partie sur le wiki de Gentoo et j'ai ajouté ceux qui manquaient). => https://github.com/aaaaadrien/gentoo-config/blob/master/etc/portage/package.use/steam
Concernant le point de la consommation d'électricité (Fred Bezies en avait parlé dans une de ses vidéo il y a quelques années). Et bien j'ai la chance d'avoir le compteur Linky. J'ai activé les relevés toutes les 30 minutes, afin d'avoir un rapport détaillé.
J'ai pris 2 périodes : La nuit du 19 au 20 Janvier, date où je n'avait pas encore Gentoo, et la nuit du 26 au 27 Janvier, où j'ai fait une recompilation complète du système (des 1200 paquets grâce à emerge -e @world), lancée à 21h.
Voici le résultat :
On voit quoi ? Et bien ne regardons pas le pic de 22h30, puisque c'est le début de la période heure creuses. C'est là que le chauffe-eau se met en route. Peut être le 26 nous avons consommé plus d'eau chaude, et c'est au moment ou le "clac" des heures creuses retentit que je vais recharger la trottinette électrique.
Prenons, le créneau 3h-3h30, l'eau est chaude, et la trottinette terminée de rechargée, le chauffage coupé, car en mode éco 16°C de 0h à 5h. On constate que le 20 Janvier (Pas de compilation) on consomme environ 0.55kWh et que le 27 Janvier (compilation en cours du système, tous les CPU tournent à fond) on est à 0.6kWh, soit 0.05kWh !
On peut donc conclure que la compilation ne fait pas exploser la facture d'électricité ! Je suis sûr qu'un jeu vidéo est aussi gourmand en électricité avec la puissance graphique.
Voilà donc le bilan.
Pour résumer, Gentoo est un système fonctionnel, modelé à la machine, sans bugs dans ma configuration, tout comme Calculate Linux. Le ratio temps de compilation / performance ne vaut pas la peine d'utiliser Gentoo, et Calculate Linux convient parfaitement.
Gentoo peut avoir son intérêt au niveau performance dans le cadre serveur. En effet, il y a moins de paquets à compiler, donc on peut plus affiner les options, désactiver ce qu'on ne souhaite pas. D'ailleurs, le serveur de Mageia Linux Online fonctionne depuis Avril 2011 sous Gentoo, donc une rolling sur serveur, ça marche.
Calculate Linux pousse parfois des configurations de manière automatique, poussée par les développeurs. Cela permet à un utilisateur moins avancé de ne pas trop se prendre la tête, car certaines manipulations manuelles sont faites à notre pace.
Voilà, le billet était assez long mais j'espère que ça vous aura plu.
Si vous voulez regarder le replay du CKOIKIDI épisode 32 que j'ai fait avec Serge hier, consacré à cette expérience Gentoo, vous pouvez y accéder sur Youtube en cliquant sur la vignette ci-dessous :
Ce live a eu du succès, avec un pic de 124 visionnements et un total de 342 visiteurs différents durant l'émission, qui a durée plus de 2h40 !
Pour ceux qui n'ont pas suivi le premier épisode, je vous remets le lien de l'article écrit le 25 Janvier : Le PC Fixe passe ... Sous Gentoo ! => https://www.linuxtricks.fr/news/10-logiciels-libres/456-le-pc-fixe-passe--sous-gentoo/
Dans cet article, pour résumer, j'indiquais installer Gentoo sur mon PC principal en dual-boot avec ma Calculate Linux.
Le /home est commun, les 2 utilisateurs étant les mêmes, les systèmes étant aussi les mêmes (version des logiciels identiques), il n'y a pas de problème à partager le home.
Sur les 2 systèmes, j'utilise OpenRC, et l'environnement de bureau GNOME que j’apprécie particulièrement pour sa simplicité, sa fluidité et surtout le fait qu'il soit complet (intégration parfaite de Nextcloud, au niveau du calendrier et de l'accès des dossiers partagés depuis Nautilus depuis "Comptes en Lignes"). PulseAudio et NetworkManager sont utilisés sur les deux systèmes.
Depuis 10 jours, j'ai donc installé et utilisé pleinement Gentoo.
J'ai d'ailleurs connecté un lecteur de carte SD sur la tour, et cela a parfaitement été reconnu, car j'avais prévu l'option dans le noyau.
De manière globale, je suis satisfait du système Gentoo, et c'est aussi pourquoi j'utilise Calculate Linux aujourd'hui, et ce depuis 2012.
Note à ceux qui ne savent pas, Calculate Linux est basé sur Gentoo.
Alors, pourquoi installer Gentoo en dual boot avec Calculate Linux ?
Et bien pour tester les "performances" ! Oui !
La différence avec Calculate Linux, c'est que sous Gentoo, on compile tout, y compris le noyau. Là où Calculate offre des binaires par défaut (bien qu'on puisse compiler).
L'objectif était de savoir si les performances sont meilleures sous Gentoo que sous Calculate, ou pas. Aussi, est-ce que ça vaut le coup de compiler pour les performances attendues ?
L'installation du système de base m'a pris une petite heure (profile default/linux/amd64/17.1 sans X ni GNOME). Ensuite, pour installer GNOME + Mes applications, j'ai lancé la méga commande
Code BASH :
emerge .... @world && emerge gnome-light gdm vivaldi-snapshot thunderbird libreoffice chromium appli1 appli2 ...
J'avais fait les simulations avec emerge -pv avant et j'ai lancé ça le matin, avant d'aller travailler. En revenant, c'était fini.
Evidemment, j'ai installé Firefox et non firefox-bin, LibreOffice et non libreoffice-bin, afin d'avoir tout de compilé. D'ailleurs, je pouvais me le permettre sur un Ryzen (Chiffres plus bas)
D'abord, reprenons les points forts de Gentoo :
- La modularité : Avec portage, chaque paquet est personnalisable avec les USE Flags. Sur mon système j'ai plus de 1200 Paquets, j'ai principalement laissé les USE imposés par le profile "17.1/desktop/gnome". Pour les curieux, vous pouvez voir sur mon github la personnalisation du make.conf et des différents package.{use,accept_keywords} : https://github.com/aaaaadrien/gentoo-config
- Le kernel que je veux : En effet, j'ai installé le gentoo-sources. Ensuite, à moi de jouer pour la compilation. Pas de genkernel qui compile plein de trucs tout seul sans réelle maîtrise. J'ai suivi les guides Ryzen et AMDGPU pour les options. J'ai du cependant utiliser dracut pour générer un initramfs, puisque j'utilise du LVM. Même avec un /boot séparé, visiblement, sans initramfs, ça ne fonctionne pas. Ca ralentit le boot mais c'est pas très grave. Étonnamment, sur le Dell Poweredge R210 avec sa carte RAID matérielle LSI, je n'avais pas eu besoin d'initramfs. J'ai utilisé dracut car je connais bien cet outil, mais on peut utiliser mkinitrd ou genkernel pour générer cette image disque.
- Rolling : Bon, ça marche aussi pour Calculate, mais c'est un réel plaisir de ne pas mettre à niveau son système tous les X mois ou X années (Oui, mon système, je l'utilise sur le long terme). Le système installé sur le PC fixe le sera encore dans 5 ans. Mais avec tout à jour.
- Formateur : Oui, Gentoo est très formateur, plus que Calculate d'ailleurs. Puisqu'on installe tout y compris son noyau. Après avoir fait de nombreuses installations de Gentoo sur du matériel différent (VirtualBox, VMWare, Dell Poweredge R210, Dell Optiplex 780, Asus N76VZ, Toshiba Sattelite pro P100, Dell E5500) en mode serveur et graphique, j'ai complété mon "palmarès" avec une première installation sur du matériel full AMD (CPU+GPU). Très instructif !
- La documentation : La documentation de Gentoo (Wiki) est une des plus complète avec celle d'Arch Linux. Une vraie mine d'or ! De fait, cette documentation est disponible pour Calculate Linux ! Par exemple, la mise en place d'un serveur Samba ne diffère pas entre Gentoo et Calculate Linux.
Cependant, il y a quand même quelques points négatifs :
- La compilation, c'est long : Alors oui, c'est optimisé, grâce aux CFLAGS paramétrés (-O2 -pipe -march=native), je n'installe pas des logiciels tous les jours (j'ai mes logiciels installés et depuis quelques années, je ne fais que mettre à jour mon système). Cependant, j'avais oublié d'installer Teamspeak avant de faire une partie de CS:GO avec mes amis le lendemain (Je reviendrai sur Steam après). Et bien, il m'a fallu pas loin de 3h pour installer Teamspeak. Non pas que Teamspeak soit long à installer (ça s'est fait en 3 secondes) mais il a fallu installer des dépendances qui prennent énormément de temps à compiler.
Le coupable s'appelle qtwebengine :
Code BASH :
2020-01-25T20:32:17 >>> dev-qt/qtwebengine: 2:16:10
Oui, 2h16 à compiler !
Après activation du USE "jumbo-build", qtwebengine ne met "que" 1h environ à se compiler :
Code BASH :
2020-02-01T21:59:41 >>> dev-qt/qtwebengine: 1:06:49
Pour comparaison, le moteur webkit chez GTK on est de l'ordre de 20-25 minutes :
Code BASH :
2020-01-24T10:08:31 >>> net-libs/webkit-gtk: 23′08″
Le USE jumbo-build a disparu de chromium récemment, du coup le navigateur libre met un temps certain à se compiler. Ci-dessous quelques temps de compilation de "gros" logiciels :
Code BASH :
2020-01-27T09:10:03 >>> www-client/chromium: 2:58:14 2020-01-24T13:40:56 >>> app-office/libreoffice: 43′24″
- La compilation OUI, mais pas de gain de performance significatifs ! Sous CS:GO, jeu natif Linux, je tourne à environ 120FPS en jeu.... sous Gentoo ou Calculate Linux, sur la même machine, avec les mêmes options. Le lancement de LibreOffice est aussi rapide, SMPlayer aussi, Audacity pareil et Gimp aussi.
Voilà pour le bilan des plus et des moins. Vous aurez donc compris que le gain n'est pas au rendez-vous. De fait, la base me plaisant énormément, je vais conserver Calculate Linux comme système principal. La Gentoo sera mise à jour depuis Calculate via chroot. Ainsi, pas besoin de démarre Gentoo pour la mettre à jour :
Code BASH :
mount /dev/mapper/rootvg-gentoo /mnt/gentoo/ mount /dev/sda3 /mnt/gentoo/boot/ mount -t proc /proc /mnt/gentoo/proc mount --rbind /dev /mnt/gentoo/dev mount --rbind /sys /mnt/gentoo/sys chroot /mnt/gentoo/ /bin/bash env-update && source /etc/profile eix-sync emerge -avuDN --with-bdeps=y @world exit
Concernant Steam, c'est le seul logiciel qui a besoin de librairies 32bits. 2 choix s'offraient à moi :
- Recompiler les logiciels (mesa, alsa, pulseaudio, etc.) avec le support 32.
- Utiliser le flatpak de Steam.
J'ai commencé par la deuxième solution (facilité, je sais) mais le flatpak ne savait pas lire les jeux déjà téléchargés dans mon home.
J'ai donc supprimé les flatpak et recompilé les logiciels concernés en 32bits (la liste est donnée en partie sur le wiki de Gentoo et j'ai ajouté ceux qui manquaient). => https://github.com/aaaaadrien/gentoo-config/blob/master/etc/portage/package.use/steam
Concernant le point de la consommation d'électricité (Fred Bezies en avait parlé dans une de ses vidéo il y a quelques années). Et bien j'ai la chance d'avoir le compteur Linky. J'ai activé les relevés toutes les 30 minutes, afin d'avoir un rapport détaillé.
J'ai pris 2 périodes : La nuit du 19 au 20 Janvier, date où je n'avait pas encore Gentoo, et la nuit du 26 au 27 Janvier, où j'ai fait une recompilation complète du système (des 1200 paquets grâce à emerge -e @world), lancée à 21h.
Voici le résultat :
Caché :
On voit quoi ? Et bien ne regardons pas le pic de 22h30, puisque c'est le début de la période heure creuses. C'est là que le chauffe-eau se met en route. Peut être le 26 nous avons consommé plus d'eau chaude, et c'est au moment ou le "clac" des heures creuses retentit que je vais recharger la trottinette électrique.
Prenons, le créneau 3h-3h30, l'eau est chaude, et la trottinette terminée de rechargée, le chauffage coupé, car en mode éco 16°C de 0h à 5h. On constate que le 20 Janvier (Pas de compilation) on consomme environ 0.55kWh et que le 27 Janvier (compilation en cours du système, tous les CPU tournent à fond) on est à 0.6kWh, soit 0.05kWh !
On peut donc conclure que la compilation ne fait pas exploser la facture d'électricité ! Je suis sûr qu'un jeu vidéo est aussi gourmand en électricité avec la puissance graphique.
Voilà donc le bilan.
Pour résumer, Gentoo est un système fonctionnel, modelé à la machine, sans bugs dans ma configuration, tout comme Calculate Linux. Le ratio temps de compilation / performance ne vaut pas la peine d'utiliser Gentoo, et Calculate Linux convient parfaitement.
Gentoo peut avoir son intérêt au niveau performance dans le cadre serveur. En effet, il y a moins de paquets à compiler, donc on peut plus affiner les options, désactiver ce qu'on ne souhaite pas. D'ailleurs, le serveur de Mageia Linux Online fonctionne depuis Avril 2011 sous Gentoo, donc une rolling sur serveur, ça marche.
Calculate Linux pousse parfois des configurations de manière automatique, poussée par les développeurs. Cela permet à un utilisateur moins avancé de ne pas trop se prendre la tête, car certaines manipulations manuelles sont faites à notre pace.
Voilà, le billet était assez long mais j'espère que ça vous aura plu.
Si vous voulez regarder le replay du CKOIKIDI épisode 32 que j'ai fait avec Serge hier, consacré à cette expérience Gentoo, vous pouvez y accéder sur Youtube en cliquant sur la vignette ci-dessous :
Ce live a eu du succès, avec un pic de 124 visionnements et un total de 342 visiteurs différents durant l'émission, qui a durée plus de 2h40 !