Comment 298 for bug 621265

Revision history for this message
William Scheidegger (william-scheidegger) wrote :

As I mentioned earlier, I have been a linux distro user for years, but have never had to delve into the building of individual kernel modules. So I thought I would post this lesson of what NOT to do.

<START LESSON>

I followed the README instructions and issued the commands below:
   $ ./scripts/driver-select iwlwifi
   $ make
   $ sudo make install
   $ sudo make wlunload
   $ sudo modprobe iwl3945

and on the modprobe I received:
   FATAL: Error inserting iwl3945 (/lib/modules/2.6.35-27-generic/kernel/drivers/net/wireless/iwlwifi/iwl3945.ko): Invalid argument

with the end of my dmesg log showing several:
   iwlcore: disagrees about version of symbol <SYMBOL_NAME>
   iwlcore: Unknown symbol <SYMBOL_NAME> (err -22)

Thinking that I may have not uninstalled enough kernel modules before trying to install the new iwl3945, I rebooted the machine. When the machine was back up, I had the exact same messages the dmesg log.

I was able to get back to the my original (i.e. slow) state by issuing:
   $ sudo make wlunload
   $ sudo modprobe iwl3945

<STOP LESSON>

The first step in the lesson above, driver-select, is a shortcut and sped up the compile and install times dramatically. As I was investigating this problem, I found that this shortcut does not build the mac80211 module and the "disagrees about version of symbol" errors are due to the original mac80211 module not being compatible with the new iwlcore and iwl3945 modules.

The correct steps are below:
   $ ./scripts/driver-select restore
   $ make
   $ sudo make install
   $ sudo make wlunload
   $ sudo modprobe iwl3945

I now have a fully functional iwl3945 module loaded and consistently getting speeds comparable to my wife's M$ machine.

5.14 Mb/s Download
0.65 Mb/s Upload
35 ms Ping

Everything seems to be stable.

@Andy Whitcroft Thanks for the work on getting this fixed.
@Radosław Piliszek Thanks for the patience and guidance.
@s0undt3ch Thanks again for the assistance.

Just for completeness below is the output from lspci and uname:
   $ lspci -vnn | grep -A 1 Wireless
      06:00.0 Network controller [0280]: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection [8086:4222] (rev 02)
         Subsystem: Intel Corporation PRO/Wireless 3945ABG Network Connection [8086:1000]
         Flags: bus master, fast devsel, latency 0, IRQ 47
   $ uname -a
      Linux billlaptop 2.6.35-27-generic #47lp621265v201102161837 SMP Wed Feb 16 18:40:53 UTC 2011 i686 GNU/Linux

I also noticed that I was the only one reporting on the Subsystem [8086:1000].