Having just upgraded my Gentoo version of GCC from 3.3 to 3.4, I decided it was time to rebuild my kernel. The upgrade went very smoothly, except for one small problem: my wireless card no longer worked.
I use ndiswrapper and that was what seemed to be broken, so I tried to unmerge and remerge it. But alas, it would not compile, with the following information:
localhost ndiswrapper-1.7 # emerge ndiswrapper
Calculating dependencies ...done!
>>> emerge (1 of 1) net-wireless/ndiswrapper-1.2 to /
>>> md5 files \;-) ndiswrapper-1.2.ebuild
>>> md5 files \;-) ndiswrapper-1.5.ebuild
>>> md5 files \;-) files/ndiswrapper-1.2-suspend2.patch
>>> md5 files \;-) files/digest-ndiswrapper-1.2
>>> md5 files \;-) files/digest-ndiswrapper-1.5
>>> md5 src_uri \;-) ndiswrapper-1.2.tar.gz
* Determining the location of the kernel source code
* Found kernel source directory:
* /usr/src/linux
* Found sources for kernel version:
* 2.6.14-gentoo-r5
* Checking for suitable kernel configuration options:
>>> Unpacking source...
>>> Unpacking ndiswrapper-1.2.tar.gz to /var/tmp/portage/ndiswrapper-1.2/work
* Applying ndiswrapper-1.2-suspend2.patch ... [ ok ] * The only kernels that will work are gentoo-sources, vanilla-sources, and suspend2-sources.
* No other kernels are supported. Kernels like the mm kernels will NOT work.
* Converting ndiswrapper-1.2/driver/Makefile to use M= instead of SUBDIRS= ... [ ok ]>>> Source unpacked.
cc -Wall -g -DNDISWRAPPER_VERSION=\"1.2\" -c -o loadndisdriver.o loadndisdriver.c
gcc -o loadndisdriver loadndisdriver.o
* Preparing ndiswrapper module
make -C //usr/src/linux M=/var/tmp/portage/ndiswrapper-1.2/work/ndiswrapper-1.2/driver \
NDISWRAPPER_VERSION=1.2 \
EXTRA_VERSION= modules
make[1]: Entering directory `/usr/src/linux-2.6.14-gentoo-r5'
CC [M] /var/tmp/portage/ndiswrapper-1.2/work/ndiswrapper-1.2/driver/hal.o
CC [M] /var/tmp/portage/ndiswrapper-1.2/work/ndiswrapper-1.2/driver/iw_ndis.o
CC [M] /var/tmp/portage/ndiswrapper-1.2/work/ndiswrapper-1.2/driver/loader.o
/var/tmp/portage/ndiswrapper-1.2/work/ndiswrapper-1.2/driver/loader.c: In function `register_devices':
/var/tmp/portage/ndiswrapper-1.2/work/ndiswrapper-1.2/driver/loader.c:963: warning: assignment from incompatible pointer type
CC [M] /var/tmp/portage/ndiswrapper-1.2/work/ndiswrapper-1.2/driver/misc_funcs.o
CC [M] /var/tmp/portage/ndiswrapper-1.2/work/ndiswrapper-1.2/driver/ndis.o
/var/tmp/portage/ndiswrapper-1.2/work/ndiswrapper-1.2/driver/ndis.c:1721:5: warning: "LINUX_KERNEL_VERSION" is not defined
CC [M] /var/tmp/portage/ndiswrapper-1.2/work/ndiswrapper-1.2/driver/ntoskernel.o
CC [M] /var/tmp/portage/ndiswrapper-1.2/work/ndiswrapper-1.2/driver/pe_linker.o
CC [M] /var/tmp/portage/ndiswrapper-1.2/work/ndiswrapper-1.2/driver/proc.o
CC [M] /var/tmp/portage/ndiswrapper-1.2/work/ndiswrapper-1.2/driver/wrapper.o
/var/tmp/portage/ndiswrapper-1.2/work/ndiswrapper-1.2/driver/wrapper.c:287:47: macro "halt" passed 1 arguments, but takes just 0
/var/tmp/portage/ndiswrapper-1.2/work/ndiswrapper-1.2/driver/wrapper.c: In function `miniport_halt':
/var/tmp/portage/ndiswrapper-1.2/work/ndiswrapper-1.2/driver/wrapper.c:287: warning: statement with no effect
make[2]: *** [/var/tmp/portage/ndiswrapper-1.2/work/ndiswrapper-1.2/driver/wrapper.o] Error 1
make[1]: *** [module/var/tmp/portage/ndiswrapper-1.2/work/ndiswrapper-1.2/driver] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.14-gentoo-r5'
make: *** [default] Error 2
!!! ERROR: net-wireless/ndiswrapper-1.2 failed.
!!! Function linux-mod_src_compile, Line 505, Exitcode 2
!!! Unable to make KSRC=//usr/src/linux KVERS=26 all.
!!! If you need support, post the topmost build error, NOT this status message.
I failed to mention that I also upgraded my kernel from 2.6.12-gentoo-r10 to 2.6.14-gentoo-r5, which may have attributed to the problem.
The resolution: To
download the latest ndiswrapper (1.7) from Source Forge and compile. This seemed to work, with a warning message:
localhost ndiswrapper-1.7 # make
make -C driver
make[1]: Entering directory `/var/tmp/ndiswrapper/ndiswrapper-1.7/driver'
make -C /lib/modules/2.6.14-gentoo-r5/build SUBDIRS=/var/tmp/ndiswrapper/ndiswrapper-1.7/driver \
DRIVER_VERSION=1.7
make[2]: Entering directory `/usr/src/linux-2.6.14-gentoo-r5'
LD /var/tmp/ndiswrapper/ndiswrapper-1.7/driver/built-in.o
CC [M] /var/tmp/ndiswrapper/ndiswrapper-1.7/driver/hal.o
CC [M] /var/tmp/ndiswrapper/ndiswrapper-1.7/driver/iw_ndis.o
CC [M] /var/tmp/ndiswrapper/ndiswrapper-1.7/driver/loader.o
CC [M] /var/tmp/ndiswrapper/ndiswrapper-1.7/driver/misc_funcs.o
CC [M] /var/tmp/ndiswrapper/ndiswrapper-1.7/driver/ndis.o
CC [M] /var/tmp/ndiswrapper/ndiswrapper-1.7/driver/ntoskernel.o
CC [M] /var/tmp/ndiswrapper/ndiswrapper-1.7/driver/ntoskernel_io.o
CC [M] /var/tmp/ndiswrapper/ndiswrapper-1.7/driver/pe_linker.o
CC [M] /var/tmp/ndiswrapper/ndiswrapper-1.7/driver/pnp.o
CC [M] /var/tmp/ndiswrapper/ndiswrapper-1.7/driver/proc.o
CC [M] /var/tmp/ndiswrapper/ndiswrapper-1.7/driver/wrapndis.o
CC [M] /var/tmp/ndiswrapper/ndiswrapper-1.7/driver/wrapper.o
CC [M] /var/tmp/ndiswrapper/ndiswrapper-1.7/driver/usb.o
CC [M] /var/tmp/ndiswrapper/ndiswrapper-1.7/driver/divdi3.o
LD [M] /var/tmp/ndiswrapper/ndiswrapper-1.7/driver/ndiswrapper.o
Building modules, stage 2.
MODPOST
CC /var/tmp/ndiswrapper/ndiswrapper-1.7/driver/ndiswrapper.mod.o
LD [M] /var/tmp/ndiswrapper/ndiswrapper-1.7/driver/ndiswrapper.ko
make[2]: Leaving directory `/usr/src/linux-2.6.14-gentoo-r5'
*** WARNING: Kernel seems to have 4K size stack option (CONFIG_4KSTACKS) removed; many Windowsdrivers will need at least 8K size stacks. You should read wiki about 4K size stack issue. Don't complain about crashes until you resolve this.
make[1]: Leaving directory `/var/tmp/ndiswrapper/ndiswrapper-1.7/driver'
make -C utils
make[1]: Entering directory `/var/tmp/ndiswrapper/ndiswrapper-1.7/utils'
gcc -g -Wall -DUTILS_VERSION=\"1.7\" -o loadndisdriver loadndisdriver.c
make[1]: Leaving directory `/var/tmp/ndiswrapper/ndiswrapper-1.7/utils'
I followed the rest of the ndiswrapper installation instructions and got the wireless card working again in a jiffy. But...
I think whoever is in charge of ndiswrapper at Gentoo needs to get on the ball. The latest version available is still only 1.2. What is up with that?
Posted by Ross Olweiler
in Gentoo
at
16:04
| Comments (0)
| Trackbacks (0)