Premiers pas avec M5/M2Pro

https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro

Introduction

Processeur Amlogic S905X3

Processeur Amlogic S905X3

Banana Pi M5 est une conception d’ordinateur monocarte de nouvelle génération, utilise le processeur Amlogic S905X3 Quad-Core Cortex-A55 (2.0xxGHz). GPU Mali-G31 MP2 avec 4 moteurs d’exécution (650Mhz). prend en charge 4 Go LPDDR4 et 16G eMMC flash. il dispose de 4 ports USB 3.0, d’un port LAN 1GbE, d’un récepteur IR, d’une prise audio, d’une sortie HDMI et d’une alimentation USB type-c.

Banana Pi M2Pro est le même SOC avec M5, mais une disposition de carte différente. 2 Go LPDDR4 et 16G eMMC flash, 2 ports USB 3.0, port LAN 1GbE, rtl8821cu usb wifi/bt intégré, récepteur IR, 1 sortie HDMI, 1 port MicroUSB, alimentation CC.

Caractéristiques

  • SoC – Processeur Cortex-A55 quadricœur Amlogic S905X3 @ jusqu’à 2,0 GHz avec
  • GPU Mali-G31 MP2 @ 650Mhz
  • Mémoire système – 4 Go LPDDR4
  • Stockage – Flash eMMC de 16 Go (option jusqu’à 64 Go), emplacement MicroSD jusqu’à 2 To
  • Sortie vidéo – HDMI 2.1 jusqu’à 4Kp60 avec HDR, CEC, EDID
  • Audio – Prise audio 3,5 mm, audio HDMI numérique
  • Connectivité – Gigabit Ethernet
  • USB – 4 ports USB 3.0 via le contrôleur de concentrateur VL817, 1 port USB-C (pour l’alimentation uniquement ?)
  • Extension – Connecteur Raspberry Pi 40 broches avec 28x GPIO, UART, I2C, SPI, PWM et signal d’alimentation (+5V, +3.3V, GND).
  • Débogage – en-tête de débogage à 3 broches
  • Divers – Bouton de réinitialisation, d’alimentation et d’U-boot ; LED d’alimentation et d’activité ; Récepteur infrarouge
  • Alimentation – 5V @3A via le port USB Type-C
  • Dimensions – 92x60mm (Pas la même que la taille du PCB Raspberry Pi, mais ils ont probablement inclus les connecteurs lors de la mesure)
  • Poids – 48 grammes

développement

Préparer

1. Préparez un câble USB-série, une alimentation adaptateur 5V/3A type-c. Le câble série est utilisé pour le débogage de la console et le câble de type c est utilisé pour le téléchargement d’images Android et le débogage ADB. M2pro est un port micro-usb utilisé pour le téléchargement d’images Android et le débogage ADB.
2. Préparez une carte SD d’au moins 8 Go pour le développement Linux, Android ne prend en charge que le démarrage emmc.
3. Le premier support de démarrage de la rom SOC est emmc, donc la carte ne peut pas démarrer à partir de la carte SD si l’emmc est amorçable avec n’importe quelle image flashée, plus d’informations s’il vous plaît se référer à la séquence de démarrage de la carte .
4. Sous Android, la carte SD est mmc0, emmc est mmc1, mais sous Linux, la carte SD est mmc1, emmc est mmc0.

Android

Préparer

1. Téléchargez et installez l’ outil de gravure USB AML pour le téléchargement d’images Android via USB type-c sur M5 et Micro-usb sur M2pro, ne prend en charge que Windows.
2. Téléchargez la dernière image Android et confirmez que la somme de contrôle md5 est correcte.
3. M5 et M2pro sont compatibles avec la même image Android.

Installer l’image avec l’outil de gravure USB

1. Ouvrez USB_Burning_Tool.exe, sélectionnez le menu Fichier->Importer une image, choisissez le fichier image Android aml_upgrade_package.img.
Installation Android M5 1.png
2. La carte M5/M2pro déconnecte l’alimentation, appuyez et maintenez le bouton SW4 à côté de l’en-tête 40 broches, câble USB type-c (microUSB sur m2pro) vers PC.
Installation Android M5 2.png
3. Cliquez sur le bouton Démarrer et attendez que la mise à niveau soit terminée.
Installation Android M5 3.png
4. Une fois la gravure réussie, débranchez l’usb et connectez-vous à l’adaptateur d’alimentation pour démarrer.
Installation Android M5 4.png
5. Cliquez sur le bouton Arrêter pour annuler le processus de mise à niveau et fermer l’outil de gravure USB.

Installer l’image avec l’outil Flash Aml

aml-flash-tool est une plate-forme linux opensource image flash util pour Amlogic android.
$ ./flash-tool.sh --img=/path/to/aml_upgrade_package.img --parts=all --wipe --soc=g12a --reset=y
M5 linux flash.PNG

Construire le code source Android

1. Obtenez le code source d’Android 9.0
$ git clone https://github.com/BPI-SINOVOIP/BPI-S905X3-Android9
2. Créez le code source d’Android 9.0
Veuillez lire le code source README.md

Superposition Android DTB

Tableau des valeurs idx Bananapi M5/M2Pro DTBO, la valeur idx par défaut est 0 dans l’image de version.
Tableau des valeurs idx Bananapi M5/M2pro DTBO
valeur idxsuperposition de l’arborescence des périphériquesla description
0android_p_overlaydtbo par défaut, pas d’utilisation
1wifi_bt_rtl8822csactiver le module wifi/bt bpi rtl8822cs
2i2c2activer i2c 2
3i2c3activer i2c 3
4audioactiver l’audio
5uart1activer 2 broches uart 1
6uart1_cts_rtsactiver 4 broches uart 1
septuart2activer 2 broches uart 2
8hifi_pcm5122activer le DAC HiFi i2s pcm5122
Comment appliquer un nouveau dtbo
1. Commande ADB via sysfs
 root@dangku-desktop :/tmp# racine adb
 redémarrer adbd en tant que root
 root@dangku-desktop :/tmp# remontage adb
 remontage réussi
 root@dangku-desktop :/tmp# shell adb
 bananapi_m5:/ # echo dtbo > /sys/class/unifykeys/nom                                                
 bananapi_m5:/ # echo "1" > /sys/class/unifykeys/write                                                
 bananapi_m5 :/ # redémarrage
2. Commande de console Uart via sysfs
console :/ $
 console :/ $ su
 console :/ # echo dtbo > /sys/class/unifykeys/nom                              
 [   115.702781@0 ] unifykey: name_store() 1302, name dtbo, 4
 [   115.702856@0 ] unifykey: name_store() 1311
 console:/ #
 console :/ # echo "1" > /sys/class/unifykeys/write                              
 [   129.262659@0 ] unifykey : write_store() est une chaîne
 [   129.262733@0 ] unifykey : dtbo, 1, 1
 [   129.265312@0 ] unifykey : amlkey_write 393
 [   129.292347@1 ] emmc_key_write:149, écrivez ok
 console:/ #
 console :/ # redémarrage
3. Application Paramètres (À faire)
Vérifiez le message de débogage de démarrage uart et confirmez quel dtbo est réellement chargé, ici « 1 » signifie définir idx=1 pour appliquer wifi_bt_rtl8822cs dtbo.
charger dtb à partir de 0x1000000 ......
       Outil multi-dtb Amlogic
       Dtb unique détecté
 trouver 2 dtbos
 dtbos à appliquer : 1
 Appliquer dtbo 1
Unifykeys est stocké dans une partie emmc spécifique, « Effacement normal » sélectionné dans USB_Burning_Tool n’effacera pas ces données pour la prochaine mise à jour, vous devez sélectionner « Effacer tout » si vous souhaitez que l’idx dtbo par défaut soit appliqué après le téléchargement de l’image.
M5 android effacer tout.png
Créez une image Android avec une valeur par défaut DTBO spécifique .
1. Les superpositions intégrées par défaut sont définies dans device/amlogic/bananapi_m5/Kernel.mk, vous pouvez ajouter une nouvelle superposition dtbo ici.
DTBO_DEVICETREE := android_p_overlay wifi_bt_rtl8822cs i2c2 i2c3 sdio uart1 uart1_cts_rts uart2 hifi_pcm5122
2. L’idx d’application DTBO par défaut est défini dans device/amlogic/bananapi_m5/BoardConfig.mk, vous pouvez modifier la valeur idx pour définir quelle superposition dtbo sera appliquée par défaut.
BOARD_KERNEL_CMDLINE += androidboot.dtbo_idx=0
3. Les fichiers DTS sont dans common/arch/arm/boot/dts/amlogic/overlay/bananapi_m5/
Plus d’informations sur les superpositions d’arbres d’appareils Android, veuillez vous référer au site officiel de Google Android

Installer OpenGapps

1. Téléchargez le package d’installation à partir d’OpenGapps , l’image de la version Android est la variante arm/android 9.0.

Opengapps.PNG

2. Téléchargez device_id.apk .
3. Copiez le package OpenGapp dans un répertoire racine udisk ou sdcard.

4. Créez un fichier txt nommé factory_update_param.aml dans le répertoire racine udisk ou sdcard avec le contenu du paramètre de récupération Android suivant, et remplacez le nom du fichier par le package réellement téléchargé.

udisk :
--wipe_cache
 --update_package=/udisk/open_gapps-arm-9.0-pico-20210327.zip
carte SD:
--wipe_cache
 --update_package=/sdcard/open_gapps-arm-9.0-pico-20210327.zip
5. Branchez l’udisk ou la carte SD sur la carte et allumez-la.
6.Installation et certification d’OpenGapps.
regardez cette vidéo sur bilibili

Télécommande IR personnalisée

Avant de commencer ce travail, certains concepts et connaissances de base d’Android doivent être connus.
  • Événement de clé d’entrée du noyau Linux.
  • Code clé Android.
  • Carte de code de clé Linux vers le code de clé Android.
  • La fonction Android Adb fonctionne sur votre PC
1. extrayez les fichiers distants de l’appareil
# adb pull /fournisseur/etc/remote.cfg
 # adb pull /fournisseur/etc/remote.tab
2. modifiez remote.cfg pour activer le message de débogage à distance
Remotecfg.png
repousser remote.cfg
# racine adb
 # remontage adb
 # adb push remote.cfg /fournisseur/etc/
 # shell adb
 m5_mbox:/ # chmod 644 /vendor/etc/remote.cfg
 m5_mbox:/ # remotecfg -c /vendor/etc/remote.cfg -d                                                  
 cfgdir = /vendor/etc/remote.cfg
 mode_travail = 1
 repeat_enable = 0
 debug_enable = 1
 max_frame_time = 1000
3. Obtenez le code d’accès à distance
Appuyez sur votre clé à distance une par une, puis imprimez le dmesg pour obtenir le code personnalisé à distance et chaque code de clé à distance.
# shell adb dmesg | grep framecode=
Code clé.png
code_personnalisé = 0xfe01
code clé = 0x00, 0x01, 0x09, 0x02, 0x0a, 0x05, 0x04 0x06, 0x03, 0x0b, 0x40, 0x48, 0x44
4. Modifiez remote.tab pour mapper le scancode sur le code clé Android
Remotetab.png
appuyez sur remote.tab et testez chaque touche si elle fonctionne
# racine adb
 # remontage adb
 # adb push remote.tab1 /fournisseur/etc/
 # shell adb
 m5_mbox:/ # chmod 644 /vendor/etc/remote.tab
 m5_mbox:/ # remotecfg -c /vendor/etc/remote.cfg -t /vendor/etc/remote.tab -d                                                                                                                               
 cfgdir = /vendor/etc/remote.cfg
 mode_travail = 1
 repeat_enable = 0
 debug_enable = 1
 max_frame_time = 1000
 tabdir = /fournisseur/etc/remote.tab
 nom_personnalisé = nec-test
 fn_key_scancode = 0xffff
 curseur_gauche_scancode = 0xffff
 curseur_droit_scancode = 0xffff
 curseur_up_scancode = 0xffff
 curseur_bas_scancode = 0xffff
 curseur_ok_scancode = 0xffff
 code_personnalisé = 0xfe01
 release_delay = 80
 map_size = 13
 clé[0] = 0x74
 clé[1] = 0x1008b
 clé[2] = 0x90066
 clé[3] = 0x20069
 clé[4] = 0xa006a
 clé[5] = 0x50067
 clé[6] = 0x4006c
 clé[7] = 0x6001c
 clé[8] = 0x30072
 clé[9] = 0xb0073
 clé[10] = 0x40009e
 clé[11] = 0x4800a4
 clé[12] = 0x440071
5. Redémarrez la carte

Linux

Préparer

1. L’image Linux prend en charge le démarrage de la carte SD ou EMMC, mais vous devez d’abord lire la séquence de démarrage .
2. M5 et M2pro sont compatibles avec la même image Linux.
2. Assurez-vous que l’EMMC amorçable est formaté si vous voulez démarrer à partir de la carte SD, plus d’informations se référer à Effacer l’EMMC pour le démarrage de la carte SD
3. Assurez-vous que la carte SD est formatée sans que l’image Linux ne soit flashée si vous souhaitez démarrer à partir d’EMMC et utiliser la carte SD comme stockage.
4. Installez bpi-tools sur votre PC Linux (si vous utilisez une image flash avec d’autres outils, ignorez cette étape). Si vous ne pouvez pas accéder à cette URL ou à tout autre problème d’installation, veuillez vous rendre sur le référentiel source de bpi-tools , télécharger et installer ces outils manuellement.
$ apt-get install pv
 $ curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash
5. Téléchargez la dernière image Linux de Linux et confirmez que la somme de contrôle md5 est correcte.
6. Connexion par défaut : pi/bananapi ou root/bananapi

Installer l’image sur la carte SD

1. Installez Image avec Etcher sur Windows, Linux et MacOS.

Balena Etcher est un outil flash GUI opensource de Balena, Flash OS images sur carte SD ou clé USB
M2s linux flash.png
2. Installez l’image avec la commande dd sous Linux, démontez la partition /dev/sdX du périphérique SDcard si elle est montée automatiquement. En fait, bpi-copy est identique à cette commande dd.
$ sudo apt-get install pv décompresser
 $ sudo unzip -p xxx-bpi-m5-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer
3. Installez l’image avec bpi-tools sur Linux, branchez la carte SD sur le PC Linux et exécutez
$ sudo apt-get install pv décompresser
 $ sudo copie-bpi xxx-bpi-m5-xxx.img.zip /dev/sdX

Installer l’image sur EMMC

1. Préparez une carte SD avec une image Linux flashée et une carte de démarrage avec cette carte SD.
2. Copiez l’image Linux sur udisk, branchez l’udisk sur la carte et montez-la.
3. Installez avec la commande dd, démontez les partitions mmcblk0p1 et mmcblk0p2 si elles sont montées automatiquement. En fait, bpi-copy est identique à cette commande dd.
$ sudo apt-get install pv décompresser
 $ sudo unzip -p xxx-bpi-m5-xxx.img.zip | pv | jj de=/dev/mmcblk0 bs=10M status=noxfer
4. Installez l’image linux dans udisk avec la commande bpi-tools
$ sudo apt-get install pv décompresser
 $ sudo bpi-copy xxx-bpi-m5-xxx.img.zip /dev/mmcblk0
5. Une fois le téléchargement terminé, éteignez-le en toute sécurité et éjectez la carte SD.

Construire le code source Linux

1. Obtenez le code source Linux bsp
$ git clone https://github.com/BPI-SINOVOIP/BPI-M5-bsp
2. Construire le code source bsp
Veuillez lire le code source README.md
3. Si vous voulez construire uboot et le noyau séparément, veuillez télécharger u-boot le noyau uniquement, obtenir les chaînes d’outils, le script de démarrage et d’autres fichiers de configuration à partir de BPI-M5-bsp

Superposition DTB

1. La superposition DTB est utilisée pour la configuration multifonction gpios 40 broches et l’installation dans la partition de démarrage vfat, vous pouvez vérifier le point de montage avec la commande mount.
 root@bananapi :~# ls /boot/firmware/overlays/
 custom_ir.dtbo pwm_b-backlight.dtbo spi0.dtbo
 ds3231.dtbo pwm_c-beeper.dtbo uart1_cts_rts.dtbo
 hifi_pcm5102a.dtbo pwm_cd-c.dtbo uart1.dtbo
 hifi_pcm5122.dtbo pwm_cd.dtbo uart2.dtbo
 i2c0.dtbo pwm_ef.dtbo waveshare_tft24_lcd.dtbo
 i2c1.dtbo pwm_ef-f.dtbo waveshare_tft35c_lcd.dtbo
 pwm_ab.dtbo sdio.dtbo waveshare_tft35c_rtp.dtbo
2. Mettez à jour les overlays env dans vfat /boot/firmware/boot.ini pour activer ce que vous voulez. i2c0, spi0 et uart1 activés par défaut.
# Superpositions à charger
 # Exemples de combinaisons :
 # spi0 i2c0 i2c1 uart0
 #hktft32
 #hktft35
 setenv superpose "i2c0 spi0 uart1"
3. Doit être redémarré la carte pour la superposition dtb chargée.

CâblagePi

Remarque : ce WiringPi ne prend en charge que le réglage gpio 40 broches pour la sortie, l’entrée ou le logiciel pwm, pour les fonctions io comme i2c, spi, pwm…, vous devez activer la superposition dtb dans boot.ini
1. Construire et installer le câblagePi
$ git clone https://github.com/BPI-SINOVOIP/amlogic-wiringPi
 $ cd amlogic-wiringPi
 $ construction chmod a+x
 $ sudo ./construction
2. Exécutez gpio readall pour afficher l’état de tous les 40 broches.

Câblage M5pi.png

3. Carte d’extension BPI GPIO et exemples dans amlogic-wiringPi/examples
Blinkall, clignote tous les gpios d’en-tête de broche, pas de carte d’extension.
lcd-bpi, exemple de module d’affichage BPI LCD 1602 .
52pi-bpi, exemple de module d’affichage OLED BPI .
matrixled-bpi, exemple de module d’extension de matrice de LED RVB BPI .
berryclip-bpi, Module BPI BerryClip

RPi.GPIO

Construire et installer
$ sudo apt-get Installer python essentiel à la construction python-dev python-setuptools git
 $ git clone https://github.com/Dangku/RPi.GPIO-Amlogic.git
 $ cd RPi.GPIO-Amlogic
 $ sudo python setup.py propre --all
 $ sudo python setup.py build install

CâblagePi2-Python

Construire et installer
$ sudo apt-get Installer python python-dev python-setuptools swig git
 $ git clone --recursive   https://github.com/Dangku/WiringPi2-Python-Amlogic.git
 $ cd WiringPi2-Python-Amlogic
 $ sudo python setup.py installer

Démarrer Linux à partir d’une clé USB

S905x3 ne prend pas en charge le démarrage USB dans la soc rom, donc le seul moyen de démarrer Linux à partir d’un lecteur USB est de créer une carte SD ou emmc amorçable avec le chargeur de démarrage flashé, puis de charger le démarrage et le rootfs à partir du lecteur USB. Après le démarrage, tout fonctionnera à partir du lecteur USB.
1. Le moyen le plus simple consiste à flasher l’image Linux M5/M2Pro sur une carte SD ou emmc pour le démarrage et également à le flasher sur le lecteur USB pour charger le démarrage et le rootfs.
2. Démarrez la carte M5/M2pro avec sdcard ou emmc , copiez /boot/boot.ini vers /boot/boot.ini.org afin que le chargeur de démarrage charge boot.ini échoue, puis essayez de le charger à partir de la partition de démarrage du lecteur USB.
3. Redémarrez le système, bootscript et rootfs se chargeront à partir du lecteur USB.
Démarrage M5 depuis usb.png
4. Tester les performances
Vous pouvez vérifier les performances de votre clé USB sur Pi Benchmarks à l’aide de la commande suivante :
sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | bash sudo
Résultats des tests pour sd, emmc et clé usb
CatégorieTestRésultat du test de la carte SDRésultat du test EmmcRésultat du test du lecteur USB
HDParmLecture de disque67,91 Mo/s156,64 Mo/s253,40 Mo/s
HDParmLecture de disque en cache57,39 Mo/s126,53 Mo/s253,52 Mo/s
JJÉcriture sur disque13,0 Mo/s48,8 Mo/s149 Mo/s
OIFlecture aléatoire 4k2456 IOPS (9826 Ko/s)9701 IOPS (38806 Ko/s)5474 IOPS (21897 Ko/s)
OIFécriture aléatoire 4k938 IOPS (3 753 Ko/s)12888 IOPS (51554 Ko/s)6980 IOPS (27920 Ko/s)
IOZonelecture 4k10615 Ko/s29568 Ko/s23770 Ko/s
IOZoneécriture 4k4276 Ko/s33585 Ko/s18598 Ko/s
IOZonelecture aléatoire 4k8661 Ko/s29637 Ko/s19982 Ko/s
IOZoneécriture aléatoire 4k4795 Ko/s38177 Ko/s22134 Ko/s
  Note : 1300Note : 7811Note : 5879

Autre développement

Linux uboot limite la taille fb du logo de démarrage à 1080p60hz/1920×1080 par défaut, donc la résolution surdimensionnée ne sera pas prise en charge par l’image par défaut, mais vous pouvez modifier le code source uboot pour le prendre en charge.
1. Préparez un fichier bmp 24 bits et nommez-le boot-logo.bmp
2. Compressez le fichier bmp en boot-logo.bmp.gz
$ logo de démarrage gzip.bmp
3. Copiez le fichier cible sur la partition BPI-BOOT de l’image Linux
$ cp boot-logo.bmp.gz /media/xxx/BPI-BOOT/

La taille d’affichage fb du logo de démarrage du chargeur de démarrage Android est de 1080p60hz/1920×1080 par défaut, et la table de partition dtb du noyau Android limite la taille de la partition du logo de démarrage à 16 Mo par défaut.
1. Préparez un fichier bmp 24 bits et nommez-le boot-logo.bmp
2. Compressez le fichier bmp en boot-logo.bmp.gz
$ logo de démarrage gzip.bmp
3. Téléchargez m5_android_bootlogo_tool.zip
4. Extrayez cet outil
$ décompressez m5_android_bootlogo_tool.zip
 $ cd m5_android_bootlogo_tool/
 $ cp -a logo_img_files logo //logo_img_files est la ressource bootlogo d'origine dans la source Android et copie depuis <android-source-dir>/devices/amlogic/bananapi_m5/log_img_files
 $ ls -l logo/
 -rwxr--r-- 1 dangku dangku 525054 25 septembre 16:54 bootup.bmp
 -rwxr--r-- 1 dangku dangku 525054 25 septembre 16:54 bootup_X3.bmp
 -rwxr--r-- 1 dangku dangku 184 19 mai 2020 upgrade_bar.bmp
 -rwxr--r-- 1 dangku dangku 180072 19 mai 2020 upgrade_error.bmp
 -rwxr--r-- 1 dangku dangku 180072 19 mai 2020 upgrade_fail.bmp
 -rwxr--r-- 1 dangku dangku 180072 19 mai 2020 upgrade_logo.bmp
 -rwxr--r-- 1 dangku dangku 180072 19 mai 2020 upgrade_success.bmp
 -rwxr--r-- 1 dangku dangku 184 19 mai 2020 upgrade_unfocus.bmp
 -rwxr--r-- 1 dangku dangku 180072 19 mai 2020 upgrade_upgrading.bmp
5. Copiez le boot-logo.bmp.gz
$ cp boot-logo.bmp.gz logo/bootup.bmp
 $ cp boot-logo.bmp.gz logo/bootup_X3.bmp
6. Créez la cible logo.img avec l’outil img pack, les bibliothèques binaires et associées de m5_android_bootlogo_tool sont copiées de <android-source-dir>/out/host/linux-x86
$ ./logo_img_packer -r logo logo.img
7. Logo de démarrage flash avec fastboot
$ adb racine
 $ adb remonter
 $ adb redémarrer le démarrage rapide
Attendez quelques secondes et vérifiez si le démarrage rapide est connecté
$ périphérique de démarrage rapide
 1234567890 démarrage rapide
 $ fastboot clignotant unlock_critical
 $ déverrouillage clignotant fastboot
 $ fastboot flash logo logo.img
 $ redémarrage rapide

Séquence d’amorçage

Séquence de démarrage Linux M5.png
Vérifiez le chargeur de démarrage chargé à partir de la carte SD ou de l’EMMC au début des messages de débogage de la console
1. Rom load bootloader depuis la carte SD (exemple de journal Linux)
...
 
 BL2 Construit : 15:21:42, 26 mars 2020. g12a g486bc38 - gongwei.chen@droid11-sz
 
 ID de carte = 1
 Réglez cpu clk sur 24M
 Réglez clk81 sur 24M
 Utilisez GP1_pll comme clé DSU.
 Clk DSU: 1200 Mhz
 CPU clk : 1200 MHz
 Réglez clk81 sur 166.6M
 ID de carte : 1
 Charger FIP HDR DDR à partir de SD , src : 0x00010200, des : 0xfffd0000, taille : 0x00004000, partie : 0
 analyse fw terminée
 Préparation PIEI terminée
 vérification des données de démarrage rapide
 résultat : 255
 Cfg max : 12, cur : 1. ID de la carte : 255. Force loop cfg
 Sonde DDR4
 
 ...
2. Chargeur de démarrage de chargement ROM à partir d’EMMC (exemple de journal Android)
...
 
 ID de carte = 1
 Réglez cpu clk sur 24M
 Réglez clk81 sur 24M
 Utilisez GP1_pll comme clé DSU.
 Clk DSU: 1200 Mhz
 CPU clk : 1200 MHz
 Réglez clk81 sur 166.6M
 démarrage eMMC @ 0
 sw8 s
 ID de carte : 1
 Charger FIP HDR DDR depuis eMMC , src : 0x00010200, des : 0xfffd0000, taille : 0x00004000, partie : 0
 analyse fw terminée
 Préparation PIEI terminée
 00000000
 commutateur emmc 1 ok
 adresse enregistrée ddr : 00016000
 Charger le paramètre ddr depuis eMMC, src : 0x02c00000, des : 0xfffd0000, taille : 0x00001000, partie : 0
 00000000
 
 ...

Effacer EMMC pour le démarrage de la carte SD

Il y a quatre scénarios possibles auxquels il faut prêter attention, EMMC a déjà flashé l’image Android, EMMC a déjà flashé l’image Linux, raccrochement du processus de démarrage dans BL2 et EMMC vide.
1. EMMC amorçable avec image Android flashée
un). À l’aide de l’outil de gravure USB, débranchez le câble USB de téléchargement pendant le processus de téléchargement à 7 % de formatage
M5 android format.png
b). À l’aide de l’outil Android Fastboot, assurez-vous que les outils adb/fastboot fonctionnent sur votre PC avant de le faire.
   root@dangku-desktop :/tmp# racine adb
   adbd est déjà exécuté en tant que root
   root@dangku-desktop :/tmp# remontage adb
   remontage réussi
   root@dangku-desktop :/tmp# adb shell 
   bananapi_m5:/ # redémarrer fastboot
Attendez quelques secondes pour que la carte redémarre en mode fastboot
   root@dangku-desktop :/tmp# périphériques de démarrage rapide
   1234567890 démarrage rapide
   root@dangku-desktop :/tmp# démarrage rapide clignotant unlock_critical
   ...
   OK [ 0.044s]
   achevé. temps total : 0,044 s
   root@dangku-desktop :/tmp# fastboot clignotant déverrouillage
   ...
   OK [ 0.047s]
   achevé. temps total : 0,047 s
   root@dangku-desktop :/tmp# fastboot efface le chargeur de démarrage
   effacement du 'bootloader'...
   OK [ 0.059s]
   achevé. temps total : 0,059 s
   root@dangku-desktop :/tmp# fastboot erase bootloader-boot0
   effacement de 'bootloader-boot0'...
   OK [ 0.036s]
   achevé. temps total : 0,036 s
   root@dangku-desktop :/tmp# fastboot erase bootloader-boot1
   effacement de 'bootloader-boot1'...
   OK [ 0.035s]
   achevé. temps total : 0,035 s
c). À l’aide de la commande uboot, connectez un câble de console de débogage et appuyez sur ESC pendant la mise sous tension pour entrer dans la ligne de commande uboot
   bananapi_m5_v1# amlmmc effacer 1
   emmckey_is_protected() : protéger
   début = 0, fin = 57343
   début = 221184, fin = 30535679
   Effacement des blocs 0 à 8192 @ boot0
   début = 0, fin = 8191
   Effacement des blocs 0 à 8192 @ boot1
   début = 0, fin = 8191
   bananapi_m5_v1# réinitialiser
   réinitialisation...
   SM1:BL:511f6b:81ca2f;FEAT:A0F83180:20282000;POC:F;RCY:0;EMMC:0;READ:0;CHK:1F;READ:0;CHK:1F;READ:0;CHK;
Ces deux méthodes effacent en fait la partie chargeur de démarrage d’EMMC android. Après le démarrage à partir de SDcard Linux, vous feriez mieux de formater l’ensemble de l’EMMC avec la commande dd .
ré). Le moyen le plus simple est d’insérer la carte SD avec l’image Linux flashée avant la mise sous tension, le chargeur de démarrage Android vérifiera le fichier boot.ini s’il existe dans la partition vfat de la carte SD, afin que la carte SD Linux démarre. Après le démarrage, vous pouvez formater l’ensemble EMMC par la commande dd , puis flasher l’image Linux sur EMMC.
   ...
   BPI : essayez de démarrer à partir de la carte SD
   lecture boot.ini
   5699 octets lus en 3 ms (1,8 Mio/s)
   ## Exécution du script à 01b00000
   ...
   lire Image.gz
   9143358 octets lus en 510 ms (17,1 Mio/s)
   lecture de meson64_bananapi_m5.dtb
   70850 octets lus en 8 ms (8,4 Mio/s)
   lire uInitrd
   11704481 octets lus en 655 ms (17 Mio/s)
   lecture des superpositions/i2c0.dtbo
   223 octets lus en 6 ms (36,1 Kio/s)
   lecture des superpositions/spi0.dtbo
   516 octets lus en 6 ms (84 Kio/s)
   superpositions de lecture/uart1.dtbo
   225 octets lus en 5 ms (43,9 Kio/s)
2. EMMC amorçable avec une image Linux flashée
un). À l’aide de la commande uboot, connectez un câble de console de débogage et appuyez sur ESC pendant la mise sous tension pour entrer dans la ligne de commande uboot
   bananapi_m5# mmc effacer 0 1000
b). Linux u-boot vérifie également que le fichier boot.ini existe dans la partition vfat de la carte SD afin que la carte SD Linux démarre. Après le démarrage, vous pouvez formater l’ensemble EMMC par la commande dd ou flasher l’image Linux directement sur EMMC.
3. Une situation extrême est le chargeur de démarrage ou uboot corrompu, Rom le charge depuis EMMC mais raccroche dans u-boot ou BL2, par exemple le processus de démarrage se raccroche dans BL2 de EMMC si dram init a échoué, le seul moyen est de formater l’EMMC avec usb outil de gravure, ou téléchargez complètement l’image Android, puis essayez d’autres moyens d’effacer EMMC ou de flasher l’image Linux sur EMMC.
4. Rom essaiera de charger le chargeur de démarrage directement à partir de la carte SD si EMMC est vide.

Effacer Emmc Android par la commande dd

Si la carte a déjà été flashée sur Android, l’ensemble de l’emmc doit être effacé par ces commandes si vous souhaitez le démarrer avec l’image Linux de la carte SD.
$ sudo dd if=/dev/zero of=/dev/mmcblk0boot0 bs=1M status=noxfer
 $ sudo dd if=/dev/zero of=/dev/mmcblk0boot1 bs=1M status=noxfer
 $ sudo dd if=/dev/zero of=/dev/mmcblk0 bs=1M status=noxfer
 $ synchroniser

Prise en charge Wi-Fi/BT

1. Test et assistance Android.
rtl8723bu wifi/bt (usb)
 rtl8188eu wifi (usb)
 rtl8821cu wifi/bt(usb) 
 rtl8822cs wifi/bt(sdio/uart) 
 rtl8814au wifi(usb), veuillez obtenir le pilote
 aircrack-ng et l'installer.
Comment activer Android Wifi/BT
Type USB : branchez le dongle USB sur le port hôte USB et redémarrez le système. Après le démarrage, vous pouvez activer ou désactiver le Wi-Fi et le Bluetooth dans l’application Paramètres.
Type SDIO/UART : connectez correctement le module matériel à l’en-tête 40 broches et configurez la superposition Android DTB pour l’activer.
Remarque : Android ne prend pas en charge le fait qu’Ethernet et le Wi-Fi sont tous les deux connectés en même temps, Ethernet a une priorité plus élevée que le Wi-Fi, cela signifie que le Wi-Fi ne peut pas se connecter au réseau si Ethernet est déjà connecté, et le Wi-Fi abandonnera la connexion si le câble Ethernet est branché.
2. Test et support Linux.
rtl8188eu wifi (usb)
 rtl8192eu wifi (usb)
 rtl8723bu wifi/bt (usb)
 rtl8811au wifi (usb)
 rtl8812au wifi (usb)
 rtl8812bu wifi (usb)
 rtl8821cu wifi/bt (usb) 
 rtl8822cs wifi/bt (sdio/uart)
Comment activer Linux Wifi
Les pilotes du module Wifi sont déjà préconstruits dans les images de la version.
Type USB : branchez le dongle USB sur le port hôte USB et le pilote sera chargé automatiquement.

Type SDIO/UART :

1). Connectez correctement le module matériel à l’en-tête 40 broches.
2). Configurer la superposition dtb
  # Superpositions à charger
  # Exemples de combinaisons :
  # spi0 i2c0 i2c1 uart0
  #hktft32
  #hktft35
  setenv superpose "wifi_bt_rtl8822cs"
3). Ajoutez le nom du module wifi à /etc/modules pour qu’il soit chargé automatiquement au prochain démarrage.
Comment activer Linux Bluetooth
1). Veuillez télécharger le code source du pilote rtk-linux-bt-driver , créer et installer les pilotes/firmwares bluetooth usb ou uart rtk linux à votre image.
2). Pour le type USB, branchez le dongle USB sur le port hôte USB et le pilote sera chargé automatiquement.
3). Pour le type UART, configurez la superposition dtb de la même manière que le wifi avant d’installer les pilotes/firmwares Bluetooth. Le pilote hci_uart sera chargé au démarrage de rtk-hciuart.service.

Configuration réseau de l’image du serveur Linux

Netplan
Mode Linux Wi-Fi STA
Un exemple de fichier de configuration de netplan en mode wifi sta, 01-wlan0-sta.yaml
réseau:
  version 2
  moteur de rendu : réseau
  Wi-Fi :
    wlan0 :
      dhcp4 : vrai
      Points d'accès:
        "bananapi":
           mot de passe : "123456789"
Mode point d’accès Wi-Fi Linux
1. Préparez correctement la configuration de l’ adaptateur wifi .
2. Obtenez la bande de l’adaptateur wifi, les fréquences, le canal, la capacité HT, la capacité VHT ou d’autres propriétés
$ ma liste
3. Gérez le mode point d’accès wifi avec Netplan et Network-Manager.
Installez NetworkManager car ap n’est pris en charge qu’avec le moteur de rendu NetworkManager
$ sudo apt install gestionnaire de réseau
Un exemple de fichier de configuration netplan en mode ap wifi 2.4G, 01-wlan0-ap-2.4g.yaml
réseau:
version 2
moteur de rendu : NetworkManager
Wi-Fi :
  wlan0 :
    dhcp4 : non
    Points d'accès:
      "bananapi":
         mode : ap
         bande : 2,4 GHz
         canal : 6
         auth :
           gestion des clés : psk
           mot de passe : "123456789"
Un exemple de fichier de configuration netplan en mode ap wifi 5G, 01-wlan0-ap-5g.yaml
réseau:
version 2
moteur de rendu : NetworkManager
Wi-Fi :
  wlan0 :
    dhcp4 : non
    Points d'accès:
      "bananapi":
         mode : ap
         bande : 5 GHz
         canal : 36
         auth :
           gestion des clés : psk
           mot de passe : "123456789"
4. Gérez le mode point d’accès wifi avec Netplan et Hostapd.
1). Créez un fichier de configuration netplan, 01-wlan0-ap-hostapd.yaml
réseau:
version 2
moteur de rendu : réseau
Ethernet :
  wlan0 :
    dhcp4 : non
    adresses :
      - 192.168.11.1/24
2). Installer hostapd
$ sudo apt installer hostapd
Créez le fichier de configuration hostapd /etc/hostapd/hostapd.conf, par exemple
interface=wlan0
ssid=bananapi

pilote=nl80211

auth_algs=1
wpa=2
wpa_passphrase=123456789
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

#pont=br0
beacon_int=500
#SSID non masqué
ignore_broadcast_ssid=0

hw_mode=a
canal=36
max_num_sta=8

### IEEE 802.11n
ieee80211n=1
#require_vht=0
ht_capab=[HT20][HT40+][SHORT-GI-20][SHORT-GI-40][SHORT-GI-80][DSSS_CCK-40]

### IEEE 802.11ac
ieee80211ac=1
#require_vht=0
#vht_capab=[MAX-MPDU-3895][SHORT-GI-80][SU-BEAMFORMEE]
#vht_oper_chwidth=1
#vht_oper_centr_freq_seg0_idx=42

###WMM
wmm_enabled=1
3). Pour prendre en charge une largeur de canal de 80 MHz, vous devez charger le pilote avec l’option rtw_vht_enable=2 , ou vous pouvez créer /etc/modprobe.d/8822cs.conf avec le contenu
option 88x2cs rtw_vht_enable=2
4). Installez et configurez le service de serveur DHCP, utilisez par exemple isc-dhcp-server
$ sudo apt install isc-dhcp-server
Configurez l’interface du serveur DHCP dans /etc/default/isc-dhcp-server
# Sur quelles interfaces le serveur DHCP (dhcpd) doit-il servir les requêtes DHCP ?
# Séparez plusieurs interfaces par des espaces, par exemple "eth0 eth1".
INTERFACESv4="wlan0"
Configurez le sous-réseau DHCP et DNS dans /etc/dhcp/dhcpd.conf
...
option nom de domaine "exemple.org" ;
option serveurs de noms de domaine 8.8.8.8, 114.114.114.114 ;
...
# Aucun service ne sera fourni sur ce sous-réseau, mais le déclarer aide le
# Serveur DHCP pour comprendre la topologie du réseau.
sous-réseau 192.168.11.0 masque de réseau 255.255.255.0 {
  plage de démarrage dynamique 192.168.11.1 192.168.11.100 ;
  option adresse de diffusion 192.168.11.255 ;
  routeurs d'options 192.168.11.1 ;
}
5). Démarrer le service
$ sudo hostapd /etc/hostapd/hostapd.conf -B
$ sudo systemctl redémarrage isc-dhcp-server
6). Paramétrage du routage.
sysctl net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -o eth0 -j MASQUERADE

Cloud-init&Snap

Les services Cloud-init et Snap sont activés par défaut, vous pouvez les désactiver ou les supprimer.
1. désactiver ou supprimer cloud-init
$ sudo touch /etc/cloud/cloud-init.disabled
ou
$ sudo apt purge cloud-init
2. désactiver ou supprimer le composant logiciel enfichable
$ sudo apt purge snapd

Activer rc-local

Le service systemd rc-local.service existe déjà dans l’image de la version, mais il n’y a pas de partie [Install] dans le fichier d’unité. Par conséquent, Systemd ne peut pas l’activer. Tout d’abord, nous devons mettre à jour le fichier.
$ sudo nano /lib/systemd/system/rc-local.service
[Unité]
 Description=/etc/rc.local Compatibilité
 Documentation=man:systemd-rc-local-generator(8)
 ConditionFileIsExecutable=/etc/rc.local
 Après=réseau.cible
 
 [Service]
 Type = bifurcation
 ExecStart=/etc/rc.local start
 TimeoutSec=0
 RemainAfterExit=oui
 GuessMainPID=non
 
 [Installer]
 WantedBy=multi-utilisateur.cible
 Alias=rc-local.service
Créez le fichier /etc/rc.local.
sudo nano /etc/rc.local
#!/bin/ch
 #
 # rc.local
 #
 # Ce script est exécuté à la fin de chaque niveau d'exécution multi-utilisateur.
 # Assurez-vous que le script "sort 0" en cas de succès ou tout autre
 # valeur en cas d'erreur.
 #
 # Pour activer ou désactiver ce script, changez simplement l'exécution
 # morceaux.
 #
 # Par défaut ce script ne fait rien.
 
 sortie 0
Ajouter une autorisation exécutable à /etc/rc.local
$ sudo chmod +x /etc/rc.local
Activer rc-local.service et redémarrer
$ sudo systemctl enable rc-local.service
 $ redémarrage sudo

Activer sudo pour Debian

L’image de version Debian n’installe pas sudo par défaut, avec la commande « su -« , l’utilisateur peut passer à root. Si vous aimez sudo, vous pouvez l’installer.
$ su -
 Mot de passe : (entrez bananapi)
 
 # apt install sudo
 # adduser pi sudo
Veuillez ensuite vous déconnecter et vous reconnecter

Installer le moteur Docker

Installer Docker Engine sur le serveur Ubuntu 20.04
1. Configurer le référentiel
Mettez à jour l’index des packages apt et installez les packages pour permettre à apt d’utiliser un référentiel via HTTPS :
$ sudo apt-obtenir la mise à jour
 $ sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
Ajoutez la clé GPG officielle de Docker :
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Configurer le dépôt stable
$ écho \
    "deb [arch=arm64 signé-par=/usr/share/keyrings/docker-archive-keyring.gpg] https: //download.docker.com/linux/ubuntu \
    $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
2. Installer le moteur Docker
$ sudo apt-obtenir la mise à jour
 $ sudo apt-get install docker-ce docker-ce-cli containerd.io
3. Vérifiez que Docker Engine est correctement installé en exécutant l’image hello-world.
$ sudo docker run hello-world
Docker-test.png

Installez docker avec une simple commande

$ curl -sSL get.docker.com | sudo sh

Installer Docker Engine sur d’autres distributions Linux

 

Le menu de navigation

error: Content is protected !!