TP Link koji driver?


#1

Pozdrav svima, nije me bilo odavno.

Naime, kupio sam prije par dana TP LINK TLWN823N V2.0 wifi usb adapter koji na win radi normalno, ali na linuxu (kubuntu 17.10 x64) na nekih 20% brzine. Prije toga na openSUSE ga nije prepoznavao uopste.

Evo neki output-i:

boby@Versa-III:/$ lsusb
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 003: ID 2357:0109  
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 003: ID 046d:c312 Logitech, Inc. DeLuxe 250 Keyboard
Bus 004 Device 002: ID 1bcf:0007 Sunplus Innovation Technology Inc. Optical Mouse
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 009 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 008 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

ako izvadim adapter, onda nema ovog cetvrtog reda.

boby@Versa-III:/$ iwconfig
lo        no wireless extensions.

enp3s0    no wireless extensions.

wlxd46e0eeba182  IEEE 802.11  ESSID:"UPC29988A9"  
          Mode:Managed  Frequency:2.462 GHz  Access Point: AC:22:05:AA:93:08   
          Bit Rate=1 Mb/s   Tx-Power=20 dBm   
          Retry short limit:7   RTS thr=2347 B   Fragment thr:off
          Power Management:off
          Link Quality=32/70  Signal level=-78 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

vidi se da je link los i kvalitet i level.

Dio lsmod:

Module                  Size  Used by
rtl8xxxu                  126976   0
mac80211              778240   1 rtl8xxxu
cfg80211              610304     1 mac80211

Dio sudo lshw -C network:

  *-network
       description: Wireless interface
       physical id: 1
       bus info: usb@8:1.3
       logical name: wlxd46e0eeba182
       serial: d4:6e:0e:eb:a1:82
       capabilities: ethernet physical wireless
       configuration: broadcast=yes driver=rtl8xxxu driverversion=4.13.0-16-generic firmware=N/A ip=192.168.0.241 link=yes multicast=yes wireless=IEEE 802.11

Pokusao sam da instaliram driver odavde:


sve zavrsi ok ali wifi nakon toga ne radi nikako.

Pokusao i sa sudo rmmod rtl8xxxu && sudo modprobe rtl8xxxu (nasao na netu), i opet isto, kao da nije taj driver.

Vise nemam ideja sta da pokusam, pa ako ima neko neku, bio bih zahvalan.

Dakle prvo bi bio dobro da saznam tacan model adaptera, ali mi lsusb ne daje nista.


#2

Sumnjam da je to dobar driver.

Na https://wikidevi.com/wiki/TP-LINK_TL-WN823N_v2 stoji link na drajver:
https://github.com/Mange/rtl8192eu-linux-driver

Inače je jako bitno koja slova u imenu 8192xy drivera, ja recimo imam integrisani 8192 ee koji je prije jako loše radio, al tamo od 4.x nešto je relativno OK (i dalje nekad ima problema sa nekim AP-ovima pa stalno dropa konekcije.

Još dodatno imam
cat /etc/modprobe.d/rtl8192ee.conf
options rtl8192ee swenc=1 ips=0 fwlps=0

(tj, da se isključi buggy hardware crypto i da se isključi power save)


#3

S tim driverom sam zapeo na “sudo dkms add .” Iz fodera drivera to izvrsim, ili? Posto mi kaze nesto, invalid number of arguments, no such folder in /usr/src…tako nesto
A driver koji sam naveo u prvom postu takodje ima iste korake i tamo je uspjelo i to dkms…
Razlika medju tim driverima je sto ovaj drugi mora da se skine preko ftp-a, a onaj prvi je git-om. Ne znam ima li to veze?

Ovaj conf file nemam, mogu li da ga napravim rucno? S tim da sam stimao power save za netwotk manager i nije pomoglo.


#4

Ne moraš se patiti sa DKMS na početku, to je samo za automatski rebuild drajvera kada instaliraš novi kernel. Iskopiraj source negdje u /usr/src i probaj, npr:

sudo su -
cd /usr/src/rtl8192eu
make clean
make
make install
modprobe -a rtl8192eu

Driver konfiguraciju možeš sam dodati (nije obavezno, ali mislim da neće odmoći, barem za ove crappy Realtek karte).


#5

E to sam probao i dobio neke compile greske. Napisacu popodne kad dodjem kuci.

Thx


#6

Evo log:

root@Versa-III:/usr/src/rtl8192EU# make
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/4.13.0-16-generic/build M=/usr/src/rtl8192EU  modules
make[1]: Entering directory '/usr/src/linux-headers-4.13.0-16-generic'
  CC [M]  /usr/src/rtl8192EU/core/rtw_cmd.o
In file included from /usr/src/rtl8192EU/include/drv_types.h:32:0,
                 from /usr/src/rtl8192EU/core/rtw_cmd.c:22:
/usr/src/rtl8192EU/include/osdep_service.h: In function ‘thread_enter’:
/usr/src/rtl8192EU/include/osdep_service.h:342:2: error: implicit declaration of function ‘allow_signal’; did you mean ‘do_signal’? [-Werror=implicit-function-declaration]
  allow_signal(SIGTERM);
  ^~~~~~~~~~~~
  do_signal
/usr/src/rtl8192EU/include/osdep_service.h: In function ‘flush_signals_thread’:
/usr/src/rtl8192EU/include/osdep_service.h:352:6: error: implicit declaration of function ‘signal_pending’; did you mean ‘timer_pending’? [-Werror=implicit-function-declaration]
  if (signal_pending (current))
      ^~~~~~~~~~~~~~
      timer_pending
/usr/src/rtl8192EU/include/osdep_service.h:354:3: error: implicit declaration of function ‘flush_signals’; did you mean ‘do_signal’? [-Werror=implicit-function-declaration]
   flush_signals(current);
   ^~~~~~~~~~~~~
   do_signal
cc1: some warnings being treated as errors
scripts/Makefile.build:302: recipe for target '/usr/src/rtl8192EU/core/rtw_cmd.o' failed
make[2]: *** [/usr/src/rtl8192EU/core/rtw_cmd.o] Error 1
Makefile:1546: recipe for target '_module_/usr/src/rtl8192EU' failed
make[1]: *** [_module_/usr/src/rtl8192EU] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.13.0-16-generic'
Makefile:1323: recipe for target 'modules' failed

#7

Nesto sam cackao po netu i instalirao jos nekih paketa pa sam na kraju uspio kompajlirati driver:
make prodje, make install prodje, ali na
sudo modprobe -a rtl8192eu
modprobe: WARNING: Module rtl8192eu not found in directory /lib/modules/4.13.0-16-generic

Treba li nekako disablovati ovaj 8xxxu i nekako ovaj isforsirati da se koristi? Ne kontam sta je problem


#8

Da nisi zaboravio make install? pokušaj sa find /lib/modules -iname ‘rtl8192eu.ko’


#9

Nisam zabravio, i pokusao sam par puta.

boby@Versa-III:~$ find /lib/modules -iname 'rtl8192eu.ko’
boby@Versa-III:~$


#10

Nasao sam fajl 8192eu.ko u folderu u kom sam kompajlirao driver. Da li ce uspjeti ako ga kopiram u odgovarajauci folder kao npr:

/lib/modules/4.13.0-16-generic/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8192eu/

Jer vidim da imam npr driver:

boby@Versa-III:~$ find /lib/modules -iname 'rtl8192cu.ko'
/lib/modules/4.13.0-16-generic/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/rtl8192cu.ko
boby@Versa-III:~$

Da li bi takvo nesto radilo?

S druge strane:

boby@Versa-III:~$ sudo modprobe -a 8192eu
boby@Versa-III:~$ 

kao sto vidis radi. E sad tek nista ne kontam. :slight_smile:


#11

I da, da naglasim, driver koji je prosao compile je ovaj:
https://github.com/Mange/rtl8192eu-linux-driver i skinut kao zip fajl, ako to ima ikakve veze


#12

OK, rijeseno :smiley:
Blacklistovao sam ovaj rtl8xxxu pomocu komande iz prvog posta za onaj ‘cu’ driver:
sudo cp blacklist-native-rtl8192.conf /etc/modprobe.d/:

## This file ships with the rtl8192-fixes DKMS module.
## Keep the native (and currently broken) kernel driver from loading so ours
## is used instead:
install rtl8192cu /bin/false
install rtl8192c_common /bin/false
install rtlwifi /bin/false
## There is also a new mainline driver starting with kernel v4.4
install rtl8xxxu /bin/false

Jer nakon istralacije drivera sam vidio ovo u lsmod:
mac80211 778240 1 8xxxu
cfg80211 610304 2 mac80211,8192eu

E sad nakon blacklistovanja je ovako:
mac80211 778240 0
cfg80211 610304 2 mac80211,8192eu

Koliko sam shvatio iz ovog svega je da sam imao nakon install-a dva drivera i jedan kad sam stavio u blacklist, proradio je ovaj drugi. U svakom slucaju:

boby@Versa-III:~$ iwconfig
lo        no wireless extensions.

enp3s0    no wireless extensions.

wlxd46e0eeba182  IEEE 802.11bgn  ESSID:"UPC29988A9"  Nickname:"<WIFI@REALTEK>"
          Mode:Managed  Frequency:2.462 GHz  Access Point: AC:22:05:AA:93:08   
          Bit Rate:144.4 Mb/s   Sensitivity:0/0  
          Retry:off   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=100/100  Signal level=100/100  Noise level=0/100
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Cudno je jedino sto pise 144.4 Mb/s (isto i na windows), a trebao bi da bude 300 ali ok, link je svakako manji.

Napisacu detaljan clean how-to dok pobrisem sve sto je viska na kompu i sredim od pocetka.


#13

Ovako, za nekog ako bude imao slicnih problema:

Prije svega potrebno je instalirati requirements za zaljenu distribuciju:

sudo apt-get install git linux-headers-generic build-essential dkms

i ako jos nesto nedostaje, naravno, kao npr. make, cmake, gcc, …

Nakon toga skinuti driver: https://github.com/Mange/rtl8192eu-linux-driver/archive/realtek-4.4.x.zip i raspakovati. Iz foldera drivera zatim standardno:

sudo make clean
sudo make
sudo make install
sudo modprobe -a 8192eu

Ovo zadnje je kljucno. Provjeriti u folderu nakon kompajliranja, koji ste driver dobili. Da li je rtl8192eu.ko ili samo 8192eu.ko

Moguce je ako postoji vec driver 8xxxu (ubuntu), da cete ga morati staviti na blacklist-u. Napravite fajl blacklist-native-rtl8192.conf i kopirajte ga u /etc/modprobe.d/
Sadrzaj fajla je u postu iznad.

Eto, to bi trebalo da radi - nista drugacije od standardne procedure, osim tog imena drivera. Ako nekom zatreba pomoc, nek’ se javi.

Many many thanks adisu!

Pozdrav.