Comment installer Ubuntu 19.10 64 bits sur un Raspberry Pi 4 (même celui de 4 Go)

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

Avatar de l'auteur
David Legrand

Publié dans

Hardware

23/10/2019 7 minutes
15

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 [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.

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

Écrit par David Legrand

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

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 ?

next n'a pas de brief le week-end

Le Brief ne travaille pas le week-end.
C'est dur, mais c'est comme ça.
Allez donc dans une forêt lointaine,
Éloignez-vous de ce clavier pour une fois !

Fermer

Commentaires (15)


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.



Tyffyn a dit:





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.


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.



David_L a dit:


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.


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.


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


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 ?


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



fry a dit:





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



damaki a dit:


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)


L’image fait moins de 900 Mo, donc c’est très possible.



Vivement ce soir que je teste ça :)


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 …)



(quote:43588:brice.wernet)
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.




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).



white_tentacle a dit:


Raspbian est toujours compilée pour l’archi du raspberry pi 1, càd armv6. … 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).
Tout à fait d’accord, pour moi sur ARM (cortex-A72), le 64 bits risque d’être généralement un peu plus lent que le 32bits sur des machines comme le RPI, plus rapide sur des traitements lourds par contre.
Le gros problème est que rapsbian reste rétro compatible, là où ubuntu doit s’adapter au CPU.




D’ailleurs, le RPI3 est déjà 64bits dans son archi il me semble.


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