Comment installer Ubuntu 19.10 64 bits sur un Raspberry Pi 4 (même celui de 4 Go)
Y'a des baffes qui se perdent
Le 23 octobre 2019 à 07h54
7 min
Hardware
Hardware
Ubuntu 19.10 est disponible. Et parmi ses nouveautés on trouve un point qui intéressera tous les possesseurs de Raspberry Pi 4 : une image est disponible en 32 bits, mais aussi en 64 bits. De quoi revoir les performances du micro PC à la hausse sans trop d'efforts... ou presque.
Si le Raspberry Pi 4 dispose d'un SoC plus performant et d'une composition largement améliorée, cela ne s'est pas fait sans défauts lorsqu'il s'agit de l'utiliser de manière concrète.
Outre la question de sa température de fonctionnement, on note également le boot sur réseau ou USB qui n'était plus géré (et pas activable très facilement), mais aussi la compatibilité avec les différents OS qui nécessitait un peu de travail. Si Raspbian a été mis à jour dans les temps, ce n'était ainsi pas le cas d'autres distributions Linux.
Du côté de la fondation, on ne peut pas dire que les réponses aient été à la hauteur, ni même que la réactivité soit de mise face aux problèmes remontés.
- Raspberry Pi 4 : les ratés du boîtier officiel
- Un script Python pour suivre les fréquences, tension et température du SoC d'un Raspberry Pi
Mais l'existence d'un modèle de 4 Go a surtout remis sur le devant de la scène une question qui se fait de plus en plus pressante pour l'équipe : pourquoi proposer des SoC avec une architecture 64 bits, si c'est pour se limiter à un OS tel que Raspbian qui n'est proposé qu'en 32 bits ? Cela réduit les performances, et la quantité de mémoire supportée.
Si quelques distributions Linux géraient les précédents Raspberry Pi en 64 bits, il a fallu attendre pour que cela soit le cas pour le Pi 4. Après Gentoo ou Manjaro, c'est désormais le cas pour Ubuntu 19.10 dans son édition Server. Mais si vous pensiez que cela serait aussi simple que de transférer une image sur une carte microSD, vous aviez tort.
Les développeurs, ces boulets
Car il semblerait que personne, ni chez les développeurs d'Ubuntu, ni chez Canonical, n'ait eu l'idée de tester l'image 64 bits prévue pour les Raspberry Pi 4... sur un modèle équipé de 4 Go de mémoire.
Sur les forums, les utilisateurs se sont assez rapidement rendu compte que les ports USB ne fonctionnaient pas dans cette configuration. Dès lors, il est impossible de procéder à la finalisation de l'installation via le clavier, rendant impossible l'utilisation de la machine. Un bug confirmé et pris en charge par les développeurs.
Dommage, vu que cette combinaison (64 bits/4 Go) était la plus attendue.
Comment installer Ubuntu 19.10 sur un Raspberry Pi 4
Mais avant de traiter ce cas particulier, revenons aux bases. Pour installer Ubuntu 19.10 Server, récupérez l'image et transférez-là sur une carte microSD via balenaEtcher ou dd
(voir notre guide pour Raspbian).
Connectez le Raspberry Pi à un câble réseau, à son alimentation et démarrez-le. Si tout s'est bien passé, vous devriez le voir apparaître sur votre réseau local. Le premier démarrage est un peu plus long, une série de scripts de configuration devant s'exécuter, cela pourra demander une minute ou deux.
Si vous utilisez l'image 32 bits ou la 64 bits avec un modèle disposant de moins de 4 Go de mémoire, pas de problème. Branchez un clavier, un écran et entrez les identifiants par défaut (ubuntu
/ubuntu
). Tout sera fonctionnel en local. Vous pouvez également accéder à la machine à distance via le protocole SSH.
Lors de votre première connexion, vous serez invité à modifier le mot de passe par défaut pour des raisons de sécurité. Une fois que c'est fait, l'installation est terminée.
L'alternative : accéder au Raspberry Pi via SSH
Autre solution en attendant la correction du bug et des images officielles : procéder à une configuration headless, sans clavier ou écran. Car SSH est heureusement activé par défaut sur l'image d'Ubuntu Server fournie pour les Raspberry Pi. Ainsi, on peut l'utiliser pour finaliser la procédure d'installation.
Pour cela utilisez la commande suivante (fonctionne nativement sous Windows 10) :
ssh ubuntu@Adresse_IP_du_RaspberryPi4
Malheureusement, aucun nom de domaine local simplifié n'est attribué par défaut à la machine via un protocole tel que mDNS, comme c'est le cas avec Raspbian, obligeant à trouver l'IP de la machine. Pensez donc à la chercher dans l'interface de votre routeur ou via des outils dédiés pour ordinateur/smartphone.
Dans notre exemple, cela donne :
ssh [email protected]
Une fois que la connexion sera initiée, vous devrez accepter la clé publique du Raspberry Pi puis changer le mot de passe par défaut (ubuntu) pour celui de votre choix.
Dès lors, vous pouvez accéder à la machine comme un serveur distant, sans vous soucier des limites de l'USB. Attention tout de même, cela empêchera d'utiliser un périphérique, comme un HDD/SSD externe par exemple.
Limiter la mémoire à 3 Go pour récupérer les ports USB
C'est là qu'une autre solution peut être mise en œuvre : réduire la mémoire disponible sur la machine. En effet, le problème semble lié au fait que l'utilisation de plus de 3 Go de mémoire empêche le fonctionnement de l'USB.
Ainsi, il faut éditer le fichier usercfg.txt
pour y ajouter la ligne suivante :
total_mem=3072
Ce fichier se trouve dans le répertoire /boot/firmware/
du système, ou dans la racine de la petite partition de boot si vous lisez la clé depuis un système tiers, notamment sous Windows.
Une fois cette modification effectuée, on passe de 3,7 Go de mémoire disponible à 2,79 Go, perdant l'intérêt d'une machine 64 bits embarquant 4 Go, mais on retrouve l'accès au clavier et aux périphériques USB en attendant la correction par les développeurs. Celle-ci semble d'ailleurs bien avancée, des noyaux fonctionnels ayant déjà été testés.
Il faudra sans doute attendre encore un peu avant qu'ils soient validés puis diffusés dans les dépôts d'Ubuntu et placés dans les images officielles.
Notez que vous pouvez très bien utiliser cette méthode pour procéder à la première configuration de la machine au clavier, puis retirer cette ligne du fichier ensuite pour une gestion distante via SSH. Pour cela, il faudra éditer le fichier, l'enregistrer (CTRL+X) puis redémarrer le Raspberry Pi 4 avec les commandes suivantes :
sudo nano /boot/firmware/usercfg.txt
sudo reboot
Quelles performances ?
Pour voir l'impact du passage en 64 bits avec un noyau récent, nous avons effectué notre test OpenSSL classique sur un Raspberry Pi 4 équipé de 4 Go sous Raspbian (32 bits) et Ubuntu 19.10 en 32/64 bits. Cela consiste à mesurer les performances avec un cœur ou tous ceux du SoC pour du chiffrement ou de la vérification de signature RSA 4096 bits :
openssl speed rsa4096
openssl speed -multi $(nproc) rsa4096
Voici nos résultats :
Comme on peut le voir, une application comme OpenSSL ne tire pas vraiment parti du 64 bits dans les conditions de ce test, ses performances sont même légèrement amoindries par rapport à la version 32 bits d'Ubuntu 19.10. Par contre, le système de Canonical offre de bien meilleures performances que Raspbian : jusqu'à 2,8x !
Pourtant, les versions d'OpenSSL utilisées sont similaires : 1.1.1d de septembre pour Raspbian, 1.1.1c de mai pour Ubuntu. Dès lors, comment expliquer cet écart ? Sans doute le noyau utilisé, plus récent (5.3) dans le cas du système de Canonical par rapport à Raspbian (4.19) mais aussi sans doute optimisé rien que pour le Raspberry Pi 4.
Comment installer Ubuntu 19.10 64 bits sur un Raspberry Pi 4 (même celui de 4 Go)
-
Les développeurs, ces boulets
-
Comment installer Ubuntu 19.10 sur un Raspberry Pi 4
-
L'alternative : accéder au Raspberry Pi via SSH
-
Limiter la mémoire à 3 Go pour récupérer les ports USB
-
Quelles performances ?
Commentaires (15)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 23/10/2019 à 09h15
En dehors de l’effet “LOL” de l’article, ça m’interroge sur les mauvaises performances de Raspbian. C’est globalement 2.5 fois plus lent ?
Non parce que là, ça donne envie de l’abandonner sur les images qui tournent sur mes Pi 3/3b vu le gain qu’on peut en attendre.
Le 23/10/2019 à 09h22
Il faudrait voir sur un plus gros panel d’application (il faut que je regarde ce qui peut facilement tourner sur l’une et l’autre). Mais rien qu’un écart si important sur un applicatif aussi commun qu’OpenSSL montre qu’il y a un soucI. Ca recoupe les mauvais scores Sysbench qui avaient été publiés par Free lors du lancement des VM sur la delta.
Le 23/10/2019 à 09h33
Merci pour ta réponse :)
Je pense tester aussi de mon côté pour me faire un “ressenti” mais si c’est 2.5, c’est comparable à l’effet whaouh quand j’ai abandonné le boot sur SDcard pour mettre un vieux SSD en USB sur le Pi 3b.
Un second tel gain de perfs me conforterait aussi (avec tes articles sur le sujet) dans mon choix de ne pas passer sur un Pi 4 en espérant une mise à jour qui corrige les nombreux problèmes trouvés sur cette version.
Le 23/10/2019 à 09h46
OpenSSL, c’est commun, mais ça fait de la crypto. Donc l’écart de performances est peut-être simplement une question d’utilisation ou non de l’accélération matérielle de certaines fonctions de crypto, auquel cas l’impact en pratique devrait rester assez limité.
Pour faire d’autres tests, il y a SciMark, PyBench et PHPBench qui peuvent tourner sous Rasbian. Peut-être aussi la suite Phoronix.
Sinon, un test de compression ZIP avec et sans chiffrement peut aussi aider à voir si le problème est spécifique à la crypto ou plus général.
Le 23/10/2019 à 11h42
En quoi, sur de l’ARM, le 64 bits serait plus rapide que le 32? Notamment avec un bus mémoire limité? Et un cache limité qui se remplit plus vite? (Historiquement, le mode 16bits “thumb” était plus rapide que le 32bits)
Sur PC, ça se comprend facilement, le processeur passant son temps en 32bits à échanger entre les registres et la mémoire du fait du nombre limité de registres (8)
Sur Arm, l’archi 64 bits double aussi le nombre de registres mais passe de 16 à 32, et 16 c’est déjà pas mal.
C’est surtout sur des instructions particulières pour l’encryptage qui changent la donne.
Le 23/10/2019 à 12h11
Effectivement intéressant de noter le manque de perfs de raspbian avec openssl.
David tu as déjà relevé un résultat similaire entre un raspbian et ubuntu sur pi3+ ?
Le 23/10/2019 à 12h38
Merci pour l’info du 4 Go pas supporté ; Ubuntu arm64 est exactement ce que je voulais utiliser sur un raspi 4 pour me faire un bureau Linux transportable, pas cher et aux perfs honnêtes.
David_G, auriez-vous aussi testé ce nouveau Ubuntu arm64 sur le Nvidia Jetson ?
Le 23/10/2019 à 13h40
petite question, sur la version 32 bits, combien de Go sont reconnus ?
est-ce que les perfs en moins de la version 64 ne viendraient pas (en partie) du fait d’avoir “bridé” la mémoire à 3go, alors que la version 32, bien que ne pouvant pas gérer 4, en gère 3.3 ou 3.?? soit un poil plus au final ?
dans mes vagues souvenirs, sous les windows en 32 bits et avant les patch qui jouaient avec des page ou je sais plus quelle astuce pour pouvoir accéder à plus de 4go, le système reconnaissait quand même un peu plus de ram quand on avait 2+2go que quand on avait 2+1go …
mais mes souvenirs ne sont pas forcément fiables XD
edit : patch et pas path, ça n’avait aucun sens
Le 23/10/2019 à 13h50
3.73 Go, pour la version 32 bits sur le modèle de 4 Go.
Le 23/10/2019 à 14h22
Attention, sauf mauvaise compréhension, seule la version serveur est dispo pour l’instant, donc pas d’environnement graphique (bon on doit pouvoir l’ajouter après l’install)
Le 23/10/2019 à 14h28
L’image fait moins de 900 Mo, donc c’est très possible.
Vivement ce soir que je teste ça :)
Le 23/10/2019 à 17h12
pas mal cet astuce,
je me demande par contre
quid du supports des paquets en 64bit ARM , ya vraiment tout ? kodi l’accel graphique etc … ?
car sur mon ancienne NVIDIA jetson NANO que j’ai abandonné rapidement en en ubuntu 64bit,
presque aucune appli tournait (pas de kodi, pas de steam etc …)
Le 24/10/2019 à 05h56
Raspbian est toujours compilée pour l’archi du raspberry pi 1, càd armv6. Le passage en 64 bits implique aussi une compilation vers des archis plus récentes. Le plus gros du gain est à attendre de ce côté (je suppose que c’est ça qui explique aussi le plus gros de la différence entre raspbian et ubuntu dans le cas présent).
Le 24/10/2019 à 07h58
D’ailleurs, le RPI3 est déjà 64bits dans son archi il me semble.
Le 24/10/2019 à 14h11
C’est vrai que la différence de perf openssl est assez énorme voire scandaleuse surtout quand la distrib officielle est supposée sur mesure pour l’appareil en question.
Est-ce que ubuntu permet quand même de jouer avec les différentes options genre les overlay, les uart etc. ?