Premiers pas avec M5/M2Pro
https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro
- 1 Introduction
- 2 Caractéristiques
- 3 développement
- 3.1 Préparer
- 3.2 Android
- 3.3 Linux
- 3.4 Autre développement
- 3.4.1 Logo de démarrage Linux personnalisé
- 3.4.2 Logo de démarrage Android personnalisé
- 3.4.3 Séquence d’amorçage
- 3.4.4 Effacer EMMC pour le démarrage de la carte SD
- 3.4.5 Effacer Emmc Android par la commande dd
- 3.4.6 Prise en charge Wi-Fi/BT
- 3.4.7 Configuration réseau de l’image du serveur Linux
- 3.4.8 Cloud-init&Snap
- 3.4.9 Activer rc-local
- 3.4.10 Activer sudo pour Debian
- 3.4.11 Installer le moteur Docker
Introduction
Conception Banana Pi BPI-M2 Pro 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.
- 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.
- 3. Cliquez sur le bouton Démarrer et attendez que la mise à niveau soit terminée.
- 4. Une fois la gravure réussie, débranchez l’usb et connectez-vous à l’adaptateur d’alimentation pour démarrer.
- 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
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 idx superposition de l’arborescence des périphériques la description 0 android_p_overlay dtbo par défaut, pas d’utilisation 1 wifi_bt_rtl8822cs activer le module wifi/bt bpi rtl8822cs 2 i2c2 activer i2c 2 3 i2c3 activer i2c 3 4 audio activer l’audio 5 uart1 activer 2 broches uart 1 6 uart1_cts_rts activer 4 broches uart 1 sept uart2 activer 2 broches uart 2 8 hifi_pcm5122 activer 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.
- 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.
- 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
- 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_personnalisé = 0xfe01
- code clé = 0x00, 0x01, 0x09, 0x02, 0x0a, 0x05, 0x04 0x06, 0x03, 0x0b, 0x40, 0x48, 0x44
- 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
- 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.
- 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.
- 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égorie Test Résultat du test de la carte SD Résultat du test Emmc Résultat du test du lecteur USB HDParm Lecture de disque 67,91 Mo/s 156,64 Mo/s 253,40 Mo/s HDParm Lecture de disque en cache 57,39 Mo/s 126,53 Mo/s 253,52 Mo/s JJ Écriture sur disque 13,0 Mo/s 48,8 Mo/s 149 Mo/s OIF lecture aléatoire 4k 2456 IOPS (9826 Ko/s) 9701 IOPS (38806 Ko/s) 5474 IOPS (21897 Ko/s) OIF écriture aléatoire 4k 938 IOPS (3 753 Ko/s) 12888 IOPS (51554 Ko/s) 6980 IOPS (27920 Ko/s) IOZone lecture 4k 10615 Ko/s 29568 Ko/s 23770 Ko/s IOZone écriture 4k 4276 Ko/s 33585 Ko/s 18598 Ko/s IOZone lecture aléatoire 4k 8661 Ko/s 29637 Ko/s 19982 Ko/s IOZone écriture aléatoire 4k 4795 Ko/s 38177 Ko/s 22134 Ko/s Note : 1300 Note : 7811 Note : 5879
Autre développement
Logo de démarrage Linux personnalisé
- 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/
Logo de démarrage Android personnalisé
- 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
- 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
- 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
- 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
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
Cette page Wiki a été modifiée pour la dernière fois le 7 décembre 2022 à 19h23.