# Raspberry pi (4 / 4g) et Gentoo (terminé)

## Skwal

Bonjour !

Je viens d'acquérir le Raspberry Pi 4 (version 4 G de ram) pour m'en faire un serveur web à la maison.

Pour ce faire j'ai acheté une carte sd (Carte MicroSD 128Go Classe 10 SanDisk) afin de pouvoir y mettre un OS, et j'ai choisi Gentoo   :Mr. Green: 

Après quelques recherches j'ai pû mettre assez facilement en place un serveur web, via le travail de Sakaki, encore merci à lui/elle !

Mais maintenant que c'est en place ben je remarque que j'ai carrément zappé la phase tests du Raspberry, et actuellement je me demande si hormis la technique officielle Gentoo (à laquelle je ne comprend strictement rien !) il n'y aurait pas moyen d'installer Gentoo autrement (surtout de manière compilée).

Il y a bien cette information que j'ai trouvé, mais sans plus...

J'imagine que certains s'y sont mit, si vous pouviez échanger s'il vous plait...   :Rolling Eyes: 

Je vous remercie.

Cordialement, Skwal.Last edited by Skwal on Tue Oct 29, 2019 12:12 pm; edited 4 times in total

----------

## YetiBarBar

Bonjour,

Les docs que tu pointes me semble plutôt bons pour ce type de cross-compilation et d'installation. 

Essaie de les comprendre un maximum et n'hésite pas à poser des questions sur les points que tu comprends pas (c'est quoi crossdev, ça sert à quoi un .dto). Il y a des différences dans la construction d'un linux pour arm qu'il va falloir comprendre et rien que formuler la question et "googler" la question vont t'aider à comprendre cette philosophie.

Un point à noter cependant, la cross-compilation depuis ta machine x86_64, tu n'as pas envie de t'en passer (ou alors tu as quelques années devant toi avant d'utiliser ta belle RPI).

----------

## xaviermiller

Hello,

Un autre point à prendre en considération : une carte SD va mourir en moins de deux si tu l'utilises pour compiler. Une carte SD ne permet pas autant de réécritures qu'un disque dur mécanique ou SSD.

Je te conseilles de monter /var/tmp/portage en tmpfs (surtout si tu as 4 G de ram, c'est énorme), ou sur un disque externe (USB, nfs, ...).

La cross-compilation est très intéressante, je le fais déjà pour un raspberry pi 1 (256M de RAM) et un Helios4 (même si là je compile nativement tellement cette machine a un bon processeur et I/O's)

Bonne (cross-)compilation !

----------

## Skwal

Bonjour   :Very Happy: 

Je vous remercie pour vos conseils et recommandations !

Je prend bien note que la carte SD serat moins performante qu'un ssd / sata, du coup je vais suivre allègrement vos conseils au niveau tmpfs.

Je vais me renseigner pour monter tout ça et viendrait en faire un retour.   :Wink: 

Encore merci !

Cordialement, Skwal.

Edition:

N'arrivant pas et passant beaucoup de temps sur la cross-compilation j'abandonne pour le moment. Possédant 2 cartes sd je m'entrainerai plus tard, pour le moment l'excellent travail de Sakaki me permet de mettre rapidement en place Gentoo.

Encore merci pour votre aide !  :Wink: 

Cordialement, Skwal.

----------

## Skwal

Et bonjour !

Après quelques jours sur le serveur faisant tourner Gentoo via le travail de Sakaki j'ai eu une mauvaise surprise ce matin en voulant me connecter à mon site web tournant dessus:

 *Quote:*   

> Attention : un problème technique (serveur SQL) empêche l’accès à cette partie du site. Merci de votre compréhension. 

 

Du coup je me connecte en ssh et tente simplement de relancer MariaDB:

 *Quote:*   

>  * Checking mysqld configuration for mysql ...
> 
> /usr/sbin/mysqld: /usr/lib/gcc/aarch64-unknown-linux-gnu/8.3.0/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /usr/sbin/mysqld)
> 
>  * mysql config check failed                                                                     [ !! ]
> ...

 

J'en ai fait un sujet: https://forums.gentoo.org/viewtopic-t-1102178.html

Ne trouvant pas de solution à mon problème j'en ai discuté avec Palatin sur le chat IRC #gentoofr:

 *Quote:*   

> 
> 
> [14:03]<Skwal> Bonjour
> 
> [14:05] <Skwal> Je suis actuellement bloqué sur une installation serveur (Raspberry pi 4 / sakaki) par GCC. Est-ce que quelqu'un aurait une idée s'il vous plait ? https://forums.gentoo.org/viewtopic-t-1102178.html
> ...

 

Et maintenant je suis complètement largué !

Que puis-je faire pour avoir Gentoo sur mon RPi ? Passer par la cross compilation, distcc ? 

Si encore je pouvais démarrer du livecd (usb) ca me semblerait bien plus propre, en tout cas ce serait une installation personnalisée selon mes besoins avec un noyau compilé sur mesure.

Est-il possible de juste installer le noyau arm64 sur la carte sd et se connecter en ssh au Raspberry pour faire une installation minimaliste ?

En espérant que vous puissiez m'aider à y voir plus claire...

Je vous remercie, cordialement.

Skwal.

----------

## netfab

La question est : pourquoi veux-tu absolument gentoo sur ton Rasp ?

Je n'ai pas de Rasp, j'ai une cubieboard2.

À une époque j'avais gentoo dessus et oui, j'utilisais principalement la cross-compilation + distcc pour y parvenir.

Cela fonctionnait, mais par moment c'était énormément de travail pour la maintenir. Tous les paquets ne peuvent pas se cross-compiler, et certains même ne peuvent pas utiliser distcc. Sans compter les 2 ou 3 bugs rigolos sur lesquels je suis tombé. J'ai maintenu ce système pendant quelques années, jusqu'à la goutte qui fasse déborder le vase : une mise à jour kernel que je n'ai jamais réussi à effectuer. Depuis, j'ai passé ce système sur arch.

As-tu de l'expérience avec Gentoo ? Si non, je ne te conseille pas de commencer Gentoo en faisant de la cross-compilation pour un tel système. Cela risquerait de te décourager.

 *xaviermiller wrote:*   

> 
> 
> Un autre point à prendre en considération : une carte SD va mourir en moins de deux si tu l'utilises pour compiler. Une carte SD ne permet pas autant de réécritures qu'un disque dur mécanique ou SSD.
> 
> Je te conseilles de monter /var/tmp/portage en tmpfs (surtout si tu as 4 G de ram, c'est énorme), ou sur un disque externe (USB, nfs, ...).
> ...

 

Et j'ajouterai ceci : pour les partitions montées sur cartes SD, si vous utilisez le système de fichier ext4, dans le fstab, utiliser l'option commit (moi j'utilise commit=600) :

 *Quote:*   

> 
> 
> commit=nrsec	(*)	Ext4 can be told to sync all its data and metadata
> 
> 			every 'nrsec' seconds. The default value is 5 seconds.
> ...

 

----------

## Skwal

Bonjour  :Smile: 

 *Quote:*   

> La question est : pourquoi veux-tu absolument gentoo sur ton Rasp ? 

 

Ben c'est pour avoir un système aux petits oignons, ne faire tourner que ce qui m'est nécessaire, sans plus.

De plus Gentoo est la seule distribution sans systemd: je n'en veux pas.

 *Quote:*   

> À une époque j'avais gentoo dessus et oui, j'utilisais principalement la cross-compilation + distcc pour y parvenir.

 

Actuellement je suis en phase d'apprentissage sur la cross compilation, je compte bien évidement me mettre également à utiliser distcc.

 *Quote:*   

> Cela fonctionnait, mais par moment c'était énormément de travail pour la maintenir. Tous les paquets ne peuvent pas se cross-compiler, et certains même ne peuvent pas utiliser distcc. Sans compter les 2 ou 3 bugs rigolos sur lesquels je suis tombé. J'ai maintenu ce système pendant quelques années, jusqu'à la goutte qui fasse déborder le vase : une mise à jour kernel que je n'ai jamais réussi à effectuer. Depuis, j'ai passé ce système sur arch. 

 

Je te tente le coup, ça me ferait super plaisir d'y arriver ! Au pire je me loupe et verrai d'autres alternatives mais je tiens absolument à avoir Gentoo.

 *Quote:*   

> Et j'ajouterai ceci : pour les partitions montées sur cartes SD, si vous utilisez le système de fichier ext4, dans le fstab, utiliser l'option commit (moi j'utilise commit=600) : 

 

Je te remercie pour le conseil.  :Wink: 

Je pense que la seule façon d'avoir ce que je souhaite est de passer par la cross-compilation/distcc. En attendant c'est très formateur. 

 :Mr. Green: 

----------

## xaviermiller

Personnellement, j'évite distcc car plusieurs paquets ne passent pas. Je préfère utiliser un chroot QEMU, qui permet de compiler "nativement" ton système, créer les paquets binaires et les pousser dans ton raspi (perso, le raspi démarre sur NFS, donc le chroot est celui du raspi).

et crossdev pour générer gcc/glibc, le reste a aussi des soucis avec crossdev (des binaires dans le format de la machine hôte)

----------

## Skwal

Bonjour xaviermiller,

Merci pour les recommandations ! Actuellement je suis en plein apprentissage dans ce sens, j'ai survolé QEMU mais pour l'instant je n'arrive pas à comprendre son fonctionnement, j'apprends déjà à installer Gentoo sur le rpi via la cross-compilation (https://wiki.gentoo.org/wiki/User:NeddySeagoon/Raspberry_Pi4_64_Bit_Install).

Ca a l'air super intéressant tout ça !

Edition:

Bon pour l'instant j'arrive à rien via la cross-compilation, ma faute... Je jete un oeil à QEMU !

----------

## Skwal

Bonsoir  :Smile: 

Bon ben c'est cool, la cross compilation fonctionnait, le problème venait de la partition de boot pour je ne sais quelle raison...

Je me penche maintenant sur QEMU mais j'ai  pour l'instant du mal à en comprendre le principe.

En gros on compile sur le pc avec le client QEMU qui va l'envoyer sur le serveur source ?

Merci en tout cas j'y vois plus clair et c'est cool !

----------

## Skwal

Bonjour  :Smile: 

Je clos le sujet: j'ai installé Gentoo sur le RPI4 sans passer par le travail de Sakaki.

Je l'ai installé sur une clé usb de 128G de classe 10 avec une partition swap de 10G et compile nativement les paquets dessus, ça semble faire l'affaire et ça m'évite la cross-compilation.

Tous les paquets ne sont pas disponibles mais assez pour monter le serveur web dont j'ai besoin !

Gentoo, c'est cool !   :Mr. Green: 

----------

## Biloute

Salut.

Le Pi4 a tout de même un 4 coeurs à 1,5GHz, ca devrait être suffisamment puissant pour compiler.

Est-ce que tu trouves que ton Pi4 a une puissance correcte pour installé gentoo par la voie classique?

Est-ce que ta config est équipé d'une horloge RTC?

Ca serait pas mal si tu pouvais nous faire un petit retour sur ton expérience de gentoo sur ton raspberry. (détail des éléments que tu as associé avec la carte, paquets installé, xorg?,

----------

## Skwal

Salut Biloute !

 *Quote:*   

> Le Pi4 a tout de même un 4 coeurs à 1,5GHz, ça devrait être suffisamment puissant pour compiler. 

 

Tout à fait, il peut même être overclocké à 2.0GHz d'après ce que j'ai lu mais je ne m'y suis pas encore intéressé.

 *Quote:*   

> Est-ce que tu trouves que ton Pi4 a une puissance correcte pour installé gentoo par la voie classique? 

 

Même si le temps de compilation un peu long: oui, j'attend vivement que genkernel gère l'aarch64/arm64 et que le PI4 puisse exécuter le livedvd de Gentoo pour faire une installation native.

 *Quote:*   

> Est-ce que ta config est équipé d'une horloge RTC? 

 

Non, j'ai juste acheté un boitier avec ventilo et condensateur, l'heure est gerée via ntp.

 *Quote:*   

> Ca serait pas mal si tu pouvais nous faire un petit retour sur ton expérience de gentoo sur ton raspberry. (détail des éléments que tu as associé avec la carte, paquets installé, xorg?,

 

Avec plaisir, même si ça reste du bricolage hasardeux.

Déjà je ne vois rien d'autre que Gentoo sur le RPI, j'ai testé Raspbian et c'était franchement pas réactif comparé à Gentoo... Un temps de latence pour n'importe quelle action, c'était assez galère !

Je ne fais qu'une installation serveur actuellement, je n'ai donc pas besoin d'interface graphique vu que je ne passe que par ssh. Actuellement bind,mariadb, et nginx fonctionnent même si je galère mais là c'est dû à mon manque d'expérience.

Beaucoup de paquets (dont phpmyadmin) ne sont pas encore disponible sur cette architecture (arm64) mais l'essentiel serveur y est.

Je compte y relier un disque dur ssd par la suite car d'après ce que je crois savoir ma carte sd classe 10 doit bien morfler, j'ai bien tenté de passer par le tmpfs mais ça provoque des erreurs de compilations, notament gcc, je me suis donc contenté d'un "commit 600" dans le fichier fstab sur la partition root...

Autrement ben j'en suis super content du RPI4 (4g de ram) et je n'y mettrai rien d'autre que Gentoo.

En espérant avoir été utile...

Cordialement, Skwal

----------

## Biloute

Ah d'accord, je viens de comprendre que tu n'a pas encore fait une installation de gentoo en bonne et due forme sur ton Pi4 (installation native)

En effet, si ton pi4 est toujours connecté, pas besoin de RTC.

Tout d'abord, tu n'as pas besoin du livedvd de gentoo, j'utilise systemrescuecd pour faire mes gentoos. A partir du moment où tu réussi à faire booter un liveusb qui t'autorise à "chrooter" tu peux faire ta gentoo.

genkernel? Est-ce qu'il ne serait pas plus intéressant de compiler ton noyau. Il doit bien y avoir moyen de récupérer le .config pour le Pi4 quelques part sur le net. Fait toi un petit emerge raspberrpi-sources et regardes ce que tu peux faire avec le menuconfig.

J'ai commencé gentoo sur un pentium M (1 core 1.6Ghz) avec 1go de ram et j'avais des temps de compilation plutot raisonnable. Enfin cela dépend surtout de tes besoins (je ne sais pas combien de fois par mois tu va compiler GCC).

Tu as choisi d'utiliser tmpfs et tu as bien fait. Pour contourner le problème de la saturation de mémoire (par exemple avec GCC) tu peux utiliser l'option "notmpfs" uniquement pour les cas qui te posent problèmes. Pour savoir comment faire, va dans gentoo wiki et recherche "Portage TMPDIR tmpfs"

----------

## Skwal

Bonjour,

 *Quote:*   

> Tout d'abord, tu n'as pas besoin du livedvd de gentoo, j'utilise systemrescuecd pour faire mes gentoos. A partir du moment où tu réussi à faire booter un liveusb qui t'autorise à "chrooter" tu peux faire ta gentoo. 

 

C'est le problème: le RPi 4 ne peut pas encore booter sur usb.

 *Quote:*   

> genkernel? Est-ce qu'il ne serait pas plus intéressant de compiler ton noyau. Il doit bien y avoir moyen de récupérer le .config pour le Pi4 quelques part sur le net. Fait toi un petit emerge raspberrpi-sources et regardes ce que tu peux faire avec le menuconfig. 

 

C'est ce que j'ai fais, j'ai pû trouver le .config pour le rpi4 et compiler un noyau sur mon pc de bureau pour le serveur. C'est vrai que pour la compilation noyau j'ai prit l'habitude de passer par Genkernel, je n'ai pas encore survolé comment compiler le noyau sur le RPi 4.

 *Quote:*   

>  (je ne sais pas combien de fois par mois tu va compiler GCC)

 

D'après ce que j'ai lû il vaut mieux tourner sur le branche testing pour l'arm64 car c'est en plein developpement, ça tombe bien car j'ai mis en place le notmpfs et il y a une mise à jour de gcc, je test actuellement.  :Wink: 

Je te remercie pour tes conseils.   :Very Happy: 

----------

