Das TLIMX6U-EVM von Tronlong® Technology ist ein Evaluierungsboard, das auf dem NXP i.MX 6ULL basiert und über einen leistungsstarken ARM Cortex-A7-Prozessor mit geringem Stromverbrauch verfügt. Das TLIMX6U-EVM besteht aus einem Core-Board und einem Evaluierungs-Baseboard und wurde einem professionellen PCB-Layout und strengen Temperaturtests unterzogen, um Stabilität und Zuverlässigkeit für verschiedene industrielle Anwendungen zu gewährleisten.
Dieser Artikel stellt in erster Linie einen Fall zur Entwicklung eines IoT-Moduls vor, der auf dem Evaluierungsboard TLIMX6U-EVM von Tronlong® Technology basiert. Die folgenden Entwicklungsumgebungen sind geeignet:
- Windows-Entwicklungsumgebung: Windows 7 64-Bit, Windows 10 64-Bit
- Virtuelle Maschine: VMware 15.1.0
- Linux-Entwicklungsumgebung: Ubuntu 18.04.4 64-Bit
- U-Boot: U-Boot-2020.04
- Kernel: Linux-5.4.70
- Linux SDK: 5.4.70_2.3.0
Sofern nicht anders angegeben, verwendet die Standardkonfiguration USB TO UART1 als seriellen Debugging-Port, den Linux SD-Bootmodus zum Starten des Systems und eine Netzwerkverbindung über einen Router zu einem PC.
SDIO-WLAN-Modul-Test
In diesem Fall wird das SDIO-WLAN-Modulmodell RTL8189 verwendet. Stecken Sie das SDIO-WLAN-Modul wie in der folgenden Abbildung gezeigt in die SDIO-Schnittstelle der Evaluierungskarte.

Das SDIO-WLAN-Modul unterstützt sowohl den STA- als auch den AP-Modus:
- STA-Modus: Im STA-Modus kann das WIFI-Modul Signale von WLAN-Routern empfangen und ermöglicht so die Internetverbindung über den Router.
- AP-Modus: Im AP-Modus erstellt das WIFI-Modul einen WLAN-Hotspot, über den Geräte wie Telefone und Computer ein lokales Netzwerk bilden können.
Das Testprogramm für diesen Fall befindet sich in der Produktdokumentation unter „4-Software Information\Demo\module-demos\sdio_wifi_test”. Die spezifischen Details lauten wie folgt:
| Directory | Description |
|---|---|
| bin | Test scripts, program configuration files |
| driver | SDIO WIFI module driver |
| src | SDIO WIFI module driver source code |
Kopieren Sie alle Dateien aus dem Verzeichnis „bin“ und die Treiberdatei „8189fs.ko“ aus dem Verzeichnis „driver“ in die entsprechenden Pfade im Dateisystem des Evaluierungsboards. Stellen Sie sicher, dass das SDIO-WLAN-Modul korrekt an die SDIO-Schnittstelle des Evaluierungsboards angeschlossen ist. Aufgrund der gemeinsamen Nutzung von Pins zwischen der SDIO-Schnittstelle und der Micro-SD-Schnittstelle entfernen Sie die Linux-SD-Bootkarte aus dem Micro-SD-Kartensteckplatz des Evaluierungsboards. Stellen Sie den Bootmodus des Evaluierungsboards auf den NAND-FLASH-Bootmodus ein, indem Sie den DIP-Schalter auf „011000“ (Positionen 1 bis 6) stellen.
STA-Modus-Test
Greifen Sie auf das Dateisystem des Evaluierungsboards zu, navigieren Sie zu dem Pfad, in dem sich der SDIO-WIFI-Modultreiber „8189fs.ko“ befindet, und führen Sie den folgenden Befehl aus, um den Treiber zu laden:
Target# insmod 8189fs.ko

Führen Sie die folgenden Befehle aus, um andere Netzwerke und den Prozess „wpa_supplicant” zu deaktivieren, sodass nur das WLAN-Netzwerk übrig bleibt:
Target# ifconfig eth0 down
Target# ifconfig eth1 down
Target# killall -9 wpa_supplicant
Target# ifconfig wlan0 up
Target# ifconfig

Führen Sie im Verzeichnis der Datei „wifi_setup.sh“ den folgenden Befehl aus, um das Evaluierungsboard über das WLAN-Modul mit dem Router zu verbinden. Verwenden Sie das Flag „-i“, um den WLAN-Namen anzugeben, und das Flag „-p“, um das WLAN-Passwort anzugeben. Passen Sie diese Angaben nach Bedarf an:
Target# ./wifi_setup.sh -i Tronlong-test -p omapl138

Führen Sie den folgenden Befehl aus, um die erhaltene IP-Adresse anzuzeigen und die Kommunikation zwischen dem Evaluierungsboard und dem PC mit dem Befehl „ping“ zu testen. Stellen Sie sicher, dass sich das Evaluierungsboard und der PC im selben lokalen Netzwerk befinden. Hier steht 192.168.1.100 für die tatsächliche IP-Adresse des PCs.
Target# ifconfig
Target# ping 192.168.1.100

Führen Sie im Dateisystem der Evaluierungskarte die folgenden Befehle aus, um die IP-Adresse der Karte anzuzeigen und die Netzwerkkommunikationsbandbreite mit dem PC mithilfe des Tools Iperf3 zu testen:
Target# ifconfig
Target# iperf3 -s

Verwenden Sie im Ubuntu-System den folgenden Befehl, um die Bandbreite der Netzwerkkommunikation zu testen. Ersetzen Sie „192.168.1.103“ durch die tatsächliche IP-Adresse des Evaluierungsboards. Die Testergebnisse, die von der Netzwerkumgebung beeinflusst werden, dienen nur als Referenz.
Host# iperf3 -c 192.168.1.103 -i 1

AP-Modus-Test
Starten Sie das System des Evaluierungsboards neu und führen Sie den folgenden Befehl aus, um den SDIO-WIFI-Modultreiber „8189fs.ko“ zu laden:
Target# insmod 8189fs.ko

Deaktivieren Sie andere Netzwerke und den Prozess „wpa_supplicant“ und lassen Sie nur das WLAN-Netzwerk aktiviert. Verwenden Sie dazu ähnliche Befehle wie beim Testen im STA-Modus.
Target#ifconfig eth0 down
Target#ifconfig eth1 down
Target#killall -9 wpa_supplicant
Target#ifconfig wlan0 up
Target#ifconfig

Führen Sie im Verzeichnis der Datei „ap_setup.sh” den folgenden Befehl aus, um das SDIO-WLAN-Modul in den AP-Modus zu versetzen:
Target# ./ap_setup.sh

Wenn beim Start des AP-Modus aufgrund unzureichender Zufallsentropie Probleme auftreten, müssen Sie das Evaluierungsboard neu starten. Führen Sie die folgenden Befehle aus, um den Entropiepool zu ändern, und wiederholen Sie dann den Test:
Target# mv /dev/random /dev/random_ori
Target# ln -s /dev/urandom /dev/random

Der im Programm voreingestellte WLAN-Name lautet „rtl8188fs“ und das Passwort „88888888“. Ändern Sie diese Einstellungen in der Konfigurationsdatei „rtl_hostapd_2G.conf“. Verbinden Sie einen PC mit WLAN-Funktion (z. B. einen Laptop oder einen Desktop-PC mit einem USB-WLAN-Adapter) mit diesem WLAN-Hotspot und trennen Sie alle kabelgebundenen Netzwerkverbindungen. Sobald die Verbindung hergestellt ist, gibt das serielle Debugging-Terminal Informationen über die von Ubuntu zugewiesene IP-Adresse aus. Bei Verwendung einer virtuellen Maschine mit Ubuntu werden zwei IP-Adressen zugewiesen – eine für Windows und eine für Ubuntu.

Führen Sie den folgenden Befehl aus, um die Netzwerkverbindung zwischen WLAN-Geräten zu testen. Wenn Verbindungszeitüberschreitungen oder -fehler auftreten, deaktivieren Sie die Firewall des PCs und versuchen Sie, die Verbindung erneut herzustellen:
Target# ping 192.168.0.21 // 192.168.0.21 is the Ubuntu-side IP address

Führen Sie im Dateisystem des Evaluierungsboards die folgenden Befehle aus, um die IP-Adresse des Boards anzuzeigen und auf die Verbindung mit dem PC zu warten:
Target# ifconfig
Target# iperf3 -s
Verwenden Sie im Ubuntu-System den folgenden Befehl, um die Bandbreite der Netzwerkkommunikation zu testen. Ersetzen Sie „192.168.0.1“ durch die tatsächliche IP-Adresse des Evaluierungsboards. Die Testergebnisse, die von der Netzwerkumgebung beeinflusst werden, dienen nur als Referenz.
Host# iperf3 -c 192.168.0.1 -i 1

Schalten Sie nach dem Testen das Evaluierungsboard aus, entfernen Sie das SDIO-WIFI-Modul und stecken Sie die Linux-SD-Bootkarte in den Micro-SD-Kartensteckplatz. Stellen Sie den DIP-Schalter für den Bootmodus auf „010100“ (Positionen 1 bis 6) für den SD-Bootmodus.
Kompilieren des SDIO-WLAN-Treibers
Bitte kopieren Sie den Treiber-Quellcode „rtl8189FS.tar.gz” aus dem Verzeichnis „src” des Beispiels und legen Sie ihn in Ihrem Ubuntu-Arbeitsverzeichnis ab. Führen Sie anschließend die folgenden Befehle aus, um den Quellcode aus dem komprimierten Archiv zu extrahieren:
Host# tar -xf rtl8189FS.tar.gz

Navigieren Sie anschließend zum Verzeichnis mit dem Treiberquellcode und ändern Sie die oberste Ebene „Makefile” mit den folgenden Befehlen:
Host# cd rtl8189FS/
Host# vim Makefile

Bitte ändern Sie den Inhalt der Datei „Makefile“ wie unten beschrieben:
KSRC = /home/tronlong/IMX6/Kernel/Linux-5.4.70 // Specify the actual path to the kernel source code
Führen Sie im Verzeichnis, in dem sich der Treiberquellcode befindet, die folgenden Befehle aus, um die SDK-Umgebungsvariablen einzurichten und den SDIO-WIFI-Treiber zu kompilieren:
Host# source /home/tronlong/SDK/environment-setup-cortexa7t2hf-neon-poky-linux-gnueabi
Host# make

Nach Abschluss der Kompilierung wird das Treiber-Image im aktuellen Verzeichnis erstellt.




