🛠 Réseau : Ethernet Gigabit unique et module Wi-Fi en M.2 E-key
Objectives
Configure the AI-64 network, which features only a single Gigabit Ethernet port (MCU CPSW port, DP83867 PHY) and NO Wi-Fi/Bluetooth: you will configure static Ethernet via systemd-networkd, then install a Wi-Fi module into the M.2 E-key connector (PCIe + USB + SDIO signals) and manage its documented hardware limitations.
Hardware
- 1 BeagleBone AI-64, RJ45 cable
- 1 Wi-Fi/BT module in M.2 E-key format (2230), mounting screw
- Access to the local network for ping/DNS tests
Complete code
# 1. Ethernet : identifier l'interface et son lien
ip -br a
sudo ethtool eth0 | grep -E "Speed|Link" # attendu : 1000baseT/Full
# 2. Configuration statique reproductible (systemd-networkd)
sudo tee /etc/systemd/network/08-eth0.network > /dev/null <<'EOF'
[Match]
Name=eth0
[Network]
Address=192.168.1.50/24
Gateway=192.168.1.1
DNS=192.168.1.1
EOF
sudo systemctl enable --now systemd-networkd
sudo systemctl restart systemd-networkd
# 3. Module Wi-Fi en M.2 : carte alimentée ÉTEINTE, insérer le module, visser
sudo lspci | grep -i -E "network|wireless"
dmesg | grep -iE "pci|link.*gen" | tail # vérifier la vitesse négociée
sudo apt install firmware-atheros # paquet selon module (iwlwifi/realtek...)
sudo systemctl enable --now NetworkManager
nmcli dev wifi connect "MonReseau" password "monmotdepasse"
Expected verification
After rebooting, ip a shows the static address on eth0, ethtool reports 1000baseT/Full, and ping succeeds towards the gateway. The M.2 module appears in lspci and nmcli displays “connected”; ping goes out through wlan0 (verify with ip route).
Common errors
- Being surprised that there is no Wi-Fi: the board has neither embedded Wi-Fi nor BT; only the single Ethernet port, the M.2 E-key, or a USB dongle provide wireless connectivity.
- The M.2 connector is limited to 2.4 Gbps by a DTS workaround (the internal TDA4 clock cannot sustain 5 Gbps, issue #28 in the hardware repository): a Wi-Fi 6 module “not delivering its speed” is often an expected limitation, not a failure.
- The bottom USB-A port enumerates randomly as USB 2.0 (issue #36): plug critical dongles into the top port.
- Forgetting that USB-C does not support hot-plug on revision B (issue #35): plug in the module/USB drive BEFORE powering on.
- Conflict between networkd/NetworkManager on the same interface: do not manage eth0 in both simultaneously.
Other tutorials for this board
- Flasher l'image officielle et démarrer la BeagleBone AI-64
- Faire clignoter une LED sur la broche P8_03 avec libgpiod
- Surveiller la température et l'alimentation du TDA4VM
- Caméra MIPI CSI et encodage H.264 matériel via GStreamer
- Remoteproc : inventorier et démarrer les co-processeurs R5F et C66x
- Inférence de réseau de neurones sur le C7x+MMA avec edgeai-tidl-tools
Code examples for this board
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash