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
Last revisionBoth sides next revision
r8187 [2008/07/14 15:44] – Move "rtl8187" to here, since the page is about r8187 (legacy), not rtl8187 (mac80211). netrolller3dr8187 [2010/02/14 00:01] – Updated for 2.6.32 patch mister_x
Line 1: Line 1:
 ====== General ====== ====== General ======
  
-The r8187 driver works properly for the Realtek RTL8187L chipset.  Support for the RTL8187B chipset is under development but is not fully working.+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.
  
-This page only deals with the ieee80211 version of the r8187 driver. For the mac80211 rtl8187 version see the [[mac80211|mac80211 page]].  To understand the differences, see [[install_drivers#mac80211_versus_ieee80211_stacks|mac80211 versus ieee80211 stacks]] write-up.+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**\\ **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. 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.
  
-====== RTL8187 ======+====== R8187 ======
  
-rmmod the rtl8187 module before proceeding:  +rmmod the r8187 and rtl8187 modules before proceeding:  
  
   ifconfig wlan0 down     ifconfig wlan0 down  
-  rmmod rtl8187+  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 27: Line 29:
  
 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 54: Line 53:
 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 73: Line 72:
  
    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 ===== ===== 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: 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/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.  After moving it, do "depmod -ae".+  * 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.   * Edit /etc/modprobe.d/blacklist and add "blacklist rtl8187" as a new line.
  
 In both cases, reboot your system afterwards. In both cases, reboot your system afterwards.
- 
  
 ===== "sh wlan0up" fails ===== ===== "sh wlan0up" fails =====
Line 98: Line 92:
 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 103: Line 98:
  
 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 174: Line 169:
  
 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 193: Line 187:
  
 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 204: Line 196:
   * 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 236: Line 228:
 ===== Optimizing injection rates ===== ===== Optimizing injection rates =====
 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 ===== ===== "SKB BUG" Error Messages =====
Line 246: Line 237:
 The root cause of these messages is not known at this point in time.  They can be hidden by the following means: 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 -2"+  * 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.   * 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 255: Line 320:
  
 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 270: Line 334:
 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.txt · Last modified: 2017/01/09 21:35 by mister_x