2020-08-04
md
Transformer un lecteur multimédia avec SoC Amlogic S192 en un serveur Linux

 

 Armbian 22.08 - Ubuntu Jammy avec noyeau Linux 5.15.59 sur un Alfawise S92/Beelink GT1 

Fin 2019, j'expérimentais avec un Alfawise S92 qui est un lecteur multimédia roulant sous Android TV 7.1. J'ai réussi à installer Armbian 19.11.3 avec la version 5.3 du noyau Linux sur une carte SD. C'était plus ou moins un arrangement d'amorçage double: si la carte SD était dans le lecteur au démarrage, Linux était lancé, sinon Android démarrait à partir de la mémoire flash eMMC intégrée. Le résultat n'était pas entièrement satisfaisant principalement parce que je ne pouvais pas trouver une arborescence de périphériques pour l'image Armbian contenant un pilote Wi-Fi fonctionnel. Une fausse manoeuvre irréfléchie en jouant avec l'utilitaire armbian-config a écrasé Android sur la mémoire flash eMMC sans que j'ai sauvegardé la "ROM" auparavant. Je n'avais pas exactement transformé l'appareil en brique, mais il ne pouvait pas vraiment fonctionner comme serveur Linux à cause du manque de connectivité Wi-Fi et je ne pouvais pas restaurer la "ROM d'origine".

Etant du genre têtu, je suis revenu à la charge dernièrement et le moment n'aurait pas pu être plus opportun. Des personnes astucieuses avaient résolu le problème du Wi-Fi. Depuis quelques semaines, la « box TV » est un serveur Linux dédié à la domotique que je considérerais comme proche d'un Raspberry Pi 4 sinon meilleur pour ce qui est de cet usage.

Compte tenu de la difficulté d'obtenir un Raspberry Pi au cours des deux dernières années et de l'omniprésence des lecteurs multimédia Android, d'aucuns pourraient être tentés d'imiter ce qui est décrit ci-dessous. Veuillez noter que cet article n'est pas un ensemble d'instructions à suivre aveuglément. Au fil des années, de nombreux producteurs ont proposé de nombreux modèles de TV box de qualité variable. En effet, certains producteurs ont produit différentes cartes système avec différents composants sous le même numéro de modèle. Cela semble être le cas pour le Beelink GT1. Certains détaillants n'identifient pas correctement le processeur et presque aucun ne précise la puce Wi-Fi utilisée. Pour reprendre une expression éculée : votre kilométrage peut varier même si vous pensez avoir un dispositif basé sur le S192 d'Amlogic qui serait similaire à celui que j'ai achetée début 2017 et qui n'est, selon toute vraisemblance, plus disponible.

 

Table des matières

  1. Le matériel
  2. L'image Armbian
    1. Sélection de la bonne arborescence de périphériques
    2. Sélection du bon chargeur de démarrage
  3. Booting into Linux
  4. Update and Initial State of Linux
  5. Basic Fixes
  6. Optional Configuration
    1. Reduce Password Requests
    2. Set the Time Zone
    3. Enable mDns Advertising
    4. Change the Host Name
    5. Disable IR Remote Control
    6. Journalisation à distance
  7. Network Configuration
    1. Enable Wi-Fi
    2. Static IP for the Wireless Interface
    3. Cleaning Up the Network Configuration
  8. Move the OS Image to eMMC Storage
    1. Back Up the Configured Armbian Image
    2. Back Up the eMMC Storage
    3. Copy the OS to the eMMC Storage
  9. The End?
  10. References and Kudos

Matériel toc

L'achat de l'Alfawise S92 peu de temps après sa sortie fin 2016, ressemblait à une bonne affaire. Voici la conflagration de deux publicités sur l'appareil.

Alfawise S92 Specifications
SystèmeAndroid 6.0 Marshmallow (Mise à jour vers Android 7.1 Nougat possible)
CPUAmlogic S912 Octo core cortex A53 2.0Ghz (max) 64bit
GPUARM Mali-T820MP3 650Mhz avec résolution jusqu'à 4K
Mémoire2 Go - DDR3
StockageInterne : 16 Go eMMC
Externe : MicroSD 512 Go max
ConnectivitéEthernet : 1 Gigabit/sec
Wi-Fi : 802.11 a/b/g/n/ac, double bande 2.4/5Ghz
Bluetooth :4.0
USB2 x USB 2.0 (dont 1 OTG)
HDMI1 x HDMI 2.0
AV1 x SPDIF optique
IR1 x récepteur infrarouge
Dimensions110 mm carré x 18 mm thick
Poids175 gm
Alimentation10 watts (5V @ 2A)

Comme indiqué dans l'introduction, l'obtention de pilotes Linux pour certains des périphériques de la carte était un problème. Voici donc plus d'informations sur ceux de la version de septembre 2016 de la carte système étiquetée QII_V2.0_20160905.

Périphériques embarqués sur l'Alfawise S92
RadioAzureWave Aigale AW-CM273SM
EthernetRealtek RTL8211F
eMMCLongsys Electronics FORESEE NCEMBSF9-16G
IR56526 TI 65A

La source de ce dernier tableau est un message de Sparkx dans le forum Armbian. Je n'ai pas pu identifier le récepteur infrarouge sur ma carte ni trouver d'informations sur le numéro de pièce donné par Sparkx. Serait-ce un Atmel T2526 ? Plus problématique, je n'ai trouvé aucune fiche technique spécifique pour la puce AW-CM273SM.Wi-Fi/Bluetooth.

Un article de Jean-Luc Aufranc (CNXSoft) publié en septembre 2016 et intitulé Beelink GT1 4K TV Box Review – Part 1: Unboxing and Teardown contient des informations utiles. Pourquoi parler de cet appareil ? Parce que les photos de la carte et d'autres commentaires trouvés sur les forums Web ont confirmé que la carte Beelink GT1 (version initiale) et la carte Alfawise S92 sont très similaires. Le GT1 a un boîtier légèrement plus petit avec un dissipateur thermique différent pouvant accueillir une carte système légèrement plus petite. Mais les différences semblent minimes et le placement de tous les composants principaux semble être le même. De plus, les cartes partagent une marque de composant commun reconnue délivrée par Underwriters Laboratories à Shenzhen Huayan Huihai Electronic Co.un fabricant de PCB discret. Les deux cartes partagent le numéro de modèle HM.

Les puces radio Wi-Fi/Bluetooth causent de gros maux de tête à l'équipe Armbian. La documentation sur les puces utilisées par les fabricants de boîtiers TV peut être très rare. Heureusement, Aufranc a identifié les périphériques de connectivité du Beelink GT1 d'origine.

La connectivité filaire est réalisée via un émetteur-récepteur Realtek RTL8211F Gigabit Ethernet et le transformateur H2403N, tandis que 802.11ac et Bluetooth 4.0 sont réalisés avec une puce Aigale AW-CM273SM. C'est la première fois que je vois ce module, mais selon un site chinois il s'agit d'un remplacement compatible de la puce AP6335 d'Ampak.

Entre autres choses, la source chinoise a déclaré que la puce est compatible avec la version 4.1 de Bluetooth, qu'elle remplace complètement le Ap6335 et que la conception du module AW-CM273SM adopte la solution de la puce QCA9377. Cela explique les AP6335 et QCA9377 parfois vus dans les discussions entre développeurs. La bonne nouvelle est qu'il existe des pilotes Linux pour les cartes Wi-Fi/Bluetooth basées sur le AP6335 d'Ampak: AP6335 with mainline kernel, support for Ampak AP6255 (bcm43455c0 with SDIO device ID 0xa9bf), etc.

Beelink GT1
Vraisemblablement, Armbian pourrait être installé sur le Beelink GT1 en suivant les instructions présentées ci-dessous. Cependant, il semble qu'une puce Wi-Fi différente ait été utilisée dans certaines séries de production de cet appareil. Pour paraphraser la traduction automatique d'une note trouvée dans [ROM] Beelink GT1 / Alfawise S92 Superceleron BETA v1 Rom uniquement les GT1 avec un numéro de série qui commence par S912... utilisent le chipset wifi 9377 c'est à dire l'Aigale AW-CM273SM.

Sélection et modification de l'image Armbian toc

Maheureusement, les lecteurs multimédia ne sont pas pris en charge par l'équipe Armbian. Pire, balbes150, qui portait Armbian vers divers box TV, a cessé de prendre en charge les processeurs Amlogic en octobre 2020. Ses dernières images pour le S912 ayant été publiées 4 ans après l'introduction de l'Alfawise S92/Beelink GT1, j'ai pensé qu'il pourrait être intéressant d'essayer d'installer l'une d'entre elles. L'installation n'a pas été simple, mais c'est parce que j'avais laissé le S92 en désordre lors de mes expériences vieilles de plus de deux ans. Il fut nécessaire de réinstaller Android dans la mémoire flash eMMC. Dès lors, il était relativement simple d'installer Armbian sur une carte microSD. Cette fois, je me suis assuré d'éviter de copier l'image SD sur le flash eMMC. Un test rapide a semblé confirmer que les éléments importants fonctionnaient à l'exception du périphérique Wi-Fi (et vraisemblablement Bluetooth) même en utilisant arborescence de périphériques (c'est-à-dire le dtb ou devicetree blob) du Beelink GT1.

En cherchant un fichier dtb qui ajouterait automatiquement des capacités Wi-Fi, j'ai découvert le référentiel Armbian for Amlogic TV Boxes par ophub. Ce site GitHub a été lancé en septembre 2021 et est très souvent mis à jour par ophub qui semble avoir repris la tâche abandonnée par balbes150 mais pas dans l'environment Armbian. La très bonne nouvelle pour les propriétaires du Alfawise S92 était une annonce de danuzz Beelink GT1(S912, 2GB RAM, 16GM , QCA9377-wifi ) working with meson-gxm-beelink-gt1.dtb(150balbes) signalant une installation réussie d'Armbian sur un Beelink GT 1, avec Wi-Fi et Bluetooth fonctionnels. Remarquez comment il semble que l'arboresences dtb utilisé par 150balbes fonctionnait.

L'échange de messages entre ophub et danuzz montre clairement qu'un noyau très récent, 5.15.52 ou mieux, doit être utilisé. La première version de ce billet, rédigée en anglais décrit en détails l'installation de Armbian_22.08.0_Aml_s912_focal_5.15.52_server_2022.07.06.img faite le 8 ou 9 juillet. En général le résultat était satisfaisant. Cependant, je n'arrivais pas à mettre en place un élément important de mon système de domotique. Puis, un message de Paulo Mauricio m'apprenais que cette image n'était plus disponible dans le référentiel. En revanche, on y trouve l'image suivante disponible depuis le 31 juillet 2022. Armbian_22.08.0_Aml_s912_bullseye_5.15.59_server_2022.08.07.img.

Il y a aussi une distribution basée sur Debian que je n'ai pas testé.

Étant donné qu'ophub supprime les anciennes versions, il n'est probablement pas judicieux de mettre un lien direct vers cette version. A l'avenir, il faudra obtenir la plus récente image basée sur Ubuntu depuis la page releases du référentiel.

J'ai utilisé Balena Etcher pour écrire le fichier image sur une carte micro SD de 32 Go. Une fois l'image sur la carte, il était simple de retirer la carte et de la réinsérer sur mon ordinateur de bureau Linux. Les deux partitions de la carte ont ensuite été montées dans le système de fichiers de l'ordinateur automatiquement. J'ai ouvert un terminal dans la partition BOOT pour n'apporter que de petites modifications, comme expliqué ci-dessous. Puisque BOOT est une partition de type fat, les utilisateurs de Windows pourront faire la même chose sans problème.

Sélection de la bonne arborescence de périphériques toc

Le fichier de configuration extlinux doit être créé à partir d'un modèle.

michel@hp:/media/michel/BOOT$ nano extlinux/extlinux.conf.bak

label Armbian kernel /zImage initrd /uInitrd fdt /dtb/amlogic/meson-gxm-beelink-gt1.dtb append root=UUID=d7438465-50f5-4136-bbca-72deb63e37d2 rootflags=data=writeback rw rootfstype=ext4 console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 loglevel=1 voutmode=hdmi disablehpd=false overscan=100 sdrmode=auto

Seul le nom du fichier dtb doit être modifié dans ce fichier, mail il faut sauvegarder le fichier modifié sour un nouveau nom : extlinux/extlinux.conf.

michel@hp:/media/michel/BOOT$ ls -l extlinux total 8 -rw-r--r-- 1 michel michel 385 aoû 5 16:04 extlinux.conf -rw-r--r-- 1 michel michel 388 jui 29 22:54 extlinux.conf.bak

Cela pourrait être fait avec n'importe quel éditeur de texte graphique tel que Geany. J'ai rencontré des difficultés à cause d'espaces superflus après l'enregistrement ftd. Je ne me souviens pas si c'était pendant cette installation ou une précédente mais, pour éviter tout problème, assurez-vous de supprimer tous les espaces de fin de lignes.

L'arboresence de périphériques est aussi nommée dans le fichier de configuration uEnv.txt dans le répertoire à la racine de la partition BOOT.

LINUX=/zImage INITRD=/uInitrd FDT=/dtb/amlogic/meson-gxm-octopus-planet.dtb APPEND=root=UUID=f9a4ae8c-c557-4163-bfec-3b00a35a4f86 rootflags=data=writeback rw rootfstype=ext4 console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1

J'ai changé la valeur FDT à /dtb/amlogic/meson-gxm-beelink-gt1.dtb, mais pour autant que je sache, cela n'a pas d'importance à ce stade. Cependant, on peut voir que le script emmc_autoscript.cmd lit ce fichier et il peut être important de bien identifier l'arboresence losrque l'image sera déplacée vers la mémoire flash eMMC plus tard.

Sélection du bon chargeur de démarrage toc

L'image du système d'exploitation contient de nombreux chargeurs de démarrage (u-boot loaders). J'ai essayé d'utiliser u-boot-s905x-s912.bin comme avant sans succès. Selon danuzz, u-boot-zyxq doit être sélectionné. Il faut donc renommer le chargeur choisi en tant que u-boot.ext ou, comme indiqué ci-dessous, copier le fichier sous ce nom.

michel@hp:/media/michel/BOOT$ ls *bin u-boot-e900v22c.bin u-boot-n1.bin u-boot-s905.bin u-boot-sei610.bin u-boot-ugoos-x3.bin u-boot-gtking.bin u-boot-odroid-n2.bin u-boot-s905x2-s922.bin u-boot-tx3-bz.bin u-boot-x96max.bin u-boot-gtkingpro.bin u-boot-p201.bin u-boot-s905x-s912.bin u-boot-tx3-qz.bin u-boot-x96maxplus.bin u-boot-gtkingpro-rev-a.bin u-boot-p212.bin u-boot-sei510.bin u-boot-u200.bin u-boot-zyxq.bin michel@hp:/media/michel/BOOT$ cp u-boot-zyxq.bin u-boot.ext michel@hp:/media/michel/BOOT$ ls -l u-boot.ext u-boot-zyxq.bin -rw-r--r-- 1 michel michel 703444 aoû 5 16:18 u-boot.ext -rw-r--r-- 1 michel michel 703444 jui 29 22:54 u-boot-zyxq.bin

Cette dernière commande vérifie que u-boot.ext est bien u-boot-zyxq.bin.

C'est tout ce qu'il y a à faire pour préparer le système d'exploitation.

Démarrer sous Linux toc

Pour démarrer dans l'image Linux créée dans la section précédente, éjectez en toute sécurité la carte micro SD de l'ordinateur de bureau et insérez-la dans le lecteur de carte SD du lecteur multimédia qui n'est pas alimenté. Connectez un moniteur et un clavier USB au lecteur. Il est probablement préférable de se connecter au réseau local avec un câble Ethernet, mais ce n'est pas obligatoire à ce stade bien qu'il soit éventuellement nécessaire de se connecter au réseau local pour une éventuel utilisation et à l'Internet pour les mises à jour du système.

Serial debug port on S92 card De plus, j'ai connecté un adaptateur USB-série au port série de la console de débogage sur la carte système du lecteur avant de continuer. Ceci est entièrement facultatif, mais c'est avec cette connexion que la sortie du chargeur de démarrage et du noyau Linux a été enregistrée.

Si vous faites de même, la base doit être soigneusement retirée du boîtier. Cependant, il n'est pas nécessaire de retirer le circuit imprimé du boîtier et la connexion série peut être réalisée avec seulement trois fils Dupont mâles sans soudure. La photo montre le port qui se trouve à l'avant du boîtier en face du connecteur SPDIF optique à l'arrière. Ne connectez pas Vcc à l'adaptateur série USB et n'oubliez pas de connecter les signaux de transmission (Tx) et de réception (Rx) à leur numéro opposé sur l'adaptateur série USB. Branchez l'adaptateur série et trouvez le périphérique tty créé et ouvrez un terminal pour vous y connecter.

michel@hp:~$ ls /dev/ttyU* /dev/ttyUSB0 michel@hp:~$ cu -l /dev/ttyUSB0 -s 115200 Connected.

Allumez le lecteur multimédia; il démarrera sous Android comme d'habitude. Trouvez l'icône de l'application UPDATE&BACKUP.

Démarrez l'application et cliquez sur le bouton Update dans la section UpdateLocale (soit mise à jour locale).

Les noms et icônes exacts dépendront de la version d'Android installée sur le boîtier TV. Les messages suivants du chargeur de démarrage seront envoyés au port série de débogage.

GXM:BL1:dc8b51:76f1a5;FEAT:ADFC318C:0;POC:3;RCY:0;EMMC:0;READ:0;0.0;CHK:0; TE: 160569 BL2 Built : 20:32:17, Sep 8 2017. gxl g6296b83 - xiaobo.gu@droid12 set vdd cpu_a to 1120 mv set vdd cpu_b to 1050 mv set vddee to 1000 mv Board ID = 10 CPU clk: 1200MHz DQS-corr enabled DDR scramble enabled STICKY_REG0: 0x00000000 STICKY_REG1: 0x00000000 STICKY_REG9: 0x00000000 DDR3 chl: Rank0+1 @ 912MHz - PASS Rank0: 1024MB(auto)-2T-13 Rank1: 1024MB(auto)-2T-13 DataBus test pass! AddrBus test pass! -s Load fip header from eMMC, src: 0x0000c200, des: 0x01400000, size: 0x00004000 New fip structure! Load bl30 from eMMC, src: 0x00010200, des: 0x01100000, size: 0x0000d600 Load bl31 from eMMC, src: 0x00020200, des: 0x05100000, size: 0x0002c600 Load bl33 from eMMC, src: 0x00050200, des: 0x01000000, size: 0x00065800 NOTICE: BL3-1: v1.0(release):a625749 NOTICE: BL3-1: Built : 11:25:15, Aug 25 2017 NOTICE: BL31: BL33 decompress pass mpu_config_enable:ok [Image: gxl_v1.1.3243-377db0f 2017-09-07 11:28:58 qiufang.dai@droid07] OPS=0x82 wdt: reset registers! b7 6 15 cb 9a c7 1c 63 ae bf f2 b4 [0.393983 Inits done] secure task start! high task start! low task start! ERROR: Error initializing runtime service opteed_fast U-Boot 2015.01-g84dda8c (Jul 18 2018 - 19:08:03) DRAM: 2 GiB Relocation Offset is: 76eb4000 register usb cfg[0][1] = 0000000077f5b100 [CANVAS]canvas init boot_device_flag : 1 set wlan gpio pin 6. set bluetooth gpio pin 17. Nand PHY Ver:1.01.001.0006 (c) 2013 Amlogic Inc. init bus_cycle=6, bus_timing=7, system=5.0ns reset failed get_chip_type and ret:fffffffe get_chip_type and ret:fffffffe chip detect failed and ret:fffffffe nandphy_init failed and ret=0xfffffff1 MMC: aml_priv->desc_buf = 0x0000000073eb4790 aml_priv->desc_buf = 0x0000000073eb6ab0 SDIO Port B: 0, SDIO Port C: 1 emmc/sd response timeout, cmd8, status=0x1ff2800 emmc/sd response timeout, cmd55, status=0x1ff2800 init_part() 278: PART_TYPE_DOS [mmc_init] mmc init success dtb magic 00000000 Amlogic multi-dtb tool Cannot find legal dtb! start dts,buffer=0000000073eb9300,dt_addr=0000000073eb9300 check_valid_dts: FDT_ERR_BADMAGIC get_partition_from_dts: -9 get_ptbl_from_dtb()-259: get partition table from dts faild mmc_device_init()-1081: get partition table from dtb failed init_part() 278: PART_TYPE_DOS eMMC/TSD partition table have been checked OK! check pattern success mmc env offset: 0x27400000 In: serial Out: serial Err: serial reboot_mode=cold_boot [store]To run cmd[emmc dtb_read 0x1000000 0x40000] _verify_dtb_checksum()-917: calc c4a69d2e, store e980a194 dtb_read()-1034: cpy 1 is not valid _verify_dtb_checksum()-917: calc 378550b6, store bacf858d dtb_read()-1034: cpy 0 is not valid dtb_read()-1039: total valid 0 Amlogic multi-dtb tool Cannot find legal dtb! [store]Err:do_store_dtb_ops,L330:Fail in fdt check header board_late_init(): [store dtb read $dtb_mem_addr] fail load dtb to 1000000 [store]To run cmd[emmc dtb_read 1000000 0x40000] _verify_dtb_checksum()-917: calc c4a69d2e, store e980a194 dtb_read()-1034: cpy 1 is not valid _verify_dtb_checksum()-917: calc 378550b6, store bacf858d dtb_read()-1034: cpy 0 is not valid dtb_read()-1039: total valid 0 Amlogic multi-dtb tool Cannot find legal dtb! [store]Err:do_store_dtb_ops,L330:Fail in fdt check header board_late_init(): store dtb read 1000000 fail vpu: error: vpu: check dts: FDT_ERR_BADMAGIC, load default parameters vpu: clk_level = 7 vpu: set clk: 666667000Hz, readback: 666660000Hz(0x300) vpu: vpu_clk_gate_init_off vpp: vpp_init hpd_state=0 cvbs performance type = 6, table = 0 saradc: check dts: FDT_ERR_BADMAGIC, load default parameters saradc - saradc sub-system Usage: saradc saradc open - open a SARADC channel saradc close - close the SARADC saradc getval - get the value in current channel saradc get_in_range - return 0 if current value in the range of current channel SARADC closed. vpp: vpp_pq_load pq val error !!! Net: dwmac.c9410000[KM]Error:f[keymanage_dts_parse]L287:not a fdt at 0x0000000001000000 Start read misc partition datas! info->attemp_times = 0 info->active_slot = 0 info->slot_info[0].bootable = 1 info->slot_info[0].online = 1 info->slot_info[1].bootable = 0 info->slot_info[1].online = 0 info->attemp_times = 0 attemp_times = 0 active slot = 0 wipe_data=successful wipe_cache=successful upgrade_step=2 [OSD]check dts: FDT_ERR_BADMAGIC, load default fb_addr parameters [OSD]fb_addr for logo: 0x3d800000 [CANVAS]addr=0x3d800000 width=5760, height=2160 [KM]Error:f[keymanage_dts_parse]L287:not a fdt at 0x0000000001000000 gpio: pin GPIOAO_2 (gpio 102) value is 1 saradc: check dts: FDT_ERR_BADMAGIC, load default parameters InUsbBurn noSof Hit Enter or space or Ctrl+C key to stop autoboot -- : 0 card in init_part() 278: PART_TYPE_DOS [mmc_init] mmc init success Device: SDIO Port B Manufacturer ID: ad OEM: 4c53 Name: LX32G Tran Speed: 50000000 Rd Block Len: 512 SD version 3.0 1654 bytes read in 3 ms (538.1 KiB/s) ## Executing script at 01020000 start amlogic old u-boot ## Error: "bootfromsd" not defined reading boot_android ** Unable to read file boot_android ** ** Bad device usb 0 ** reading u-boot.ext 703444 bytes read in 42 ms (16 MiB/s) ## Starting application at 0x01000000 ... U-Boot 2021.07-rc3-00183-gd6e1cdad51-dirty (Jun 03 2021 - 09:41:29 +0800) octopus-planet Model: Octopus Planet SoC: Amlogic Meson GXM (S912) Revision 22:a (82:2) DRAM: 2 GiB MMC: mmc@72000: 0, mmc@74000: 1 Loading Environment from nowhere... OK In: serial Out: serial Err: serial [BL31]: tee size: 0 [BL31]: tee size: 0 Net: eth0: ethernet@c9410000 starting USB... Bus usb@c9000000: dwc3_meson_gxl_get_phys: usb2 ports: 3 Register 3000140 NbrPorts 3 Starting the controller USB XHCI 1.00 scanning bus usb@c9000000 for devices... 1 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found Hit any key to stop autoboot: 0 Device 0: unknown device switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... Found /extlinux/extlinux.conf Retrieving file: /extlinux/extlinux.conf 385 bytes read in 1 ms (376 KiB/s) 1: Armbian Retrieving file: /uInitrd 8075600 bytes read in 347 ms (22.2 MiB/s) Retrieving file: /zImage 26507776 bytes read in 1137 ms (22.2 MiB/s) append: root=UUID=21883054-f3f2-47ae-afd5-1bddc3a654ab rootflags=data=writeback rw rootfstype=ext4 console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 loglevel=1 voutmode=hdmi disablehpd=false overscan=100 sdrmode=auto Retrieving file: /dtb/amlogic/meson-gxm-beelink-gt1.dtb 30751 bytes read in 4 ms (7.3 MiB/s) ## Loading init Ramdisk from Legacy Image at 13000000 ... Image Name: uInitrd Image Type: AArch64 Linux RAMDisk Image (gzip compressed) Data Size: 8075536 Bytes = 7.7 MiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Flattened Device Tree blob at 08008000 Booting using the fdt blob at 0x8008000 Loading Ramdisk to 7b781000, end 7bf34910 ... OK Loading Device Tree to 000000007b776000, end 000000007b78081e ... OK Starting kernel ...

Aucun des messages ci-dessus ne s'affiche sur l'écran connecté au lecteur. À partir d'ici les messages de démarrage du noyeau s'afficheront sur le moniteur branché au lecteur ainsi que dans le terminal série.

[BL31]: tee size: 0 domain-0 init dvfs: 4 domain-1 init dvfs: 4 [ 8.228865] systemd[1]: Finished Create System Users. [ 8.239999] systemd[1]: Starting Create Static Device Nodes in /dev... [ 8.255913] systemd[1]: Finished Apply Kernel Variables. [ 8.296359] systemd[1]: Finished Create Static Device Nodes in /dev. [ 8.303122] systemd[1]: Reached target Preparation for Local File Systems. [ 8.317315] systemd[1]: Mounting /var/tmp... [ 8.332497] systemd[1]: Starting Rule-based Manager for Device Events and Files... [ 8.345546] systemd[1]: Mounted /var/tmp. [ 8.503791] systemd[1]: Started Rule-based Manager for Device Events and Files. [ 8.570980] systemd[1]: Finished Coldplug All udev Devices. [ 8.586879] systemd[1]: Starting Helper to synchronize boot up for ifupdown... [ 8.655205] random: systemd: uninitialized urandom read (16 bytes read) [ 8.661940] random: systemd: uninitialized urandom read (16 bytes read) [ 8.721525] random: systemd: uninitialized urandom read (16 bytes read) [ 8.735241] gpio-fan gpio-fan: GPIO fan initialized [ 8.802255] systemd[1]: Found device /dev/ttyAML0. [ 8.836653] Registered IR keymap rc-beelink-gs1 [ 8.854941] Bluetooth: Core ver 2.22 [ 8.858808] Bluetooth: Starting self testing [ 8.863249] IR NEC protocol handler initialized [ 8.880380] Bluetooth: ECDH test passed in 17225 usecs [ 8.890319] Bluetooth: SMP test passed in 5855 usecs [ 8.891656] debugfs: Directory 'c1105400.audio-controller' with parent 'GXM-BEELINK-GT1' already present! [ 8.894169] Bluetooth: Finished self testing [ 8.895471] rc rc1: meson-ir as /devices/platform/soc/c8100000.bus/c8100580.ir/rc/rc1 [ 8.895726] rc rc1: lirc_dev: driver meson-ir registered at minor = 0, raw IR receiver, no transmitter [ 8.895909] input: meson-ir as /devices/platform/soc/c8100000.bus/c8100580.ir/rc/rc1/input2 [ 8.896391] meson-ir c8100580.ir: receiver initialized [ 8.942038] NET: Registered PF_BLUETOOTH protocol family [ 8.947472] Bluetooth: HCI device and connection manager initialized [ 8.953671] Bluetooth: HCI socket layer initialized [ 8.958549] Bluetooth: L2CAP socket layer initialized [ 8.959442] debugfs: File 'HDMITX Capture' in directory 'dapm' already present! [ 8.963433] Bluetooth: SCO socket layer initialized [ 9.015549] panfrost d00c0000.gpu: clock rate = 24000000 [ 9.019434] panfrost d00c0000.gpu: dev_pm_opp_set_regulators: no regulator (mali) found: -19 [ 9.034217] meson_vdec: module is from the staging directory, the quality is unknown, you have been warned. [ 9.036742] panfrost d00c0000.gpu: mali-t820 id 0x820 major 0x1 minor 0x0 status 0x0 [ 9.053691] panfrost d00c0000.gpu: features: 00000000,101e76ff, issues: 00000000,24040400 [ 9.061656] panfrost d00c0000.gpu: Features: L2:0x07110206 Shader:0x00000000 Tiler:0x00000809 Mem:0x1 MMU:0x00002821 AS:0xff JS:0x7 [ 9.073398] panfrost d00c0000.gpu: shader_present=0x7 l2_present=0x1 [ 9.088746] [drm] Initialized panfrost 1.2.0 20180908 for d00c0000.gpu on minor 1 [ 9.112788] systemd[1]: Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch. [ 9.180392] Bluetooth: HCI UART driver ver 2.3 [ 9.180412] Bluetooth: HCI UART protocol H4 registered [ 9.180417] Bluetooth: HCI UART protocol BCSP registered [ 9.180547] Bluetooth: HCI UART protocol LL registered [ 9.180555] Bluetooth: HCI UART protocol ATH3K registered [ 9.180616] Bluetooth: HCI UART protocol Three-wire (H5) registered [ 9.181144] Bluetooth: HCI UART protocol Intel registered [ 9.181648] Bluetooth: HCI UART protocol Broadcom registered [ 9.181888] hci_uart_bcm serial0-0: supply vbat not found, using dummy regulator [ 9.182152] hci_uart_bcm serial0-0: supply vddio not found, using dummy regulator [ 9.237381] Driver 'hci_uart_qca' needs updating - please use bus_type methods [ 9.237585] Bluetooth: HCI UART protocol QCA registered [ 9.239586] cfg80211: Loading compiled-in X.509 certificates for regulatory database [ 9.259861] Bluetooth: HCI UART protocol AG6XX registered [ 9.259990] Bluetooth: HCI UART protocol Marvell registered [ 9.351846] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' [ 9.425498] Bluetooth: hci0: BCM: failed to write update baudrate (-56) [ 9.427588] systemd[1]: Starting Load/Save RF Kill Switch Status... [ 9.430351] Bluetooth: hci0: Failed to set baudrate [ 9.476434] systemd[1]: Reached target Bluetooth Support. [ 9.489830] systemd[1]: Started Load/Save RF Kill Switch Status. [ 9.597683] systemd[1]: Condition check resulted in Dispatch Password Requests to Console Directory Watch when bootsplash is active being skipped. [ 9.613296] systemd[1]: Condition check resulted in Kernel Trace File System being skipped. [ 9.615894] Bluetooth: hci0: BCM: Read verbose config info failed (-56) [ 9.618509] random: crng init done [ 9.618536] random: 119 urandom warning(s) missed due to ratelimiting [ 9.629004] systemd[1]: Starting Load Kernel Module chromeos_pstore... [ 9.658197] systemd[1]: Starting Load Kernel Module efi_pstore... [ 9.669731] systemd[1]: Starting Load Kernel Module mtdpstore... [ 9.681011] systemd[1]: Starting Load Kernel Module pstore_blk... [ 9.687620] ath10k_sdio mmc1:0001:1: qca9377 hw1.1 sdio target 0x05020001 chip_id 0x00000000 sub 0000:0000 [ 9.692910] systemd[1]: Starting Load Kernel Module pstore_zone... [ 9.707917] ath10k_sdio mmc1:0001:1: kconfig debug 0 debugfs 0 tracing 0 dfs 1 testmode 0 [ 9.725341] ath10k_sdio mmc1:0001:1: firmware ver WLAN.TF.1.1.1-00061-QCATFSWPZ-1 api 5 features ignore-otp crc32 7746e551 [ 9.745435] systemd[1]: Starting Load Kernel Module ramoops... [ 9.758048] systemd[1]: Finished Load/Save Random Seed. [ 9.767434] systemd[1]: modprobe@chromeos_pstore.service: Deactivated successfully. [ 9.774470] systemd[1]: Finished Load Kernel Module chromeos_pstore. [ 9.786203] systemd[1]: modprobe@efi_pstore.service: Deactivated successfully. [ 9.792828] systemd[1]: Finished Load Kernel Module efi_pstore. [ 9.804763] systemd[1]: modprobe@mtdpstore.service: Deactivated successfully. [ 9.811247] systemd[1]: Finished Load Kernel Module mtdpstore. [ 9.823212] systemd[1]: modprobe@pstore_blk.service: Deactivated successfully. [ 9.829806] systemd[1]: Finished Load Kernel Module pstore_blk. [ 9.841702] systemd[1]: modprobe@pstore_zone.service: Deactivated successfully. [ 9.848286] systemd[1]: Finished Load Kernel Module pstore_zone. [ 9.860397] systemd[1]: modprobe@ramoops.service: Deactivated successfully. [ 9.866638] systemd[1]: Finished Load Kernel Module ramoops. [ 9.887472] ath10k_sdio mmc1:0001:1: failed to fetch board data for bus=sdio,vendor=0271,device=0701,subsystem-vendor=0000,subsystem-device=0000 from ath10k/QCA9377/hw1.0/board-2.bin [ 9.903464] systemd[1]: Found device /dev/disk/by-label/BOOT. [ 9.910974] ath10k_sdio mmc1:0001:1: board_file api 1 bmi_id N/A crc32 544289f7 [ 9.925370] systemd[1]: Condition check resulted in First Boot Complete being skipped. [ 9.936488] systemd[1]: Starting File System Check on /dev/disk/by-label/BOOT... [ 9.945216] systemd[1]: Condition check resulted in Platform Persistent Storage Archival being skipped. [ 9.966381] systemd[1]: Started File System Check Daemon to report status. [ 9.987740] systemd[1]: Found device /sys/subsystem/net/devices/eth0. [ 9.997335] systemd[1]: Finished Helper to synchronize boot up for ifupdown. [ 10.110680] systemd[1]: Finished File System Check on /dev/disk/by-label/BOOT. [ 10.132196] systemd[1]: Mounting /boot... [ 11.015581] meson-gx-mmc d0070000.mmc: unaligned sg offset 3148, disabling descriptor DMA for transfer [ 11.059694] ath10k_sdio mmc1:0001:1: htt-ver 3.32 wmi-op 4 htt-op 3 cal otp max-sta 32 raw 0 hwcrypto 1 [ 11.145368] mmc1: queuing unknown CIS tuple 0x01 [d9 01 ff] (3 bytes) [ 11.159593] mmc1: queuing unknown CIS tuple 0x1a [01 01 00 02 07] (5 bytes) [ 11.173504] mmc1: queuing unknown CIS tuple 0x1b [c1 41 30 30 ff ff 32 00] (8 bytes) [ 11.179745] mmc1: queuing unknown CIS tuple 0x14 [] (0 bytes) [ 11.274448] systemd[1]: Mounted /boot. [ 11.284290] systemd[1]: Reached target Local File Systems. [ 11.299371] systemd[1]: Starting Armbian leds state... [ 11.312491] systemd[1]: Starting Armbian ZRAM config... [ 11.326217] systemd[1]: Starting Set console font and keymap... [ 11.339592] systemd[1]: Started ifup for eth0. [ 11.351645] systemd[1]: Starting Raise network interfaces... [ 11.358352] systemd[1]: Condition check resulted in RPC security service for NFS server being skipped. [ 11.372792] systemd[1]: Starting Mark the need to relabel after reboot... [ 11.399194] systemd[1]: Condition check resulted in Set Up Additional Binary Formats being skipped. [ 11.408665] systemd[1]: Condition check resulted in Store a System Token in an EFI Variable being skipped. [ 11.418838] systemd[1]: Condition check resulted in Commit a transient machine-id on disk being skipped. [ 11.441488] systemd[1]: Finished Mark the need to relabel after reboot. [ 11.465980] systemd[1]: Finished Armbian leds state. [ 11.873913] zram: Added device: zram0 [ 11.878881] zram: Added device: zram1 [ 11.883599] zram: Added device: zram2 [ 12.114872] zram0: detected capacity change from 0 to 1979624 [ 12.160320] Adding 989808k swap on /dev/zram0. Priority:5 extents:1 across:989808k SSFS [ 12.338559] meson8b-dwmac c9410000.ethernet eth0: PHY [0.2009087f:00] driver [RTL8211F Gigabit Ethernet] (irq=49) [ 12.366748] zram1: detected capacity change from 0 to 102400 [ 12.389447] meson8b-dwmac c9410000.ethernet eth0: Register MEM_TYPE_PAGE_POOL RxQ-0 [ 12.405125] meson8b-dwmac c9410000.ethernet eth0: No Safety Features support found [ 12.410031] meson8b-dwmac c9410000.ethernet eth0: PTP not supported by HW [ 12.417233] meson8b-dwmac c9410000.ethernet eth0: configuring for phy/rgmii link mode [ 12.483476] zram2: detected capacity change from 0 to 1979624 [ 12.590403] EXT4-fs (zram2): mounted filesystem without journal. Opts: discard. Quota mode: none. [ 12.631008] systemd[1]: Finished Armbian ZRAM config. [ 12.657308] systemd[1]: Starting Armbian memory supported logging... [ 12.854396] EXT4-fs (zram1): mounted filesystem without journal. Opts: discard. Quota mode: none. [ 15.706324] meson8b-dwmac c9410000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx [ 15.715325] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 16.213813] systemd[1]: systemd-rfkill.service: Deactivated successfully. [ 16.324804] systemd[1]: Finished Armbian memory supported logging. [ 16.348105] systemd[1]: Starting Journal Service... [ 16.611736] systemd[1]: Started Journal Service. [ 16.662165] systemd-journald[939]: Received client request to flush runtime journal. [ 21.156687] NFSD: Using nfsdcld client tracking operations. [ 21.159525] NFSD: no clients to reclaim, skipping NFSv4 grace period (net f0000000)

L' écran de connexion Armbian s'affichera à l'écran, mais il sera immédiatement effacé et un message de bienvenue très simple s'affichera. Cet écran n'apparaît qu'une seule fois pour créer un compte utilisateur.

Welcome to ARMBIAN! Documentation: https://docs.armbian.com | Community: https://forum.armbian.com Create root password:

Si la configuration est interrompue avant que le mot de passe de root ne soit défini, il peut être nécessaire de se reconnecter, auquel cas le mot de passe de root par défaut devra être saisi. C'est 1234.

Répondez aux invites à l'écran, fournissez un nouveau mot de passe pour root et créez un compte utilisateur. Comme on peut le voir ci-dessous, je l'ai fait en utilisant la connexion série de débogage afin d'enregistrer ce qui se passait, mais tout cela peut être fait avec le clavier connecté au lecteur.

Welcome to ARMBIAN! Documentation: https://docs.armbian.com | Community: https://forum.armbian.com Create root password: ******** Repeat root password: ******** Choose default system command shell: 1) bash 2) zsh 1 pas montré à l'écran Shell: BASH Creating a new user account. Press <Ctrl-C> to abort Please provide a username (eg. your first name): tucky Create user (tucky) password: ******** Repeat user (tucky) password: ******** Please provide your real name: Tucker Dear Tucker, your account tucky has been created and is sudo enabled. Please use this account for your daily work from now on. Internet connection was not detected. Connect via wireless? [Y/n] n pas montré à l'écran il y une courte pause, alors que le système tente de détecter le fuseau horaire Detected timezone: Set user language based on your location? [Y/n] n pas montré à l'écran At your location, more locales are possible: 1) aa_DJ.UTF-8 78) et_EE.UTF-8 2) af_ZA.UTF-8 79) et_EE.UTF-8 ... 76) es_UY.UTF-8 153) zu_ZA.UTF-8 77) es_VE.UTF-8 154) Skip generating locales Please enter your choice: 154 pas montré à l'écran

Je ne prends pas la peine de configurer les paramètres régionaux (locale) pour les petits serveurs Linux lorsqu'ils sont exécutés de manière "sans tête". À ce stade, je n'ai pas pu résister et j'ai jeté un coup d'œil aux interfaces réseau.

root@armbian:~# systemctl status
● armbian
    State: degraded
     Jobs: 0 queued
   Failed: 1 units
    Since: Thu 1970-01-01 08:00:05 CST; 52 years 7 months ago
   CGroup: /
           ├─user.slice
           │ └─user-0.slice
           │   ├─session-6.scope
...

root@armbian:~# systemctl | grep failed
● networking.service                                                                                           loaded failed failed    Raise network interfaces


root@armbian:~# ip a
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: sit0@NONE:  mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/sit 0.0.0.0 brd 0.0.0.0
3: ip6tnl0@NONE:  mtu 1452 qdisc noop state DOWN group default qlen 1000
    link/tunnel6 :: brd :: permaddr b627:8610:fd95::
4: eth0:  mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 9e:61:45:b7:f2:aa brd ff:ff:ff:ff:ff:ff permaddr 6a:b7:fc:4f:8e:8e
    inet 192.168.0.154/24 brd 192.168.0.255 scope global dynamic noprefixroute eth0
       valid_lft 1457sec preferred_lft 1457sec
5: wlan0:  mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether f0:03:8c:19:d7:37 brd ff:ff:ff:ff:ff:ff

2 eth interfaces with but Ifupdown (eth0) is the one used by the system and it cannot be admistered with

root@armbian:~# sudo apt update; sudo apt upgrade -y
Hit:1 http://ports.ubuntu.com jammy InRelease
Get:2 http://ports.ubuntu.com jammy-security InRelease [110 kB]
Get:3 http://ports.ubuntu.com jammy-updates InRelease [114 kB]
Get:4 http://ports.ubuntu.com jammy-backports InRelease [99.8 kB]
Get:5 http://ports.ubuntu.com jammy-security/main arm64 Packages [287 kB]
Get:6 http://ports.ubuntu.com jammy-security/main armhf Packages [192 kB]
Get:7 http://ports.ubuntu.com jammy-security/universe armhf Packages [80.5 kB]
Get:8 http://ports.ubuntu.com jammy-security/universe arm64 Packages [121 kB]
Get:9 http://ports.ubuntu.com jammy-updates/universe arm64 Packages [244 kB]
Get:10 http://ports.ubuntu.com jammy-updates/main arm64 Packages [587 kB]
Get:11 http://ports.ubuntu.com jammy-updates/main armhf Packages [466 kB]
Get:12 http://ports.ubuntu.com jammy-updates/universe armhf Packages [203 kB]
Fetched 2,505 kB in 5s (514 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
1 package can be upgraded. Run 'apt list --upgradable' to see it.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  libgnutls30
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 925 kB of archives.
After this operation, 16.4 kB disk space will be freed.
Get:1 http://ports.ubuntu.com jammy-security/main arm64 libgnutls30 arm64 3.7.3-4ubuntu1.1 [925 kB]
Fetched 925 kB in 2s (449 kB/s)
(Reading database ... 36039 files and directories currently installed.)
Preparing to unpack .../libgnutls30_3.7.3-4ubuntu1.1_arm64.deb ...
Unpacking libgnutls30:arm64 (3.7.3-4ubuntu1.1) over (3.7.3-4ubuntu1) ...
Setting up libgnutls30:arm64 (3.7.3-4ubuntu1.1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.1) ...


root@armbian:~# uname -a
Linux armbian 5.15.59-flippy-75+o #149 SMP PREEMPT Wed Aug 3 23:54:37 CST 2022 aarch64 aarch64 aarch64 GNU/Linux
root@armbian:~# cat /etc/debian_version
bookworm/sid
root@armbian:~# cat /etc/armbian-image-release
# PLEASE DO NOT EDIT THIS FILE
BOARD=odroidn2
BOARD_NAME="Odroid N2"
BOARDFAMILY=meson-g12b
BUILD_REPOSITORY_URL=https://github.com/armbian/build.git
BUILD_REPOSITORY_COMMIT=97c6e5e
VERSION=22.08.0-trunk
LINUXFAMILY=meson64
ARCH=arm64
IMAGE_TYPE=stable
BOARD_TYPE=conf
INITRD_ARCH=arm64
KERNEL_IMAGE_TYPE=Image
IMAGE_UUID=912ffc70-834d-4ebb-9374-af5ecd760441
root@armbian:~# cat /etc/armbian-release
# PLEASE DO NOT EDIT THIS FILE
BOARD=odroidn2
BOARD_NAME="Aml s912"
BOARDFAMILY=meson-g12b
BUILD_REPOSITORY_URL=https://github.com/armbian/build.git
BUILD_REPOSITORY_COMMIT=97c6e5e
VERSION=22.08.0-trunk
LINUXFAMILY=meson64
ARCH=arm64
IMAGE_TYPE=stable
BOARD_TYPE=conf
INITRD_ARCH=arm64
KERNEL_IMAGE_TYPE=Image
root@armbian:~# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.1 LTS"
root@armbian:~# cat /etc/ophub-release
VERSION_CODEID='ubuntu'
VERSION_CODENAME='jammy'
FDTFILE='meson-gxm-octopus-planet.dtb'
UBOOT_OVERLOAD='u-boot-zyxq.bin'
MAINLINE_UBOOT='/usr/lib/u-boot/'
ANDROID_UBOOT='/usr/lib/u-boot/'
KERNEL_VERSION='5.15.59'
SOC='s912'
K510='0'
PACKAGED_DATE='2022-08-07'
root@armbian:~# cat /etc/os-release
PRETTY_NAME="Armbian 22.08.0-trunk Jammy"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.1 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
root@armbian:~# cat /etc/issue.net
Armbian 22.08.0-trunk Jammy
root@armbian:~#

root@armbian:~# free -h
               total        used        free      shared  buff/cache   available
Mem:           1.9Gi       168Mi       1.3Gi       3.0Mi       410Mi       1.6Gi
Swap:          966Mi          0B       966Mi
root@armbian:~# lsblk
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
mmcblk1      179:0    0  14.8G  0 disk
├─mmcblk1p1  179:1    0   255M  0 part /boot
└─mmcblk1p2  179:2    0   2.5G  0 part /var/log.hdd
                                       /
mmcblk2      179:32   0  14.5G  0 disk
├─mmcblk2p1  179:33   0   511M  0 part
└─mmcblk2p2  179:34   0  13.7G  0 part
mmcblk2boot0 179:64   0     4M  1 disk
mmcblk2boot1 179:96   0     4M  1 disk
zram0        254:0    0 966.6M  0 disk [SWAP]
zram1        254:1    0    50M  0 disk /var/log
zram2        254:2    0 966.6M  0 disk /var/tmp
root@armbian:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           194M  3.3M  191M   2% /run
/dev/mmcblk1p2  2.4G  1.4G  1.0G  58% /
tmpfs           967M     0  967M   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
/dev/zram2      950M  128K  885M   1% /var/tmp
/dev/mmcblk1p1  255M  102M  154M  40% /boot
/dev/zram1       47M  1.5M   42M   4% /var/log
tmpfs           194M     0  194M   0% /run/user/0

root@armbian:~# sudo reboot
Connection to 192.168.0.154 closed by remote host.
Connection to 192.168.0.154 closed.
michel@hp:~$ ping 192.168.0.154
PING 192.168.0.154 (192.168.0.154) 56(84) bytes of data.
64 octets de 192.168.0.154 : icmp_seq=1 ttl=64 temps=1.10 ms
64 octets de 192.168.0.154 : icmp_seq=2 ttl=64 temps=0.581 ms
64 octets de 192.168.0.154 : icmp_seq=3 ttl=64 temps=0.600 ms
64 octets de 192.168.0.154 : icmp_seq=4 ttl=64 temps=0.619 ms
^C
--- statistiques ping 192.168.0.154 ---
4 paquets transmis, 4 reçus, 0 % paquets perdus, temps 3051 ms
rtt min/moy/max/mdev = 0,581/0,726/1,104/0,218 ms
michel@hp:~$ ssh nestor@192.168.0.154
nestor@192.168.0.154's password:
    _              _        ___  _ ____
   / \   _ __ ___ | |  ___ / _ \/ |___   / _ \ | '_ ` _ \| | / __| (_) | | __) |
 / ___ \| | | | | | | \__ \\__, | |/ __/
/_/   \_\_| |_| |_|_| |___/  /_/|_|_____|

Welcome to Armbian 22.08.0-trunk Jammy with Linux 5.15.59-flippy-75+o

System load:   16%           	Up time:       0 min
Memory usage:  9% of 1.89G  	IP:	       192.168.0.154
CPU temp:      51°C           	Usage of /:    58% of 2.4G
RX today:      5.3 MiB

To run a command as administrator (user "root"), use "sudo ".
See "man sudo_root" for details.

nestor@armbian:~$ systemctl | grep failed
nestor@armbian:~$ systemctl status
● armbian
    State: running
     Jobs: 0 queued
   Failed: 0 units
    Since: Thu 1970-01-01 08:00:06 CST; 52 years 7 months ago
   CGroup: /
           ├─user.slice
           │ └─user-1000.slice
           │   ├─user@1000.service
           │   │ └─init.scope
           │   │   ├─2070 /lib/systemd/systemd --user
           │   │   └─2071 (sd-pam)
           │   └─session-2.scope
           │     ├─2067 sshd: nestor [priv]
           │     ├─2233 sshd: nestor@pts/0
           │     ├─2234 -bash
           │     ├─2286 systemctl status
           │     └─2287 pager
           ├─init.scope
           │ ├─  1 /sbin/init
           │ └─328 bpfilter_umh
           └─system.slice
             ├─haveged.service
             │ └─1031 /usr/sbin/haveged --Foreground --verbose=1
             ├─systemd-udevd.service
             │ └─506 /lib/systemd/systemd-udevd
             ├─cron.service
             │ └─1644 /usr/sbin/cron -f -P
             ├─system-serial\x2dgetty.slice
             │ └─serial-getty@ttyAML0.service
             │   └─1874 /sbin/agetty -o -p -- \u --keep-baud 115200,57600,38400,9600 ttyAML0 linux
             ├─nfs-mountd.service
             │ └─1865 /usr/sbin/rpc.mountd
             ├─networkd-dispatcher.service
             │ └─1655 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers
             ├─nfsdcld.service
             │ └─1053 /usr/sbin/nfsdcld
             ├─wpa_supplicant.service
             │ └─1677 /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant
             ├─systemd-journald.service
             │ └─1027 /lib/systemd/systemd-journald
             ├─unattended-upgrades.service
             │ └─1863 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal
             ├─ssh.service
             │ └─1884 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
             ├─NetworkManager.service
             │ └─1650 /usr/sbin/NetworkManager --no-daemon
             ├─rpc-statd.service
             │ └─1864 /sbin/rpc.statd
             ├─nfs-blkmap.service
             │ └─1039 /usr/sbin/blkmapd
             ├─rsyslog.service
             │ └─1662 /usr/sbin/rsyslogd -n -iNONE
             ├─vnstat.service
             │ └─1866 /usr/sbin/vnstatd -n
             ├─rpcbind.service
             │ └─1032 /sbin/rpcbind -f -w
             ├─chrony.service
             │ ├─1879 /usr/sbin/chronyd -F 1
             │ └─1885 /usr/sbin/chronyd -F 1
             ├─nfs-idmapd.service
             │ └─1043 /usr/sbin/rpc.idmapd
             ├─smartmontools.service
             │ └─1671 /usr/sbin/smartd -n
             ├─systemd-resolved.service
             │ └─1033 /lib/systemd/systemd-resolved
             ├─dbus.service
             │ └─1648 @dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
             ├─system-getty.slice
             │ └─getty@tty1.service
             │   └─1881 /sbin/agetty -o -p -- \u --noclear tty1 linux
             ├─ifup@eth0.service
             │ └─755 /sbin/dhclient -1 -4 -v -i -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases -I -df /var/lib>
             └─systemd-logind.service
               └─1676 /lib/systemd/systemd-logind

still 2 eth0 profiles

edit the eth0 profile for a static IP address and make sure autoconnect is enabled.

nestor@armbian:/etc/network$ ls
if-down.d  if-post-down.d  if-pre-up.d  if-up.d  interfaces  interfaces.d  interfaces.default

nestor@armbian:/etc/network$ ls
if-down.d  if-post-down.d  if-pre-up.d  if-up.d  interfaces  interfaces.d  interfaces.default
nestor@armbian:/etc/network$ sudo mv interfaces interfaces.delete.me
nestor@armbian:/etc/network$ sudo mv interfaces.d interfaces.d.delete.me



michel@hp:~$ sudo chmod 1730 /var/spool/cron/crontabs
michel@hp:~$ sudo chown root:crontab /var/spool/cron/crontabs
michel@hp:~$ crontab -e
No modification made



nestor@armbian:~$ apt list openjdk*jre*
Listing... Done
openjdk-11-jre-headless/jammy-security,jammy-updates 11.0.16+8-0ubuntu1~22.04 arm64
openjdk-11-jre-headless/jammy-security,jammy-updates 11.0.16+8-0ubuntu1~22.04 armhf
openjdk-11-jre-zero/jammy-security,jammy-updates 11.0.16+8-0ubuntu1~22.04 arm64
openjdk-11-jre/jammy-security,jammy-updates 11.0.16+8-0ubuntu1~22.04 arm64
openjdk-11-jre/jammy-security,jammy-updates 11.0.16+8-0ubuntu1~22.04 armhf
openjdk-17-jre-headless/jammy-security,jammy-updates 17.0.4+8-1~22.04 arm64
openjdk-17-jre-headless/jammy-security,jammy-updates 17.0.4+8-1~22.04 armhf
openjdk-17-jre-zero/jammy-security,jammy-updates 17.0.4+8-1~22.04 arm64
openjdk-17-jre-zero/jammy-security,jammy-updates 17.0.4+8-1~22.04 armhf
openjdk-17-jre/jammy-security,jammy-updates 17.0.4+8-1~22.04 arm64
openjdk-17-jre/jammy-security,jammy-updates 17.0.4+8-1~22.04 armhf
openjdk-18-jre-headless/jammy-security,jammy-updates 18.0.2+9-2~22.04 arm64
openjdk-18-jre-headless/jammy-security,jammy-updates 18.0.2+9-2~22.04 armhf
openjdk-18-jre-zero/jammy-security,jammy-updates 18.0.2+9-2~22.04 arm64
openjdk-18-jre-zero/jammy-security,jammy-updates 18.0.2+9-2~22.04 armhf
openjdk-18-jre/jammy-security,jammy-updates 18.0.2+9-2~22.04 arm64
openjdk-18-jre/jammy-security,jammy-updates 18.0.2+9-2~22.04 armhf
openjdk-8-jre-headless/jammy-security,jammy-updates 8u342-b07-0ubuntu1~22.04 arm64
openjdk-8-jre-headless/jammy-security,jammy-updates 8u342-b07-0ubuntu1~22.04 armhf
openjdk-8-jre-zero/jammy-security,jammy-updates 8u342-b07-0ubuntu1~22.04 arm64
openjdk-8-jre-zero/jammy-security,jammy-updates 8u342-b07-0ubuntu1~22.04 armhf
openjdk-8-jre/jammy-security,jammy-updates 8u342-b07-0ubuntu1~22.04 arm64
openjdk-8-jre/jammy-security,jammy-updates 8u342-b07-0ubuntu1~22.04 armhf



root@armbian:~# ip a ... 4: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000 link/ether 9e:61:11:aa:bb:cc brd ff:ff:ff:ff:ff:ff inet 169.254.9.182/16 brd 169.254.255.255 scope link eth0:avahi valid_lft forever preferred_lft forever 5: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000 link/ether f0:03:8c:11:22:33 brd ff:ff:ff:ff:ff:ff

Voilà qui est encourageant, car lors de l'ancienne tentative d'installation de Linux, l'interface sans fil n'était pas présente. En vérifiant l'état du système init, nous voyons qu'il est dégradé car le service networking n'a pas pu se charger. On verra ce problème disparaître après la mise à jour du système d'exploitation.

Désormais, lorsque le lecteur est mis sous tension, le chargeur de démarrage tente d'abord de charger un système d'exploitation depuis la carte SD. S'il n'y a pas de carte SD ou si elle ne contient pas de système d'exploitation, le chargeur de démarrage tente de charger un système d'exploitation à partir de n'importe quel périphérique de bloc USB connecté. Si cela échoue, le chargeur de démarrage tente de charger un système d'exploitation à partir du stockage eMMC intégré.

Fondamentalement, le lecteur est désormais un système à double démarrage : Linux s'il est contenu sur un stockage connecté (carte SD ou clé USB) ou Android autrement. Ce premier démarrage de Linux a pris un temps relativement long, mais les démarrages ultérieurs à partir de la carte SD se font en environ 30 secondes. C'est assez rapide pour avoir un système fonctionnel utilisant une carte SD un peu comme sur un Raspberry Pi et cela permettrait de garder Android comme système de sécurité sur le stockage eMMC.

Mise à jour et état initial deLinux toc

Si ce n'est pas déjà fait, il faut s'assurer que l'appareil est connecté au réseau local et qu'il a accès à l'Internet.

root@armbian:~# ip -4 a ... 4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 inet 192.168.1.144/24 brd 192.168.1.255 scope global dynamic eth0 valid_lft 1165sec preferred_lft 1165sec root@armbian:~# ping -c 2 google.com PING google.com (142.250.65.238) 56(84) bytes of data. 64 bytes from lga25s73-in-f14.1e100.net (142.250.65.238): icmp_seq=1 ttl=57 time=43.7 ms 64 bytes from lga25s73-in-f14.1e100.net (142.250.65.238): icmp_seq=2 ttl=57 time=41.4 ms --- google.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1002ms rtt min/avg/max/mdev = 41.398/42.537/43.677/1.139 ms

En même temps, j'ai récupérer l'adresse IP attribué à l'interface et j'ai redémarrer le système.

root@armbian:~# sudo reboot

Cette fois, au lieu d'utiliser la connexion série de débogage ou le clavier et moniteur connecté au lecteur, j'ai utilisé une session SSH lancée depuis mon ordinateur de bureau en utilisant le compte utilisateur nouvellement créé avec l'adresse IP obtenu auparavant.

michel@hp:~$ ssh tucky@192.168.1.144 The authenticity of host '192.168.1.144 (192.168.1.144)' can't be established. ECDSA key fingerprint is SHA256:6lKzCQsh5oQ2QLU/4uPzbkRmm/7krW+S3tCn9UYLTsI. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '192.168.1.144' (ECDSA) to the list of known hosts. root@192.168.1.144's password: ********** _ _ ___ _ ____ / \ _ __ ___ | | ___ / _ \/ |___ \  / _ \ | '_ ` _ \| | / __| (_) | | __) | / ___ \| | | | | | | \__ \\__, | |/ __/ /_/ \_\_| |_| |_|_| |___/ /_/|_|_____| Welcome to Armbian Armbian 22.08.0-trunk Jammy with Linux 5.15.58-flippy-75+o System load: 16% Up time: 0 min Memory usage: 10% of 1.89G IP: 192.168.1.144 CPU temp: 51°C Usage of /: 58% of 2.4G RX today: 2.8 MiB [ 12 security updates available, 22 updates total: apt upgrade ] Last check: 2022-08-06 03:49 Last login: Sat Aug 6 03:51:51 2022 from 192.168.0.100 nestor@armbian:~$

Avant de se préoccupé de quoi que ce soit, il faut mettre à jour le système.

tucky@armbian:~$ sudo apt update Hit:1 http://ports.ubuntu.com jammy InRelease Get:2 http://ports.ubuntu.com jammy-security InRelease [110 kB] Get:3 http://ports.ubuntu.com jammy-updates InRelease [114 kB] Get:4 http://ports.ubuntu.com jammy-backports InRelease [99.8 kB] Get:5 http://ports.ubuntu.com jammy-security/main armhf Packages [191 kB] Get:6 http://ports.ubuntu.com jammy-security/universe arm64 Packages [120 kB] Get:7 http://ports.ubuntu.com jammy-security/restricted armhf Packages [9,115 B] Get:8 http://ports.ubuntu.com jammy-security/universe armhf Packages [79.5 kB] Get:9 http://ports.ubuntu.com jammy-security/main arm64 Packages [287 kB] Get:10 http://ports.ubuntu.com jammy-security/restricted arm64 Packages [73.1 kB] Get:11 http://ports.ubuntu.com jammy-security/multiverse armhf Packages [594 B] Get:12 http://ports.ubuntu.com jammy-updates/main arm64 Packages [587 kB] Get:13 http://ports.ubuntu.com jammy-updates/restricted arm64 Packages [86.2 kB] Get:14 http://ports.ubuntu.com jammy-updates/universe arm64 Packages [243 kB] Get:15 http://ports.ubuntu.com jammy-updates/multiverse armhf Packages [1,018 B] Get:16 http://ports.ubuntu.com jammy-updates/restricted armhf Packages [9,499 B] Get:17 http://ports.ubuntu.com jammy-updates/universe armhf Packages [202 kB] Get:18 http://ports.ubuntu.com jammy-updates/main armhf Packages [466 kB] Get:19 http://ports.ubuntu.com jammy-backports/universe arm64 Packages [5,817 B] Get:20 http://ports.ubuntu.com jammy-backports/universe armhf Packages [5,811 B] Fetched 2,691 kB in 5s (519 kB/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done 28 packages can be upgraded. Run 'apt list --upgradable' to see them. tucky@armbian:~$ sudo apt upgrade -y [sudo] password for tucky: ******** Reading package lists... Done Building dependency tree... Done Reading state information... Done Calculating upgrade... Done The following packages will be upgraded: apt apt-utils base-files git git-man libapt-pkg6.0 libc-bin libc-dev-bin libc6 libc6-dev libgnutls30 libgstreamer1.0-0 libnetplan0 libpython3.10 libpython3.10-minimal libpython3.10-stdlib libtirpc-common libtirpc-dev libtirpc3 locales netplan.io python-apt-common python3-apt python3-gi python3-jwt python3.10 python3.10-minimal wireless-regdb 28 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 25.7 MB of archives. After this operation, 28.7 kB disk space will be freed. Get:1 http://ports.ubuntu.com jammy-updates/main arm64 libc6-dev arm64 2.35-0ubuntu3.1 [1,544 kB] Get:2 http://ports.ubuntu.com jammy-updates/main arm64 libc-dev-bin arm64 2.35-0ubuntu3.1 [19.6 kB] Get:3 http://ports.ubuntu.com jammy-security/main arm64 libtirpc-common all 1.3.2-2ubuntu0.1 [7,766 B] Get:4 http://ports.ubuntu.com jammy-security/main arm64 libtirpc-dev arm64 1.3.2-2ubuntu0.1 [199 kB] Get:5 http://ports.ubuntu.com jammy-security/main arm64 libtirpc3 arm64 1.3.2-2ubuntu0.1 [82.4 kB] Get:6 http://ports.ubuntu.com jammy-updates/main arm64 libc6 arm64 2.35-0ubuntu3.1 [2,706 kB] Get:7 http://ports.ubuntu.com jammy-updates/main arm64 base-files arm64 12ubuntu4.2 [62.6 kB] Get:8 http://ports.ubuntu.com jammy-updates/main arm64 libc-bin arm64 2.35-0ubuntu3.1 [600 kB] Get:9 http://ports.ubuntu.com jammy-updates/main arm64 libapt-pkg6.0 arm64 2.4.6 [866 kB] Get:10 http://ports.ubuntu.com jammy-updates/main arm64 apt arm64 2.4.6 [1,344 kB] Get:11 http://ports.ubuntu.com jammy-updates/main arm64 apt-utils arm64 2.4.6 [205 kB] Get:12 http://ports.ubuntu.com jammy-security/main arm64 libgnutls30 arm64 3.7.3-4ubuntu1.1 [925 kB] Get:13 http://ports.ubuntu.com jammy-security/main arm64 libpython3.10 arm64 3.10.4-3ubuntu0.1 [1,891 kB] Get:14 http://ports.ubuntu.com jammy-security/main arm64 python3.10 arm64 3.10.4-3ubuntu0.1 [488 kB] Get:15 http://ports.ubuntu.com jammy-security/main arm64 libpython3.10-stdlib arm64 3.10.4-3ubuntu0.1 [1,826 kB] Get:16 http://ports.ubuntu.com jammy-security/main arm64 python3.10-minimal arm64 3.10.4-3ubuntu0.1 [2,264 kB] Get:17 http://ports.ubuntu.com jammy-security/main arm64 libpython3.10-minimal arm64 3.10.4-3ubuntu0.1 [806 kB] Get:18 http://ports.ubuntu.com jammy-updates/main arm64 netplan.io arm64 0.104-0ubuntu2.1 [90.6 kB] Get:19 http://ports.ubuntu.com jammy-updates/main arm64 libnetplan0 arm64 0.104-0ubuntu2.1 [84.8 kB] Get:20 http://ports.ubuntu.com jammy-updates/main arm64 locales all 2.35-0ubuntu3.1 [4,249 kB] Get:21 http://ports.ubuntu.com jammy-updates/main arm64 python-apt-common all 2.3.0ubuntu2.1 [15.2 kB] Get:22 http://ports.ubuntu.com jammy-updates/main arm64 python3-apt arm64 2.3.0ubuntu2.1 [162 kB] Get:23 http://ports.ubuntu.com jammy-updates/main arm64 python3-gi arm64 3.42.1-0ubuntu1 [228 kB] Get:24 http://ports.ubuntu.com jammy-security/main arm64 git-man all 1:2.34.1-1ubuntu1.4 [952 kB] Get:25 http://ports.ubuntu.com jammy-security/main arm64 git arm64 1:2.34.1-1ubuntu1.4 [3,169 kB] Get:26 http://ports.ubuntu.com jammy-updates/main arm64 libgstreamer1.0-0 arm64 1.20.3-0ubuntu1 [931 kB] Get:27 http://ports.ubuntu.com jammy-security/main arm64 python3-jwt all 2.3.0-1ubuntu0.1 [17.1 kB] Get:28 http://ports.ubuntu.com jammy-security/main arm64 wireless-regdb all 2022.06.06-0ubuntu1~22.04.1 [10.3 kB] Fetched 25.7 MB in 38s (670 kB/s) Preconfiguring packages ... (Reading database ... 36039 files and directories currently installed.) Preparing to unpack .../libc6-dev_2.35-0ubuntu3.1_arm64.deb ... Unpacking libc6-dev:arm64 (2.35-0ubuntu3.1) over (2.35-0ubuntu3) ... Preparing to unpack .../libc-dev-bin_2.35-0ubuntu3.1_arm64.deb ... Unpacking libc-dev-bin (2.35-0ubuntu3.1) over (2.35-0ubuntu3) ... Preparing to unpack .../libtirpc-common_1.3.2-2ubuntu0.1_all.deb ... Unpacking libtirpc-common (1.3.2-2ubuntu0.1) over (1.3.2-2build1) ... Setting up libtirpc-common (1.3.2-2ubuntu0.1) ... (Reading database ... 36039 files and directories currently installed.) Preparing to unpack .../libtirpc-dev_1.3.2-2ubuntu0.1_arm64.deb ... Unpacking libtirpc-dev:arm64 (1.3.2-2ubuntu0.1) over (1.3.2-2build1) ... Preparing to unpack .../libtirpc3_1.3.2-2ubuntu0.1_arm64.deb ... Unpacking libtirpc3:arm64 (1.3.2-2ubuntu0.1) over (1.3.2-2build1) ... Setting up libtirpc3:arm64 (1.3.2-2ubuntu0.1) ... (Reading database ... 36039 files and directories currently installed.) Preparing to unpack .../libc6_2.35-0ubuntu3.1_arm64.deb ... Unpacking libc6:arm64 (2.35-0ubuntu3.1) over (2.35-0ubuntu3) ... Setting up libc6:arm64 (2.35-0ubuntu3.1) ... (Reading database ... 36039 files and directories currently installed.) Preparing to unpack .../base-files_12ubuntu4.2_arm64.deb ... Unpacking base-files (12ubuntu4.2) over (12ubuntu4.1) ... Setting up base-files (12ubuntu4.2) ... Configuration file '/etc/issue' ==> Modified (by you or by a script) since installation. ==> Package distributor has shipped an updated version. What would you like to do about it ? Your options are: Y or I : install the package maintainer's version N or O : keep your currently-installed version D : show the differences between the versions Z : start a shell to examine the situation The default action is to keep your current version. *** issue (Y/I/N/O/D/Z) [default=N] ? Z Useful environment variables: - DPKG_SHELL_REASON - DPKG_CONFFILE_OLD - DPKG_CONFFILE_NEW Type 'exit' when you're done. root@armbian:/# cp /etc/issue /etc/issue~ root@armbian:/# exit exit Configuration file '/etc/issue' ==> Modified (by you or by a script) since installation. ==> Package distributor has shipped an updated version. What would you like to do about it ? Your options are: Y or I : install the package maintainer's version N or O : keep your currently-installed version D : show the differences between the versions Z : start a shell to examine the situation The default action is to keep your current version. *** issue (Y/I/N/O/D/Z) [default=N] ? y Installing new version of config file /etc/issue ... Configuration file '/etc/issue.net' ==> Modified (by you or by a script) since installation. ==> Package distributor has shipped an updated version. What would you like to do about it ? Your options are: Y or I : install the package maintainer's version N or O : keep your currently-installed version D : show the differences between the versions Z : start a shell to examine the situation The default action is to keep your current version. *** issue.net (Y/I/N/O/D/Z) [default=N] ? z Useful environment variables: - DPKG_SHELL_REASON - DPKG_CONFFILE_OLD - DPKG_CONFFILE_NEW Type 'exit' when you're done. root@armbian:/# cp /etc/issue.net /etc/issue.net~ root@armbian:/# exit exit Configuration file '/etc/issue.net' ==> Modified (by you or by a script) since installation. ==> Package distributor has shipped an updated version. What would you like to do about it ? Your options are: Y or I : install the package maintainer's version N or O : keep your currently-installed version D : show the differences between the versions Z : start a shell to examine the situation The default action is to keep your current version. *** issue.net (Y/I/N/O/D/Z) [default=N] ? y Installing new version of config file /etc/issue.net ... Installing new version of config file /etc/lsb-release ... motd-news.timer is a disabled or a static unit not running, not starting it. motd-news.service is a disabled or a static unit not running, not starting it. (Reading database ... 36039 files and directories currently installed.) Preparing to unpack .../libc-bin_2.35-0ubuntu3.1_arm64.deb ... Unpacking libc-bin (2.35-0ubuntu3.1) over (2.35-0ubuntu3) ... Setting up libc-bin (2.35-0ubuntu3.1) ... (Reading database ... 36039 files and directories currently installed.) Preparing to unpack .../libapt-pkg6.0_2.4.6_arm64.deb ... Unpacking libapt-pkg6.0:arm64 (2.4.6) over (2.4.5) ... Setting up libapt-pkg6.0:arm64 (2.4.6) ... (Reading database ... 36039 files and directories currently installed.) Preparing to unpack .../archives/apt_2.4.6_arm64.deb ... Unpacking apt (2.4.6) over (2.4.5) ... Setting up apt (2.4.6) ... (Reading database ... 36039 files and directories currently installed.) Preparing to unpack .../apt-utils_2.4.6_arm64.deb ... Unpacking apt-utils (2.4.6) over (2.4.5) ... Preparing to unpack .../libgnutls30_3.7.3-4ubuntu1.1_arm64.deb ... Unpacking libgnutls30:arm64 (3.7.3-4ubuntu1.1) over (3.7.3-4ubuntu1) ... Setting up libgnutls30:arm64 (3.7.3-4ubuntu1.1) ... (Reading database ... 36039 files and directories currently installed.) Preparing to unpack .../00-libpython3.10_3.10.4-3ubuntu0.1_arm64.deb ... Unpacking libpython3.10:arm64 (3.10.4-3ubuntu0.1) over (3.10.4-3) ... Preparing to unpack .../01-python3.10_3.10.4-3ubuntu0.1_arm64.deb ... Unpacking python3.10 (3.10.4-3ubuntu0.1) over (3.10.4-3) ... Preparing to unpack .../02-libpython3.10-stdlib_3.10.4-3ubuntu0.1_arm64.deb ... Unpacking libpython3.10-stdlib:arm64 (3.10.4-3ubuntu0.1) over (3.10.4-3) ... Preparing to unpack .../03-python3.10-minimal_3.10.4-3ubuntu0.1_arm64.deb ... Unpacking python3.10-minimal (3.10.4-3ubuntu0.1) over (3.10.4-3) ... Preparing to unpack .../04-libpython3.10-minimal_3.10.4-3ubuntu0.1_arm64.deb ... Unpacking libpython3.10-minimal:arm64 (3.10.4-3ubuntu0.1) over (3.10.4-3) ... Preparing to unpack .../05-netplan.io_0.104-0ubuntu2.1_arm64.deb ... Unpacking netplan.io (0.104-0ubuntu2.1) over (0.104-0ubuntu2) ... Preparing to unpack .../06-libnetplan0_0.104-0ubuntu2.1_arm64.deb ... Unpacking libnetplan0:arm64 (0.104-0ubuntu2.1) over (0.104-0ubuntu2) ... Preparing to unpack .../07-locales_2.35-0ubuntu3.1_all.deb ... Unpacking locales (2.35-0ubuntu3.1) over (2.35-0ubuntu3) ... Preparing to unpack .../08-python-apt-common_2.3.0ubuntu2.1_all.deb ... Unpacking python-apt-common (2.3.0ubuntu2.1) over (2.3.0ubuntu2) ... Preparing to unpack .../09-python3-apt_2.3.0ubuntu2.1_arm64.deb ... Unpacking python3-apt (2.3.0ubuntu2.1) over (2.3.0ubuntu2) ... Preparing to unpack .../10-python3-gi_3.42.1-0ubuntu1_arm64.deb ... Unpacking python3-gi (3.42.1-0ubuntu1) over (3.42.0-3build1) ... Preparing to unpack .../11-git-man_1%3a2.34.1-1ubuntu1.4_all.deb ... Unpacking git-man (1:2.34.1-1ubuntu1.4) over (1:2.34.1-1ubuntu1.2) ... Preparing to unpack .../12-git_1%3a2.34.1-1ubuntu1.4_arm64.deb ... Unpacking git (1:2.34.1-1ubuntu1.4) over (1:2.34.1-1ubuntu1.2) ... Preparing to unpack .../13-libgstreamer1.0-0_1.20.3-0ubuntu1_arm64.deb ... Unpacking libgstreamer1.0-0:arm64 (1.20.3-0ubuntu1) over (1.20.1-1) ... Preparing to unpack .../14-python3-jwt_2.3.0-1ubuntu0.1_all.deb ... Unpacking python3-jwt (2.3.0-1ubuntu0.1) over (2.3.0-1) ... Preparing to unpack .../15-wireless-regdb_2022.06.06-0ubuntu1~22.04.1_all.deb ... Unpacking wireless-regdb (2022.06.06-0ubuntu1~22.04.1) over (2021.08.28-0ubuntu1) ... Setting up apt-utils (2.4.6) ... Setting up python3-jwt (2.3.0-1ubuntu0.1) ... Setting up wireless-regdb (2022.06.06-0ubuntu1~22.04.1) ... Setting up libnetplan0:arm64 (0.104-0ubuntu2.1) ... Setting up locales (2.35-0ubuntu3.1) ... Generating locales (this might take a while)... C.UTF-8... done en_US.UTF-8... done Generation complete. Setting up netplan.io (0.104-0ubuntu2.1) ... Setting up libtirpc-dev:arm64 (1.3.2-2ubuntu0.1) ... Setting up python3-gi (3.42.1-0ubuntu1) ... Setting up libpython3.10-minimal:arm64 (3.10.4-3ubuntu0.1) ... Setting up python-apt-common (2.3.0ubuntu2.1) ... Setting up git-man (1:2.34.1-1ubuntu1.4) ... Setting up libc-dev-bin (2.35-0ubuntu3.1) ... Setting up libgstreamer1.0-0:arm64 (1.20.3-0ubuntu1) ... Setcap worked! gst-ptp-helper is not suid! Setting up python3-apt (2.3.0ubuntu2.1) ... Setting up python3.10-minimal (3.10.4-3ubuntu0.1) ... Setting up libpython3.10-stdlib:arm64 (3.10.4-3ubuntu0.1) ... Setting up git (1:2.34.1-1ubuntu1.4) ... Setting up libc6-dev:arm64 (2.35-0ubuntu3.1) ... Setting up libpython3.10:arm64 (3.10.4-3ubuntu0.1) ... Setting up python3.10 (3.10.4-3ubuntu0.1) ... Processing triggers for man-db (2.10.2-1) ... Processing triggers for cracklib-runtime (2.9.6-3.4build4) ... Processing triggers for dbus (1.12.20-2ubuntu4) ... Processing triggers for libc-bin (2.35-0ubuntu3.1) ... nestor@armbian:~$

Faisons le point après cette mise à jour.

tucky@armbian:~$ uname -a Linux armbian 5.15.58-flippy-75+o #148 SMP PREEMPT Sat Jul 30 11:32:27 CST 2022 aarch64 aarch64 aarch64 GNU/Linux tucky@armbian:~$ cat /etc/debian_version bookworm/sid tucky@armbian:~$ cat /etc/armbian-image-release # PLEASE DO NOT EDIT THIS FILE BOARD=odroidn2 BOARD_NAME="Odroid N2" BOARDFAMILY=meson-g12b BUILD_REPOSITORY_URL=https://github.com/armbian/build.git BUILD_REPOSITORY_COMMIT=3c83dab VERSION=22.08.0-trunk LINUXFAMILY=meson64 ARCH=arm64 IMAGE_TYPE=stable BOARD_TYPE=conf INITRD_ARCH=arm64 KERNEL_IMAGE_TYPE=Image IMAGE_UUID=e53b53ef-3944-4ab2-9534-6411816e739c tucky@armbian:~$ cat /etc/armbian-release # PLEASE DO NOT EDIT THIS FILE BOARD=odroidn2 BOARD_NAME="Aml s912" BOARDFAMILY=meson-g12b BUILD_REPOSITORY_URL=https://github.com/armbian/build.git BUILD_REPOSITORY_COMMIT=3c83dab VERSION=22.08.0-trunk LINUXFAMILY=meson64 ARCH=arm64 IMAGE_TYPE=stable BOARD_TYPE=conf INITRD_ARCH=arm64 KERNEL_IMAGE_TYPE=Image tucky@armbian:~$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=22.04 DISTRIB_CODENAME=jammy DISTRIB_DESCRIPTION="Ubuntu 22.04.1 LTS" tucky@armbian:~$ cat /etc/ophub-release VERSION_CODEID='ubuntu' VERSION_CODENAME='jammy' FDTFILE='meson-gxm-octopus-planet.dtb' UBOOT_OVERLOAD='u-boot-zyxq.bin' MAINLINE_UBOOT='/usr/lib/u-boot/' ANDROID_UBOOT='/usr/lib/u-boot/' KERNEL_VERSION='5.15.58' SOC='s912' K510='0' PACKAGED_DATE='2022-07-30 tucky@armbian:~$ cat /etc/os-release PRETTY_NAME="Ubuntu 22.04.1 LTS" NAME="Ubuntu" VERSION_ID="22.04" VERSION="22.04.1 LTS (Jammy Jellyfish)" VERSION_CODENAME=jammy ID=ubuntu ID_LIKE=debian HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" UBUNTU_CODENAME=jammy tucky@armbian:~$ cat /etc/issue.net~ Armbian 22.08.0-trunk Jammy tucky@armbian:~$ cat /etc/issue.net Ubuntu 22.04.1 LTS

Il est clair que la valeur du paramètre FTD est inexacte et correspond à la valeur par défaut avant qu'elle ne soit modifiée pour prendre en charge les lecteurs Alfawise S92 / Beelink GT1. C'est une erreur sans conséquence n'ayant aucune incidence sur le fonctionnement du système. Ce dernier est basé sur Ubuntu 22.04.1 LTS qui est la plus récente mise à jour de la version LTS (support à long terme) qui sera supportée gratuitement par Canonical l'éditeur d'Ubuntu pendant les cinq prochaines années.

L'utilitaire htop montre qu'au repos, il y a beaucoup de mémoire disponible et que la capacité du processeur n'est nullement taxée.

tucky@armbian:~$ free -h total used free shared buff/cache available Mem: 1.9Gi 175Mi 1.3Gi 3.0Mi 423Mi 1.6Gi Swap: 966Mi 0B 966Mi tucky@armbian:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS mmcblk0 179:0 0 29.5G 0 disk ├─mmcblk0p1 179:1 0 255M 0 part /boot └─mmcblk0p2 179:2 0 2.5G 0 part /var/log.hdd / mmcblk2 179:32 0 14.5G 0 disk ├─mmcblk2p1 179:33 0 511M 0 part └─mmcblk2p2 179:34 0 13.7G 0 part mmcblk2boot0 179:64 0 4M 1 disk mmcblk2boot1 179:96 0 4M 1 disk zram0 254:0 0 966.6M 0 disk [SWAP] zram1 254:1 0 50M 0 disk /var/log zram2 254:2 0 966.6M 0 disk /var/tmp

Le périphérique mmcblk0 est la carte micro SD de 32 Go contenant l'image de Linux. Le pérphérique mmcblk2 est le stockagg flash internet de 16 Go whi n'est pas monté dans le système de fichier Linux, mais sur lequel réside Android actuellement.

Voici un aperçu rapide de la configuration typique du stockage dans Armbian.

tucky@armbian:~$ df -h Filesystem Size Used Avail Use% Mounted on tmpfs 194M 3.3M 191M 2% /run /dev/mmcblk0p2 2.4G 1.4G 1010M 59% / tmpfs 967M 0 967M 0% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock /dev/zram2 950M 128K 885M 1% /var/tmp /dev/mmcblk0p1 255M 102M 154M 40% /boot /dev/zram1 47M 1.7M 42M 4% /var/log tmpfs 194M 0 194M 0% /run/user/1000

Notez comment /var/tmp et /var/log sont des disques virtuels compressées sur RAM ce qui élimine une importante source d'usure sur la carte SD. Le répertoire /run est également mappé en mémoire, mais c'est une situation typique.

Après la mise à jour, le système init fonctionne parfaitement sans dégradation contrairement à ce qui s'était produit avec la version précédente (Armbian 22.08 - Ubuntu Focal 5.12.52).

tucky@armbian:~$ systemctl | grep failed tucky@armbian:~$ systemctl status ● armbian State: running Jobs: 0 queued Failed: 0 units Since: Thu 1970-01-01 08:00:06 CST; 52 years 7 months ago CGroup: / ├─user.slice │ └─user-1000.slice │ ├─user@1000.service │ │ └─init.scope │ │ ├─2087 /lib/systemd/systemd --user │ │ └─2088 (sd-pam) │ └─session-2.scope │ ├─1929 sshd: nestor [priv] │ ├─2250 sshd: nestor@pts/0 │ ├─2251 -bash │ ├─3804 systemctl status │ └─3805 pager ├─init.scope │ ├─ 1 /lib/systemd/systemd --system --deserialize 22 │ └─330 bpfilter_umh └─system.slice ├─haveged.service │ └─907 /usr/sbin/haveged --Foreground --verbose=1 ├─packagekit.service │ └─3647 /usr/libexec/packagekitd ├─systemd-udevd.service │ └─508 /lib/systemd/systemd-udevd ├─cron.service │ └─1558 /usr/sbin/cron -f -P ├─system-serial\x2dgetty.slice │ └─serial-getty@ttyAML0.service │ └─1895 /sbin/agetty -o -p -- \u --keep-baud 115200,57600,38400,9600> ├─nfs-mountd.service │ └─1892 /usr/sbin/rpc.mountd ├─polkit.service │ └─3651 /usr/libexec/polkitd --no-debug ├─networkd-dispatcher.service │ └─1577 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-tr> ├─nfsdcld.service │ └─929 /usr/sbin/nfsdcld ├─wpa_supplicant.service │ └─1615 /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant ├─systemd-journald.service │ └─903 /lib/systemd/systemd-journald ├─unattended-upgrades.service │ └─1890 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upg> ├─ssh.service │ └─1912 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups ├─NetworkManager.service │ └─1564 /usr/sbin/NetworkManager --no-daemon ├─rpc-statd.service │ └─1891 /sbin/rpc.statd ├─nfs-blkmap.service │ └─918 /usr/sbin/blkmapd ├─rsyslog.service │ └─1589 /usr/sbin/rsyslogd -n -iNONE ├─vnstat.service │ └─1893 /usr/sbin/vnstatd -n ├─rpcbind.service │ └─908 /sbin/rpcbind -f -w ├─chrony.service │ ├─1914 /usr/sbin/chronyd -F 1 │ └─1915 /usr/sbin/chronyd -F 1 ├─nfs-idmapd.service │ └─921 /usr/sbin/rpc.idmapd ├─smartmontools.service │ └─1602 /usr/sbin/smartd -n ├─systemd-resolved.service │ └─909 /lib/systemd/systemd-resolved ├─dbus.service │ └─1561 @dbus-daemon --system --address=systemd: --nofork --nopidfile > ├─system-getty.slice │ └─getty@tty1.service │ └─1908 /sbin/agetty -o -p -- \u --noclear tty1 linux ├─ifup@eth0.service │ └─755 /sbin/dhclient -1 -4 -v -i -pf /run/dhclient.eth0.pid -lf /var/> └─systemd-logind.service └─1613 /lib/systemd/systemd-logind

Cependant, le problème entourant le service cron est encore présent.

Basic Fixes toc

I will not go into too much detail about the other failed service. It turns out that management of the network interfaces is split between Network manager and the systemd network service. I decided to remove the latter altogether because of the positive experience had with managing both the Ethernet and Wi-Fi interfaces with Network Manager in the Ubuntu Focal system installed on a Rock Pi S just a little while ago: 7. Configure the Network in OctoPrint on a Rock Pi S D4W. I found disabling networking.service was not sufficient. I removed the /etc/network/intefaces configuration file and the /etc/network/interfaces.d configuration directory - actually I "hid" them.

tucky@armbian:~$ sudo systemctl disable networking.service Synchronizing state of networking.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install disable networking Removed /etc/systemd/system/network-online.target.wants/networking.service. Removed /etc/systemd/system/multi-user.target.wants/networking.service. tucky@armbian:~$ cd /etc/network tucky@armbian:/etc/network$ ls if-down.d if-pre-up.d interfaces interfaces.default if-post-down.d if-up.d interfaces.d tucky@armbian:/etc/network$ sudo mv interfaces interfaces.delete-me tucky@armbian:/etc/network$ sudo mv interfaces.d interfaces.d.delete-me

tucky@armbian:~$ crontab -e crontabs/tucky/: fdopen: Permission denied

Il faut ajouter l'utilisateur au groupe crontab et modifié les permissions des fichiers crontabs pour régler ce problème.

tucky@armbian:~$ sudo adduser tucky crontab Adding user `tucky' to group `crontab' ... Adding user tucky to group crontab Done. tucky@armbian:~$ sudo chmod 1730 /var/spool/cron/crontabs tucky@armbian:~$ sudo chown root:crontab /var/spool/cron/crontabs

Il faut fermer la session et en ouvrir une nouvelle ou redémarrer l'appareil pour que l'appartenance de l'utulisiateur au groupe soit reconnu par le système. On peut alors tester que l'utilisateur peut créer et modifier un fichier crontab.

tucky@armbian:~$ crontab -e no crontab for tucky - using an empty one Select an editor. To change later, run 'select-editor'. 1. /bin/nano <---- easiest 2. /usr/bin/vim.basic 3. /usr/bin/mcedit Choose 1-3 [1]: 1


Configuration de base toc

Cette section contient une configuration supplémentaire que je trouve utile.

Moins de demande de mot de passe toc

Pour réduire le nombre de fois que le mot de passe doit être saisi, on peut ajouter un fichier de configuration sudoer.

tucky@armbian:~$ echo "$USER ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee "/etc/sudoers.d/$USER-no-password" [sudo] password for tucky: tucky ALL=(ALL:ALL) NOPASSWD: ALL tucky@armbian:~$ sudo chmod 440 /etc/sudoers.d/$USER-no-password tucky@armbian:~$

Il y a une réduction évidente de la sécurité pour obtenir une conviviabilité légère améliorée. Envisagez de la supprimer une fois que le système fonctionne correctement.

Set the Time Zone toc

While I do not care to set the locale of a headless server, I prefer that the correct local time zone be set, especially since it is set to almost half way around the world be default.

Bien que je ne me soucie pas de définir les paramètres régionaux d'un serveur sans tête, je préfère que le fuseau horaire local correct soit défini, d'autant plus que par défaut il est fixé sur un fuseau aux antipodes du mien.

tucky@armbian:~$ timedatectl Local time: Wed 2022-07-06 04:33:06 CST Universal time: Wed 2022-07-06 04:33:06 UTC RTC time: n/a Time zone: Asia/Shanghai (CST, +0800) System clock synchronized: yes NTP service: active RTC in local TZ: no tucky@armbian:~$ timedatectl list-timezones | grep Halifax America/Halifax tucky@armbian:~$ sudo timedatectl set-timezone America/Halifax tucky@armbian:~$ timedatectl Local time: Wed 2022-07-06 01:33:06 ADT Universal time: Wed 2022-07-06 04:33:06 UTC RTC time: n/a Time zone: America/Halifax (ADT, -0300) System clock synchronized: yes NTP service: active RTC in local TZ: no

Activer la publicité mDns toc

Avant d'activer le Wi-Fi, de créer et de modifier des adresses IP statiques, je préfère installer le service avahi-daemon pour qu'il soit plus facile de se connecter au serveur sur le réseau local.

tucky@armbian:~$ apt-cache policy avahi-daemon avahi-daemon: Installed: (none) Candidate: 0.7-4ubuntu7.1 Version table: 0.7-4ubuntu7.1 500 500 http://ports.ubuntu.com focal-security/main arm64 Packages 500 http://ports.ubuntu.com focal-updates/main arm64 Packages 0.7-4ubuntu7 500 500 http://ports.ubuntu.com focal/main arm64 Packages tucky@armbian:~$ sudo apt install avahi-daemon -y Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: libavahi-common-data libavahi-common3 libavahi-core7 Recommended packages: libnss-mdns The following NEW packages will be installed: avahi-daemon libavahi-common-data libavahi-common3 libavahi-core7 0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. Need to get 202 kB of archives. After this operation, 824 kB of additional disk space will be used. ... tucky@armbian:~$ sudo nano -B /etc/avahi/avahi-daemon.conf

Redémarrez le service sur le S92 et démarrez un navigateur avahi sur le bureau.

tucky@armbian:~$ sudo systemctl restart avahi-daemon

michel@hp:~$ avahi-browse --all ... + enp4s0 IPv4 raspbian [9e:61:11:aa:bb:cc] Workstation local ... ^C

Presque immédiatement, l'appareil s'annonce comme on peut voir ci-dessus.

Modifier le not d'hôte toc

Ce n'est pas bien de conserver le nom d'hôte par défaut. C'est très déconseillé si le service avahi-deamon est installé et s'il y a plus d'un appareil fonctionnant avec Armbian sur le réseau local car leur nom d'hôte mDNS sera automatiquement différencié par des numéros ajoutés attribués plus ou moins au hasard tels armbian-1.local, armbian-2.local, etc.

tucky@armbian:~$ sudo hostnamectl set-hostname crouton tucky@armbian:~$ cat /etc/hostname crouton tucky@armbian:~$ sudo nano -B /etc/hosts tucky@armbian:~$ cat /etc/hosts 127.0.0.1 localhost 127.0.1.1 crouton ::1 localhost armbian ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters

Désormais, il est possible d'ouvrir une session avec le nom d'hôte mDns au lieu de l'adresse IP.

michel@hp:~$ ssh tucky@crouton

Compte tenu de l'utilisation prévue du S92 en tant qu'hôte du système domotique, il est plus logique de configurer une adresse IP statique au lieu de s'appuyer sur mDNS pour se connecter à l'appareil. Cette approche est envisagée un peu plus loin.

Je doute que quiconque veuille utiliser les noms de compte et d'hôte qui sont utilisés ici, donc pour faciliter les choses pour le lecteur, je n'utiliserai pas le nom d'hôte crouton dans ce qui suit.

Désactiver la télécommande infrarouge toc

Le lecteur multimédia est livré avec une télécommande infrarouge (IR). Cette dernière dispose d'un bouton d'alimentation qui allume ou éteint le boîtier TV. En fait, lorsque le lecteur est désactivé avec la télécommande, il n'est que partiellement éteinte et peut être redémarrée avec la télécommande. J'estime qu'il n'est pas approprié qu'un serveur qui devrait être allumé en permanence puisse être mis hors tension par un signal distant parasite. Donc, jusqu'à ce que le contrôle total de cette fonctionnalité soit activé (si possible), il est préférable de désactiver complètement le module réception IR.

tucky@armbian:~$ echo "blacklist meson_ir" | sudo tee "/etc/modprobe.d/blacklist-ir.conf"

Merci à danboid d'avoir soulevé ce problème qui est aussi mentionné par ophub dans la section intitulé 12.5 Disable infrared receiver dans How to build and use Armbian.

Il reste une surprise.

tucky@armbian:~$ sudo shutdown now ... [ 1370.452050] systemd-shutdown[1]: All DM devices detached. [ 1370.456995] systemd-shutdown[1]: All filesystems, swaps, loop devices and DM devices detached. [ 1370.485227] systemd-shutdown[1]: Syncing filesystems and block devices. [ 1370.489458] systemd-shutdown[1]: Powering off. [ 1370.493685] kvm: exiting hardware virtualization [ 1370.498263] hci_uart_bcm serial0-0: Cutting power to bluetooth module [ 1371.633380] pwrseq_simple sdio-pwrseq: Turning off mmc [ 1371.661275] reboot: Power down bl31 reboot reason: 0x8 bl31 reboot reason: 0x8 system cmd 0. bl30 get wakeup sources! process command 00000006 bl30 enter suspend! cpu clk suspend rate 1416000000 suspend_counter: 1 Enter ddr suspend first time suspend ddr suspend time: 1886us store restore gp0 pll process command 00000001 CEC cfg:0x0000 set vddee to 0x035cmv

La fonction shutdown met le serveur en mode veille conformément à la norme CEC (Consumer Electronics Control) conçue pour contrôler les appareils connectés HDMI tels que les téléviseurs. En effet un appui sur le bouton power de la télécommande infrarouge redémarre l'appareil.

08915c0000000000exit_reason:0x02 set vddee to 0x03e8mv set vdd_cpu a to 0x0460mv set vdd_cpu a to 0x041amv store restore gp0 pll gp0 pll can't lock read gp0_ctrl 40000000 read gp0_ctrl2 b75020be read gp0_ctrl3 a59a288 read gp0_ctrl4 c000004d Enter ddr resume ddr resume time: 345us ...

Cependant la command halt éteint véritablement le système.

tucky@armbian:~$ sudo halt ... [ 72.593939] systemd-shutdown[1]: All DM devices detached. [ 72.598973] systemd-shutdown[1]: All filesystems, swaps, loop devices and DM devices detached. [ 72.621341] systemd-shutdown[1]: Syncing filesystems and block devices. [ 72.624925] systemd-shutdown[1]: Halting system. [ 72.629222] kvm: exiting hardware virtualization [ 72.633841] hci_uart_bcm serial0-0: Cutting power to bluetooth module [ 73.770442] pwrseq_simple sdio-pwrseq: Turning off mmc [ 73.802966] reboot: System halted

Il est impossible d'utiliser la télécommande pour redémarrer le serveur quand il est dans cet état, c'est-à-dire véritablement éteint. À la lumière de ces informations, il pourrait être judicieux de remplacer shutdown par un lien symbolique vers un court script bash qui invoque la commande halt.

tucky@domo:~$ sudo mv /usr/sbin/shutdown /usr/sbin/shutdown.org tucky@domo:~$ printf '#!/bin/bash\nhalt\n' | sudo tee /usr/sbin/shutdown #!/bin/bash halt tucky@domo:~$ sudo chmod +x /usr/sbin/shutdown

Peu importe que halt ou la commande shutdown originale soit utilisée, la DEL d'alimentation bleue sur le boîtier reste allumée tant que l'alimentation est connectée. De même 3,3 volts peuvent être mesurés sur les pots de la sorties de débogage série.

Journalisation à distance toc

  voir ha/rpi/guide_rpios_01_fr.html#syslog

nestor@armbian:~$ sudo nano /etc/rsyslog.conf

# /etc/rsyslog.conf configuration file for rsyslog
#
# For more information install rsyslog-doc and see
# /usr/share/doc/rsyslog-doc/html/configuration/index.html


#################
#### MODULES ####
#################

module(load="imuxsock") # provides support for local system logging
module(load="imklog")   # provides kernel logging support
#module(load="immark")  # provides --MARK-- message capability

# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")

# provides TCP syslog reception
#module(load="imtcp")
#input(type="imtcp" port="514")

Configuration du réseau toc

Given my intent to use the TV box as a Linux headless server hosting a home automation system, it makes more sense to set up a static IP address instead of relying on mDNS to find the machine. Initially the box will replace a Raspberry Pi 3B that is connected to the local network with a wireless static IP address, so I will do the same here. Eventually, the server may be moved to another location with a wired connection to the LAN.

nestor@crouton:~$ cat /etc/network/interfaces source /etc/network/interfaces.d/* # Network is managed by Network manager # You can choose one of the following two IP setting methods: # Use # to disable another setting method # 01. Enable dynamic DHCP to assign IP auto eth0 iface eth0 inet dhcp hwaddress ether 9E:61:39:77:A3:AA # 02. Enable static IP settings(IP is modified according to the actual) #auto eth0 #allow-hotplug eth0 #iface eth0 inet static #address 192.168.1.100 #netmask 255.255.255.0 #gateway 192.168.1.6 #dns-nameservers 192.168.1.6 # 03. Docker install OpenWrt and communicate with each other #allow-hotplug eth0 #no-auto-down eth0 #auto eth0 #iface eth0 inet manual # #auto macvlan #iface macvlan inet dhcp # hwaddress ether 9E:61:39:77:A3:AA # pre-up ip link add macvlan link eth0 type macvlan mode bridge # post-down ip link del macvlan link eth0 type macvlan mode bridge # #auto lo #iface lo inet loopback

Enable Wi-Fi toc

The nmtui utility can be used to activate wireless network interface.

Activating Wi-Fi in nmtui

Enter the wireless network password in the pop up window and click on the OK button

Password

Exit the utility and check the network interfaces, both will be activated.

rock@rockpis:~$ ip -4 a ... 4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 inet 192.168.3.23/24 brd 192.168.3.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever 5: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 inet 192.168.3.145/24 brd 192.168.3.255 scope global dynamic noprefixroute wlan0 valid_lft 1412sec preferred_lft 1412sec

Reboot and check that this remains true. It should.

Static IP for the Wireless Interface toc

On my LAN, 192.168.3.23 is in the pool of static IP addresses while 192.168.3.145 is in the pool of dynamic addresses assigned by the DHCP server. If the board will most often be connected to the local network using the wireless interface, then it makes sense to assign it a static IP address. This is done in exactly the same way as done with the wired connection. In the main mntui menu (do not forget to invoke the utility with the sudo prefix) chose the Edit a connection option and then select the Wi-Fi connection to edit.

Password

As before set the IPv4 CONFIGURATION to manual and enter the static IP address and the IP addresses of the gateway and DNS servers.

Password

Note that I have again disabled IPv6. Note also that the static IP address given to the Wi-Fi connection is different from the static IP address of the wired interface or any other device on the LAN for that matter. Here are the resulting IP addresses of the two interfaces.

rock@rockpis:~$ ip -4 a ... 5: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 inet 192.168.3.23/24 brd 192.168.3.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever 5: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 inet 192.168.3.24/24 brd 192.168.3.255 scope global dynamic noprefixroute wlan0 valid_lft 1412sec preferred_lft 1412sec

My prefered way of setting up the IP addresses of the two network interfaces is to set a fixed IP address for the interface that is most often used and to let the other interface obtain its IP address from the DHCP server on the local network. Since my Rock Pi S will in all likelihood connect to the LAN with the Wi-Fi interface, I edited the wired connection and set the IPv4 CONFIGURATION back to Automatic. Here is the final network setup of the board.

rock@rockpis:~$ ip -4 a ... 4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 inet 192.168.3.140/24 brd 192.168.3.255 scope global dynamic noprefixroute eth0 valid_lft 1629sec preferred_lft 1629sec 5: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 inet 192.168.3.24/24 brd 192.168.3.255 scope global noprefixroute wlan0 valid_lft forever preferred_lft forever

Basically that means that should there be a major change to my LAN such a modification of the subnet used, I should be able to log into the Rock Pi S using a wired connection and fix the static IP address.

Cleaning Up the Network Configuration toc

Looking at the network configuration after a reboot

tucky@armbian:~$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000 link/sit 0.0.0.0 brd 0.0.0.0 3: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN group default qlen 1000 link/tunnel6 :: brd :: 4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 66:77:88:4f:8e:f4 brd ff:ff:ff:ff:ff:ff inet 192.168.1.138/24 brd 192.168.1.255 scope global dynamic noprefixroute eth0 valid_lft 1783sec preferred_lft 1783sec inet6 fd00:fc:8d4f:71b2:abf5:a434:8dc5:72a1/64 scope global temporary dynamic valid_lft 535413sec preferred_lft 85938sec inet6 fd00:fc:8d4f:71b2:224c:ee3b:354:349c/64 scope global dynamic mngtmpaddr noprefixroute valid_lft 535413sec preferred_lft 401556sec inet6 fe80::9ada:ade1:e6d3:15a5/64 scope link noprefixroute valid_lft forever preferred_lft forever 5: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether f0:03:8c:11:22:33 brd ff:ff:ff:ff:ff:ff inet 192.168.1.40/24 brd 192.168.1.255 scope global noprefixroute wlan0 valid_lft forever preferred_lft forever

IPv6 is still being set up, albeit not for the wireless interface where it was disabled explicitly with nmtui. The usual way to disable IPv6 in Ubuntu is to modify the /etc/sysctl.conf configuration file. Instead of doing that directly, a supplementary configuration file can be added in the system control configuration directory.

rock@rockpis:~$ echo "net.ipv6.conf.all.disable_ipv6=1" | sudo tee "/etc/sysctl.d/local.conf"

It was assumed that local.conf did not exist, if it did a different file name could be used or the -a (append) flag could be used with the tee command.

Apparently, IPv6 can reappear. In that case, add ipv6.disable=1 to the APPEND value in /boot/uEnv.txt and to the append value in /boot/extlinux/extlinux.conf. Don't forget that the file belong to root.

I have had problems with Wi-Fi latency with other boards. Some attribute the problem to a Wi-Fi power-saving mode. Looking at the NetworkManager configuration files, it is not clear to me if the power-saving mode is enabled or not.

tucky@armbian:/etc/NetworkManager/conf.d$ cat 20-override-wifi-powersave-disable.conf [connection] wifi.powersave = 2 tucky@armbian:/etc/NetworkManager/conf.d$ cat default-wifi-powersave-on.conf [connection] wifi.powersave = 3

Which has precedence? I "solved" the problem by replacing both files with a single configuration file, /etc/NetworkManager/conf.d/20-wifi-powersave.conf that unambiguously disables the power saving mode.

[connection] # Values are 0 (use default), 1 (ignore/don't touch), 2 (disable) or 3 (enable). wifi.powersave = 2

It is not entirely for stylistic considerations that solved was put in quotation marks above. I don't know if the Wi-Fi chip supports power management.

Move the OS to eMMC Storage toc

Quoting SteeMan in Installation Instructions for TV Boxes with Amlogic CPUs in the TV boxes FAQ:

After you are satisfied that your box is working correctly for your needs you can optionally copy the installation from the SD card to internal emmc storage (assuming your box has emmc). (Note: Installing to emmc has some risks of bricking your box. Don't do this unless you feel you understand how to reinstall the boxes android firmware) install armbian to emmc by running the appropriate shell script in /root, which is either /root/install-aml-s905-emmc.sh for s905 cpus or /root/install-aml.sh for all others: s905[x,w,l,x2,x3],s912,s922. Note that it is recommended that you make a backup of emmc first (use the ddbr tool that should be installed on your sd card). Also be prepared if anything goes horribly wrong with your emmc install to reinstall the android firmware using the Amlogic USB Burning Tool to unbrick your device. It is generally easy to find original android firmwares on the internet and you can generally (but not always) recover a bricked box using the Amlogic tool and an original firmware file.
Strike through added for reasons explained later

My experience only confirms the importance of this warning. Twice I had to reinstall Android on the box in the course of converting the TV box into a Linux machine.

Back Up the Configured Armbian Image toc

Still want to move the OS from the SD card to eMMC? Before copying the Armbian image on the SD card to eMMC storage, heed SteeMan's advice and back up the eMMC flash memory before overwriting it. Wish I had done that back in December 2019. Before that, let's make a back up of the SD card with the spanking new fixed up Armbian on it. There is a good reason for that as will be seen in the next section. Let's first determine the exact size of the image on the SD card.

tucky@domo:~$ sudo fdisk -l Disk /dev/ram0: 4 MiB, 4194304 bytes, 8192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/ram1: 4 MiB, 4194304 bytes, 8192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/ram2: 4 MiB, 4194304 bytes, 8192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/ram3: 4 MiB, 4194304 bytes, 8192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/mmcblk0: 14.95 GiB, 16025387008 bytes, 31299584 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xa2ff7aa3 Device Boot Start End Sectors Size Id Type /dev/mmcblk0p1 139264 661503 522240 255M c W95 FAT32 (LBA) /dev/mmcblk0p2 663552 6291455 5627904 2.7G 83 Linux Disk /dev/mmcblk2: 14.46 GiB, 15518924800 bytes, 30310400 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/zram0: 966.98 MiB, 1013927936 bytes, 247541 sectors Units: sectors of 1 * 4096 = 4096 bytes Sector size (logical/physical): 4096 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/zram1: 50 MiB, 52428800 bytes, 12800 sectors Units: sectors of 1 * 4096 = 4096 bytes Sector size (logical/physical): 4096 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/zram2: 966.98 MiB, 1013927936 bytes, 247541 sectors Units: sectors of 1 * 4096 = 4096 bytes Sector size (logical/physical): 4096 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes

That is quite a few disks, but the relevant one at this point is mmcblk0.

Disk /dev/mmcblk0: 14.95 GiB, 16025387008 bytes, 31299584 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xa2ff7aa3 Device Boot Start End Sectors Size Id Type /dev/mmcblk0p1 139264 661503 522240 255M c W95 FAT32 (LBA) /dev/mmcblk0p2 663552 6291455 5627904 2.7G 83 Linux

The two partitions on the SD card are contained in its first 6291455+1 sectors. The remaining 25008128 sectors (= 12.211 GB) are unallocated so they do not need to be backed up. Halt the TV box and transfer its SD card to an SD card reader on the desktop.

Got a warning about the incapacity to mount the ROOTFS.

ROOTFS not mountable

I decided to ignore this problem at this juncture. Instead, a byte for byte copy of the image is made with dd.

michel@hp:~/Téléchargements/OS/Armbian/Amlogic$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 931,5G 0 disk ├─sda1 8:1 0 512M 0 part /boot/efi └─sda2 8:2 0 931G 0 part / sdb 8:16 0 447,1G 0 disk ├─sdb1 8:17 0 322,1G 0 part /home/michel/Téléchargements └─sdb2 8:18 0 125G 0 part /home/michel/Versions sdc 8:32 0 7,3T 0 disk ├─sdc1 8:33 0 2,4T 0 part /media/michel/photos ├─sdc2 8:34 0 2,4T 0 part /media/michel/data └─sdc3 8:35 0 2,4T 0 part /run/timeshift/backup sde 8:64 1 14,9G 0 disk ├─sde1 8:65 1 255M 0 part /media/michel/BOOT └─sde2 8:66 1 2,7G 0 part sr0 11:0 1 1024M 0 rom michel@hp:~/Téléchargements/OS/Armbian/Amlogic$ sudo umount /dev/sde1 michel@hp:~/Téléchargements/OS/Armbian/Amlogic$ sudo dd if=/dev/sde of=armbian_22.08_backup3.img bs=512 count=6291456 status=progress 3204694528 octets (3,2 GB, 3,0 GiB) copiés, 148 s, 21,7 MB/s ... 6291456+0 enregistrements lus 6291456+0 enregistrements écrits 3221225472 octets (3,2 GB, 3,0 GiB) copiés, 146,208 s, 22,0 MB/s

Be patient, that takes almost 3 minutes to complete.

michel@hp:~/Téléchargements/OS/Armbian/Amlogic$ sudo chown michel: armbian_22.08_backup3.img michel@hp:~/Téléchargements/OS/Armbian/Amlogic$ ls -l ... -rw-rw-r-- 1 michel michel 541997511 jui 6 21:23 Armbian_22.08.0_Aml_s912_focal_5.15.52_server_2022.07.03.img.gz -rw-r--r-- 1 michel michel 3221225472 jui 3 11:54 Armbian_22.08.0_Aml_s912_focal_5.15.52_server_2022.07.03.img -rw-r--r-- 1 michel michel 3221225472 jui 15 12:58 armbian_22.08_backup3.img

So the backup is the exact same size as the original image which is good.

Back Up the eMMC Storage toc

I didn't want to copy the old content of the eMMC storage onto the SD card containing the Armbian OS. Instead, I copied that image to a 32 GB USB stick with Balena etcher. After that its sole ext4 partition (ROOTFS) was expanded with gparted. That way there will be enough room on the partition to copy the current content of the eMMC.

It is possible to avoid using gparted on the desktop to expand the ROOTFS partition the USB stick. Boot from the USB stick as explained next and allocate the free space on the USB stick as per Use Armbian in TF/SD/USB.
tucky@domo:~$ sudo armbian-tf [ STEPS ] Welcome to use TF/SD/USB partition management tool. [ OPTIONS ] Do you want to expand or create partitions? Expand=(e) Create=(c): e [ STEPS ] Start to expand the current partition ... [ STEPS ] Install growpart or xfsprogs expansion and formatting tool ... Hit:1 http://ports.ubuntu.com focal InRelease Get:2 http://ports.ubuntu.com focal-security InRelease [114 kB] Get:3 http://ports.ubuntu.com focal-updates InRelease [114 kB] Get:4 http://ports.ubuntu.com focal-backports InRelease [108 kB] Get:5 http://ports.ubuntu.com focal-security/main armhf Packages [992 kB] Get:6 http://ports.ubuntu.com focal-security/universe armhf Packages [685 kB] Get:7 http://ports.ubuntu.com focal-security/universe arm64 Packages [817 kB] Get:8 http://ports.ubuntu.com focal-security/main arm64 Packages [1,362 kB] Get:9 http://ports.ubuntu.com focal-updates/main armhf Packages [1,353 kB] Get:10 http://ports.ubuntu.com focal-updates/main arm64 Packages [1,741 kB] Get:11 http://ports.ubuntu.com focal-updates/universe armhf Packages [958 kB] Get:12 http://ports.ubuntu.com focal-updates/universe arm64 Packages [1,096 kB] Fetched 9,339 kB in 2min 6s (73.9 kB/s) Reading package lists... Done Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: libreadline5 Suggested packages: xfsdump acl attr quota The following NEW packages will be installed: cloud-guest-utils libreadline5 xfsprogs 0 upgraded, 3 newly installed, 0 to remove and 10 not upgraded. Need to get 834 kB of archives. After this operation, 3,011 kB of additional disk space will be used. Get:1 http://ports.ubuntu.com focal/main arm64 libreadline5 arm64 5.2+dfsg-3build3 [94.6 kB] Get:2 http://ports.ubuntu.com focal/main arm64 xfsprogs arm64 5.3.0-1ubuntu2 [723 kB] Get:3 http://ports.ubuntu.com focal/main arm64 cloud-guest-utils all 0.31-7-gd99b2d76-0ubuntu1 [16.2 kB] Fetched 834 kB in 9s (97.3 kB/s) Selecting previously unselected package libreadline5:arm64. (Reading database ... 36224 files and directories currently installed.) Preparing to unpack .../libreadline5_5.2+dfsg-3build3_arm64.deb ... Unpacking libreadline5:arm64 (5.2+dfsg-3build3) ... Selecting previously unselected package xfsprogs. Preparing to unpack .../xfsprogs_5.3.0-1ubuntu2_arm64.deb ... Unpacking xfsprogs (5.3.0-1ubuntu2) ... Selecting previously unselected package cloud-guest-utils. Preparing to unpack .../cloud-guest-utils_0.31-7-gd99b2d76-0ubuntu1_all.deb ... Unpacking cloud-guest-utils (0.31-7-gd99b2d76-0ubuntu1) ... Setting up libreadline5:arm64 (5.2+dfsg-3build3) ... Setting up xfsprogs (5.3.0-1ubuntu2) ... update-initramfs: deferring update (trigger activated) Setting up cloud-guest-utils (0.31-7-gd99b2d76-0ubuntu1) ... Processing triggers for man-db (2.9.1-1) ... Processing triggers for libc-bin (2.31-0ubuntu9.9) ... Processing triggers for initramfs-tools (0.136ubuntu6.7) ... ln: failed to create hard link '/boot/initrd.img-5.15.52-flippy-74+o.dpkg-bak' => '/boot/initrd.img-5.15.52-flippy-74+o': Operation not permitted update-initramfs: Generating /boot/initrd.img-5.15.52-flippy-74+o [ STEPS ] Expansion Partition ... CHANGED: partition=2 start=663552 old: size=5627904 end=6291456 new: size=59842527 end=60506079 [ STEPS ] Expansion file system ... resize2fs 1.45.5 (07-Jan-2020) Filesystem at /dev/sda2 is mounted on /; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 4 The file system on /dev/sda2 is now 7480315 (4k) blocks long. [ INFO ] Current partition information: Filesystem Type Size Used Avail Use% Mounted on /dev/sda2 ext4 29G 1.7G 27G 6% / [ SUCCESS ] The current partition expansion is successful.

To make a backup copy of the content of the eMMC using Armbian on the USB flash memory, shut down the TV box if it is not already done and make sure that there is no SD card in the card reader. Insert the USB flash memory into either USB connector and power up the box. The box will boot from the OS on the USB stick. The boot process is considerably slower than with the SD card, at least four times slower. Is this a problem with the chosen USB stick? In any case, there is plenty of room on the stick for a compressed copy of the eMMC storage.

tucky@domo:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 1 28.9G 0 disk ├─sda1 8:1 1 255M 0 part /boot └─sda2 8:2 1 28.5G 0 part / mmcblk2 179:0 0 14.5G 0 disk mmcblk2boot0 179:32 0 4M 1 disk mmcblk2boot1 179:64 0 4M 1 disk zram0 254:0 0 967M 0 disk [SWAP] zram1 254:1 0 50M 0 disk /var/log zram2 254:2 0 967M 0 disk /var/tmp estor@armbian:~$ df -h Filesystem Size Used Avail Use% Mounted on udev 835M 0 835M 0% /dev tmpfs 194M 3.2M 191M 2% /run /dev/sda2 13G 1.4G 27.1G 0.5% / tmpfs 967M 0 967M 0% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 967M 0 967M 0% /sys/fs/cgroup /dev/zram2 950M 112K 885M 1% /var/tmp /dev/sda1 255M 100M 156M 40% /boot /dev/zram1 49M 2.3M 43M 6% /var/log tmpfs 194M 0 194M 0% /run/user/1000

The backup utility is ddrb or is it armbian-ddbr as specified by ophub in Backup/restore the original EMMC system? Actually they are the same thing.

tucky@armbian:~$ ls -l /usr/sbin/*ddbr -rwxr-xr-x 1 root root 4542 Jul 3 11:54 /usr/sbin/armbian-ddbr lrwxrwxrwx 1 root root 22 Jul 3 11:54 /usr/sbin/ddbr -> /usr/sbin/armbian-ddbr

Using that utility is very simple.

tucky@armbian:~$ sudo ddbr [ STEPS ] Welcome to use the EMMC system backup/restore service. [ INFO ] The device name: [ Beelink GT1 ] [ INFO ] The device EMMC name: [ /dev/mmcblk2 ] [ INFO ] The device EMMC size: [ 14GB ] [ INFO ] The ddbr file path: [ /ddbr/BACKUP-arm-64-emmc.img.gz ] [ OPTIONS ] Do you want to backup or restore? Backup=(b) Restore=(r): b [ STEPS ] Start to backup the system in emmc. [ INFO ] Saving and Compressing [ /dev/mmcblk2 ] to [ /ddbr/BACKUP-arm-64-emmc.img.gz ], Please wait... 1.33GiB 0:04:06 [3.46MiB/s] [==> ] 9% ETA 0:40:27 ... 14.5GiB 0:33:31 [7.36MiB/s] [================================>] 100% 30310400+0 records in 30310400+0 records out 15518924800 bytes (16 GB, 14 GiB) copied, 2011.22 s, 7.7 MB/s [ SUCCESS ] Backup is complete. tucky@armbian:~$ ls -l /ddbr total 2411952 -rw-r--r-- 1 root root 2469830912 Jul 10 21:27 BACKUP-arm-64-emmc.img.gz

Note that 2469830912 bytes = 2411944,25 KiB = 2355,41 MiB = 2,30 GiB, so that it should be possible to make other backups of the content of the eMMC storage with the same USB drive. Be careful though, I do not know if the utility overwrites the BACKUP-arm-64-emmc.img. without warning. To avoid any possible error on that count, I renamed the backup file immediately.

Copy the OS on the SD Card to the eMMC Storage toc

The image obtained from ophub contains a utility to transfer the OS to the eMMC flash memory called armbian-install. Do not try to use armbian-config or an install.aml.sh script as suggested elsewhere. I had to go back to the Android firmware when I made that mistake.

The procedure is a little bit more complex than 8. Install Armbian to EMMC leads one to believe because the Amlogic S92 or the Beelink GT1 have not yet been added to the list of supported models (perhaps this is already fixed in the newer releases from ophub). I could not find much information on a custom installation with the utility, so here is what worked for me without any pretention that this is the correct way to go about it.

tucky@domo:~$ sudo armbian-install [ STEPS ] Start install armbian to emmc... [ STEPS ] Start initializing the environment... [ INFO ] DEV_EMMC: [ /dev/mmcblk2 ] [ STEPS ] Start selecting device... -------------------------------------------------------------------------------------- ID SOC MODEL DTB -------------------------------------------------------------------------------------- 101 s905d Phicomm-N1 meson-gxl-s905d-phicomm-n1.dtb 102 s905d Phicomm-N1-(DMA-thresh) meson-gxl-s905d-phicomm-n1-thresh.dtb 103 s905x HG680P-&-TBee meson-gxl-s905x-p212.dtb 104 s905w X96-Mini-&-TX3-Mini meson-gxl-s905w-tx3-mini.dtb 520 s905x3 A95XF3-Air-100Mb meson-sm1-a95xf3-air.dtb 0 Other Customize Enter-custom-dtb-name -------------------------------------------------------------------------------------- [ OPTIONS ] Please Input ID: 0 Please Input SoC Name: s912 Please Input DTB Name: meson-gxm-beelink-gt1.dtb Please Input UBOOT_OVERLOAD Name: u-boot-zyxq.bin Please Input MAINLINE_UBOOT Name: Enter - hoping there's a valid default value Please Input ANDROID_UBOOT Name: Enter - hoping there's a valid default value [ INFO ] Input Box ID: [ 0 ] [ INFO ] FDTFILE: [ meson-gxm-beelink-gt1.dtb ] [ INFO ] UBOOT_OVERLOAD: [ u-boot-zyxq.bin ] [ INFO ] K510: [ 0 ] [ STEPS ] Start selecting file system type... ----------------------------------------------- ID TYPE ----------------------------------------------- 1 ext4 2 btrfs ----------------------------------------------- [ OPTIONS ] Please Input ID: 1 [ INFO ] Input Type ID: [ 1 ] [ INFO ] The type of file system: [ ext4 ] [ STEPS ] Start creating eMMC partition... [ INFO ] Start backup default bootloader. 4+0 records in 4+0 records out 4194304 bytes (4.2 MB, 4.0 MiB) copied, 0.290511 s, 14.4 MB/s 1+0 records in 1+0 records out 512 bytes copied, 0.00176237 s, 291 kB/s [ INFO ] Start create MBR and partittion. [ INFO ] Restore the mybox bootloader: [ /usr/lib/u-boot/mybox-bootloader.img ] 444+0 records in 444+0 records out 444 bytes copied, 0.0037894 s, 117 kB/s 8191+0 records in 8191+0 records out 4193792 bytes (4.2 MB, 4.0 MiB) copied, 0.45052 s, 9.3 MB/s [ STEPS ] Start processing the bootfs partition... [ INFO ] Formatting BOOTFS partition. mkfs.fat 4.1 (2017-01-24) [ INFO ] Start copy BOOTFS partition data. [ INFO ] Generate the new uEnv.txt file. [ INFO ] Generate the new extlinux.conf file. [ STEPS ] Start processing the rootfs partition... [ INFO ] Formatting ROOTFS partition. [ INFO ] Start copy ROOTFS partition data. [ INFO ] Copy the [ etc ] directory. [ INFO ] Copy the [ home ] directory. [ INFO ] Copy the [ lib64 ] directory. [ INFO ] Copy the [ opt ] directory. [ INFO ] Copy the [ root ] directory. [ INFO ] Copy the [ selinux ] directory. [ INFO ] Copy the [ srv ] directory. [ INFO ] Copy the [ usr ] directory. [ INFO ] Copy the [ var ] directory. [ INFO ] Generate the new fstab file. [ INFO ] Update the relevant parameters. [ SUCCESS ] Successful installed, please unplug the USB, re-insert the power supply to start the armbian.

Before removing the SD card and rebooting, I had a superficial look at what the armbian-install utility had done. For the curious here are the results. Don't forget, the TV box is running the Armbian image on the SD card. Just to help identify the OS images, an empty file was added in the /boot directory of the SD card. Then the two partitions on the eMMC storage were mounted into the running file system.

tucky@domo:~$ sudo touch /boot/armbian_sd_img.txt tucky@domo:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT mmcblk0 179:0 0 14.9G 0 disk ├─mmcblk0p1 179:1 0 255M 0 part /boot └─mmcblk0p2 179:2 0 2.7G 0 part / mmcblk2 179:32 0 14.5G 0 disk ├─mmcblk2p1 179:33 0 511M 0 part └─mmcblk2p2 179:34 0 13.7G 0 part mmcblk2boot0 179:64 0 4M 1 disk mmcblk2boot1 179:96 0 4M 1 disk zram0 254:0 0 965.3M 0 disk [SWAP] zram1 254:1 0 50M 0 disk /var/log zram2 254:2 0 965.3M 0 disk /var/tmp tucky@domo:~$ ls -l /mnt total 4 drwx------ 4 root root 4096 Jul 16 01:57 nand-sata-install.5zTdEC tucky@domo:~$ sudo mkdir /mnt/emmc0 tucky@domo:~$ sudo mount /dev/mmcblk2p1 /mnt/emmc0 tucky@domo:~$ ls -l /mnt/emmc0 total 95824 -rwxr-xr-x 1 root root 1536 Jul 16 22:02 armbian_first_run.txt.template -rwxr-xr-x 1 root root 38518 Jul 16 22:02 boot.bmp -rwxr-xr-x 1 root root 953 Jul 16 22:02 boot.cmd -rwxr-xr-x 1 root root 571 Jul 16 22:02 boot.ini -rwxr-xr-x 1 root root 1025 Jul 16 22:02 boot.scr -rwxr-xr-x 1 root root 208410 Jul 16 22:02 config-5.15.52-flippy-74+o drwxr-xr-x 3 root root 8192 Jul 16 22:02 dtb -rwxr-xr-x 1 root root 831 Jul 16 22:02 emmc_autoscript -rwxr-xr-x 1 root root 759 Jul 16 22:02 emmc_autoscript.cmd drwxr-xr-x 2 root root 8192 Jul 16 22:02 extlinux -rwxr-xr-x 1 root root 8069550 Jul 16 22:02 initrd.img-5.15.52-flippy-74+o -rwxr-xr-x 1 root root 5575080 Jul 16 22:02 System.map-5.15.52-flippy-74+o -rwxr-xr-x 1 root root 704408 Jul 16 22:02 u-boot-e900v22c.bin -rwxr-xr-x 1 root root 703444 Jul 16 22:02 u-boot.ext -rwxr-xr-x 1 root root 757153 Jul 16 22:02 u-boot-gtking.bin -rwxr-xr-x 1 root root 757080 Jul 16 22:02 u-boot-gtkingpro.bin -rwxr-xr-x 1 root root 735459 Jul 16 22:02 u-boot-gtkingpro-rev-a.bin -rwxr-xr-x 1 root root 702771 Jul 16 22:02 u-boot-n1.bin -rwxr-xr-x 1 root root 761012 Jul 16 22:02 u-boot-odroid-n2.bin -rwxr-xr-x 1 root root 553489 Jul 16 22:02 u-boot-p201.bin -rwxr-xr-x 1 root root 606670 Jul 16 22:02 u-boot-p212.bin -rwxr-xr-x 1 root root 609247 Jul 16 22:02 u-boot-s905.bin -rwxr-xr-x 1 root root 740080 Jul 16 22:02 u-boot-s905x2-s922.bin -rwxr-xr-x 1 root root 650183 Jul 16 22:02 u-boot-s905x-s912.bin -rwxr-xr-x 1 root root 709768 Jul 16 22:02 u-boot.sd -rwxr-xr-x 1 root root 754378 Jul 16 22:02 u-boot-sei510.bin -rwxr-xr-x 1 root root 754384 Jul 16 22:02 u-boot-sei610.bin -rwxr-xr-x 1 root root 758664 Jul 16 22:02 u-boot-tx3-bz.bin -rwxr-xr-x 1 root root 759112 Jul 16 22:02 u-boot-tx3-qz.bin -rwxr-xr-x 1 root root 694755 Jul 16 22:02 u-boot-u200.bin -rwxr-xr-x 1 root root 775483 Jul 16 22:02 u-boot-ugoos-x3.bin -rwxr-xr-x 1 root root 709768 Jul 16 22:02 u-boot.usb -rwxr-xr-x 1 root root 748175 Jul 16 22:02 u-boot-x96max.bin -rwxr-xr-x 1 root root 746678 Jul 16 22:02 u-boot-x96maxplus.bin -rwxr-xr-x 1 root root 703444 Jul 16 22:02 u-boot-zyxq.bin -rwxr-xr-x 1 root root 358 Jul 16 22:02 uEnv.txt -rwxr-xr-x 1 root root 373 Jul 16 22:02 uEnv.txt.noIPv6 -rwxr-xr-x 1 root root 8069614 Jul 16 22:02 uInitrd -rwxr-xr-x 1 root root 8069614 Jul 16 22:02 uInitrd-5.15.52-flippy-74+o -rwxr-xr-x 1 root root 25739776 Jul 16 22:02 vmlinuz-5.15.52-flippy-74+o -rwxr-xr-x 1 root root 25739776 Jul 16 22:02 zImage tucky@domo:~$ cat /mnt/emmc0/uEnv.txt LINUX=/zImage INITRD=/uInitrd FDT=/dtb/amlogic/meson-gxm-beelink-gt1.dtb APPEND=root=UUID=0bc0ab30-965e-4d98-b8fc-ac63d2dc085a rootflags=data=writeback rw rootfstype=ext4 console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1 tucky@domo:~$ cat /mnt/emmc0/extlinux/extlinux.conf label Armbian kernel /zImage initrd /uInitrd fdt /dtb/amlogic/meson-gxm-beelink-gt1.dtb append root=UUID=0bc0ab30-965e-4d98-b8fc-ac63d2dc085a rootflags=data=writeback rw rootfstype=ext4 console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 loglevel=1 voutmode=hdmi disablehpd=false overscan=100 sdrmode=auto

These last two files are the same as those found on the SD card, except for the root UUID which corresponds to the unique identifier attributed to the ext4 partition on the eMMC.

tucky@domo:~$ cat /etc/fstab UUID=0bc0ab30-965e-4d98-b8fc-ac63d2dc085a / ext4 defaults,noatime,errors=remount-ro 0 1 LABEL=BOOT_EMMC /boot vfat defaults 0 2 tmpfs /tmp tmpfs defaults,nosuid 0 0

I did something similar with the / directory.

tucky@domo:~$ sudo mkdir /mnt/emmc1 tucky@domo:~$ sudo mount /dev/mmcblk2p2 /mnt/emmc1 tucky@domo:~$ ls /mnt/emmc1 bin boot dev etc home lib lib64 lost+found media mnt opt proc root run sbin selinux srv sys tmp usr var tucky@domo:~$ ls -la /mnt/emmc1/home/tucky total 120 drwxr-xr-x 11 tucky tucky 4096 Jul 16 22:32 . drwxr-xr-x 3 root root 4096 Jul 2 04:08 .. -rw------- 1 tucky tucky 15163 Jul 17 00:24 .bash_history -rw-r--r-- 1 tucky tucky 220 Jul 2 04:08 .bash_logout -rw-r--r-- 1 tucky tucky 3857 Jul 11 01:48 .bashrc drwx------ 3 tucky tucky 4096 Jul 11 01:50 .cache drwxr-xr-x 3 tucky tucky 4096 Jul 2 04:08 .config drwxrwxr-x 6 tucky tucky 4096 Jul 13 16:33 .domopy drwxr-xr-x 7 tucky tucky 4096 Jul 17 00:25 domoticz drwxrwxr-x 3 root root 4096 Jul 16 22:22 ha-bridge drwxrwxr-x 4 tucky tucky 4096 Jul 11 01:44 .local drwxr-xr-x 3 tucky tucky 4096 Jul 2 04:08 .oh-my-zsh -rw-r--r-- 1 tucky tucky 807 Jul 2 04:08 .profile -rw-rw-r-- 1 tucky tucky 66 Jul 13 20:08 .selected_editor -rw-r--r-- 1 tucky tucky 0 Jul 2 06:05 .sudo_as_admin_successful drwxrwxr-x 6 tucky tucky 4096 Jul 11 01:49 tempy -rw-rw-r-- 1 tucky tucky 165 Jul 12 12:43 .wget-hsts -rw-r--r-- 1 tucky tucky 0 Jul 2 04:08 .Xauthority -rw-r--r-- 1 tucky tucky 3948 Jul 2 04:08 .zshrc tucky@domo:~$ sudo shutdown now

As can be seen, the user home directory is not bare. That's because I had installed the home automation system which includes Domoticz, HA Bridge and so on. Time to shut down the TV box cum Linux appliance to test the installation to eMMC.

I am happy to report that booting from the internal eMMC storage worked and the S92 TV Box running Armbian - Ubuntu 20.04.4 LTS (Focal) with a 5.15.52 Linux kernel is hosting the home automation system.

The End? toc

The system has been in operation, sometimes off, but mostly on for the last three weeks or so. For the most part everything works. The major exception is HA Bridge which was not unexpected. For some reason getting devices recognized by Alexa has failed up until now. I have not yet given up on that, so there may yet be good news on that front. Wireguard was built into the Armbian Linux image. Apparently nftables have not replaced iptables in this version of Linux, so copying the wg0.conf configuration file from the Raspberry Pi Buster installation of Wireguard and ensuring that IP forwarding was enabled was all that was needed to gain to the IoT devices from the Web. A test over a short holiday proved that the VPN server works just as before. There may be a follow-up post about installing Domoticz on this repurposed server in the next weeks if there's anything interesting to report.

This has been quite a journey which would not have been possible except for the much appreciated work of the many individuals engaged in the various Amlogic Linux communities. Again let me express my thanks for their contribution. It is very satisfying to give a new life to a piece of equipment that, as so often happens, had been abandoned by the manufacturer almost as soon as released.

Références et chapeau! toc

Pour être convenablement modeste, avec raison d'ailleurs, je n'ai que sélectionné une image basée sur le travail des autres. En premier lieux il faut remercier la petite mais prolifique équipe d'Armbian pour la distribution initiale. S'ajoute à cela les contributions de balbes150, ophub et danuzz pour aboutir à une image de Linux moderne et fonctionnant avec le processeur l'AML S192 et avec les périphériques trouvés sur le Alfawise S92 / Beelink GT1.

Il semble d'une simplicité trompeuse d'obtenir une image fonctionnelle, mais cela n'a été qu'avec des conseils été obtenus de nombreuses sources dont notamment

Voici d'autres références pour les plus téméraires.