TP-Link Archer T2UH unter Linux

WLAN und Linux war in der Vergangenheit immer ein Problem. Genauso, wie Grafikkarten-Treiber und Linux.
In den letzten Jahren hat das ganze allerdings durch das Linux-Wireless Projekt deutlich an Problematik verloren. Viele WLAN-Module funktionieren heute bereits OOTB. Der USB-Stick TP-Link Archer T2UH AC600  zählt allerdings nicht dazu. Ich habe ihn allerdings trotzdem mit etwas Bastelei ans laufen bekommen. Man sollte hierbei beachten, dass ich mit Fedora 24 eine derzeit sehr aktuelle Distribution verwende (Kernel 4.5, GCC 6.1, usw.)

IMG_20160623_150712

Die Analyse.

Zunächst musste ich überhaupt einmal ermitteln, was genau mir lsusb denn zu dem USB-Stick sagt:

[phollux@Charon:~]$ lsusb
(output omitted...)
Bus 003 Device 010: ID 148f:761a Ralink Technology, Corp.

Okay. Auf geht's zur Herstellerseite. Und siehe da...man wird sogar fündig! Es gibt einen Treiber vom Hersteller (allerdings nur für die Kernelversionen 2.6 - 3.18 und GCC 4.8.X). Aber was soll's, testen wir das Ganze einfach mal.

Die Installation.

Die Installation gestaltete sich dennoch etwas schwieriger, als in dem beigefügten PDF beschrieben - was daran liegen kann, dass ich mit Fedora 24 eine recht aktuelle Distribution verwende. Im Fall Fedora sind folgende Pakete zu installieren:


sudo dnf install gcc kernel-devel -y
sudo dnf install @development-tools

Bei einem Debian oder Ubuntu wären das vermutlich die Pakete "build-essential und linux-headers".

Ist dies erledigt, sollte man ein Terminal öffnen und mittels cd in das aktuelle Driver-Verzeichnis der entpackten Zip-Ordnerstruktur wechseln.Dort angelangt wird man recht schnell feststellen, dass ein sudo make fehl schlägt (ich habe den unrelevanten Teil des Codes entfernt. Der vollständige Output kann auch pastebin eingesehen werden):

[phollux@Charon:Archer_T2UH_V1_150909/Driver]$ sudo make
[sudo] Passwort für phollux:
make -C UTIL/ osutil
make[1]: Verzeichnis „/home/phollux/Code/Archer_T2UH_V1_150909/Driver/UTIL“ wird betreten

(output omitted...)
/home/phollux/Code/Archer_T2UH_V1_150909/Driver/UTIL/os/linux/../../os/linux/rt_usb_util.c: In Funktion
/home/phollux/Code/Archer_T2UH_V1_150909/Driver/MODULE/os/linux/../../sta/sta_cfg.c:7053:85: Fehler: Das Makro »__DATE__« könnte reproduzierbare Builds verhindern [-Werror=date-time]
snprintf(extra, size, "Driver version-%s, %s %s\n", STA_DRIVER_VERSION, __DATE__, __TIME__ );
^~~~~~~~
/home/phollux/Code/Archer_T2UH_V1_150909/Driver/MODULE/os/linux/../../sta/sta_cfg.c:7053:95: Fehler: Das Makro »__TIME__« könnte reproduzierbare Builds verhindern [-Werror=date-time]
snprintf(extra, size, "Driver version-%s, %s %s\n", STA_DRIVER_VERSION, __DATE__, __TIME__ );
^~~~~~~~

(output omitted...)
cc1: Einige Warnungen werden als Fehler behandelt
scripts/Makefile.build:258: die Regel für Ziel „/home/phollux/Code/Archer_T2UH_V1_150909/Driver/MODULE/os/linux/../../sta/sta_cfg.o“ scheiterte
make[3]: *** [/home/phollux/Code/Archer_T2UH_V1_150909/Driver/MODULE/os/linux/../../sta/sta_cfg.o] Fehler 1
Makefile:1396: die Regel für Ziel „_module_/home/phollux/Code/Archer_T2UH_V1_150909/Driver/MODULE/os/linux“ scheiterte
make[2]: *** [_module_/home/phollux/Code/Archer_T2UH_V1_150909/Driver/MODULE/os/linux] Fehler 2
make[2]: Verzeichnis „/usr/src/kernels/4.5.7-300.fc24.x86_64“ wird verlassen
Makefile:548: die Regel für Ziel „osdrv“ scheiterte
make[1]: *** [osdrv] Fehler 2
make[1]: Verzeichnis „/home/phollux/Code/Archer_T2UH_V1_150909/Driver/MODULE“ wird verlassen
Makefile:3: die Regel für Ziel „all“ scheiterte
make: *** [all] Fehler 2

An dieser Stelle ist gut zu sehen, woran es scheitert: GCC Version 6.1. Standardmässig ist GCC 6.1 mit -Werror=date-time konfiguriert. Das war wohl bei 4.8.6 noch nicht der Fall. Es gibt natürlich jetzt die Möglichkeit, das abzuschalten - ich hingegen habe es bevorzugt, den störenden Teil aus dem Quellcode zu entfernen:


sed -ie '/__TIME__/d' MODULE/sta/sta_cfg.c
sed -ie '/__TIME__/d' MODULE/common/cmm_info.c

Anschließend kann man das Modul kompilieren und mit dem mitgelieferten Bash-Skript laden:


sudo make
sudo bash load.sh

Man sollte allerdings beachten, dass hier noch keine deutschen Frequenzbänder enthalten sind. Das Problem lässt sich aber einfach lösen, indem man folgende Parameter in der Datei /etc/Wireless/RT2870STA/RT2870STA.dat setzt:


CountryRegion=1
CountryRegionABand=1
CountryCode=de

Anschließend lassen sich alle Access-Points betrachten.

Die Anwendung.

Der Stick funktioniert, will man sich mit einem Access-Point verbinden. Hierzu kann man das beigefügte Manual zu rate ziehen.
Was ich bisher nicht ans laufen bekommen habe:

  • Den USB-Stick in den Monitor-Modus mittels Airmon-ng versetzen.
  • Den USB-Stick in den AP (Access-Point)-Modus versetzen.
  • Networkmanager die Benutzung des Sticks beibringen. (Man muss den Stick also über die Kommandozeile konfigurieren)

Bisher von mir noch nicht getestet (mangels Gegenstück), allerdings im Manual beschrieben wurde der Wechsel in den AC-Modus.

2 Gedanken zu “TP-Link Archer T2UH unter Linux

  1. Ich bekomme die Fehlermeldungen nicht weg. Was genau hast du getan um die Fehlermeldungen wegzubekommen, wenn man die make-file ausführt.

    Fedora 24 Kernel 3.8.12

Schreibe einen Kommentar