Difference between revisions of "Rtl8187 wireless"

From ArchWiki
Jump to: navigation, search
(Method 2: Aircrack-ng patched driver)
(contained only general information, the driver itself "should just work" or the general informations are enough)
(31 intermediate revisions by 11 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
+
CONFIG_RTL8187=m
+
or
+
CONFIG_RTL8187=y
+
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>
+
or
+
  netcfg-menu
+
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 [http://aur.archlinux.org/packages.php?ID=15375 rtl8187-ng] package from [[AUR]].
+
 
+
=== Method 3: 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: