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 driver's source is released under the GPL
- 1 Using and testing the driver/Troubleshooting
- 2 What to do if your connection always times out?
- 3 Misc Links
Using and testing the driver/Troubleshooting
Make sure that you have loaded the rtl8187 module with
dmesg | grep rtl8187You 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: [[Wireless_Setup#Setup_and_Boot|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.
Adjusting with iwconfig options
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, however, 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 bellow:
POST_UP="iwconfig wlan0 rate 12M fixed"
netfcg2 -c <wireless profile>
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
The Linux Wireless project provides frequent stable releases of patched drivers for the latest kernels. These drivers fix the "fixed-channel -1" issue, whilst providing better injection. For further information and installation procedures please read the Wireless_Setup#compat-wireless-patched article.
If everything else fails, then you are left with using Ndiswrapper. Ndiswrapper takes Windows RTL8187 drivers and uses them to enable your card.
pacman -S ndiswrapper
Download the Windows drivers
Extract the drivers
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
Make sure that it is installed
Try now loading the module
Kernel log shouldn't indicate any errors
dmesg | tail
If all steps are successful it should be visible now in the iwconfig interfaces list
Add ndiswrapper to the MODULES array in /etc/rc.conf
MODULES=(... powernow-k7 ndiswrapper ...)
Blacklist rtl8187 in /etc/modprobe.conf.d/rtl8187.conf
Proceed to connect as you normally would.