View Full Version : problems w/ Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connec


littlered2
07-29-2006, 06:09 PM
Ok the system is a Dell Inspiron E1505 running Debian testing with a self-compiled 2.6.17.7 kernel. Dell doesn't believe in using linux-friendly hardware so we must jump through dozens of hoops before getting a working wireless card. (Ah Dell... I have thousands of things to say about them, none of them good.)

The wireless card is (from lspci)
Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection

The full run down on the card (from lshw) is
description: Network controller
product: PRO/Wireless 3945ABG Network Connection
vendor: Intel Corporation
physical id: 0
bus info: pci@0b:00.0
version: 02
width: 32 bits
clock: 33MHz
capabilities: bus_master cap_list
configuration: driver=ipw3945
resources: iomemory:dfcff000-dfcfffff irq:16

There are many sets of directions on the web for how to get the drivers working for this but I like this one:
http://swm1.com/inspiron_e1505.html#note4

I have successfully installed the microcode and the daemon.

I have been playing with the ieee80211 module and the ipw3945 driver. The latest version of the driver (ipw3945-linux-1.1.0) has no known conflicts with any version of ieee80211. (There was a problem with previous versions of the driver conflicting with the 1.1.14 version of ieee80211.) I tried many different combinations of ieee80211 and ipw3945. I had some trouble compiling ieee80211 as a module, as it didn't find all of the files correctly - it seemed like some of the posts I've found indicated that there might be problems using an external version of ieee80211. Currently I'm using the ieee80211 module in the 2.6.17.7 kernel. That module appears to work, as in I can see it with modprobe -l, I can load it with modprobe ieee80211, and then I can see it with lsmod. (This did not work in the 2.6.18-rc2 kernel so I stopped using that one.)

However, I cannot compile the ipw3945 driver. It should be simple, according the the webpage cited above. With the latest version of the ipw3945 driver I shouldn't have to use the extra argument for make used on the webpage:
make IEEE80211_INC=/lib/modules/2.6.17-rc5/build/include/
if I just use make, it crashes:

amphipilis:/usr/src/ipw3945-linux-1.1.0/ipw3945-1.1.0# make
mkdir -p /usr/src/ipw3945-linux-1.1.0/ipw3945-1.1.0/tmp/.tmp_versions
cp /usr/src/linux-2.6.17.7/net/ieee80211/.tmp_versions/*.mod /usr/src/ipw3945-linux-1.1.0/ipw3945-1.1.0/tmp/.tmp_versions
cp: cannot stat `/usr/src/linux-2.6.17.7/net/ieee80211/.tmp_versions/*.mod': No such file or directory
make: [modules] Error 1 (ignored)
make -C /lib/modules/2.6.17.7/build M=/usr/src/ipw3945-linux-1.1.0/ipw3945-1.1.0 MODVERDIR=/usr/src/ipw3945-linux-1.1.0/ipw3945-1.1.0/tmp/.tmp_versions modules
make[1]: Entering directory `/usr/src/linux-2.6.17.7'
CC [M] /usr/src/ipw3945-linux-1.1.0/ipw3945-1.1.0/ipw3945.o
/usr/src/ipw3945-linux-1.1.0/ipw3945-1.1.0/ipw3945.c:70:5: warning: "IEEE80211_API_VERSION" is not defined
/usr/src/ipw3945-linux-1.1.0/ipw3945-1.1.0/ipw3945.c:71:5: warning: "IEEE80211_API_VERSION" is not defined
/usr/src/ipw3945-linux-1.1.0/ipw3945-1.1.0/ipw3945.c:72:2: error: #error Incompatible ieee80211 subsystem version. Please upgrade ipw3945 driver sources.
/usr/src/ipw3945-linux-1.1.0/ipw3945-1.1.0/ipw3945.c:4402:5: warning: "IEEE80211_API_VERSION" is not defined
/usr/src/ipw3945-linux-1.1.0/ipw3945-1.1.0/ipw3945.c:4878:5: warning: "IEEE80211_API_VERSION" is not defined
/usr/src/ipw3945-linux-1.1.0/ipw3945-1.1.0/ipw3945.c:9374:5: warning: "IEEE80211_API_VERSION" is not defined
/usr/src/ipw3945-linux-1.1.0/ipw3945-1.1.0/ipw3945.c:9500:5: warning: "IEEE80211_API_VERSION" is not defined
/usr/src/ipw3945-linux-1.1.0/ipw3945-1.1.0/ipw3945.c:9574:5: warning: "IEEE80211_API_VERSION" is not defined
make[2]: *** [/usr/src/ipw3945-linux-1.1.0/ipw3945-1.1.0/ipw3945.o] Error 1
make[1]: *** [_module_/usr/src/ipw3945-linux-1.1.0/ipw3945-1.1.0] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.17.7'
make: *** [modules] Error 2

I've played with arguments and I've played with adding IEEE80211_API_VERSION=(value) as an argument for make but no matter what value I put it says that IEEE80211_API_VERSION is not defined.

The same error comes up if I do what the guy who wrote the aforementioned webpage did and use the command:
make IEEE80211_INC=/lib/modules/2.6.17.7/build/include/

So... I'm at a loss now. Help?

Christine

Laptop Deals