Difference between revisions of "Rtl8187 wireless"

From ArchWiki
Jump to: navigation, search
(What to do if your connection always times out?)
(contained only general information, the driver itself "should just work" or the general informations are enough)
(33 intermediate revisions by 12 users not shown)
Line 1: Line 1:
[[Category:Communication and network (English)]]
#REDIRECT [[Wireless Setup]]
[[Category:HOWTOs (English)]]
This page describes how to get the '''rtl8187''' wifi-driver working
Note: The rtl8187 driver is included in vanilla 2.6.23!
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
= Installing the driver =
If you are on 2.6.23 or above you have to enable CONFIG_RTL8187 in your kernel-config.
You can check if this option is enabled in your current kernel by executing:
zcat /proc/config.gz | grep CONFIG_RTL8187
If it outputs
then your kernel includes the rtl8187 driver
If you are using anything lower than 2.6.23 you can choose between the following methods:
== Compiling the module from the source-code ==
No HOWTO yet
== Patch your 2.6.22 kernel ==
Note: if you are already running 2.6.23 or later this is not necessary anymore - just enable the Realtek 8187 USB support in your kernel-config
At first you have to get the kernel-sources
After that you'll need to download two patches: one for the rtl8187 driver and one for EEPROM_93CX6 (rtl8187 requires EEPROM_93CX6-support)
Save the following link as EEPROM_93CX6.patch (download it to your harddisk with wget -O EEPROM_93CX6.patch $URL):
[http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=9467d64b0e88763914c01f71ddf591b166c4f526;hp=7dcca30a32aadb0520417521b0c44f42d09fe05c  EEPROM_93CX6.patch]
Then save the following link as rtl8187.patch (download it to your harddisk with wget -O rtl8187.patch $URL):
[http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=605bebe23bf6ac66c0a717e663a7baa2f981294d;hp=4b914dc0493edff19ff698a18198a173a14ba9d2 rtl8187.patch]
Now extract your kernel sources, cd into the kernel-source directory
and run
patch -Np1 -i $path/to/EEPROM_93CX6.patch
patch -Np1 -i $path/to/rtl8187.patch
make menuconfig
Now activate: <pre> Device Drivers  ---> Misc devices  ---> EEPROM 93CX6 support </pre> (I compiled it directly into the kernel with [*])
Then go to: <pre> Device Drivers  ---> Network device support  ---> Wireless LAN  ---> Wireless LAN (IEEE 802.11) -> Realtek 8187 USB support </pre>
(I compiled this as module [m])
What if you can't find "Realtek 8187 USB support" in the kernel config menu?
Don't panic - make sure you activated EEPROM 93CX6 support <pre> Device Drivers  ---> Misc devices  ---> EEPROM 93CX6 support </pre> and the Generic IEEE 802.11 Networking Stack (mac80211) <pre> Networking  ---> Wireless  ---> Generic IEEE 802.11 Networking Stack (mac80211) </pre>
Now you can save your kernel-config and start compiling
After a reboot the module rtl8187 should be available.
You can load it like this:
modprobe rtl8187
You can also add rtl8187 to the MODULES-section in your rc.conf
If you want to add rtl8187 support 'The Arch-Way' make sure to add "patch -Np1 -i ../foo.bar" to your kernel-PKGBUILD
=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 <pre> usbcore: registered new interface driver rtl8187 </pre>
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 don't 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 http://wiki.archlinux.org/index.php/Wireless_Setup#Setup_and_Boot]
== What to do if your connection always times out? ==
=== 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
Actually this worked for a while but it would still start revving out, so making the last
item "fixed" ensures it does not spin.  Btw. If your wireless card has already gone into
meltdown issuing this command will get it working again.
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
And then it never times out (at least for me)
Found the $POST_UP option, so appending this to your profile config
file, sets the rate correctly when using the netcfg tools.
    POST_UP="iwconfig wlan0 rate 5.5M fixed"
Actually for my card setting the rate higher still works, so now this line looks like:
    POST_UP="iwconfig wlan0 rate 12M fixed"
Now calling;
    netfcg2 -c <wireless profile>
and choosing your profile works without extra commands.
=== Method 2: Aircrack-ng patched driver ===
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]].
=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.
Symptoms which suggest you may have better luck with Ndiswrapper:
* "iwlist wlan0 scan" results are irregular and/or don't show some APs.
* Everything seems to be working, except the DHCP request, which may just time out.
1. Install ndiswrapper:
    pacman -Sy ndiswrapper
2. Download the Windows drivers:
    wget http://www.kuratkull.com/ndiswrapper/ndisdrivers.tar.gz
3. Extract the drivers:
    gzip -dc ndisdrivers.tar.gz | tar xf -
4. If you have the rtl8187 module loaded, then do this:
    rmmod rtl8187
It is suggested that you remove previous ndiswrapper drivers, if you have installed them.
    ndiswrapper -l
    ndiswrapper -r <drivername>
Also add "ndiswrapper" and "!rtl8187" to /etc/rc.conf under MODULES - this will stop rtl8187 from loading on boot, and will enable ndiswrapper to load on boot.
5. Install the driver:
If you have an older kernel(eg. older than 2.6.28.*), do:
    cd ./ndisdrivers/Win98-krnl24/
If you have a newer kernel (eg. 2.6.28.*), do:
    cd ./ndisdrivers/Win98seME-krnl28/
Proceed with:
    ndiswrapper -i net8187b.inf
    ndiswrapper -m
    modprobe ndiswrapper
Proceed to connect as you normally would.
=Misc Links=
*[http://rtl-wifi.sourceforge.net/ Project-page of the rtl-wifi driver project]

Revision as of 22:30, 3 August 2013

Redirect to: