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
Comment installer Ubuntu 19.10 64 bits sur un Raspberry Pi 4 (même celui de 4 Go)

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.

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 ubuntu@192.168.1.50

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.

Raspberry Pi 4 Ubuntu 19.10 SSH

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 :

Raspberry Pi 4 Ubuntu 19.10 64 bits OpenSSL

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. 

Raspberry Pi 4 Performances OpenSSL Raspbian Ubuntu Comparatif
Les paramètres d'OpenSSL en 32 bits sont identiques, les résultats pas vraiment
Ce contenu est désormais en accès libre

Il a été produit grâce à nos abonnés, l'abonnement finance le travail de notre équipe de journalistes.

ou choisissez l'une de nos offres d'abonnement :

15 commentaires
Avatar de Tyffyn Abonné
Avatar de TyffynTyffyn- 23/10/19 à 09:15:48

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.

Avatar de David_L Équipe
Avatar de David_LDavid_L- 23/10/19 à 09:22:41

(quote:43581:Tyffyn) ...

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.

Avatar de Tyffyn Abonné
Avatar de TyffynTyffyn- 23/10/19 à 09:33:40

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.

Avatar de SartMatt Abonné
Avatar de SartMattSartMatt- 23/10/19 à 09:46:04

(quote:43582:David_L) 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.

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.

Avatar de brice.wernet Abonné
Avatar de brice.wernetbrice.wernet- 23/10/19 à 11:42:54

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.

Avatar de crocodudule INpactien
Avatar de crocodudulecrocodudule- 23/10/19 à 12:11:58

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+ ?

Avatar de damaki Abonné
Avatar de damakidamaki- 23/10/19 à 12:38:11

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 ?

Édité par damaki le 23/10/2019 à 12:38
Avatar de fry Abonné
Avatar de fryfry- 23/10/19 à 13:40:56

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

Édité par fry le 23/10/2019 à 13:42
Avatar de David_L Équipe
Avatar de David_LDavid_L- 23/10/19 à 13:50:33

(quote:43595:fry) ...

3.73 Go, pour la version 32 bits sur le modèle de 4 Go.

Avatar de crocodudule INpactien
Avatar de crocodudulecrocodudule- 23/10/19 à 14:22:14

(quote:43594:damaki) 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 ?

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)

Il n'est plus possible de commenter cette actualité.
Page 1 / 2

Votre commentaire

Avatar de lecteur anonyme
Avatar de lecteur anonyme

2000 - 2020 INpact MediaGroup - SARL de presse, membre du SPIIL. N° de CPPAP 0321 Z 92244.

Marque déposée. Tous droits réservés. Mentions légales et contact