🛠 PINE A64 ou PINE A64+ ? Le pièg du réseau gigabit dès le premier regard
Objectifs
Avant tout projet réseau avec la PINE A64, une question piège : as-tu une PINE A64 « de base » ou une PINE A64+ ? La différence est invisible au premier coup d'œil et change tout : la version de base est limitée à 10/100 Mbps (PHY Realtek RTL8201, liaison RMII), seule la PINE A64+ est gigabit (PHY Realtek RTL8211, liaison RGMII). Des acheteurs du Kickstarter ont découvert la différence en mesurant ~11 Mo/s. Tu vas identifier ta carte par software, sans démonter, et comprendre pourquoi le port Ethernet n'est pas un adaptateur USB.
Matériel
- 1 × PINE A64 ou PINE A64+ sous Armbian (ou toute image à noyau mainline)
- Câble Ethernet vers une box/switch
- Console série ou SSH
Code complet
# 1) Identité de la carte selon le device tree mainline :
cat /proc/device-tree/compatible
# « pine64,pine64\0allwinner,sun50i-a64 » -> PINE A64 de base (10/100)
# « pine64,pine64-plus\0allwinner,sun50i-a64 » -> PINE A64+ (gigabit)
# 2) RAM embarquée (512 MB, 1 GB ou 2 GB selon le modèle) :
free -h
# 3) Vitesse réelle du lien Ethernet négociée :
sudo ethtool eth0 | grep -E 'Speed|Link'
# Speed: 100baseT/Full -> PHY RTL8201 (RMII), carte de base
# Speed: 1000baseT/Full -> PHY RTL8211 (RGMII), PINE A64+
# 4) Prouver que l'Ethernet est l'EMAC interne du A64, pas un NIC USB :
ls -l /sys/class/net/eth0/device
# -> .../1c30000.ethernet (le contrôleur EMAC intégré au SoC)
Vérification attendue
La chaîne compatible tranche sans ambiguïté : mainline distingue officiellement les deux cartes (pine64,pine64 vs pine64,pine64-plus, fichiers device tree séparés dans l'arbre du noyau). ethtool confirme la vitesse négociée : 100 Mbit/s maximum sur la base, 1000 sur la +. Et le lien sysfs vers 1c30000.ethernet prouve que les deux variantes utilisent l'EMAC interne de l'A64 — contrairement à une légende tenace, il n'y a pas de gigabit « via USB2 » sur cette carte, les schémas et le DTS ne le montrent nulle part.
Erreurs fréquentes
- Croire que toutes les PINE A64 sont gigabit : le wiki officiel est explicite — « 10/100/1000 Mbps Ethernet (version PINE A64+), 10/100 Mbps Ethernet (version PINE A64) ». Un iperf3 à ~94 Mbit/s sur une carte de base n'est pas un bug.
- Confondre les variantes de RAM et de réseau : la RAM (512 MB / 1 GB / 2 GB) et le PHY Ethernet sont deux axes indépendants ; le modèle 512 MB est même restreint aux distributions de type Arch/Debian côté OS.
- Comparer le connecteur 40 broches à celui d'un Raspberry Pi : le connecteur « Pi-2 » est mécaniquement compatible mais pas identique broche à broche — un HAT RPi branché tel quel peut alimenter des broches là où la carte attend autre chose.
- Ignorer les autres variantes : la PINE A64 LTS (2017) est matériellement identique (garantie d'approvisionnement jusqu'en 2022) ; en revanche Pine H64, Rock64, PinePhone et SoPine sont d'autres cartes, hors sujet ici.
- Chercher le Wi-Fi : aucune puce radio n'est soudée — seul un module RTL8723BS optionnel (2,4 GHz + BT 4.0) s'enfiche sur le connecteur SDIO dédié.
Autres tutoriels pour cette carte
- Premier boot d'Armbian sur la PINE A64 (microSD, console série, rootfs)
- Faire clignoter une LED avec libgpiod (numérotation GPIO du A64 : PB0 = 32)
- Benchmark Ethernet iperf3 : mesurer le piège 10/100 vs gigabit
- Lire un capteur I²C (BME280) sur le bus i2c-1 du connecteur Pi-2
- Un serveur maison qui consomme 2,5 W : Docker léger sur la PINE A64
- Construire sa propre image Armbian pour la PINE A64 (armbian/build)
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash