The latest ndiswrapper will not work with WEP or WPA due to (as I understand) this bug:
- https://bugs.launchpad.net/ubuntu/+s...er/+bug/459716
- http://sourceforge.net/tracker/?func...82&atid=604450
If dmesg returns several lines like these:
then you're affected.[ 227.277096] ndiswrapper (iw_set_auth:1602): invalid cmd 12
I got it to work on Karmic by building my own ndiswrapper - here's a brief howto for those who, like me, are new to the compiling business. It requires that you know how to use a terminal.
I used these instructions, slightly modified:
https://help.ubuntu.com/community/Wi...%20ndiswrapper
First off, if the computer (computer A) does not have the internet connexion required to install the various tools for building ndiswrapper, the required packages can very easily be downloaded on a different computer (computer B from now on) and transferred by means of USB memory, CD, Bluetooth, avian carrier..
This assumes both computers are running exactly the same version of Ubuntu. If not, you shall have to find another way of downloading the required packages. In theory, I presume this method would also work in that case:
1. copy /etc/apt/sources.list from the computer A, to computer B (back up the current sources.list on computer B!)
2. run sudo apt-get update on computer B
3. download the packages as instructed below
4. restore the old sources.list on computer B
If computer A has indeed a working connexion, just run
and skip to step 5.Code:sudo apt-get install linux-headers-$(uname -r) dh-make fakeroot gcc-4.4 build-essential
On computer B:
1. Empty your /var/cache/apt/archives directory. This seems to be where aptitude keeps installation files, so emptying it appears harmless, but you must be root:
Do not delete *, as this dir contains the file lock and the dir partial!Code:sudo rm /var/cache/apt/archives/*.deb
2. Find out which kernel computer A has by executing..
which will return something like..Code:uname -r
3. Download the packages required to install the build environment. Insert computer A's kernel version into the linux-headers- package name, as below:2.6.31-15-generic
The -d switch will instruct aptitude to just download the files, and not install them. Not sure whether --reinstall is actually needed, but I assumed that if computer B already has any of these packages or dependencies installed, then it wouldn't download them again. The wiki instructions says to use gcc-3.4, but this is not available so 4.4 will have to do.Code:sudo apt-get -d --reinstall install linux-headers-2.6.31-15-generic dh-make fakeroot gcc-4.4 build-essential
4. When apt is done downloading, transfer all the .deb files in /var/cache/apt/archives to computer A. To install, run this from within the directory you placed the .deb files:
Once done, you will have your build environment set up.Code:sudo dpkg -i ./*
5. Get ndiswrapper 1.55 (currently the latest exhibiting the aforementioned bug) here: http://sourceforge.net/projects/ndis...ar.gz/download
6. Unpack the downloaded tar on computer A and change directory:
7. Get the patch by Rene van Paassen:Code:tar xvfz ndiswrapper-1.55.tar.gz cd ndiswrapper-1.55/driver
http://sourceforge.net/tracker/?func...82&atid=604450
(click Attached file and download iw_ndis.c.diff)
Place this file in ndiswrapper-1.55/driver and run:
8. I encountered yet another bug with this version, which prevented me from compiling, with the error:Code:patch < iw_ndis.c.diff
Perhaps it would be wise to try steps 9 and onwards and see if it works, and only apply this patch if you encounter the same bug!error: implicit declaration of function 'cmpxchg8b'
There's a patch though.. http://bugs.gentoo.org/show_bug.cgi?id=280057
Right click and save ndiswrapper-2.6.31.patch and place this in ndiswrapper-1.55/driver as well and run:
9. Clean up your current system (cd out of drivers!):Code:patch < ndiswrapper-2.6.31.patch
As it instructs you, keep running it until it does not output any more lines beginning with "removing".Code:cd .. sudo make uninstall
10. Then:
followed byCode:sudo make
andCode:fakeroot
11. The wiki instructions aren't clear on this, but I believe you need to run exit at this point to get out of fakeroot, so run:Code:sudo make install
You should now have a working version of ndiswrapper.Code:exit
Have I missed anything?



Adv Reply





Bookmarks