🛠 Wi-Fi et Bluetooth du module RTL8723DS sur le Lichee RV Dock
Objectifs
Le SKU Wi-Fi du kit Lichee RV embarque un Realtek RTL8723DS : Wi-Fi 4 (802.11b/g/n 2,4 GHz) + Bluetooth 4.2. Côté D1, la puce est branchée en SDIO 4 bits sur le contrôleur mmc1 (avec un GPIO de reset sur PG12) et le Bluetooth sur uart1 avec flux RTS/CTS et lignes wake PG16-PG18 — le device tree mainline du Dock décrit exactement ce câblage. Ce tutoriel : mettre en service wlan0 en station avec wpa_supplicant, vérifier l'interface, puis amener le HCI Bluetooth. C'est du réel : le RTL8723DS demande firmware + pilote vendor, contrairement à un module USB classique.
Matériel
- Lichee RV Dock avec l'option Wi-Fi/BT RTL8723DS (le Dock nu n'a AUCUN réseau, ni filaire ni sans-fil)
- Image mainline avec firmware Realtek : la defconfig Buildroot
sipeed_lichee_rv_dockembarque BR2_PACKAGE_RTL8723DS / RTL8723DS_BT + wpa_supplicant + bluez ; sous Ubuntu/Debian, installer firmware-realtek - Point d'accès 2,4 GHz uniquement (la puce ne voit pas la 5 GHz)
Code complet
# 1) Vérifier la présence matérielle
dmesg | grep -iE 'mmc1|rtl8723|bluetooth'
ip link # wlan0 doit exister même non connecté
# 2) Wi-Fi station avec wpa_supplicant
rfkill unblock wifi
wpa_passphrase "MonSSID" "motdepasse" | sudo tee /etc/wpa_supplicant.conf >/dev/null
sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf -C /var/run/wpa
sudo wpa_cli -p /var/run/wpa status state # attendre COMPLETED
sudo udhcpc -i wlan0 # ou dhclient wlan0 selon la distro
ping -c 3 1.1.1.1
# 3) Persister (Ubuntu : netplan + wpa_supplicant, ou NetworkManager)
sudo nmcli device wifi connect "MonSSID" password "motdepasse" # si NetworkManager
# 4) Bluetooth 4.2 : le nœud « realtek,rtl8723ds-bt » de uart1 (ttyS1)
# attend une initialisation HCI (service vendor ou hciattach) :
sudo systemctl start hciuart 2>/dev/null || \
sudo hciattach /dev/ttyS1 rtl8723ds 1500000 # selon l'image
sudo hciconfig hci0 up && sudo hcitool scan
Vérification attendue
ip -br link montre wlan0 UP avec une adresse IP après DHCP ; wpa_cli status renvoie state=COMPLETED ; ip route get 1.1.1.1 confirme que le trafic sort par wlan0. dmesg trace l'attachement de la puce sur mmc1 (le reset GPIO PG12 est piloté par le pilote). Côté BT, hciconfig hci0 affiche une adresse MAC et hcitool scan voit les appareils voisins. Sous l'image Buildroot du board, tout est déjà packagé : c'est le chemin le plus court pour valider ce tuto.
Erreurs fréquentes
- Dock sans l'option Wi-Fi : wlan0 n'existe jamais sur le SKU nu — vérifier l'achat (SKU Dock +3 $ avec RTL8723DS au lancement).
- Firmware manquant :
dmesgaffiche « Direct firmware load for rtl8723d... failed » ; installer le firmware (linux-firmware ou paquet Buildroot). - SSID 5 GHz : la puce est 2,4 GHz uniquement ; un scan vide vient souvent d'un AP 5 GHz only.
- Antenne : le module a une antenne céramique + connecteur IPEX ; si le montage prévoit une antenne externe non branchée, le signal est minuscule.
- Deux gestionnaires réseau qui se battent (NetworkManager + wpa_supplicant manuel) : n'en garder qu'un, sinon « Device or resource busy ».
- Bluetooth attendu automatique : contrairement au Wi-Fi, le BT du RTL8723DS nécessite une init HCI (hciattach/service vendor) avant de créer hci0.
Autres tutoriels pour cette carte
- Premier boot du Lichee RV Dock avec Ubuntu 24.04 RISC-V
- LEDs du Lichee RV Dock : LED verte et RGB WS2812 pilotée par le LEDC du D1
- Audio sur le Dock : enregistrer au micro numérique et jouer sur le haut-parleur 3 W
- GPIO, touche utilisateur ADC et PWM sur le connecteur 2×20 du Lichee RV
- Tina Linux : l'OpenWrt vendor d'Allwinner pour le Lichee RV, installation et sysconfig
- Construire une image mainline complète avec Buildroot (defconfig officiel du Dock)
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash