un boîtier TV Amlogic S912 quelque peu décevant
Lorsque j'ai dégradé un boîtier TV Alfawise S92 en écrasant accidentellement Android sur sa mémoire flash eMMC, je me suis précipité pour le remplacer. J'ai opté pour un autre boîtier semblable basé sur le même processeur Amlogic S912. Cependant il était beaucoup moins cher. Or vous en avez pour votre argent... ou moins. Une version altérée de Kodi était préinstallée et fonctionnait. Les vidéos sur Amazon Prime pouvaient probablement être lues, mais Netflix ne fonctionnait certainement pas à une résolution de 1080p ; et peut-être pas du tout, je ne m'en souviens pas. L'utilisation des boîtiers Android TV bon marché est trop frustrante et, conséquemment, le nouveau boîtier TV n’a pratiquement jamais été utilisé. Néanmoins, j'ai acheté, il y a deux semaines, un troisième boîtier d'une nouvelle génération qui devrait être plus puisant, ce qui signifiait que la conversion du deuxième en un appareil Linux pouvait être tentée.
Ce billet sera le premier de deux consacrés à l'installation du système d'exploitation Armbian sur cet appareil. Dans cette première version, une image provenant de la Community Support for Amlogic TV Boxes (communauté Armbian des boîtiers TV ) est installée. Dans le deuxième billet, une image du référentiel Armbian for Amlogic TV Boxes par ophub sera installée. Ainsi on pourra voir ce qui différencie ces deux versions d'Armbian.
Table of Content
Connaissez votre boîtier TV
Le marché des lecteurs multimédias Android est une jungle. Il n’est pas toujours clair ce qui est vendu. Au fil des années, de nombreux fabricants ont proposé de très nombreux modèles de boîtiers TV de qualité variable. Pour compliquer encore les choses, il semble que des produits contrefaits soient proposés par des entreprises peu scrupuleuses. Le boîtier TV qui fait l’objet de cet article en est un bon exemple. Le vendeur, un magasin sur Aliexpress, est toujours en activité, mais il ne propose plus de boîtiers TV Amlogic S912. Cependant, une brève description de l’appareil a été conservée dans mon historique d'achat chez AliExpress.
Comme nous le verrons, cette description n’était pas exacte. Les choses ne se sont guère améliorées depuis 4 ans. Voici une photo de mon appareil à côté de l'image d'un dispositif avec le même logo actuellement proposée par un grossiste sur Alibaba. Le tableau contient la description complète de l'appareil fournie par le vendeur.
| Key attributes | |
|---|---|
| Processor Core | Quad Core |
| Support Resolution | 4k |
| WiFi | 802.11n 2.4G/5GHz |
| Other attributes | |
| Model Number | TX9 pro |
| Operation System | Android 7.1 |
| Features | android tv box |
| Processor | Amlogic S905W |
| Ethernet | 1 × 10/100MBps |
| Product Name | TX9pro Android Smart Tv Box |
| Processor | Amlogic S912 |
| RAM | 2GB |
| ROM | 16GB |
| CPU | S912 Octa-core cortex-A53 |
| Warranty | 3 years |
Apparemment, l'entreprise peut livrer 10 000 unités ou plus à 17,22 $US l'unité. Alors peut-être que le TX95 Pro est demeure disponible, mais que contient cet appareil ? Est-ce qu'il a un processeur Amlogic S905W avec quatre coeurs ou un S912 de huit coeurs ? D'ailleurs, même si l'appareil actuellement disponible chez ce grossiste est basé sur le S912, ce n'est pas exactement le même que mon TX95. Si l’on peut se fier à l’image du constructeur, l’indicateur DEL est tout autre. Il semble que j'ai acheté une « imitation » du Tanix TX9 Pro qui n'est plus fabriqué. La seule différence externe visible est le logo supérieur qui est TX9 Pro au lieux de Tanix. Cependant, le contenu des boîtes diffère considérablement. La description de la machine par le vendeur correspond assez bien au Tanix discontinué, alors qu'en réalité le (faux) TX9 a une radio WiFi qui ne prend en charge que la bande 2,8 GHz, l'Ethernet ne fonctionne qu'à 100 Mb/s et il n'y a pas de capacité Bluetooth. Voici quelques détails supplémentaires.
| Model | TX9 PRO (or TX9PRO-P per label on the underside of motherboard) | |
| Motherboard | CS_912_TX92_B8_V1.1 20190801 | |
| CPU | Amlogic S912X | info |
| RAM | 2 Gbyte with 4 × 512 Mbyte DDR3 K4B4G0846E-BYK0 | info |
| eMMC | Rayson RSE16TAA-16G | info |
| Wi-Fi | Realtek RTL8189ETV 802.11bgn 2.4GHz | info |
| Power | RT9045GSP | info |
| LED driver | FD628 | |
L'information suviante a été obtenue avec l'application Android AIDA64 (je conserve soigneusement Android dans la « ROM » pour le moment).
Une grande partie de ces données ont été collectées après l'installation d'Armbian, mais il aurait été préférable de le faire avant.
Installation d'Armbian
Suivez les instructions d'intallation de la communauté (de SteeMan en fait Installation Instructions for TV Boxes with Amlogic CPUs) et, avec un peu de chance, tout fonctionnera bien. D'ailleurs, obtenir les informations ci-dessus au sujet du boîtier TV a demandé plus de travail que l'installation d'Armbian. Fondamentalement, les étapes à suivre sont les suivantes.
- Téléchargez l’image correcte d'Armbian.
- Gravez le fichier image sur une bonne carte µSD.
- Montez la partition de démarrage.
- Configuration de l'image
- Placez la carte µSD dans le lecteur SD du boîtier TV et démarrez Armbian.
2.1 Obtenir l'image d'Armbian
Obtenez la dernière version stable des archives de la communauté. En décembre 2023, il s'agissait d'un fichier compressé nommé Armbian_23.11.1_Aml-s9xx-box_bookworm_current_6.1.63.img.xz. Notez qu'il s'agit d'une image « serveur » qui est l'équivalent de Raspberry Pi OS Lite. Il existe des éditions avec environnement bureau que je n'utiliserais pas sur un système aussi peu performant. Il existe aussi une version minimale encore plus petite (Armbian_23.11.1_Aml-s9xx-box_bookworm_current_6.1.63_minimal.img.xz) que je n'ai pas étudiée. Serait-ce l'équivalent du script minceur dietpi ?
Le référentiel contient également un fichier texte (Armbian_23.11.1_Aml-s9xx-box_bookworm_current_6.1.63.img.txt) qui reproduit la licence GPL précédée de l'information suivante.
Comme expliqué, il y a deux autres fichiers qui devraient être utilisés pour vérifier l'intégrité du fichier image compressé téléchargé.
2.2 Graver le fichier image sur une carte Micro SD
J'ai utilisé Etcher de balena pour copier le fichier image sur une carte µSD de bonne qualité. Il existe de nombreux tutoriels sur le Web expliquant comment procéder. Mon site en contient, mais ils sont probablement déjà désuets.
Il faut s'assurer de la bonne qualité de la carte SD. J'ai certainement appris ma leçon à ce sujet et je ne perdrai plus de temps avec des cartes douteuses. Cela dit, j'ai utilisé sans problème une carte µSD de provenance inconnue de 8 Go avec laquelle j'avais eu du succès auparavant.
2.3 Monter la partition de démarrage
Les informations supplémentaires indiquaient que l'image contient deux partitions à l'instar du système d'exploitation Raspberry Pi. Ainsi, la première partition de « démarrage » est de type FAT qui peut être modifié avec la plupart des ordinateurs capables de lire une carte SD. Le système d'exploitation Linux sur mon bureau a monté les deux partitions (armbi_boot et armbi_root) dès qu'Etcher a terminé sa tâche. Je soupçonne que sur les systèmes Windows, seule la partition de démarrage serait montée, car ces systèmes d'exploitation ne gèrent pas les partitions EXT4.
Pour continuer, il est nécessaire de modifier des fichiers dans la partition de démarrage. Si la partition de démarrage n'est pas montée, essayez de retirer la carte SD, puis de la réinsérer dans le lecteur de carte SD de l'ordinateur de bureau.
2.4 Modifiez un fichier de configuration file et créez un fichier de chargeur de démarrage selon les instructions.
La première chose à faire est de sélectionner l'image binaire de la bonne arborescence des périphériques, devicetree blob ou dtb, décrivant le matériel du système. C'est un peu la version libre du BIOS du système PC, sans l'interface graphique conviviale pour modifier les paramètres (voir Devicetree sur Wikipédia pour la distinction entre dts et dtb). Le fichier extlinux/extlinux.conf comporte une ligne spécifiant le nom du dtb à utiliser. Voici son contenu par défaut.
Le bon dtb pour mon faux TX95 se nomme meson-gxm-q201.dtb. C'est ainsi que j'ai modifié le fichier avec un éditeur de texte (Geany, mais cela pourrait être autre chose, même nano).
Attention, il ne peut y avoir qu'une ligne FTD dans le fichier, toutes les autres entrées sont en fait des commentaires puisque précédé d'un dièse. Pour terminer il faut configurer le bon chargeur de démarrage. Je l'ai fait depuis un terminal.
Bien entendu, la partition de démarrage sera montée ailleurs que /media/michel sur votre système. Si vous utilisez un autre processeur Amlogic, il faut peut-être un autre chargeur de démarrage. Encore une fois, SteeMan est votre guide pour faire le bon choix. Il propose une liste exhaustive des trois chargeurs de démarrage à utiliser en fonction du processeur.
2.5 Démarrez Armbian via la méthode dite du "cure-dent"
Il est toujours préférable de démonter les partitions de la carte SD avant de la retirer du lecteur de l'ordinateur de bureau. Dans Linux, on peut le faire depuis un terminal. Découvrez d’abord où les partitions sont montées, puis démontez chacune d’elles en utilisant son emplacement de périphérique ou son point de montage.
Cela peut être fait facilement et rapidement à partir du navigateur de fichiers de Linux Mint MATE en cliquant sur quelques icônes, un peu comme on le fait dans Windows.
Insérez maintenant la carte µSD dans le lecteur SD du boîtier TV. Il y a un petit trou entre le connecteur SPDIF et le connecteur USB-2 double. C'est ici qu'il faut insérer un cure-dent afin d'appuyer sur le bouton de démarrage sur la carte mère.
Avant de démarrer le système, il est préférable de connecter le boîtier TV au réseau local avec un câble Ethernet et probablement plus facile de connecter un moniteur ou un téléviseur avec un câble HDMI pour voir ce qui se passe. La connexion d'un clavier USB sera également utile, mais une souris n'est pas nécessaire. Avec le bouton de démarrage enfoncé, allumez le boîtier TV. Maintenez le bouton de démarrage enfoncé pendant quelques secondes. Si tout se passe bien, le boîtier TV démarrera sous Linux à partir de la carte SD. Après un temps considérable, pendant que le système de fichiers est étendu pour occuper tout l'espace disponible sur la carte µSD, l'écran suivant devrait apparaître.
Bien sûr, vous n’aurez peut-être pas autant de chance. Peut-être qu'une erreur a été commise lors de la configuration, peut-être que des composants différents ont été utilisés ou qu'une carte mère entièrement différente se trouve dans le boîtier. C’est là qu’il est judicieux d’exécuter au préalable un utilitaire tel que AIDA64 sur Android. Notez qu'on peut toujours récupérer carte µSD du boîtier TV et la réinsérer dans le lecteur SD du bureau pour modifier le fichier extlinux.conf ou changer le chargeur de démarrage. En revanche pour voir ce qui se passe pendant le démarrage, le mieux c'est de se connecter au port de débogage série.
Port de débogage série
En théorie, il n'est pas nécessaire de se connecter au port série de débogage. Toutefois, cela peut être très utile si l'on rencontre des problèmes lors de l'installation, surtout si l'on doit essayer plusieurs dtb. Dans mon cas, j'utilise cette connexion, car il n'est pas pratique de brancher un clavier et un moniteur HDMI. Heureusement, il se trouve que le port de débogage est présent sur les deux boîtiers TV basés sur la puce S192 que je possède.
Ouvrir le boîtier TV peut être un peu difficile. Il existe une vidéo YouTube intitulée TANIX TX3 Mini and TX9 Pro Opening Android TV BOX Amlogic S905W and S912 qui montre comment le faire en détail. Il y a quatre vis sous les pieds en caoutchouc. Le segment sur le TX9 Pro commence à 2m50 dans la vidéo de 13 minutes.
Une fois le fond du boîtier retiré, le port série est facilement identifié dans le coin entre le lecteur de carte SD et le connecteur SPDIF. Les signaux TX et RX sont identifiés par des étiquettes à l’envers, mais qu'importe les électrons circulent toujours dans la bonne direction comme diraient des YouTubers bien connus. Utilisez un convertisseur USB vers TTL pour connecter l'ordinateur de bureau au port. Comme d'habitude pour les ports série UART, il faut branché le signal TX d'un appareil au signal RX de l'autre appareil. Ne connectez pas l'alimentation Vcc de l'adaptateur USB-série à la broche 3,3 V de la carte mère. En revanche, il faut relier les masses ensemble. La configuration des plots est parfaite pour un connecteur mâle Dupont à 3 broches. Il n'est pas nécessaire de souder quoi que ce soit et il n'est pas nécessaire de retirer la carte mère du boîtier. Branchez l'adaptateur série USB sur le bureau, recherchez le périphérique créé (typiquement ttyUSBx sur Linux et COMx sur Windows) et ouvrez un terminal pour s'y connecter.
De nombreux autres programmes tels que miniterm, minicom, ou screen pourraient être utilisés à la place de cu qui est certes assez ancien et rarement utilisé aujourd'hui.
Premier démarrage
Le premier démarrage d'Armbian est inhabituel. Le mot de passe de root doit être défini et un compte utilisateur doit être créé. Cette première session est reproduite ci-dessous, mais sachez que si cela est effectué via le port de débogage série, le système affichera ses messages sur le port indépendamment de ce que l'utilisateur peut saisir. C'est déconcertant si cela se produit lors de la saisie d'un mot de passe ou d'un nom d'utilisateur. Ces messages systèmes ont été effacés ci-dessous.
Bien sûr, vous souhaiterez probablement un nom d’utilisateur autre que Jeeves et le fuseau horaire détecté ne sera probablement pas le même que le mien. Même si l'anglais n'est pas la langue de mon ordinateur de bureau et que j'utilise un clavier AZERTY, mes serveurs sans tête ne sont pas localisés, mais vous pouvez en décider autrement.
Une vérification de l'état du système montre qu'un service a échoué.
Le code de sortie status=17 signifie qu’il n’y a aucun lecteur à surveiller. Puisqu’aucun lecteur prenant en charge la technologie SMART n’est connecté, le service pourrait être désactivé.
Cependant, il peut être préférable de modifier la configuration au cas où un disque dur ou un disque SSD serait ajouté au système. À l'aide de deux rapports de bogues (Debian Bug report logs - #1006630 et Bug#1029210: smartmontools.service fails since bookworm), on peut rétablir l'ancien comportement de Debian en attendant la prochaine version de smartmontools en modifiant le fichier de service.
Il suffisait d’ajouter le paramètre -q never à la ligne ExecStart.
Au redémarrage du système, j'ai ouvert une session SSH en tant qu'utilisateur jeeves. D'ailleurs dès que le boîtier TV se connecte au réseau local, on peut en faire autant et le recours au port de débogage ne devrait plus être nécessaire.
Tout fonctionne, mais il y aura une vérification inutile de zéro appareils à intervalles de quatre heures. Si je ne me trompe pas, l'image Ubuntu (Armbian_23.11.1_Aml-s9xx-box_jammy_current_6.1.63.img) ne nécessite pas cet ajustement du fichier de service, car jammy contient une version plus ancienne de smartmontools rapport à la version en bookworm>.
Tous les services systemd fonctionnent et la vérification des interfaces réseau montre que l'Ethernet et le Wi-Fi sont disponibles, même si seule l'interface Ethernet est active.
Utilisez l'outil nmtui pour définir et activer une connexion sans fil si désirée. J'ai rapidement vérifié que cela fonctionnait.
À cette étape, il est opportun de mettre à jour le système.
Cette opération peut demander un temps considérable. La différence entre une interface à 1 Gb/s sur l'Alfawise S92 et une interface à 100 Mb/s sur le TX9 Pro devient évidente ici. Encore une fois, on en a pour son argent.
Suite
L'appareil peut fonctionner comme un petit serveur Linux, car les principaux périphériques sont pris en charge. Il y a une exception ennuyeuse ; l'affichage DEL sur le devant du boîtier est bloqué sur boot. Le projet linux_openvfd d'Arthur Liberman peut gérer le contrôleur de FD628 intégré, mais je ne vois pas comment l'ajouter au système d'exploitation, à moins de modifier son code source et puis recréer l'image Armbian. Cela dépasse mon échelle salariale. Cependant, amlogic-s9xxx-armbian contient openvfd. Cette version d'Armbian (en particulier Armbian 23.11.0-trunk Lunar avec Linux 6.1.60-ophub) fonctionne sur mon Alfawise S92 où il est possible d'activer l'indicateur DEL.
Dommage qu'il n'y ait pas d'affichage DEL sur l'Alfawise S92. Évidemment, la prochaine étape consiste à installer cette version d'Armbian sur le TX9 Pro pour voir si l'affichage DEL peut être transformé en horloge. En attendant, un morceau de ruban adhésif noir pour électricien résoudra bien le problème. Il remplacera le ruban Kapton déjà apposer sur l'écran qui, autrement, était beaucoup trop lumineux.
Turning an Amlogic S192 Android TV Box Into a Linux Appliance