zd1211rw
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| zd1211rw [2008/11/26 16:11] – This page is only for zd1211rw-softmac! netrolller3d | zd1211rw [2018/03/11 19:04] (current) – Removed unusable instructions mister_x | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== | + | ====== |
| - | This driver supports the zd1211 and the newer zd1211b chipsets by Zydas. | + | **IMPORTANT NOTE**: |
| - | In pre-2.6.25 kernels, the older zd1211 chipset only partially supports injection. | + | ====== zd1211rw ====== |
| + | authored by sleek | ||
| - | The new zd1211b chipset only partially supports injection. | + | **Review |
| - | Starting with kernels 2.6.25 | + | The ZyDAS zd1211 |
| - | Bottom line, the Zydas chipset is only recommended for use with the aircrack-ng suite if you have a fairly-recent | + | The zd1211rw was included in mainline |
| - | The zd1211rw driver has been incorporated into the latest kernels. So you will have to patch the kernel source to obtain injection support. | + | The only unsupported function is the fragmentation " |
| - | The following links may be helpful | + | Overall, its a great all-purpose chip to have for wireless auditing |
| - | * [[http:// | + | ====== Patching ====== |
| - | * [[http:// | + | To enable injection, we'll have to patch the driver first. |
| - | * [[http:// | + | |
| + | ==== Modern kernels ==== | ||
| + | For modern kernels, good results can be obtained even when sticking closely to stock kernels. | ||
| - | ===== Patching zd1211rw ===== | + | === Kernel 2.6.34 - 2.6.38 |
| - | There are some new patches developed by SuD. They are especially designed for 2.6.24 kernels but the also work on previous versions. | + | **1.** cd into your kernel sources |
| - | Obtain SuD's softmac and zd1211rw patches from here: | + | **2.** Apply the patch: |
| + | wget -O - 'http:// | ||
| - | | + | **3.** Recompile and reload the driver as usual. Refer to your distro' |
| - | For zd1211rw, either | + | ==== Legacy kernels ==== |
| + | On old kernels, you need to use the compat-wireless approach. | ||
| + | The most frequent road block you'll stumble upon is compilation errors with compat-wireless. They're not necessarily **// | ||
| + | === Kernel 2.26.24+ === | ||
| - | This section will describe how to patch your driver for injection. There is quite a bit of variation between distributions so this describe the general steps you must take. You will have to tweak the instructions for your specific distribution and kernel | + | **1.** Go to http:// |
| - | You will need to have your kernel headers | + | **2.** Next up, **cd to your / |
| - | Copy contents of **/ | + | **3.** Apply the patches: |
| - | Copy contents of **/usr/src/linux/ | + | patch -Np0 -i zd1211rw-inject+dbi-fix-2.6.26.patch. |
| + | patch -Np1 -i mac80211.compat08082009.wl_frag+ack_v1.patch. | ||
| + | patch -Np1 -i channel-negative-one-maxim.patch. | ||
| + | __Note:__ //the **xxxxx-xxxx-xxxx.patch** files must be in your compat-wireles-xxxx-xx-xx directory while patching, otherwise you will be asked to provide full path of the file which needs to be patched, example: | ||
| - | Download | + | **4.** Patching is complete |
| - | Copy zd1211rw_inject_2.6.23.patch to **/ | + | **5.** Barring any errors, next up is installing, **sudo make install** |
| - | cd / | + | **6.** Now that the newly compiled driver is installed, we are ready to use it, but before that we have to unload the old driver by typing **sudo make wlunload** |
| - | NOTE: In the following lines, verbose | + | **7.** To load the new driver, just type **sudo modprobe zd1211rw** or simply unplug |
| - | patch -Np1 --verbose --dry-run -i zd1211rw_inject_2.6.23.patch | + | |
| - | If it was OK: | + | **8.** That' |
| - | patch -Np1 --verbose | + | |
| - | Copy ieee80211_inject.patch to / | ||
| - | patch -Np1 --verbose --dry-run -i ieee80211_inject.patch | ||
| - | If it was OK: | + | # aireplay-ng -9 mon0 |
| - | | + | 14:39:59 Trying broadcast probe requests... |
| + | | ||
| + | 14: | ||
| + | 14: | ||
| + | 14: | ||
| + | 14: | ||
| + | 14: | ||
| + | Voila ;-) | ||
| - | Recompile the modules: | + | Known issues at this point: |
| + | Fragmentation attack is not yet supported. | ||
| - | cd / | ||
| - | make -C / | ||
| - | cd / | ||
| - | make -C / | ||
| - | Now copy the new modules to the / | + | === Kernels 2.6.23 and lower === |
| - | cp / | + | As mentioned above, kernels prior to 2.6.25 (2.6.2**4** with compat-wireless) are shipped with the softmac |
| - | cp / | + | |
| - | cp / | + | |
| - | And finally, rebuild | + | And if you're absolutely bent on installing the softmac driver on an old kernel, you can try [[http:// |
| - | | + | ==== Troubleshooting ==== |
| - | At this point, the simplest method to bring up the new modules live is to reboot your system. | + | === Couldn' |
| - | + | ||
| - | If you have problems compiling zd1211rw, you can try: | + | |
| - | + | ||
| - | | + | |
| - | | + | |
| - | + | ||
| - | ===== Installing Fedora kernel headers and source ===== | + | |
| - | + | ||
| - | These instructions are specific to Fedora. Change **2.6.20-1.2944.fc6** to the particular kernel version you have installed. **uname -r** can help you | + | |
| - | + | ||
| - | You need these packages already installed: | + | |
| - | kernel-headers-2.6.20-1.2944.fc6 | + | |
| - | kernel-devel-2.6.20-1.2944.fc6 | + | |
| - | + | ||
| - | Running the command **rpm -qa | grep kernel** will show which kernel packages are installed. | + | |
| - | + | ||
| - | If the headers and development packages are not already installed then obtain them from your favourite repository then: | + | |
| - | + | ||
| - | rpm -ivh kernel-headers-2.6.20-1.2944.fc6.i386.rpm | + | |
| - | rpm -ivh kernel-devel-2.6.20-1.2944.fc6.i686.rpm (obtain i586 or i686 depending on your architecture) | + | |
| - | + | ||
| - | Alternatively, | + | |
| - | + | ||
| - | Now download and install the full kernel sources if they are not already on your system (This assumes you have downloaded this RPM from your favourite repository). | + | |
| - | + | ||
| - | rpm -ivh kernel-2.6.20-1.2944.fc6.src.rpm | + | |
| - | + | ||
| - | Change to the following directory: | + | |
| - | + | ||
| - | cd / | + | |
| - | + | ||
| - | Change " | + | |
| - | rpmbuild -bp --target=i586 kernel-2.6.spec | + | |
| - | + | ||
| - | **NOTE**: Change references to versions to your specific version in the next few lines. | + | |
| - | + | ||
| - | /bin/cp -a / | + | |
| - | ln -s / | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | ===== Recompiling Kernel with Loadable Modules ===== | + | |
| - | + | ||
| - | Some kernels incorporate the functionality built into the kernel. | + | |
| - | + | ||
| - | These are the settings for menuconfig using 2.6.20-gentoo-r7, | + | |
| - | + | ||
| - | First, change the appropriate items in menuconfig: | + | |
| - | + | ||
| - | cd / | + | |
| - | + | ||
| - | make menuconfig | + | |
| - | + | ||
| - | | + | |
| - | then set | + | |
| - | < | + | |
| - | < | + | |
| - | all other module capable IEEE 80211 items will have automatically set themselves to <M> | + | |
| - | + | ||
| - | Also check that: | + | |
| - | | + | |
| - | < | + | |
| - | + | ||
| - | Exit out and save the config | + | |
| - | + | ||
| - | Now apply the zd1211 and ieee80211 inject patches and recompile/ | + | |
| - | + | ||
| - | Apply the zd1211 inject and ieee80211 inject patches as per patch instructions but only do the 4 patch -Np1 commands, in gentoo doing the make commands and copying all the files is unnecessary!! | + | |
| - | + | ||
| - | After the patches are applied, you can now recompile the kernel and modules with the following commands: | + | |
| - | + | ||
| - | cd /usr/src | + | |
| - | make all modules modules_install install | + | |
| - | + | ||
| - | Wait for it to finish and then reboot your system. | + | |
| - | + | ||
| - | Lastly, test your drivers and the injection patch. | + | |
| - | + | ||
| - | + | ||
| - | ===== Troubleshooting ===== | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | ===== General ===== | + | |
| - | + | ||
| - | Use " | + | |
| - | + | ||
| - | Bus 003 Device 003: ID 157e: | + | |
| - | Bus 003 Device 001: ID 0000: | + | |
| - | Bus 001 Device 001: ID 0000: | + | |
| - | Bus 002 Device 001: ID 0000:0000 | + | |
| - | + | ||
| - | If your device is not listed then you first need to determine why and correct it. | + | |
| - | + | ||
| - | Use " | + | |
| - | + | ||
| - | | + | |
| - | | + | |
| - | | + | |
| - | usb 3-1: reset high speed USB device using ehci_hcd and address 3 | + | |
| - | usb 3-1: firmware version 0x4810 and device bootcode version 0x4802 differ | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | + | ||
| - | Depending on the error messages in dmesg, take the appropriate action. | + | |
| - | + | ||
| - | Use " | + | |
| - | + | ||
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | + | ||
| - | A common problem on new kernels is that the new mac80211 version of the driver gets loaded instead of the older legacy driver covered on this page. The newer driver doesn' | + | |
| - | + | ||
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | + | ||
| - | If that is the case, and you are having problems with the new driver, then you need to blacklist the modules by editing / | + | |
| - | + | ||
| - | # | + | |
| - | | + | |
| - | | + | |
| - | + | ||
| - | Also ensure that the time stamp on zd1211rw.ko module matches the date and time you compiled it. Otherwise this may mean you are running the wrong version of the module. | + | |
| - | (Of course, you might also just update aircrack-ng to 1.0-rc1 or 1.0-svn, and use the unpatched mac80211 driver with it.) | + | |
| - | + | ||
| - | Note however, that starting with kernel v2.6.25, zd1211rw is only available in the new mac80211 flavor, so you need to use an updated aircrack-ng for it. | + | |
| - | + | ||
| - | + | ||
| - | ===== Couldn' | + | |
| If dmesg has an error similar to the following: | If dmesg has an error similar to the following: | ||
| Line 225: | Line 96: | ||
| - http:// | - http:// | ||
| - | - RPM for you distribution. | + | - RPM for you distribution. |
| - | ===== Why do I get ioctl(SIOCGIFINDEX) failed ? ===== | + | === Why do I get ioctl(SIOCGIFINDEX) failed ? === |
| If you get error messages similar to: | If you get error messages similar to: | ||
| Line 234: | Line 105: | ||
| * Error message: " | * Error message: " | ||
| - | Then [[http:// | + | Then [[faq# |
| + | |||
| + | ===== Feedback ===== | ||
| + | * Instructions and discussion about the zd1211rw in the forum [[http:// | ||
| + | |||
zd1211rw.1227712289.txt.gz · Last modified: by netrolller3d
