md
Téléversement de U-Boot et Linux vers une La Frite (AML-S805X-AC) étêtée
2019-12-10
<-Avant-goût de La Frite (AML-S805X-AC) de Libre Computer --

Le message HOWTO: update/flash/re-flash La Frite firmware from another Linux computer sur le forum loverpi indique qu'on peut mettre à niveau le chargeur d'amorçage U-Boot relativement facilement. De plus, le commentaire d'un lecteur affirme que cela peut se faire sans moniteur. Pourquoi ne pas en faire autant pour téléverser un système d'exploitation directement sur le module de mémoire eMMC sans faire de copie sur une clé USB comme le propose un autre message sur le forum: HOWTO: flash image to eMMC from a computer ? Voici comment j'ai procédé.

Table des matières

  1. Matériel nécessaire
  2. Mettre à niveau de U-Boot
  3. Téléverser un système d'exploitation
  4. Network Manager et Wi-Fi
  5. Ensuite ?

Matériel nécessaire toc

(*) On n'utilise pas le bloc d'alimentation pendant la mise à jour, mais il faut de toute évidence alimenter La Frite après.

On doit choisir le système d'exploitation parmi les nombreuses images offertes par le fabricant. J'ai choisi d'installer la plus petite image de Debian Buster. Les néophytes pourraient opter pour Raspbian disponible sur le même site ou Armbian, car ces distributions ont un utilitaire de configuration qui simplifie bien des choses. Ceci n'est pas une recommandation, je n'ai pas essayé ces images.

Voici les connexions à établir entre La Frite et l'ordinateur de bureau avec les deux câbles USB. Attention, il faut procéder dans un ordre spécifique selon que l'on veuille mettre à jour U-Boot ou téléverser le système d'exploitation. On note que le bloc d'alimentation n'est pas connecté à La Frite. Les ports USB de l'ordinateur Linux fournissent un courant suffisant pour compléter ces procédures.

Mettre à niveau U-Boot toc

Le téléversement d'un nouveau chargeur d'amorçage se fait avec un script Python qu'on retrouve sur le site GitHub de Libre Computer. Pour s'en servir il faut que Python 3, PyUSB et wget soient installés sur l'ordinateur de bureau. Python 3 et wget sont probablement déjà en place.

michel@hp:~$ sudo apt install wget python3 python3-usb ...

L'étape suivante requiert que l'on télécharge l'archive contenant le script et ses composants puis que l'on en extraie son contenu.

michel@hp:~$ wget https://github.com/libre-computer-project/pyamlboot/archive/gxl.zip ... 2019-12-11 19:17:56 (1,50 MB/s) - «gxl.zip» enregistré [2031996] michel@hp:~$ unzip gxl.zip Archive: gxl.zip ... inflating: pyamlboot-gxl/socid.py

Voici les étapes à suivre pour mettre à niveau U-Boot.

  1. Débrancher l'alimentation de La Frite et toutes les connexions USB.
  2. Retirer le module de mémoire eMMC qui se trouve côté recto de la carte. Cette étape n'est pas dans la marche à suivre du message sur le forum, mais on la retrouve sur la page d'accueil du site GitHub et elle s'est avérée nécessaire dans mon cas.
  3. Branchez l'adaptateur USB/UART à La Frite et à l'ordinateur
    • Connectez la partie UART de l'adaptateur aux broches appropriées du connecteur GPIO de La Frite.
    • Vérifiez quels périphériques USB sont déjà connectés à l'ordinateur Linux :
      michel@hp:~$ ls /dev/ttyUSB* /dev/ttyUSB1
    • Branchez le connecteur USB de l'adaptateur à l'ordinateur de bureau.
    • Obtenez le nom du nouveau périphérique USB maintenant connecté à l'ordinateur Linux.
    • Lancez un logiciel de communication comme Minicom, Screen ou Kermit en spécifiant le nom du nouveau périphérique et le baud.
      michel@hp:~$ ls /dev/ttyUSB* /dev/ttyUSB0 /dev/ttyUSB1 michel@hp:~$ minicom -D /dev/ttyUSB0 -b 115200
  4. Branchez un des connecteurs mâles du câble USB Type-A à Type-A à un port USB de l'ordinateur de bureau.
  5. Appuyez et gardez enfoncé le bouton U-Boot tout en branchant l'autre connecteur mâle du câble au port USB OTG de La Frite. C'est celui qui est le plus proche du connecteur GPIO de 40 broches.
  6. Relâchez le bouton-poussoir et vérifiez que La Frite est reconnue comme périphérique par l'ordinateur de bureau.
    michel@hp:~$ lsusb ... Bus 003 Device 012: ID 1b8e:c003 Amlogic, Inc. ...
  7. Lancez le script de téléversement sur l'ordinateur de bureau.
    michel@hp:~$ cd pyamlboot-gxl michel@hp:~/pyamlboot-gxl$ /flash-firmware.sh aml-s805x-ac --2019-12-10 17:59:15-- http://share.loverpi.com/board/libre-computer-project/libre-computer-board/aml-s805x-ac/firmware/latest.bin ... Running at 0xd9000000... [DONE] Firmware updater push to board. Check board for flashing status.

    Si l'on examine tout ce qu'affiche le script, on peut deviner qu'il télécharge la plus récente version de U-Boot, téléverse quelques fichiers provenant de l'archive et, enfin, il téléverse la nouvelle version de U-Boot vers La Frite. L'exécution est transférée à un script téléversé, flash-firmware.scr qui affiche sur le terminal de minicom ce qui suit:

    ## Executing script at 08000000 Detecting firmware storage. SF: Detected gd25lq128 with page size 256 Bytes, erase size 64 KiB, total 16 MiB Read new firmware. Reading existing firmware. ... Finished writing new firmware. The board can be safely powered off.
  8. Attendez le dernier message que l'on peut voir ci-dessus avant de débrancher les câbles de La Frite.
  9. Remettez le module de mémoire eMMC en place.

Voilà qui est assez simple: on télécharge une archive, on extrait son contenu et l'on exécute un script Python. Le script se charge d'obtenir la version la plus récente de U-Boot.

On peut installer le système d'exploitation directement dans le module eMMC de façon semblable.

Téléverser un système d'exploitation toc

Si l'on sait comment téléverser un système d'exploitation sur une carte (micro)SD pour une Raspberry Pi ou un autre ordinateur monocarte, alors on peut faire la même chose vers le module de mémoire eMMC. Voici comment procéder.

  1. Branchez le câble USB/UART.
    • Avant de faire le branchement, vérifiez quels périphériques USB sont déjà connectés à l'ordinateur Linux:
      michel@hp:~$ ls /dev/ttyUSB* /dev/ttyUSB1
    • Après le branchement du câble USB/UART, obtenez le nom du nouveau périphérique USB maintenant connecté à l'ordinateur Linux puis lancez un logiciel de communication comme Minicom, Screen ou Kermit en spécifiant le nom du nouveau périphérique et le baud.
      michel@hp:~$ ls /dev/ttyUSB* /dev/ttyUSB0 /dev/ttyUSB1 michel@hp:~$ minicom -D /dev/ttyUSB0 -b 115200
  2. Maintenant il faut brancher le câble USB Type A à Type A entre l'ordinateur Linux et La Frite en utilisant le port OTGle plus proche du connecteur GPIO de 40 broches. La Frite se met en marche lorsque ce deuxième câble USB est branché. On verra les nombreux messages du chargeur d'amorçage U-Boot défilés rapidement dans la fenêtre du logiciel de communication.
  3. Appuyez sur la touche Echap ou Esc selon le libellé du clavier quand un message propose de cliquer sur cette touche pour afficher le menu U-Boot.
    ... USB XHCI 1.00 USB1: scanning bus 0 for devices... 1 USB Device(s) found scanning bus 1 for devices... 1 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found Press ESC for menu. 0 Interrupt Key: 27 *** U-Boot Boot Menu *** Boot Boot USB Boot PXE Boot DHCP EtherealOS eMMC USB Drive Mode fastboot USB Mode Reboot U-Boot console Press UP/DOWN to move, ENTER to select

En pratique les messages de U-Boot s'affichent trop rapidement. Dès que La Frite se met en marche, on doit appuyer à répétition sur la touche d'échappement pour interrompre U-Boot avant qu'il ne procède au chargement du système d'exploitation. C'est l'équivalent de ce que l'on fait quand on tente d'accéder au BIOS d'un ordinateur personnel qu'on vient de mettre en marche ou que l'on a redémarré.

Minicom achemine le caractère ESC quand la touche du clavier est activée. Si un autre logiciel de communication n'en fait pas autant, on peut brancher un clavier USB dans l'autre port USB de La Frite et utiliser ce clavier pendant le démarrage de U-Boot pour obtenir le menu.

Si l'invite de la console de U-Boot => est affichée plutôt que le menu, entrez la commande bootmenu pour voir ce dernier.

Utilisez les flèches de curseur du clavier pour naviguer dans le menu. Attention, si l'on ne fait rien, Boot, sera lancée après 25 secondes d'attente. Si le choix eMMC USB Drive Mode n'est pas dans le menu il faut installer une version plus récente du chargeur d'amorçage selon la procédure décrite ci-dessus. Sinon, on doit choisir eMMC USB Drive Mode puis activer ce choix en appuyant sur la touche Entrée.

Quand on sélectionne eMMC USB Drive Mode dans le menu de U-Boot, ce dernier est remplacé par les messages suivants.

mmc@74000: 0 (eMMC) switch to partitions #0, OK mmc0(part 0) is current device Press Control-C to end USB Drive mode. USM: LUN 0, dev 0, hwpart 0, sector 0x0, count 0xe90000

L'alternance des obliques « \ » « / » mimique une icône en rotation indiquant qu'il ne se passe plus rien à cet écran.

On peut maintenant vérifier sur l'ordinateur Linux que la connexion USB avec La Frite fonctionne.

michel@hp:~$ lsusb ... Bus 003 Device 012: ID 1b8e:c003 Amlogic, Inc. ...

Sur mon système Ubuntu un message m'avisait aussi qu'un nouveau lecteur nommé SYSTEM avait été monté. Il s'agit d'une partition du module mémoire eMMC de La Frite qui s'affiche exactement comme une carte SD.

michel@hp:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT ... sdh 8:112 1 7,3G 0 disk ├─sdh1 8:113 1 255M 0 part ├─sdh2 8:114 1 6,3G 0 part /media/michel/SYSTEM └─sdh3 8:115 1 800M 0 part

Les experts, voir masochistes, peuvent se servir de dd pour mettre à jour le système d'exploitation, mais c'est bien plus simple d'utiliser balenaEtcher pour téléverser l'image vers le lecteur sdh. Le logiciel propose le bon lecteur d'emblée comme indiqué ci-dessous. Toutefois, il faut toujours vérifier qu'on a la bonne cible sinon on risque d'effacer le contenu d'un des disques durs de l'ordinateur de bureau.

Après deux ou trois minutes, l'écriture et la vérification sont complétées. Il faut débrancher le câble USB entre La Frite et l'ordinateur Linux avant de brancher La Frite sur son bloc d'alimentation.

Si le câble USB-UART et le clavier USB sont toujours en place, on pourra voir l'amorçage du système d'exploitation et à sa fin on pourra compléter l'enregistrement de l'utilisateur (le login). Il peut être nécessaire d'appuyer sur la touche Entrée une ou deux fois pour que l'invite du login s'affiche.

Le serveur SSH est démarré automatiquement dans la version de Debian téléversée. Alors on peut aussi ouvrir une session SSH depuis l'ordinateur Linux pour autant que La Frite soit reliée avec une connexion Ethernet au réseau local.

L'utilisateur initial et son mot de passe n'ont pas changé depuis juillet.

  1. utilisateur: libre
  2. mot de passe: computer

Network Manager et Wi-Fi toc

Comme auparavant, j'ai installé Network Manager pour prendre en charge le Wi-Fi. Les instructions antérieures sont encore valables à une exception près; Network Manager ne pouvait activer la connexion Wi-Fi.

J'ai trouvé le message d'erreur suivant

libre@la-frite:~$ dmeg ... [ 1526.489248] wlx08107746b1c3: authenticate with 00:fc:8d:4f:71:b8 [ 1526.504005] wlx08107746b1c3: send auth to 00:fc:8d:4f:71:b8 (try 1/3) [ 1526.507090] wlx08107746b1c3: authenticated [ 1531.510272] wlx08107746b1c3: aborting authentication with 00:fc:8d:4f:71:b8 by local choice (Reason: 3=DEAUTH_LEAVING) ...

Une recherche au sujet de Reason: 3=DEAUTH_LEAVING a révélé que le problème pouvait être associé à la longueur du « nom constant » attribué à l'interface. La raison d'être de cette convention est tout à fait valable, mais je ne voulais pas m'atteler à la tâche de définir un nom constant plus court. C'est plus simple de suspendre la politique en ajoutant net.ifnames=0 aux options de lancement du noyau.

libre@la-frite:~$ sudo nano /etc/default/grub
... GRUB_CMDLINE_LINUX_DEFAULT="noquiet net.ifnames=0" ...

Si l'on veut que Network Manager prenne en charge l'interface Ethernet il faut modifier son fichier de configuration

libre@la-frite:~$ sudo nano /etc/NetworkManager/NetworkManager.conf

pour changer la valeur de managed de false à true.

[main] plugins=ifupdown,keyfile [ifupdown] managed=true

Référence: netmui does not handle eth0 because it is defined in /etc/network/interfaces.

Les problèmes avec les adresses IP statiques mentionnés dans le billet précédent ne se manifestent pas. Est-ce à cause de la gestion des deux interfaces par Network Manager ou est-ce parce que Libre Computer améliore le système d'exploitation ?

Certains adaptateurs USB Wi-FI ne fonctionnaient pas sur un Raspberry Pi sous Raspbian Buster Lite. Ils utilisent les puces RTL8188EUS et RTL8188ETV de Realtek. Il n'y avait pas de difficultés avec la puce RTL8188CUS. Malgré le message suivant, peu prometteur,

libre@la-frite:~$ dmesg | grep r8188 [ 6.305338] r8188eu: module is from the staging directory, the quality is unknown, you have been warned. [ 6.409206] usbcore: registered new interface driver r8188eu

les trois puces semblent fonctionner correctement sur La Frite sous Debian Buster sans nécessiter l'installation de pilotes additionnels. À noter que chaque fois qu'on change d'adaptateur, il faut activer le Wi-Fi avec Network Manager de nouveau. Des vérifications plus poussées sur la performance du pilote r8188eu avec les trois puces seront faites plus tard.

Ensuite ? toc

La documentation s'améliore lentement. On a maintenant une description du connecteur GPIO de 40 broches.

Source: https://forum.loverpi.com/discussion/792/developer-guide-for-aml-s805x-ac-la-frite
Est-ce exact ? Il n'y a pas de Bluetooth sur ce dispositif.

Évidemment, ce n'est pas comparable à ce qu'on peut trouver sur le Web au sujet des divers Raspberry Pi. Ceci étant dit, il est agréable de voir que le fabricant continue le développement et ne s'en remet pas au projet Armbian comme semblent faire d'autres entreprises. La Frite est devenue un appareil que j'apprécie de plus en plus. Il m'a été possible de faire fonctionner le script Python pour une télécommande infrarouge que j'utilise actuellement avec le Orange Pi Zero avec un simple ajustement. Je vais continuer d'installer des logiciels sur La Frite et j'anticipe l'utiliser à la place du Orange Pi Zero dans mon système domotique d'ici bientôt pour mieux l'évaluer.

<-Avant-goût de La Frite (AML-S805X-AC) de Libre Computer --