Der Raspberry Pi CM5 ist in Ausführungen mit integriertem WLAN erhältlich. Es wird jedoch häufig behauptet, dass die integrierte Antenne eine relativ schwache WLAN-Leistung bietet. Um zu prüfen, ob ein externer USB-WLAN-Adapter eine bessere Alternative darstellt, haben wir beschlossen, dies einem Test zu unterziehen.
Eine weitere Herausforderung bei der Raspberry Pi 5- und CM5-Generation besteht darin, dass viele USB-WLAN-Adapter nicht mehr sofort nach dem Anschließen funktionieren. Beim Raspberry Pi 4 war dies selten ein Problem, sodass viele Nutzer möglicherweise überrascht sind, wenn ihr vorhandener Adapter nicht erkannt wird.
In diesem Artikel haben wir sowohl USB-2.0- als auch USB-3.0-WLAN-Adapter getestet. Obwohl die beiden Produkte unterschiedliche Realtek-Chipsätze verwenden, werden wir ihre Leistung vergleichen und erläutern, wie die erforderlichen Linux-Treiber installiert werden.
Testumgebung
Die Testumgebung ist unten dargestellt.
Produkt: PL-R5 Industrielles RaspberryPi-
Modell: Raspberry Pi Compute Module 5 Rev 1.0
CPU-Architektur: ARM64 (aarch64)
Betriebssystem: Debian GNU/Linux 12 (Bookworm)
Kernel: 6.12.62+rpt-rpi-v8
Bei den in diesem Test verwendeten WLAN-Adaptern handelte es sich um den TP-Link AC1300 und den AC600. Beide unterstützen WLAN-Netzwerke im 2,4-GHz- und 5-GHz-Band.
Das AC600 ist ein USB-2.0-Gerät, während das AC1300 USB-3.0-Konnektivität unterstützt.
Abgesehen von ihren technischen Daten sind die beiden Adapter in Größe und Aussehen nahezu identisch.

Der AC600 wird als kompatibel mit Windows und macOS beworben, während der AC1300 offiziell nur Windows unterstützt. Beide Produkte enthalten eine Treiber-CD-ROM, doch bei keinem der beiden wird Linux-Kompatibilität angegeben.
Technische Daten
- AC600: 1 Stream (1×1), bis zu 433 Mbit/s (theoretisch)
- AC1300: 2 Streams (2×2), bis zu 866 Mbit/s (theoretisch)
Treiberkompatibilität
Keiner der getesteten Adapter unterstützt Linux offiziell, und der Hersteller stellt keine offiziellen Linux-Treiber zur Verfügung.
Wenn Sie Linux verwenden, einschließlich Raspberry Pi OS, müssen Sie möglicherweise einen kompatiblen Treiber eines Drittanbieters suchen und installieren, falls der Adapter vom Standard-Kernel nicht unterstützt wird.
Die Treiberkompatibilität hängt von mehreren Faktoren ab, darunter die Kernel-Version, der WLAN-Chipsatz, die CPU-Architektur und das Betriebssystem.
Unter diesen ist der Funk-Chipsatz der wichtigste.
Zunächst müssen Sie überprüfen, ob das USB-Gerät erkannt wird, und den verwendeten Chipsatz ermitteln. Die Installation des richtigen Treibers ist unerlässlich, da der Adapter ohne diesen nicht funktioniert.
Ermittlung des Chipsatzes (AC600 und AC1300)
Stecken Sie den WLAN-Adapter in einen USB-Anschluss, bevor Sie die folgenden Befehle ausführen. Wir haben zunächst den AC600 getestet.
Da es sich um ein USB-Gerät handelt, lässt es sich am einfachsten mit dem Befehl „ lsusb “ identifizieren.
lsusb
Bus 004 Device 004: ID 2357:0120 TP-Link Archer T2U PLUS [RTL8821AU]
Der Adapter wurde erfolgreich als USB-Gerät erkannt, und der Chipsatz wurde eindeutig als Realtek RTL8821AU identifiziert. Die USB-Hersteller- und Produkt-ID (2357:0120) bestätigten ebenfalls, dass es sich um ein TP-Link-Gerät handelt.
Anschließend haben wir die verfügbaren Netzwerkschnittstellen mit dem Befehl „ ip link “ überprüft.
Da das Testsystem über kein integriertes WLAN verfügt, sollte ein erfolgreich erkannter Adapter automatisch eine Schnittstelle vom Typ „ wlan0 “ erstellen. Es wurde jedoch keine WLAN-Schnittstelle angezeigt.
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 2c:cf:67:ba:f9:8e brd ff:ff:ff:ff:ff:ff
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
link/ether c8:ac:35:05:00:02 brd ff:ff:ff:ff:ff:ff
Obwohl das USB-Gerät selbst korrekt erkannt wurde, hat der Standard-Kernel des Raspberry Pi keine WLAN-Schnittstelle erstellt, was darauf hindeutet, dass der Adapter vom Standardtreiber nicht unterstützt wird.
AC1300
Wir haben denselben Vorgang mit dem AC1300 wiederholt und festgestellt, dass dessen Chipsatz der Typ RTL8822BU ist.
Der Befehl „ lsusb “ gab die USB-ID „ 2357:0138 “ aus, zeigte jedoch den Namen des Chipsatzes nicht an. Wir haben daher das Kernel-Protokoll mithilfe von „ sudo dmesg | grep -i rtw “ überprüft (der Chipsatz lässt sich auch mit „ lsusb -t “ identifizieren).
Bus 003 Device 004: ID 2357:0138 TP-Link 802.11ac NIC
Einen kompatiblen Treiber finden
Glücklicherweise stehen für viele USB-WLAN-Adapter von der Community entwickelte Linux-Treiber zur Verfügung. Da andere Nutzer auf dieselben Probleme gestoßen sind, lässt sich mit ein wenig Recherche oft ein geeigneter Treiber finden.
Bevor Sie sich jedoch anderweitig umsehen, sollten Sie prüfen, ob bereits ein kompatibler Treiber über das Linux-Paket-Repository verfügbar ist.
Zunächst haben wir das Paket-Repository von Raspberry Pi OS unter apt search durchsucht.
Leider war kein Treiberpaket für den RTL8821AU-Chipsatz verfügbar. Die Suche ergab Pakete wie rtw88_8821cu, rtw88_8821ce und rtw88_8821c, jedoch nichts für den RTL8821AU.
Da unter apt kein geeignetes Paket verfügbar war, haben wir uns an GitHub gewandt.
Die Suchkriterien lauteten wie folgt:
- RTL8821AU (AC600)
- RTL8822BU (AC1300)
- Linux-Kernel 6.12
- Raspberry Pi OS Bookworm
- ARM64
Im Idealfall sollte der Treiber auch DKMS (Dynamic Kernel Module Support) unterstützen.
- Mit DKMS: Der Treiber wird bei jeder Aktualisierung des Kernels automatisch neu kompiliert.
- Ohne DKMS: Der Treiber muss nach jedem Kernel-Update manuell neu kompiliert werden.
Ohne DKMS-Unterstützung kann ein routinemäßiges Betriebssystem-Update, bei dem ein neuer Kernel installiert wird, dazu führen, dass der WLAN-Adapter nicht mehr funktioniert.
Dies ist möglicherweise kein großes Problem, wenn an das Gerät eine Tastatur und ein Monitor angeschlossen sind, kann jedoch bei Remote-Systemen, die physisch schwer zugänglich sind, zu einem ernsthaften Problem werden.
Das von uns ausgewählte GitHub-Repository
Bei der Suche auf GitHub stießen wir auf ein weiteres Repository, in dem ein bestimmter Treiber empfohlen wurde. Nachdem wir ihn selbst ausprobiert hatten, funktionierte er einwandfrei.
Verwendetes Repository: https://github.com/lwfinger/rtw88
Dies ist ein nachgelagertes Repository, das der Entwicklung, dem Testen und der Pflege von Treibern für die Realtek rtw88 Wi-Fi 5-Chipsatzfamilie gewidmet ist.
Mit anderen Worten: Es portiert den neuesten „wireless-next“-Code (Mainline), der für Linux 6.13 entwickelt wurde, auf ältere Kernel und macht ihn somit kompatibel mit Raspberry Pi OS Bookworm, das mit Kernel 6.12 läuft.
Die Liste der unterstützten Geräte enthielt zudem beide Chipsätze, die wir zuvor identifiziert hatten –RTL8821AU und RTL8822BU–, sodass wir sicher waren, dass es sich um den richtigen Treiber handelte.
PCIe: RTL8723DE, RTL8812AE, RTL8814AE, RTL8821AE, RTL8821CE, RTL8822BE, RTL8822CE
SDIO: RTL8723CS, RTL8723DS, RTL8821CS, RTL8822BS, RTL8822CS
USB : RTL8723DU, RTL8811AU, RTL8811CU, RTL8812AU, RTL8812BU, RTL8812CU
USB : RTL8814AU, RTL8821AU, RTL8821CU, RTL8822BU, RTL8822CU
Darüber hinaus bietet das Repository umfassende DKMS-Unterstützung, was es zu einer hervorragenden Wahl für die langfristige Wartung macht.
Installation des Treibers
Als Nächstes werden wir den Treiber installieren.
Die nachstehende Installationsanleitung folgt den Anweisungen in der README-Datei unter lwfinger/rtw88 und ist für Raspberry Pi OS vorgesehen.
Installieren Sie die erforderlichen Pakete
Installieren Sie unter Raspberry Pi OS zunächst die erforderlichen Build-Tools.
Obwohl Bookworm bereits den Großteil der erforderlichen Umgebung enthält, wird empfohlen, den folgenden Befehl auszuführen, um sicherzustellen, dass alles installiert ist.
sudo apt install -y raspberrypi-kernel-headers build-essential git
Das Repository nutzt DKMS, das unter Raspberry Pi OS nicht standardmäßig installiert ist; installieren Sie es daher ebenfalls.
sudo apt install dkms
Installieren Sie den rtw88-Treiber
Klonen Sie das Repository, installieren Sie den DKMS-Treiber, installieren Sie die erforderliche Firmware und kopieren Sie schließlich die Konfigurationsdatei an den entsprechenden Speicherort.
git clone https://github.com/lwfinger/rtw88.git
cd rtw88
sudo dkms install $PWD
sudo make install_fw
sudo cp rtw88.conf /etc/modprobe.d/
Überprüfen Sie nach dem Neustart des Systems, ob die WLAN-Schnittstelle angelegt wurde, indem Sie den Befehl „ ip link “ ausführen.
Sie sollten nun entweder wlan0 oder wlan1 sehen.
Verbindung mit dem WLAN herstellen
Sobald der Treiber erfolgreich installiert wurde, konfigurieren Sie einfach die erkannte WLAN-Schnittstelle (wlan0), um eine Verbindung zu Ihrem WLAN-Netzwerk herzustellen.
sudo nmcli dev wifi connect "5GHz SSID" password "Wi-Fi Password"
Wenn der Befehl meldet, dass die Verbindung erfolgreich hergestellt wurde, ist der Adapter betriebsbereit.
Mit den folgenden Befehlen können Sie die Verbindung trennen und später wiederherstellen.
# Disconnect
sudo nmcli dev wifi disconnect wlan0
# Reconnect
sudo nmcli con up "SSID"
Wenn Sie die Desktop-Umgebung des Raspberry Pi verwenden, können Sie über das Netzwerksymbol in der oberen Menüleiste eine Verbindung zum WLAN herstellen oder diese trennen.
Überprüfung der Signalstärke (AC600)
Nachdem wir uns vergewissert hatten, dass der Adapter erfolgreich angeschlossen war, haben wir dessen WLAN-Leistung geprüft.
Um die Signalqualität zu überprüfen, haben wir den folgenden Befehl verwendet.
iw dev wlan0 link
Connected to XX:XX:XX:XX:XX:XX (on wlan0) # sample
SSID: secret # sample
freq: 5220
RX: 1846814 bytes (8763 packets)
TX: 370914443 bytes (48765 packets)
signal: -40 dBm
rx bitrate: 390.0 MBit/s VHT-MCS 9 80MHz VHT-NSS 1
tx bitrate: 433.3 MBit/s VHT-MCS 9 80MHz short GI VHT-NSS 1
Die folgenden drei Zeilen sind die wichtigsten.
signal: -40 dBm
rx bitrate: 390.0 MBit/s VHT-MCS 9 80MHz VHT-NSS 1
tx bitrate: 433.3 MBit/s VHT-MCS 9 80MHz short GI VHT-NSS 1
Bei der Signalstärke weisen Werte, die näher an 0 dBm liegen, auf ein stärkeres Signal hin.
- -30 bis -45 dBm: Ausgezeichnet
- -50 bis -67 dBm: Gut
- Unter -70 dBm: Schwach
Unser Test ergab einen Wert von -40 dBm, was auf ein ausgezeichnetes Funksignal hindeutet.
Auch der Artikel „ VHT-MCS 9 80MHz VHT-NSS 1 “ enthält nützliche Informationen.
- VHT steht für den Wi-Fi 5 (802.11ac)-Übertragungsmodus.
- MCS 9 ist das am höchsten unterstützte Modulations- und Codierungsschema.
- 80 MHz beträgt die Kanalbandbreite.
- VHT-NSS 1 steht für einen einzelnen räumlichen Datenstrom (eine Antenne). Der AC1300 sollte VHT-NSS 2 melden, was zwei räumliche Datenströme anzeigt.
(VHT steht für „Very High Throughput“.)
Die Funkstandards werden üblicherweise wie folgt dargestellt:
- 802.11n → HT (Wi-Fi 4)
- 802.11ac → VHT (Wi-Fi 5)
- 802.11ax → HE (Wi-Fi 6)
Auch die Kanalbandbreite hat sich im Laufe der aufeinanderfolgenden WLAN-Generationen erhöht.
- 20 MHz
- 40 MHz
- 80 MHz ← Wird von den hier getesteten Adaptern verwendet
- 160 MHz
Anschluss des AC600 an einen USB-3.0-Anschluss
Anschließend haben wir den AC600, der offiziell nur USB 2.0 unterstützt, getestet, indem wir ihn an einen USB-3.0-Anschluss angeschlossen haben.
Nach dem Neustart des Systems haben wir den Adapter an den USB-3.0-Anschluss angeschlossen und denselben Befehl erneut ausgeführt.
Die Ausgabe von „ iw dev wlan0 link “ lautete wie folgt.
signal: -42 dBm
rx bitrate: 351.0 MBit/s VHT-MCS 8 80MHz VHT-NSS 1
tx bitrate: 433.3 MBit/s VHT-MCS 9 80MHz short GI VHT-NSS 1
Im Vergleich zum USB-2.0-Test sank die Empfangssignalstärke leicht, während die Empfangsübertragungsrate von 390,0 Mbit/s auf 351,0 Mbit/s zurückging.
In der Praxis gab es jedoch kaum einen spürbaren Unterschied zwischen der Verwendung des Adapters an einem USB-2.0- oder einem USB-3.0-Anschluss.
Überprüfung der Signalstärke (AC1300)
Anschließend haben wir das AC1300, das USB 3.0 unterstützt, getestet, indem wir es an einen USB-3.0-Anschluss angeschlossen haben.
Da der Treiber bereits installiert war, wurde der Adapter ohne weitere Konfiguration automatisch erkannt.
Wir haben die Informationen zur WLAN-Verbindung erneut überprüft.
signal: -40 dBm
rx bitrate: 780.0 MBit/s VHT-MCS 9 80MHz VHT-NSS 2
tx bitrate: 866.7 MBit/s VHT-MCS 9 80MHz short GI VHT-NSS 2
Die Signalstärke betrug -40 dBm, was auf eine hervorragende Verbindung hindeutet, ähnlich wie beim AC600.
Wie erwartet lagen die ausgehandelten Verbindungsraten (780,0 / 866,7 Mbit/s) deutlich über denen des AC600.
Die Kanalbandbreite blieb bei 80 MHz, während der Adapter korrekt „VHT-NSS 2“ meldete, was auf zwei räumliche Datenströme hindeutete.
Anschluss des AC1300 an einen USB-2.0-Anschluss
Wie bereits beim AC600 haben wir das System neu gestartet und den AC1300 an den USB-2.0-Anschluss angeschlossen.
signal: -42 dBm
rx bitrate: 702.0 MBit/s VHT-MCS 8 80MHz VHT-NSS 2
tx bitrate: 866.7 MBit/s VHT-MCS 9 80MHz short GI VHT-NSS 2
Die Signalstärke nahm leicht auf -42 dBm ab, während die ausgehandelte Empfangsübertragungsrate von 780,0 Mbit/s auf 702,0 Mbit/s sank.
Die Wahl des Hafens hatte kaum praktische Auswirkungen
Obwohl der AC600 für USB 2.0 ausgelegt ist und der AC1300 USB 3.0 unterstützt, funktionierten beide Adapter einwandfrei, unabhängig davon, an welchen USB-Anschluss sie angeschlossen waren.
Im täglichen Gebrauch war der Unterschied zwischen USB-2.0- und USB-3.0-Anschlüssen sowohl hinsichtlich der Leistung als auch der Benutzerfreundlichkeit kaum spürbar.

Die Signalstärke schwankte zudem leicht, je nachdem, zu welchem Zeitpunkt nach dem Hochfahren die Messung durchgeführt wurde.
In der Praxis können die physische Position des USB-Anschlusses und die umgebenden elektrischen Störungen einen größeren Einfluss haben als die USB-Schnittstelle selbst.
Obwohl jeder Adapter bei Anschluss an den dafür vorgesehenen USB-Anschluss eine etwas bessere Leistung erbrachte, gibt es kaum einen Grund, einen anderen Anschluss zu verwenden, es sei denn, der bevorzugte Anschluss ist bereits belegt.
Durchsatzprüfung
Anschließend haben wir den tatsächlichen Netzwerkdurchsatz mit iperf3 gemessen.
Wir haben „ iperf3 “ sowohl auf dem PL-R5 als auch auf einem separaten Mac installiert und den Mac im Servermodus gestartet.
brew install iperf3
iperf3 -s
Nachdem wir „ iperf3 “ auf dem Raspberry Pi installiert hatten, haben wir den Client unter Verwendung der IP-Adresse des Macs ausgeführt.
iperf3 -c <Mac IP address>
iperf3-Ergebnisse
Die letzte Zeile auf der Mac-Seite (Empfänger) enthält den gemessenen Durchsatz.
# AC1300
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 359 MBytes 301 Mbits/sec 0 sender
[ 5] 0.00-10.02 sec 358 MBytes 300 Mbits/sec receiver
# AC600
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 163 MBytes 137 Mbits/sec 0 sender
[ 5] 0.00-10.03 sec 160 MBytes 134 Mbits/sec receiver
Die AC1300 erreichte etwa 300 Mbit/s, während die AC600 etwa 134 Mbit/s erreichte.
Obwohl diese Werte unter den theoretischen maximalen Verbindungsraten (866,7 Mbit/s bzw. 433,3 Mbit/s) liegen, stellen sie einen realistischen Durchsatz auf Anwendungsebene dar.
Um eine genauere Messung zu erhalten, können Sie „ iperf3 “ mit vier parallelen Streams unter Verwendung der Option „ -P 4 “ ausführen.
iperf3 -c <IP address> -P 4
# AC600
[ ID] Interval Transfer Bitrate Retr
[SUM] 0.00-10.00 sec 161 MBytes 135 Mbits/sec 0 sender
[SUM] 0.00-10.03 sec 154 MBytes 129 Mbits/sec receiver
# AC1300
[ ID] Interval Transfer Bitrate Retr
[SUM] 0.00-10.00 sec 363 MBytes 305 Mbits/sec 0 sender
[SUM] 0.00-10.05 sec 351 MBytes 293 Mbits/sec receiver
Die Ergebnisse blieben konsistent, was auf eine stabile WLAN-Leistung hindeutet.

Testergebnisse und Vergleich
In der folgenden Tabelle sind die Testergebnisse zusammengefasst.
Da die WLAN-Übertragungsgeschwindigkeiten (RX, TX und iperf3) je nach Messzeitpunkt und Funkbedingungen variieren, sollten die Werte eher als Referenzwerte denn als absolute Zahlen betrachtet werden.
Insbesondere die von iw dev wlan0 link gemeldeten Werte unterliegen tendenziell Schwankungen.

Schlussfolgerung
In unserer Testumgebung mit Raspberry Pi OS Bookworm benötigten beide Adapter einen zusätzlichen DKMS-Treiber.
Der in diesem Artikel verwendete Treiber ist ein Backport des „wireless-next“- Quellcodes, was bedeutet, dass die Unterstützung für diese Chipsätze möglicherweise irgendwann im Standard-Linux-Kernel verfügbar sein wird.
Insbesondere die Unterstützung für den RTL8822BU-Chipsatz scheint im Upstream-Bereich voranzukommen. Eine entsprechende Diskussion finden Sie im offiziellen Raspberry-Pi-Forum.
Durch Aktivieren der Option „RTW88_8821AU“ wird die Unterstützung für die RTL8811AU/RTL8821AU-Familie hinzugefügt.
Quelle:https://forums.raspberrypi.com/viewtopic.php?t=392929
Zukünftige Versionen von Raspberry Pi OS, die auf Trixie und neueren Kerneln basieren, könnten eine verbesserte integrierte Unterstützung bieten.
Zum Zeitpunkt der Erstellung dieses Artikels erfordern einige Umgebungen jedoch nach wie vor einen DKMS-/Backport-Treiber, selbst für den RTL8822BU-Chipsatz.
In unseren Tests sorgte das Repository „lwfinger/rtw88“ bei beiden Adaptern für einen stabilen und zuverlässigen Betrieb.
Falls Sie einen USB-WLAN-Adapter verwenden, der auf denselben Realtek-Chipsätzen basiert, empfehlen wir Ihnen, die in diesem Artikel beschriebene Vorgehensweise zu befolgen.
Beitrag von Raspida
Raspida ist unter raspida.com, eine Informationswebsite zum Thema Raspberry Pi, die auch für Nicht-Techniker unterhaltsam gestaltet ist. Basierend auf jahrelanger praktischer Erfahrung mit dem Raspberry Pi veröffentlicht die Website zahlreiche nützliche Artikel und Themen sowohl für erfahrene Raspberry-Pi-Anwender als auch für Einsteiger. Raspida verfasst technische Blog-Beiträge über industrielle Raspberry-Pi-Produkte für die PiLink-Website.

