User Tools

Site Tools


r8187

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
r8187 [2008/04/03 16:31] darkaudaxr8187 [2017/01/09 21:35] (current) – Mark page as deprecated. mister_x
Line 1: Line 1:
-====== R8187 ======+====== DEPRECATED ======
  
-rmmod the rtl8187 module before proceeding:  +**IMPORTANT NOTE**This page is deprecated, updated documentation can be found [[install_drivers|here]]
  
-  ifconfig wlan0 down  +====== General ======
-  rmmod rtl8187+
  
 +The r8187 driver works properly for the Realtek RTL8187L chipset.  Support for the RTL8187B chipset is under development but is not fully working. See [[r8187b]] for the RTL8187B ieee80211 driver.
  
-Move /lib/modules/k#/kernel/drivers/net/wireless/mac80211/rtl818x/rtl8187.ko to a safe place.  The "k#" and/or other parts of the path will be different for your distribution/system.  Use "locate 8187.ko" or "find /lib/modules -name *8187*" to find the full path.+This page only deals with the ieee80211 version of the r8187 driver. For the mac80211 rtl8187 version see the [[rtl8187|rtl8187 page]].  To understand the differences, see [[install_drivers#mac80211_versus_ieee80211_stacks|mac80211 versus ieee80211 stacks]] write-up.
  
 +**IMPORTANT**\\
 +If you have a new kernel that support mac80211 and includes the new rtl8187 driver then you **MUST** blacklist it otherwise the ieee80211 version of the module below will not work.  See [[r8187#blacklisting_mac80211_driver_version|blacklisting mac80211 driver version]] below.
 +
 +====== R8187 ======
 +
 +rmmod the r8187 and rtl8187 modules before proceeding:  
 +
 +  ifconfig wlan0 down  
 +  rmmod r8187 rtl8187 2>/dev/null
   wget http://dl.aircrack-ng.org/drivers/rtl8187_linux_26.1010.zip   wget http://dl.aircrack-ng.org/drivers/rtl8187_linux_26.1010.zip
   unzip rtl8187_linux_26.1010.zip   unzip rtl8187_linux_26.1010.zip
   cd rtl8187_linux_26.1010.0622.2006/   cd rtl8187_linux_26.1010.0622.2006/
-  wget http://patches.aircrack-ng.org/rtl8187_2.6.24v3.patch+  wget http://patches.aircrack-ng.org/rtl8187_2.6.27.patch 
 +  wget http://patches.aircrack-ng.org/rtl8187_2.6.32.patch
   tar xzf drv.tar.gz   tar xzf drv.tar.gz
   tar xzf stack.tar.gz   tar xzf stack.tar.gz
-  patch -Np1 -i rtl8187_2.6.24v3.patch+  patch -Np1 -i rtl8187_2.6.27.patch 
 +  patch -Np1 -i rtl8187_2.6.32.patch
   make   make
   make install   make install
Line 22: Line 33:
  
 Please note that a copy of the patch is also included with the aircrack-ng tar file in the "patches" subdirectory. Please note that a copy of the patch is also included with the aircrack-ng tar file in the "patches" subdirectory.
- 
  
 ====== Usage Tips ====== ====== Usage Tips ======
- 
- 
 ===== Power Settings ===== ===== Power Settings =====
  
Line 49: Line 57:
 You MUST ignore the dBm and mW labels.  The value of "5" above is the actual value in the  0 to 35 range.  Unfortunately due to driver constraints, the "dBm (3mW)" are also displayed but must be ignored. You MUST ignore the dBm and mW labels.  The value of "5" above is the actual value in the  0 to 35 range.  Unfortunately due to driver constraints, the "dBm (3mW)" are also displayed but must be ignored.
  
-See this [[http://tinyshell.be/aircrackng/forum/index.php?topic=3138.msg17673#msg17673|posting]] for a more detailed description of the power settings.+See this [[http://forum.aircrack-ng.org/index.php?topic=3138.msg17673#msg17673|posting]] for a more detailed description of the power settings.
  
 ===== "highpower" ipriv Setting ===== ===== "highpower" ipriv Setting =====
Line 68: Line 76:
  
    iwpriv wlan0 highpower 0    iwpriv wlan0 highpower 0
- 
  
 ===== Using Unpatched Driver ===== ===== Using Unpatched Driver =====
  
 Although it is highly recommended that you patch the driver, it is possible to use the unpatched driver for injection.  Simply enter this command first "iwpriv wlan0 rawtx 1". Although it is highly recommended that you patch the driver, it is possible to use the unpatched driver for injection.  Simply enter this command first "iwpriv wlan0 rawtx 1".
- 
  
 ====== Troubleshooting Tips ====== ====== Troubleshooting Tips ======
 +===== Blacklisting mac80211 driver version =====
 +
 +If you have the file rtl8187.ko in the /lib/modules directory tree then you have two options to blacklist it.  Failure to do this will mean that the ieee80211 r8187 module described on this page will fail to work properly.  Here are the options:
 +
 +  * Move the file to another area on your system as follows then do "depmod -ae" Move /lib/modules/$(uname -r)/kernel/drivers/net/wireless/mac80211/rtl8187.ko to a safe place.  The "$(uname -r)" and/or other parts of the path may be different for your distribution/system.  Use "locate 8187.ko" or "find /lib/modules -name *8187*" to find the full path.  After moving it, do "depmod -ae".
 +  * Edit /etc/modprobe.d/blacklist and add "blacklist rtl8187" as a new line.
 +
 +In both cases, reboot your system afterwards.
  
 ===== "sh wlan0up" fails ===== ===== "sh wlan0up" fails =====
Line 82: Line 96:
 Solution:\\ Solution:\\
 Make sure your ieee80211 stack is built as a module and remove all those modules. If it is integrated in the kernel, rebuild your kernel with a modular ieee80211 stack. Make sure your ieee80211 stack is built as a module and remove all those modules. If it is integrated in the kernel, rebuild your kernel with a modular ieee80211 stack.
 +
  
 ===== wlan0 device does not exist message ===== ===== wlan0 device does not exist message =====
Line 87: Line 102:
  
 Solution:\\ Solution:\\
-You sometimes get this message when another driver, which also creates an wlanX interface is loaded before the r8187 driver. Examples: acx111 or hostap. In such a case the rtl8187 device will be wlan1 or wlan2. Look at iwconfig to see if there is such an interface and use that one instead.+You sometimes get this message when another driver, which also creates an wlanX interface is loaded before the r8187 driver. Examples: acx111hostap and all mac80211 drivers. In such a case the rtl8187 device will be wlan1 or wlan2. Look at iwconfig to see if there is such an interface and use that one instead.
  
 ===== Module loading errors ===== ===== Module loading errors =====
Line 158: Line 173:
  
 Change "/usr/src/kernels/2.6.18-1.2869.fc6-i686" to where your kernel sources are located and the your specific kernel and directory structure.  You can use "uname -r" to help determine your exact kernel. Change "/usr/src/kernels/2.6.18-1.2869.fc6-i686" to where your kernel sources are located and the your specific kernel and directory structure.  You can use "uname -r" to help determine your exact kernel.
- 
  
 ===== "passed 3 arguments, but takes just 2..." compile error message ===== ===== "passed 3 arguments, but takes just 2..." compile error message =====
Line 177: Line 191:
  
 Solution: This typically occurs after you have upgraded your kernel version. Delete the all the patch files and install a fresh version.  You should now be able to compile it successfully. Also ensure that you have matching kernel header files. Solution: This typically occurs after you have upgraded your kernel version. Delete the all the patch files and install a fresh version.  You should now be able to compile it successfully. Also ensure that you have matching kernel header files.
- 
- 
  
 ===== Low injection rates ===== ===== Low injection rates =====
Line 188: Line 200:
   * Having legacy USB support enabled in your BIOS. Try disabling this option.   * Having legacy USB support enabled in your BIOS. Try disabling this option.
  
-**Note:** VMWare Workstation 6.0 and VMWare Player 2.0 use USB 1.1 and when injecting at high speed, injection uses all USB bandwith (so, nearly no packets are received) and you can notice a lot of packets lost in airodump-ng.+**Note:** VMWare Workstation 6.0 and VMWare Player 2.0 use USB 1.1 and when injecting at high speed, injection uses all USB bandwith (so, nearly no packets are received) and you can notice a lot of packets lost in airodump-ng.
  
  
Line 206: Line 218:
  
  
-And then delete the files.  Change "2.6.22-14-generic" to your specific kernel version.+And then delete the files.  Change "2.6.22-14-generic" to your specific kernel version. FIXME These should be either blacklisted or moved to backup directory, not destructively deleted, especially ieee80211.ko!
  
    rm -rf /lib/modules/2.6.22-14-generic/ubuntu/wireless/rtl818x/rtl8187.ko    rm -rf /lib/modules/2.6.22-14-generic/ubuntu/wireless/rtl818x/rtl8187.ko
Line 221: Line 233:
 Some people have reported that including "-x 250" on the aireplay-ng command optimizes their injection rates.  You will have to experiment to see if this helps you or not. Some people have reported that including "-x 250" on the aireplay-ng command optimizes their injection rates.  You will have to experiment to see if this helps you or not.
  
 +===== "SKB BUG" Error Messages =====
 +
 +You receive messages similar to this to the console and system log files:
 +
 +   SKB BUG: Invalid truesize (304) len=226, sizeof(sk_buff)=176
 +
 +The root cause of these messages is not known at this point in time.  They can be hidden by the following means:
 +
 +  * To remove them from the console: "dmesg -n2"
 +  * To remove them from system log files, edit /etc/syslog.conf or /etc/rsyslog.conf depending on your system.  Add "kern.!debug" to definition of each file receiving the debug messages.
 +
 +Another more radical approach is to comment out the kernel messages in the kernel source code.  This will also mean recompiling your kernel.
 +
 +Change net/core/skbuff.c in your kernel source:
 +
 +   void skb_truesize_bug(struct sk_buff *skb)
 +   {
 +         printk(KERN_ERR "SKB BUG: Invalid truesize (%u) "
 +                "len=%u, sizeof(sk_buff)=%Zd\n",
 +                skb->truesize, skb->len, sizeof(struct sk_buff));
 +   }
 +   EXPORT_SYMBOL(skb_truesize_bug);
 +
 +to:
 +
 +   void skb_truesize_bug(struct sk_buff *skb)
 +   {
 +   (void)skb;
 +   //      printk(KERN_ERR "SKB BUG: Invalid truesize (%u) "
 +   //             "len=%u, sizeof(sk_buff)=%Zd\n",
 +   //             skb->truesize, skb->len, sizeof(struct sk_buff));
 +   }
 +   EXPORT_SYMBOL(skb_truesize_bug);
 +
 +This effectively eliminates the kernel from reporting the SKB BUG messages.
 +
 +===== "iwe_stream_add_event" compile error message =====
 +
 +If you get a series of compile messages similar to "error: passing argument 1 of 'iwe_stream_add_event' from incompatible pointer type" then do the following:
 +
 +Use
 +
 +  wget http://patches.aircrack-ng.org/rtl8187_2.6.27.patch
 +
 +instead of
 +
 +  wget http://patches.aircrack-ng.org/rtl8187_2.6.24v3.patch
 +
 +in the instructions at the top of the page.
 +
 +===== "asm/semaphore.h: No such file or directory" compile error message =====
 +
 +See this [[http://forum.aircrack-ng.org/index.php?topic=4305.msg24483#msg24483|forum entry]]:
 +
 +Please note a repair apparently needed in ' rtl8187_2.6.27.patch' for kernel 2.6.27 +/-
 +
 +Unmodified, you will get the following error :
 + -- output from ' make ' :
 +  ...In file included from /usr/src/drivers/rtl8187_linux_26.1010.0622.2006/beta-8187/r8187_core.c:65:
 +     /usr/src/drivers/rtl8187_linux_26.1010.0622.2006/beta-8187/r8187.h:47:27: error: asm/semaphore.h: No such file or directory
 +
 +
 +Modification to file    r8187.h   :
 +    lines 46,47 are :
 +      #include <asm/io.h>
 +      #include <asm/semaphore.h>
 +
 +    overwrite lines 46,47 to this....
 +      #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19))
 +        #include <asm/io.h>
 +        #include <asm/semaphore.h>
 +      #else
 +        #include <linux/io.h>
 +        #include <linux/semaphore.h>
 +      #endif
 +
 +
 +===== Will not compile on kerner 2.6.31 or above =====
 +
 +Follow the patching instructions at the top of this page then:
 +
 +   wget http://github.com/nopper/archpwn/raw/master/repo/lkm-skel/rtl8187-ng/rtl8187-ng-2.6.31.patch
 +   patch -Np1 -i rtl8187-ng-2.6.31.patch
 +
 +Then proceed with make/make install.
  
 ====== Limitations ====== ====== Limitations ======
Line 227: Line 324:
  
 While in monitor mode, airodump-ng will not capture or record any packets injected by the aircrack-ng suite.  This is a known problem with the driver. While in monitor mode, airodump-ng will not capture or record any packets injected by the aircrack-ng suite.  This is a known problem with the driver.
- 
  
 ===== Shared Key Authentication fails in managed mode ===== ===== Shared Key Authentication fails in managed mode =====
Line 241: Line 337:
  
 SKA is not currently supported with the RTL8187 driver. There is no known workaround. SKA is not currently supported with the RTL8187 driver. There is no known workaround.
 +
 +===== WPA/WPA2 fails in managed mode =====
 +
 +On recent kernels, the patched driver fails to work in normal WPA/WPA2 mode.  In this case, use the patched ieee80211 driver for injection and use the mac80211 version for normal WPA/WPA2.  In order to do this you will have to blacklist the unwanted module based what you plan to use your system for.  IE For injection, blacklist the rtl8187 module.  For WPA/WPA2, blacklist the r8187 module.
r8187.1207233075.txt.gz · Last modified: 2008/04/03 16:31 by darkaudax