Archer T4U pod linux (Debian)

Podpiąłem właśnie tego Archera T4U pod swojego laptopa, na którym mam zainstalowanego debiana i poniżej jest przedstawiona instalacja i konfiguracja tej karty wifi.
Póki co, w kernelu linuxa (3.16) nie ma odpowiednich sterowników do tej karty i trzeba je sobie skompilować ręcznie.

Kod sterownika można pobrać z githuba:

$ git clone https://github.com/abperiasamy/rtl8812AU_8821AU_linux.git
Cloning into 'rtl8812AU_8821AU_linux'...
remote: Counting objects: 402, done.
remote: Total 402 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (402/402), 1.46 MiB | 392.00 KiB/s, done.
Resolving deltas: 100% (158/158), done.
Checking connectivity... done.
$ cd rtl8812AU_8821AU_linux/
$ make
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/3.16-2-amd64/build M=/home/morfik/Desktop/debian_sources/rtl8812AU_8821AU_linux  modules
make[1]: Entering directory '/usr/src/linux-headers-3.16-2-amd64'
Makefile:10: *** mixed implicit and normal rules: deprecated syntax
make[1]: Entering directory `/usr/src/linux-headers-3.16-2-amd64'
...
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/morfik/Desktop/debian_sources/rtl8812AU_8821AU_linux/8812au.mod.o
  LD [M]  /home/morfik/Desktop/debian_sources/rtl8812AU_8821AU_linux/8812au.ko
make[1]: Leaving directory '/usr/src/linux-headers-3.16-2-amd64'

Moduł się skompilował, logujemy się na roota i instalujemy go:

# make install
install -p -m 644 8812au.ko  /lib/modules/3.16-2-amd64/kernel/drivers/net/wireless/
/sbin/depmod -a 3.16-2-amd64

Podłączamy teraz kartę do portu USB i w logu już powinniśmy zauważyć, że karta została rozpoznana przez system:

Oct 20 15:32:42 morfikownia kernel: [ 2273.396616] usb 2-1.1: new high-speed USB device number 8 using ehci-pci
Oct 20 15:32:42 morfikownia kernel: [ 2273.489331] usb 2-1.1: New USB device found, idVendor=2357, idProduct=0101
Oct 20 15:32:42 morfikownia kernel: [ 2273.489339] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Oct 20 15:32:42 morfikownia kernel: [ 2273.489345] usb 2-1.1: Product: 802.11n NIC
Oct 20 15:32:42 morfikownia kernel: [ 2273.489349] usb 2-1.1: Manufacturer: Realtek
Oct 20 15:32:42 morfikownia kernel: [ 2273.489353] usb 2-1.1: SerialNumber: 123456
Oct 20 15:32:42 morfikownia mtp-probe: checking bus 2, device 8: "/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1"
Oct 20 15:32:42 morfikownia mtp-probe: bus: 2, device: 8 was not an MTP device
Oct 20 15:32:42 morfikownia kernel: [ 2273.548489] cfg80211: Calling CRDA to update world regulatory domain
Oct 20 15:32:42 morfikownia kernel: [ 2273.548502] cfg80211: Calling CRDA to update world regulatory domain
Oct 20 15:32:42 morfikownia kernel: [ 2273.635501] cfg80211: World regulatory domain updated:
Oct 20 15:32:42 morfikownia kernel: [ 2273.635506] cfg80211:  DFS Master region: unset
Oct 20 15:32:42 morfikownia kernel: [ 2273.635508] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
Oct 20 15:32:42 morfikownia kernel: [ 2273.635511] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
Oct 20 15:32:42 morfikownia kernel: [ 2273.635513] cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
Oct 20 15:32:42 morfikownia kernel: [ 2273.635515] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
Oct 20 15:32:42 morfikownia kernel: [ 2273.635517] cfg80211:   (5170000 KHz - 5250000 KHz @ 160000 KHz), (N/A, 2000 mBm), (N/A)
Oct 20 15:32:42 morfikownia kernel: [ 2273.635519] cfg80211:   (5250000 KHz - 5330000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
Oct 20 15:32:42 morfikownia kernel: [ 2273.635521] cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
Oct 20 15:32:42 morfikownia kernel: [ 2273.635522] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
Oct 20 15:32:42 morfikownia kernel: [ 2273.635524] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)
Oct 20 15:32:42 morfikownia kernel: [ 2273.635542] cfg80211: Calling CRDA for country: PL
Oct 20 15:32:42 morfikownia kernel: [ 2273.642841] cfg80211: Regulatory domain changed to country: PL
Oct 20 15:32:42 morfikownia kernel: [ 2273.642846] cfg80211:  DFS Master region: ETSI
Oct 20 15:32:42 morfikownia kernel: [ 2273.642848] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
Oct 20 15:32:42 morfikownia kernel: [ 2273.642851] cfg80211:   (2402000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
Oct 20 15:32:42 morfikownia kernel: [ 2273.642853] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
Oct 20 15:32:42 morfikownia kernel: [ 2273.642855] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz), (N/A, 2000 mBm), (0 s)
Oct 20 15:32:42 morfikownia kernel: [ 2273.642857] cfg80211:   (5490000 KHz - 5710000 KHz @ 80000 KHz), (N/A, 2700 mBm), (0 s)
Oct 20 15:32:42 morfikownia kernel: [ 2273.642859] cfg80211:   (57240000 KHz - 65880000 KHz @ 2160000 KHz), (N/A, 4000 mBm), (N/A)
Oct 20 15:32:42 morfikownia kernel: [ 2273.852409] usbcore: registered new interface driver rtl8812au

Powinien się także pojawić nowy interfejs sieciowy:

# iwconfig wlan2 
wlan2     unassociated  Nickname:"<WIFI@REALTEK>"
		  Mode:Auto  Frequency=2.412 GHz  Access Point: Not-Associated   
		  Sensitivity:0/0  
		  Retry:off   RTS thr:off   Fragment thr:off
		  Encryption key:off
		  Power Management:off
		  Link Quality:0  Signal level:0  Noise level:0
		  Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
		  Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Poniżej zaś jest lista rzeczy, które potrafi ogarnąć Archer T4U:

# iw list
Wiphy phy0
		max # scan SSIDs: 9
		max scan IEs length: 2304 bytes
		Coverage class: 0 (up to 0m)
		Supported Ciphers:
				* WEP40 (00-0f-ac:1)
				* WEP104 (00-0f-ac:5)
				* TKIP (00-0f-ac:2)
				* CCMP (00-0f-ac:4)
		Available Antennas: TX 0 RX 0
		Supported interface modes:
				 * IBSS
				 * managed
				 * AP
				 * monitor
				 * P2P-client
				 * P2P-GO
		Band 1:
				Bitrates (non-HT):
						* 1.0 Mbps
						* 2.0 Mbps
						* 5.5 Mbps
						* 11.0 Mbps
						* 6.0 Mbps
						* 9.0 Mbps
						* 12.0 Mbps
						* 18.0 Mbps
						* 24.0 Mbps
						* 36.0 Mbps
						* 48.0 Mbps
						* 54.0 Mbps
				Frequencies:
						* 2412 MHz [1] (20.0 dBm)
						* 2417 MHz [2] (20.0 dBm)
						* 2422 MHz [3] (20.0 dBm)
						* 2427 MHz [4] (20.0 dBm)
						* 2432 MHz [5] (20.0 dBm)
						* 2437 MHz [6] (20.0 dBm)
						* 2442 MHz [7] (20.0 dBm)
						* 2447 MHz [8] (20.0 dBm)
						* 2452 MHz [9] (20.0 dBm)
						* 2457 MHz [10] (20.0 dBm)
						* 2462 MHz [11] (20.0 dBm)
						* 2467 MHz [12] (20.0 dBm)
						* 2472 MHz [13] (20.0 dBm)
						* 2484 MHz [14] (disabled)
		Band 2:
				Bitrates (non-HT):
						* 6.0 Mbps
						* 9.0 Mbps
						* 12.0 Mbps
						* 18.0 Mbps
						* 24.0 Mbps
						* 36.0 Mbps
						* 48.0 Mbps
						* 54.0 Mbps
				Frequencies:
						* 5170 MHz [34] (disabled)
						* 5180 MHz [36] (20.0 dBm)
						* 5190 MHz [38] (20.0 dBm)
						* 5200 MHz [40] (20.0 dBm)
						* 5210 MHz [42] (20.0 dBm)
						* 5220 MHz [44] (20.0 dBm)
						* 5230 MHz [46] (20.0 dBm)
						* 5240 MHz [48] (20.0 dBm)
						* 5260 MHz [52] (20.0 dBm) (radar detection)
						  DFS state: usable (for 926 sec)
						* 5280 MHz [56] (20.0 dBm) (radar detection)
						  DFS state: usable (for 926 sec)
						* 5300 MHz [60] (20.0 dBm) (radar detection)
						  DFS state: usable (for 926 sec)
						* 5320 MHz [64] (20.0 dBm) (radar detection)
						  DFS state: usable (for 926 sec)
						* 5500 MHz [100] (27.0 dBm) (radar detection)
						  DFS state: usable (for 926 sec)
						* 5520 MHz [104] (27.0 dBm) (radar detection)
						  DFS state: usable (for 926 sec)
						* 5540 MHz [108] (27.0 dBm) (radar detection)
						  DFS state: usable (for 926 sec)
						* 5560 MHz [112] (27.0 dBm) (radar detection)
						  DFS state: usable (for 926 sec)
						* 5580 MHz [116] (27.0 dBm) (radar detection)
						  DFS state: usable (for 926 sec)
						* 5600 MHz [120] (27.0 dBm) (radar detection)
						  DFS state: usable (for 926 sec)
						* 5620 MHz [124] (27.0 dBm) (radar detection)
						  DFS state: usable (for 926 sec)
						* 5640 MHz [128] (27.0 dBm) (radar detection)
						  DFS state: usable (for 926 sec)
						* 5660 MHz [132] (27.0 dBm) (radar detection)
						  DFS state: usable (for 926 sec)
						* 5680 MHz [136] (27.0 dBm) (radar detection)
						  DFS state: usable (for 926 sec)
						* 5700 MHz [140] (27.0 dBm) (radar detection)
						  DFS state: usable (for 926 sec)
						* 5745 MHz [149] (disabled)
						* 5765 MHz [153] (disabled)
						* 5785 MHz [157] (disabled)
						* 5805 MHz [161] (disabled)
						* 5825 MHz [165] (disabled)
						* 5920 MHz [184] (disabled)
						* 5940 MHz [188] (disabled)
						* 5960 MHz [192] (disabled)
						* 5980 MHz [196] (disabled)
						* 6000 MHz [200] (disabled)
						* 6020 MHz [204] (disabled)
						* 6040 MHz [208] (disabled)
						* 6060 MHz [212] (disabled)
						* 6080 MHz [216] (disabled)
		Supported commands:
				 * new_interface
				 * set_interface
				 * new_key
				 * start_ap
				 * new_station
				 * set_bss
				 * join_ibss
				 * set_pmksa
				 * del_pmksa
				 * flush_pmksa
				 * remain_on_channel
				 * frame
				 * set_channel
				 * connect
				 * disconnect
		Supported TX frame types:
				 * IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
				 * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
				 * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
				 * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
				 * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
				 * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		Supported RX frame types:
				 * IBSS: 0xd0
				 * managed: 0x40 0xd0
				 * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
				 * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
				 * P2P-client: 0x40 0xd0
				 * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
		software interface modes (can always be added):
				 * monitor
		interface combinations are not supported
		Device supports scan flush.

Przydałoby się przetestować połączenie. Edytujemy konfigurację dla wpasupplicanta, u mnie jest ona dostępna w pliku /etc/wpa_supplicant/wpa_supplicant.conf i dodajemy do niej poniższy blok kodu:

network={
	id_str="home_wifi"
	priority=10
	ssid="What Is Dead May Never Die"
#	bssid=
	psk=141fc2d91f1c6cdafad53312f19a26f3175aeaf2733a4044e731af6f0a1452f1
	proto=RSN
	key_mgmt=WPA-PSK
	pairwise=CCMP
	group=CCMP
	auth_alg=OPEN
	scan_ssid=0
	disabled=0
}

Oczywiście, wartości powyższych parametrów trzeba dostosować odpowiednio wedle naszych potrzeb.
Konfigurujemy także sam interfejs sieciowy. W moim przypadku konfiguracja interfejsów odbywa się przez plik /etc/network/interfaces -- dodajemy tam poniższy blok :

auto wlan2
allow-hotplug wlan2
iface wlan2 inet dhcp
	wpa-driver nl80211
	wpa-debug-level -1
	wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Podnosimy interfejs by przetestować ustawienia:

# ifup wlan2
Internet Systems Consortium DHCP Client 4.3.1
Copyright 2004-2014 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/wlan2/e8:de:27:1d:4c:a5
Sending on   LPF/wlan2/e8:de:27:1d:4c:a5
Sending on   Socket/fallback
DHCPDISCOVER on wlan2 to 255.255.255.255 port 67 interval 7
DHCPDISCOVER on wlan2 to 255.255.255.255 port 67 interval 8
DHCPREQUEST on wlan2 to 255.255.255.255 port 67
DHCPOFFER from 192.168.0.1
DHCPACK from 192.168.0.1
bound to 192.168.0.101 -- renewal in 3478 seconds.

Adres został pobrany via DHCP.
Poniżej jeszcze speedtest:

morfik:~$ speedtest
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from TK Telekom sp. z o.o. ...
Selecting best server based on latency...
Hosted by NETIA S.A. (Warsaw) [43.40 km]: 14.888 ms
Testing download speed........................................
Download: 14.62 Mbits/s
Testing upload speed..................................................
Upload: 0.97 Mbits/s

Także jeśli chodzi o moje łącze 15/1 Mbit , to z grubsza jest w porządku.
Jedyny problem jaki można zaobserwować, to skoki pingów:

$ ping wp.pl
PING wp.pl (212.77.100.101) 56(84) bytes of data.
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=1 ttl=247 time=19.2 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=2 ttl=247 time=18.3 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=3 ttl=247 time=19.9 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=4 ttl=247 time=19.4 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=5 ttl=247 time=19.2 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=6 ttl=247 time=15.5 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=7 ttl=247 time=15.4 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=8 ttl=247 time=125 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=9 ttl=247 time=148 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=10 ttl=247 time=170 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=11 ttl=247 time=192 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=12 ttl=247 time=113 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=13 ttl=247 time=136 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=14 ttl=247 time=158 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=15 ttl=247 time=181 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=16 ttl=247 time=204 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=17 ttl=247 time=125 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=18 ttl=247 time=147 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=19 ttl=247 time=170 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=20 ttl=247 time=240 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=21 ttl=247 time=19.9 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=22 ttl=247 time=15.2 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=23 ttl=247 time=16.3 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=24 ttl=247 time=181 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=25 ttl=247 time=204 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=26 ttl=247 time=124 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=27 ttl=247 time=147 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=28 ttl=247 time=170 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=29 ttl=247 time=24.3 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=30 ttl=247 time=17.6 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=31 ttl=247 time=23.6 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=32 ttl=247 time=18.9 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=33 ttl=247 time=18.3 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=34 ttl=247 time=18.0 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=35 ttl=247 time=20.0 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=36 ttl=247 time=146 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=37 ttl=247 time=170 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=38 ttl=247 time=192 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=39 ttl=247 time=113 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=40 ttl=247 time=19.5 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=41 ttl=247 time=38.5 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=42 ttl=247 time=20.1 ms
64 bytes from www.wp.pl (212.77.100.101): icmp_seq=43 ttl=247 time=20.4 ms
^C

 wp.pl ping statistics 

43 packets transmitted, 43 received, 0% packet loss, time 42054ms
rtt min/avg/max/mdev = 15.265/92.707/240.656/74.842 ms

Dzieje się to zarówno na paśmie 2.4GHz jak i 5GHz i nie mam pojęcia czym to może być spowodowane. Być może jeszcze zbyt wcześnie dla linuxiarzy by mogli swobodnie używać Archera T4U .
Poniżej jeszcze kilka fotek:
Podłączenie do sieci wifi 5GHz:

Oraz do sieci wifi 2.4 GHz:

Z tym, że zarówno jakość połączenia jak i poziom sygnału nie zmieniają się, także najwyraźniej są jakieś problemy z tą kartą pod linuxami.

Mógł byś przetestować połączenie iperf'em między komputerem a routerem lub innym urządzeniem podłączonym do routera?

Transfer wydaje się być w porządku, tylko ping skacze strasznie.
Iperf wygląda tak:

# iperf -c 192.168.1.1

Client connecting to 192.168.1.1, TCP port 5001
TCP window size: 85.0 KByte (default)

[  3] local 192.168.1.133 port 53888 connected with 192.168.1.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   104 MBytes  87.2 Mbits/sec

To jest mój główny router (on ma tylko pasmo 2,4GHz)
Jeśli bym zamienił kartę na TL-WN722N , wtedy ping przestaje skakać, także ewidentnie problem leży po stronie tego archera, albo raczej jego sterownika.
Z tego co zauważyłem, to jeśli pobiera się coś, np zapuści się ten iperf z opcją -t 120 , wtedy podczas czasu transferu, ping jest normalny. Czasem tylko wskoczy na 400, tak mniej więcej 1/40 pingów. Natomiast jak się test zakończy to po chwili zaczyna ping wzrastać. Może to jest pożądane zachowanie? Ja wiem, jakiś tryb IDLE czy coś?

Udało mi się zdiagnozować ten problem. Winny jest tryb oszczędzania energii:

# iw dev wlan2 get power_save
Power save: on
# iw dev wlan2 set power_save off
# iw dev wlan2 get power_save
Power save: off

I już ping przestał skakać. :slight_smile:
Z tym, że powyższe rozwiązanie jest tymczasowe (do momentu wyciągnięcia karty z portu usb) i by uczynić je permanentnym, trzeba napisać regułkę udeva i zapisać ją w np. pliku /etc/udev/rules.d/70-wifi-powersave.rules .:

ACTION=="add", SUBSYSTEM=="net", KERNEL=="wlan*" RUN+="/sbin/iw dev %k set power_save off

Także chyba wszystko jest w porządku z tą kartą już.