🛠 PINE A64 ou PINE A64+ ? Le pièg du réseau gigabit dès le premier regard
Objectives
Before any networking project with the PINE A64, here is a trick question: do you have a “base” PINE A64 or a PINE A64+? The difference is invisible at first glance and changes everything: the base version is limited to 10/100 Mbps (Realtek RTL8201 PHY, RMII link), while only the PINE A64+ is gigabit (Realtek RTL8211 PHY, RGMII link). Kickstarter backers discovered the difference by measuring ~11 MB/s. You will identify your board via software, without disassembling it, and understand why the Ethernet port is not a USB adapter.
Hardware
- 1 × PINE A64 or PINE A64+ running Armbian (or any image with a mainline kernel)
- Ethernet cable to a box/switch
- Serial console or SSH
Complete code
# 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)
Expected verification
The compatible string distinguishes them unambiguously: mainline officially distinguishes the two boards (pine64,pine64 vs pine64,pine64-plus, separate device tree files in the kernel tree). ethtool confirms the negotiated speed: 100 Mbit/s maximum on the base, 1000 on the +. And the sysfs link to 1c30000.ethernet proves that both variants use the A64's internal EMAC — contrary to a persistent myth, there is no gigabit “via USB2” on this board, as the schematics and DTS show nowhere.
Common errors
- Believing that all PINE A64 boards are gigabit: the official wiki is explicit — “10/100/1000 Mbps Ethernet (PINE A64+ version), 10/100 Mbps Ethernet (PINE A64 version)”. An iperf3 result of ~94 Mbit/s on a base board is not a bug.
- Confusing RAM and network variants: RAM (512 MB / 1 GB / 2 GB) and the Ethernet PHY are two independent axes; the 512 MB model is even restricted to Arch/Debian-type distributions on the OS side.
- Comparing the 40-pin connector to that of a Raspberry Pi: the “Pi-2” connector is mechanically compatible but not pin-to-pin identical — an RPi HAT plugged in as is can power pins where the board expects something else.
- Ignoring other variants: the PINE A64 LTS (2017) is hardware-identical (supply guarantee until 2022); however, the Pine H64, Rock64, PinePhone, and SoPine are different boards, out of scope here.
- Looking for Wi-Fi: no radio chip is soldered — only an optional RTL8723BS module (2.4 GHz + BT 4.0) plugs into the dedicated SDIO connector.
Other tutorials for this board
- 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)
Code examples for this board
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash