Rtl8187 wireless

From ArchWiki
Revision as of 07:26, 10 November 2011 by Twilight (talk | contribs) (What to do if your connection always times out?)
Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.

Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어

External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

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 kernel26 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 driver's source is released under the GPL

Using and testing the driver/Troubleshooting

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

Using the driver

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

ifconfig wlan0 up

To list all available wifi-networks just run

iwlist wlan0 scan

For more information about configuring your wifi-network see here: http://wiki.archlinux.org/index.php/Wireless_Setup#Setup_and_Boot

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.

Method 1: Lowering the transfer rate manually

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

Just set the rate to 5.5

iwconfig wlan0 rate 5.5M auto

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

iwconfig wlan0 rate 5.5M fixed 

I have also tried setting this in the IWOPTS, but it does not seem to be taking, so now what I do until I get this sorted out is:

  netcfg2 -c <your wireless profile> 
  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 bellow:

   POST_UP="iwconfig wlan0 rate 12M fixed"

Now calling;

   netfcg2 -c <wireless profile>



and choosing your profile works without extra commands.

Method 2: 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.

Method 3: Aircrack-ng patched driver

Note: Note that this driver only works on kernel26

Another method that works for some users are the Aircrack-ng patches for the rtl8187 driver. This driver can be installed by the rtl8187-ng package from AUR.

Since the above package is outdated as of 11/08/11 you can try installing the linux-aircrack patched kernel instead from AUR or the precompiled package from the adslgr32 unofficial repository

Method 4: 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.

1. Install ndiswrapper:

pacman -S ndiswrapper

2. Download the Windows drivers:

wget http://db.tt/4NB0HbF6

3. Extract the drivers:

unzip ndiswrapper.zip

4. If you have the rtl8187 module loaded, then do this:

modprobe -r rtl8187

5. Install the driver:

If you have any previous drivers installed that may or may not have failed remove them:

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 now visible in the iwconfig interfaces list:


6. Add ndiswrapper to the MODULES array in /etc/rc.conf

MODULES=(... powernow-k7 ndiswrapper ...)

7. Blacklist rtl8187 in /etc/modprobe.conf.d/rtl8187.conf

blacklist rtl8187

Proceed to connect as you normally would.

Misc Links