Difference between revisions of "Rtl8187 wireless"

From ArchWiki
Jump to: navigation, search
m (Lowering the rate: spelling, grammar)
(14 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{i18n|Rtl8187 wireless}}
+
[[Category:Wireless Networking]]
[[Category:Wireless Networking (English)]]
+
 
+
 
This page describes how to get the '''rtl8187''' wifi-driver working
 
This page describes how to get the '''rtl8187''' wifi-driver working
  
Note: The rtl8187 driver is in the kernel (thus the driver comes with the linux package)
+
The rtl8187 chip is made for usb-cards/dongles. It supports 802.11(a)/b/g and the following encryptions: WEP, WPA and WPA2. The rtl8187 driver is in the kernel now.
  
 
+
== Using the driver ==
The rtl8187 chip is made for usb-cards/dongles
+
 
+
It supports 802.11(a)/b/g and the following encryptions:  WEP, WPA and WPA2
+
 
+
The driver's source is released under the GPL
+
 
+
=Using and testing the driver/Troubleshooting=
+
  
 
Make sure that you have loaded the rtl8187 module with  
 
Make sure that you have loaded the rtl8187 module with  
  modprobe rtl8187
+
  # modprobe rtl8187
 
Then run
 
Then run
  dmesg | grep rtl8187
+
  # dmesg | grep rtl8187
 
You should see some output like this <pre> usbcore: registered new interface driver rtl8187 </pre>
 
You should see some output like this <pre> usbcore: registered new interface driver rtl8187 </pre>
 
If you see that line everything should be OK
 
If you see that line everything should be OK
 
== Using the driver ==
 
  
 
If everything is right, you should have two new interfaces: wlan0 and wmaster0
 
If everything is right, you should have two new interfaces: wlan0 and wmaster0
 
If you do not see wlan0 just run
 
If you do not see wlan0 just run
  ifconfig wlan0 up
+
  # ip link set dev wlan0 up
  
 
To list all available wifi-networks just run
 
To list all available wifi-networks just run
  iwlist wlan0 scan
+
  # iw dev wlan0 scan  
  
For more information about configuring your wifi-network see here: [http://wiki.archlinux.org/index.php/Wireless_Setup#Setup_and_Boot http://wiki.archlinux.org/index.php/Wireless_Setup#Setup_and_Boot]
+
For more information about configuring your wifi-network see here: [[Wireless_Setup#Part II: Wireless management|Wireless management]].
  
= What to do if your connection always times out? =
+
== What to do if your connection always times out? ==
  
 
The open source driver suffers from a lot of tx excessive retries and invalid misc errors for some unknown reason, resulting in a lot of packet loss and it keeps disconnecting, some times instantly.
 
The open source driver suffers from a lot of tx excessive retries and invalid misc errors for some unknown reason, resulting in a lot of packet loss and it keeps disconnecting, some times instantly.
 
==Adjusting with iwconfig options==
 
  
 
=== Lowering the rate ===
 
=== Lowering the rate ===
  
The solution can be found in this thread: http://bbs.archlinux.org/viewtopic.php?pid=299642
+
The solution can be found in this thread: https://bbs.archlinux.org/viewtopic.php?pid=299642
  
 
Just set the rate to 5.5
 
Just set the rate to 5.5
 
  iwconfig wlan0 rate 5.5M auto
 
  iwconfig wlan0 rate 5.5M auto
  
Fixed option should ensure, however, it doesn't change the rate on its own, thus making the connection a bit more stable:
+
Fixed option should ensure that it doesn't change the rate on its own, thus making the connection a bit more stable:
  
 
  iwconfig wlan0 rate 5.5M fixed  
 
  iwconfig wlan0 rate 5.5M fixed  
Line 52: Line 39:
 
Alternativelly find the $POST_UP option and append the above options to your profile config file:
 
Alternativelly find the $POST_UP option and append the above options to your profile config file:
  
    POST_UP="iwconfig wlan0 rate 5.5M fixed"
+
POST_UP="iwconfig wlan0 rate 5.5M fixed"
  
Try various rates until you get the optimal setting, with no disconnection. In this case 12Mbits, as shown bellow:
+
Try various rates until you get the optimal setting, with no disconnection. In this case 12Mbits, as shown below:
  
    POST_UP="iwconfig wlan0 rate 12M fixed"
+
POST_UP="iwconfig wlan0 rate 12M fixed"
  
 
Now calling;
 
Now calling;
  
    netfcg2 -c <wireless profile>
+
netfcg2 -c <wireless profile>
 
or  
 
or  
 
   netcfg-menu  
 
   netcfg-menu  
Line 85: Line 72:
 
  iwconfig wlan0 rts 2347
 
  iwconfig wlan0 rts 2347
  
== The aircrack-ng patched driver ==
+
== See also ==
 
+
*[http://wireless.kernel.org/ The Linux Wireless project]
{{Note|Note that this driver only works on kernel26}}
+
*[http://aircrack-ng.org/doku.php?id=r8187 Aircrack-ng information for rtl8187 chips]
Another method that works for some users are the Aircrack-ng patches for the rtl8187 driver. This driver can be installed by the [http://aur.archlinux.org/packages.php?ID=15375 rtl8187-ng] package from [[AUR]].
+
 
+
 
+
Since the above package is outdated as of 11/08/11 you can try installing the [https://aur.archlinux.org/packages.php?ID=51272 linux-aircrack] patched kernel instead from [[AUR]] or the precompiled package from the [https://wiki.archlinux.org/index.php/Unofficial_User_Repositories adslgr32] unofficial repository
+
 
+
== Using Ndiswrapper ==
+
 
+
If everything else fails, then you are left with using Ndiswrapper. Ndiswrapper takes Windows RTL8187 drivers and uses them to enable your card.
+
 
+
'''Install ndiswrapper'''
+
pacman -S ndiswrapper
+
 
+
'''Download the Windows drivers'''
+
wget [http://db.tt/4NB0HbF6 http://db.tt/4NB0HbF6]
+
 
+
'''Extract the drivers'''
+
unzip ndiswrapper.zip
+
 
+
'''Unload the rtl8187 module'''
+
modprobe -r rtl8187
+
 
+
'''Remove any previously installed drivers (if any)'''
+
 
+
ndiswrapper -r net8187b
+
 
+
'''Install the new drivers'''
+
 
+
ndiswrapper -i ./ndiswrapper/net8187b.inf
+
 
+
ndiswrapper -m
+
 
+
'''Make sure that it is installed'''
+
 
+
ndiswrapper -l
+
 
+
'''Try now loading the module'''
+
 
+
modprobe ndiswrapper
+
 
+
'''Kernel log shouldn't indicate any errors'''
+
 
+
dmesg | tail
+
 
+
'''If all steps are successful it should be visible now in the iwconfig interfaces list'''
+
 
+
iwconfig
+
 
+
'''Add ndiswrapper to the MODULES array in /etc/rc.conf'''
+
 
+
MODULES=(... powernow-k7 ndiswrapper ...)
+
 
+
'''Blacklist ''rtl8187'' in /etc/modprobe.conf.d/rtl8187.conf'''
+
 
+
blacklist rtl8187
+
 
+
Proceed to connect as you normally would.
+
 
+
{{Note|You may still have issues with disconnections, but in this case setting rates, rts and fragmentation thresholds actually work}}
+
 
+
=Misc Links=
+
*[http://rtl-wifi.sourceforge.net/ Project-page of the rtl-wifi driver project]
+
*[http://aircrack-ng.org/doku.php?id=r8187 Aircrack-ng information and tweaks for rtl8187 chips]
+

Revision as of 11:00, 22 May 2013

This page describes how to get the rtl8187 wifi-driver working

The rtl8187 chip is made for usb-cards/dongles. It supports 802.11(a)/b/g and the following encryptions: WEP, WPA and WPA2. The rtl8187 driver is in the kernel now.

Using the driver

Make sure that you have loaded the rtl8187 module with

# modprobe rtl8187

Then run

# dmesg | grep rtl8187
You should see some output like this
 usbcore: registered new interface driver rtl8187 

If you see that line everything should be OK

If everything is right, you should have two new interfaces: wlan0 and wmaster0 If you do not see wlan0 just run

# ip link set dev wlan0 up

To list all available wifi-networks just run

# iw dev wlan0 scan 

For more information about configuring your wifi-network see here: Wireless management.

What to do if your connection always times out?

The open source driver suffers from a lot of tx excessive retries and invalid misc errors for some unknown reason, resulting in a lot of packet loss and it keeps disconnecting, some times instantly.

Lowering the rate

The solution can be found in this thread: https://bbs.archlinux.org/viewtopic.php?pid=299642

Just set the rate to 5.5

iwconfig wlan0 rate 5.5M auto

Fixed option should ensure that it doesn't change the rate on its own, thus making the connection a bit more stable:

iwconfig wlan0 rate 5.5M fixed 

Alternativelly find the $POST_UP option and append the above options to your profile config file:

POST_UP="iwconfig wlan0 rate 5.5M fixed"

Try various rates until you get the optimal setting, with no disconnection. In this case 12Mbits, as shown below:

POST_UP="iwconfig wlan0 rate 12M fixed"

Now calling;

netfcg2 -c <wireless profile>

or

  netcfg-menu 

and choosing your profile works without extra commands.

Lowering the txpower

You can try lowering the transmit power as well. This may save power as well:

iwconfig wlan0 txpower 5

or even as low as 0. Valid settings are from 0 to 20, auto and off for the stock kernel driver.

Setting rts and fragmentation thresholds

Default iwconfig options have rts and fragmentation thresholds off. These options are particularly useful when there are many adjacent APs or in a noisy environment.

The minimum value for fragmentation value is 256 and maximum is 2346. In many windows drivers the maximum is the default value:

iwconfig wlan0 frag 2346

For rts minimum is 0, maximum is 2347. Once again windows drivers use maximum as the default:

iwconfig wlan0 rts 2347

See also