Ubuntu Geek

Ubuntu Linux Tips,Howtos&Tutorials|Feisty,Gutsy,Hardy,Intrepid

  • RSS Feed

    subscribe to the ubuntu Geek RSS feed


  • Sponsor

  • Categories

  • Meta

  • Sponsor

  • Archives

  • Support Ubuntugeek

    Amount $:
    Website(Optional):


  • Favourite Sites

Using IPW3945 instead IWL3945 for Intel wireless 3945 in hardy

Posted by Thomer on May 16th, 2008 Email This Post Email This Post

while i’m using my dell d620 with an intel wireless 3945 card i have the following problems with hardy and the new iwl3945:

-throughput is limited 110kb/s rx
-the wireless lan is very unstable
-sometimes the system freezes while scanning for networks

i tried some things to workaround:

- installed the ubuntu-backports (so the driver 1.2.25 is install) = ok the wlan led works again
- add the file /etc/modprobe.d/iwl3945 (alias wlan0 iwl3945
options iwl3945 disable_hw_scan=1)
- to config the card i used wicd (wicd.sourceforge.net)instead of the builtin network-admin

now i decided to backport to the old ipw3945 driver which has do everything fine in gutsy…

1. sudo vim /etc/modprobe.d/blacklist

added the lines
# blacklist new iwl3945
blacklist iwl3945
blacklist mac8021

so the new iwl3945 won’t load at system startup

2. Reboot

3. Download ipw3945 microcode (http://ipw3945.sourceforge.net) and copy it into /lib/firmware/2.6.24-17-generic/

4. Download ipw3945 regulatory daemon from here and copy it into /sbin/
(copy the file within folder x86 to /sbin/ too)

5. get the patch from here thanks

6. get the ipw driver <!– @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } –>http://ipw3945.sourceforge.net/#downloads

7. patch -p1 < ipw3945-1.2.2.patch (target file = ipw3945.h)

8. make

9. sudo make install

10. sudo chmod 777 /sbin/ipw*

11. add a file /etc/modprobe.d/ipw3945
add lines:
install ipw3945 /sbin/modprobe -i ipw3945 ; sleep 0.5 ; /sbin/ipw3945d –quiet
remove ipw3945 /sbin/ipw3945d –kill ; /sbin/modprobe -r -i ipw3945

12. sudo modprobe ipw3945

13. reboot

14. set the correct interface (eth1) in the wicd

et voila

Share/Save/Bookmark

If you want to be notified the next time we write something please subscribe to our RSS feed.Thanks for Visiting!

Related Articles

40 Responses to “Using IPW3945 instead IWL3945 for Intel wireless 3945 in hardy”

  1. adben Says:

    the microcode (and the others resources in the same host)is not available http://bughost.org/ipw3945/, some one has a mirror?

  2. Morpheus Says:

    I have the same problem http://bughost.org/ipw3945/ is not available so I can’t get microcode and daemon

  3. robojiannis Says:

    It’s fine now, but I got problems compiling ieee80211. ipw3945 installs fine but not ieee80211

  4. adben Says:

    I have the same problem… compiling ieee80211 (the path when compile ieeesubsystem .. make IEEE80211_INC=/usr/include is ok, and /lib/modules/\`uname -r\`/include is ok too, but the error appears while compile driver, because he didn’t found the compatible subsystem). maybe a more details in HowTo? tnx

  5. Clinton Scott Says:

    You should check to see if the ieee80211 is already there in your kernel.

    Mine was and so after following the rest of the steps everything now works perfectly.

  6. m4r10l4 Says:

    how make package for this module and when kernel is updated refresh this one?

  7. Cyber-Hero Says:

    Finley i fixed my problem with Intel wireless 3945 card

    Using this 3 steps :

    1 -sudo su

    2.echo -e “alias wlan0 iwl3945 \noptions iwl3945 disable_hw_scan=1″ > /etc/modprobe.d/iwl3945

    3.reboot

  8. m4r10l4 Says:

    @Cyber-Hero but tell us what you have a problem? hangs? 110kbps ? or other? or all?

  9. Thomer Says:

    hi again,

    for me ieee80211 is already in kernel. i have tested on a new hardy installation.

    to m4r10l4.
    i hope that the iwl3945 don’t have the errors when we get a new kernel. or we got a new script by (http://james.colannino.org/downloads.html) to integrate the driver. James Colannino said :
    “If the old ipw3945 driver (1.2.2) ever breaks on a newer kernel after 2.6.24, please let me know, as I’d like to see if I can continue to keep this code working for as long as possible!”

  10. Cyber-Hero Says:

    to m4r10l4 ..

    The problem was the Network Manager can’t find any wireless networks !

  11. m4r10l4 Says:

    thanks.

    i use iwl3945 and works ok. But Adhoc is really hard to make working.

  12. cudjoe Says:

    I am still hesitating to start this procedure…

    @M4r10l4: did you manage to solve AdHoc problems ?
    Thanks!

  13. m4r10l4 Says:

    no, adhoc is still to stupid way in ubuntu (i think about NetworkManager, Wicd, or wifi-radar).
    This too often not work like we would.

  14. Thomer Says:

    @M4r10l4

    give the old ipw driver a try and
    your adhoc problems should gone.

    i have to connect to 4 different adhocs, an with
    the wicd configuration it works very fine.

  15. dodo Says:

    Got wifi working on Toshiba U200, before wireless card was not detected on hardy at all! (worked fine on gutsy)

    I followed instruction above with two changes:

    1. I did not blacklisted mac8021 (no wireless card seen if i blacklist mac8021)

    2. I did not install Wicd - Network Manager works fine

  16. slowpoison Says:

    I saw the following error while building the driver, but fixed it by running make SHELL=/bin/bash. Just FYI.

    ipw3945-1.2.2> make
    Makefile:53:
    Makefile:54: WARNING: $SHELL not set to bash.
    Makefile:55: If you experience build errors, try
    Makefile:56: ‘make SHELL=/bin/bash’.
    Makefile:57:
    /bin/sh: Syntax error: “(” unexpected
    /bin/sh: Syntax error: “(” unexpected
    -e
    WARNING: Your kernel contains ieee80211 symbol definitions and you
    are not using the kernel’s default ieee80211 subsystem. (Perhaps you
    used the out-of-tree ieee80211 subsystem’s ‘make install’ or have
    provided a path to the ieee80211 subsystem via IEEE80211_INC.)

    If you wish to use the out-of-tree ieee80211 subsystem then it is
    recommended to use that projects’ “make patch_kernel” facility
    and rebuild your kernel to update the Module symbol version information.

    Failure to do this may result in build warnings and unexpected
    behavior when running modules which rely on the ieee80211 subsystem.

    -e Aborting the build. You can force the build to continue by adding:

    IEEE80211_IGNORE_DUPLICATE=y

    to your make command line.

  17. cudjoe Says:

    Don’t forget to repeat those actions after kernel update…

  18. dpsf Says:

    Simply awesome! Thank you very much for your Howto; my laptop is happily
    networking with WPA again (iwl3945 borks this for me in Ubuntu Hardy Heron)

    dpsf

  19. John Says:

    With iwl3945 using WPA/TTLS/PAP my laptop would drop connection even if I started a file transfer on my Mac that sits next to it! Switching back to ipw3945 has my Dell D820 working great again.

    Many thanks!

  20. Steven Says:

    @slowpoison
    run make with SHELL=/bin/bash (make SHELL=/bin/bash)

    Steven

  21. Stephan Says:

    Hi,

    I followed exactly the instructions and everything looks fine (I get no error messages), but network-manager doesn’t find my wlan-card. Tried ifconfig eth0 up and ifconfig wlan0 up, but he couldn’t find the interface.

    My System: Inspiron 6400, Kubuntu 8.04

    Any ideas?

    Thanks in advance

    Stephan

  22. Stephan Says:

    It works :) I had to enable the ipw3945 in Kcontrol under restricted drivers. LED glows too.

    Thx for the howto. Very nice!

  23. Charlie Figura Says:

    I’m trying to use the ipw3945 under hardy w/ 2.6.24-21 kernel. I saw the message that Slowpoison noted above, and dealt with it the same way. But when I try to modprobe the driver, I get:

    FATAL: Error inserting ipw3945 (/lib/modules/2.6.24-21-generic/kernel/drivers/net/wireless/ipw3945.ko): Unknown symbol in module, or unknown parameter (see dmesg)
    Invalid parameter 1: –quiet.

    dmesg reports:
    [ 122.847475] ipw3945: disagrees about version of symbol ieee80211_wx_get_encodeext
    [ 122.847492] ipw3945: Unknown symbol ieee80211_wx_get_encodeext
    [ 122.847706] ipw3945: disagrees about version of symbol ieee80211_wx_set_encode
    [ 122.847710] ipw3945: Unknown symbol ieee80211_wx_set_encode
    [ 122.847785] ipw3945: disagrees about version of symbol ieee80211_wx_get_encod

    and so on and so forth. I see some comments above about ieee80211 conflicts w/ the kernel - how do I resolve these?

    Thanks!

  24. Jefferson Martins de Oliveira Says:

    I am same problem:

    jefferson@jeffersonlaptop:~$ sudo modprobe ipw3945
    FATAL: Error inserting ipw3945 (/lib/modules/2.6.24-21-generic/kernel/drivers/net/wireless/ipw3945.ko): Unknown symbol in module, or unknown parameter (see dmesg)

    jefferson@jeffersonlaptop:~$ ipw3945d –quiet
    2008-08-26 01:17:24: ERROR: Could not find Intel PRO/Wireless 3945ABG Network Connection

    jefferson@jeffersonlaptop:~$ dmesg | grep ipw3945
    [ 36.314130] ipw3945: disagrees about version of symbol ieee80211_wx_get_encodeext
    [ 36.314141] ipw3945: Unknown symbol ieee80211_wx_get_encodeext
    [ 36.314397] ipw3945: disagrees about version of symbol ieee80211_wx_set_encode
    [ 36.314403] ipw3945: Unknown symbol ieee80211_wx_set_encode
    [ 36.314483] ipw3945: disagrees about version of symbol ieee80211_wx_get_encode
    [ 36.314488] ipw3945: Unknown symbol ieee80211_wx_get_encode
    [ 36.314723] ipw3945: disagrees about version of symbol ieee80211_txb_free
    [ 36.314728] ipw3945: Unknown symbol ieee80211_txb_free
    [ 36.314867] ipw3945: disagrees about version of symbol ieee80211_wx_set_encodeext
    [ 36.314872] ipw3945: Unknown symbol ieee80211_wx_set_encodeext
    [ 36.315155] ipw3945: disagrees about version of symbol ieee80211_wx_get_scan
    [ 36.315160] ipw3945: Unknown symbol ieee80211_wx_get_scan
    [ 36.315497] ipw3945: disagrees about version of symbol ieee80211_freq_to_channel
    [ 36.315502] ipw3945: Unknown symbol ieee80211_freq_to_channel
    [ 36.316113] ipw3945: disagrees about version of symbol ieee80211_set_geo
    [ 36.316118] ipw3945: Unknown symbol ieee80211_set_geo
    [ 36.316469] ipw3945: disagrees about version of symbol ieee80211_rx
    [ 36.316474] ipw3945: Unknown symbol ieee80211_rx
    [ 36.316556] ipw3945: disagrees about version of symbol ieee80211_get_channel
    [ 36.316561] ipw3945: Unknown symbol ieee80211_get_channel
    [ 36.316791] ipw3945: disagrees about version of symbol ieee80211_channel_to_index
    [ 36.316820] ipw3945: Unknown symbol ieee80211_channel_to_index
    [ 36.317390] ipw3945: disagrees about version of symbol ieee80211_rx_mgt
    [ 36.317395] ipw3945: Unknown symbol ieee80211_rx_mgt
    [ 36.317477] ipw3945: disagrees about version of symbol ieee80211_get_geo
    [ 36.317482] ipw3945: Unknown symbol ieee80211_get_geo
    [ 36.317638] ipw3945: disagrees about version of symbol free_ieee80211
    [ 36.317643] ipw3945: Unknown symbol free_ieee80211
    [ 36.318066] ipw3945: Unknown symbol ieee80211_tx_frame
    [ 36.318192] ipw3945: disagrees about version of symbol ieee80211_is_valid_channel
    [ 36.318198] ipw3945: Unknown symbol ieee80211_is_valid_channel
    [ 36.318290] ipw3945: disagrees about version of symbol ieee80211_get_channel_flags
    [ 36.318296] ipw3945: Unknown symbol ieee80211_get_channel_flags
    [ 36.318509] ipw3945: disagrees about version of symbol alloc_ieee80211
    [ 36.318514] ipw3945: Unknown symbol alloc_ieee80211
    [ 267.643548] ipw3945: disagrees about version of symbol ieee80211_wx_get_encodeext
    [ 267.643565] ipw3945: Unknown symbol ieee80211_wx_get_encodeext
    [ 267.643837] ipw3945: disagrees about version of symbol ieee80211_wx_set_encode
    [ 267.643842] ipw3945: Unknown symbol ieee80211_wx_set_encode
    [ 267.643939] ipw3945: disagrees about version of symbol ieee80211_wx_get_encode
    [ 267.643944] ipw3945: Unknown symbol ieee80211_wx_get_encode
    [ 267.644197] ipw3945: disagrees about version of symbol ieee80211_txb_free
    [ 267.644202] ipw3945: Unknown symbol ieee80211_txb_free
    [ 267.644354] ipw3945: disagrees about version of symbol ieee80211_wx_set_encodeext
    [ 267.644360] ipw3945: Unknown symbol ieee80211_wx_set_encodeext
    [ 267.644685] ipw3945: disagrees about version of symbol ieee80211_wx_get_scan
    [ 267.644690] ipw3945: Unknown symbol ieee80211_wx_get_scan
    [ 267.645056] ipw3945: disagrees about version of symbol ieee80211_freq_to_channel
    [ 267.645061] ipw3945: Unknown symbol ieee80211_freq_to_channel
    [ 267.645686] ipw3945: disagrees about version of symbol ieee80211_set_geo
    [ 267.645690] ipw3945: Unknown symbol ieee80211_set_geo
    [ 267.646056] ipw3945: disagrees about version of symbol ieee80211_rx
    [ 267.646061] ipw3945: Unknown symbol ieee80211_rx
    [ 267.646157] ipw3945: disagrees about version of symbol ieee80211_get_channel
    [ 267.646162] ipw3945: Unknown symbol ieee80211_get_channel
    [ 267.646408] ipw3945: disagrees about version of symbol ieee80211_channel_to_index
    [ 267.646413] ipw3945: Unknown symbol ieee80211_channel_to_index
    [ 267.647002] ipw3945: disagrees about version of symbol ieee80211_rx_mgt
    [ 267.647007] ipw3945: Unknown symbol ieee80211_rx_mgt
    [ 267.647104] ipw3945: disagrees about version of symbol ieee80211_get_geo
    [ 267.647109] ipw3945: Unknown symbol ieee80211_get_geo
    [ 267.647280] ipw3945: disagrees about version of symbol free_ieee80211
    [ 267.647285] ipw3945: Unknown symbol free_ieee80211
    [ 267.647721] ipw3945: Unknown symbol ieee80211_tx_frame
    [ 267.647861] ipw3945: disagrees about version of symbol ieee80211_is_valid_channel
    [ 267.647867] ipw3945: Unknown symbol ieee80211_is_valid_channel
    [ 267.647974] ipw3945: disagrees about version of symbol ieee80211_get_channel_flags
    [ 267.647979] ipw3945: Unknown symbol ieee80211_get_channel_flags
    [ 267.648205] ipw3945: disagrees about version of symbol alloc_ieee80211
    [ 267.648210] ipw3945: Unknown symbol alloc_ieee80211
    [ 283.922773] ipw3945: disagrees about version of symbol ieee80211_wx_get_encodeext
    [ 283.922791] ipw3945: Unknown symbol ieee80211_wx_get_encodeext
    [ 283.923060] ipw3945: disagrees about version of symbol ieee80211_wx_set_encode
    [ 283.923065] ipw3945: Unknown symbol ieee80211_wx_set_encode
    [ 283.923160] ipw3945: disagrees about version of symbol ieee80211_wx_get_encode
    [ 283.923165] ipw3945: Unknown symbol ieee80211_wx_get_encode
    [ 283.923414] ipw3945: disagrees about version of symbol ieee80211_txb_free
    [ 283.923419] ipw3945: Unknown symbol ieee80211_txb_free
    [ 283.923572] ipw3945: disagrees about version of symbol ieee80211_wx_set_encodeext
    [ 283.923577] ipw3945: Unknown symbol ieee80211_wx_set_encodeext
    [ 283.923874] ipw3945: disagrees about version of symbol ieee80211_wx_get_scan
    [ 283.923879] ipw3945: Unknown symbol ieee80211_wx_get_scan
    [ 283.924244] ipw3945: disagrees about version of symbol ieee80211_freq_to_channel
    [ 283.924249] ipw3945: Unknown symbol ieee80211_freq_to_channel
    [ 283.924890] ipw3945: disagrees about version of symbol ieee80211_set_geo
    [ 283.924895] ipw3945: Unknown symbol ieee80211_set_geo
    [ 283.925260] ipw3945: disagrees about version of symbol ieee80211_rx
    [ 283.925265] ipw3945: Unknown symbol ieee80211_rx
    [ 283.925361] ipw3945: disagrees about version of symbol ieee80211_get_channel
    [ 283.925366] ipw3945: Unknown symbol ieee80211_get_channel
    [ 283.925611] ipw3945: disagrees about version of symbol ieee80211_channel_to_index
    [ 283.925616] ipw3945: Unknown symbol ieee80211_channel_to_index
    [ 283.926200] ipw3945: disagrees about version of symbol ieee80211_rx_mgt
    [ 283.926205] ipw3945: Unknown symbol ieee80211_rx_mgt
    [ 283.926302] ipw3945: disagrees about version of symbol ieee80211_get_geo
    [ 283.926306] ipw3945: Unknown symbol ieee80211_get_geo
    [ 283.926477] ipw3945: disagrees about version of symbol free_ieee80211
    [ 283.926481] ipw3945: Unknown symbol free_ieee80211
    [ 283.926910] ipw3945: Unknown symbol ieee80211_tx_frame
    [ 283.927050] ipw3945: disagrees about version of symbol ieee80211_is_valid_channel
    [ 283.927055] ipw3945: Unknown symbol ieee80211_is_valid_channel
    [ 283.927162] ipw3945: disagrees about version of symbol ieee80211_get_channel_flags
    [ 283.927168] ipw3945: Unknown symbol ieee80211_get_channel_flags
    [ 283.927394] ipw3945: disagrees about version of symbol alloc_ieee80211
    [ 283.927399] ipw3945: Unknown symbol alloc_ieee80211
    [ 320.201002] ipw3945: disagrees about version of symbol ieee80211_wx_get_encodeext
    [ 320.201014] ipw3945: Unknown symbol ieee80211_wx_get_encodeext
    [ 320.201150] ipw3945: disagrees about version of symbol ieee80211_wx_set_encode
    [ 320.201153] ipw3945: Unknown symbol ieee80211_wx_set_encode
    [ 320.201202] ipw3945: disagrees about version of symbol ieee80211_wx_get_encode
    [ 320.201206] ipw3945: Unknown symbol ieee80211_wx_get_encode
    [ 320.201351] ipw3945: disagrees about version of symbol ieee80211_txb_free
    [ 320.201354] ipw3945: Unknown symbol ieee80211_txb_free
    [ 320.201433] ipw3945: disagrees about version of symbol ieee80211_wx_set_encodeext
    [ 320.201437] ipw3945: Unknown symbol ieee80211_wx_set_encodeext
    [ 320.201587] ipw3945: disagrees about version of symbol ieee80211_wx_get_scan
    [ 320.201591] ipw3945: Unknown symbol ieee80211_wx_get_scan
    [ 320.201776] ipw3945: disagrees about version of symbol ieee80211_freq_to_channel
    [ 320.201780] ipw3945: Unknown symbol ieee80211_freq_to_channel
    [ 320.202094] ipw3945: disagrees about version of symbol ieee80211_set_geo
    [ 320.202098] ipw3945: Unknown symbol ieee80211_set_geo
    [ 320.202292] ipw3945: disagrees about version of symbol ieee80211_rx
    [ 320.202295] ipw3945: Unknown symbol ieee80211_rx
    [ 320.202346] ipw3945: disagrees about version of symbol ieee80211_get_channel
    [ 320.202349] ipw3945: Unknown symbol ieee80211_get_channel
    [ 320.202474] ipw3945: disagrees about version of symbol ieee80211_channel_to_index
    [ 320.202478] ipw3945: Unknown symbol ieee80211_channel_to_index
    [ 320.202772] ipw3945: disagrees about version of symbol ieee80211_rx_mgt
    [ 320.202776] ipw3945: Unknown symbol ieee80211_rx_mgt
    [ 320.202827] ipw3945: disagrees about version of symbol ieee80211_get_geo
    [ 320.202830] ipw3945: Unknown symbol ieee80211_get_geo
    [ 320.202918] ipw3945: disagrees about version of symbol free_ieee80211
    [ 320.202921] ipw3945: Unknown symbol free_ieee80211
    [ 320.203149] ipw3945: Unknown symbol ieee80211_tx_frame
    [ 320.203221] ipw3945: disagrees about version of symbol ieee80211_is_valid_channel
    [ 320.203225] ipw3945: Unknown symbol ieee80211_is_valid_channel
    [ 320.203281] ipw3945: disagrees about version of symbol ieee80211_get_channel_flags
    [ 320.203284] ipw3945: Unknown symbol ieee80211_get_channel_flags
    [ 320.203400] ipw3945: disagrees about version of symbol alloc_ieee80211
    [ 320.203404] ipw3945: Unknown symbol alloc_ieee80211

    jefferson@jeffersonlaptop:~$ uname -a
    Linux jeffersonlaptop 2.6.24-21-generic #1 SMP Mon Aug 25 17:32:09 UTC 2008 i686 GNU/Linux

    Solution???

  25. Luca Says:

    Well, the problem in trying to install these ipw3945 drivers in any kernel >2.6.24-19 is that the newer versions of the module ieee80211 do not collaborate very well with the old driver. Which is a big, big problem for me, since there are networks for which I do absolutely need the ipw3945 driver running. So, given that I am already informing and collaborating with the developers to solve these problems: is there any way to contact someone who might be able to refresh the patch and let us install the ipw3945 on newer kernels? This might become especially important after October, the 30th, when Ubuntu Intrepid (with 2.6.27) will be released. Obviously I DO hope this will be unnecessary, but you never know.. :-(

  26. Lutfi Says:

    What about this error? What happen?

    # patch -p1 < ipw3945-1.2.2.patch (target file = ipw3945.h)
    -bash: syntax error near unexpected token `(’

    # patch -p1 < ipw3945-1.2.2.patch
    missing header for unified diff at line 3 of patch
    can’t find file to patch at input line 3
    Perhaps you used the wrong -p or –strip option?
    The text leading up to this was:
    ————————–
    |— ipw3945.h.orig 2008-01-30 10:17:02.000000000 -0800
    |+++ ipw3945.h 2008-01-30 10:17:09.000000000 -0800
    ————————–
    File to patch:

  27. Lutfi Says:

    Luca, I try new kernel (2.6.27-3-generic) from new Ubuntu 8.10 (Inteprid), but still bad support of iwl3945

  28. Juergen Says:

    Hi,
    I just posted a patch to get the ipw3945 driver to work with kernel 2.6.27 you can check from here
    Hoping this helps…

  29. Larry Says:

    Juergen: Thank you for this patch. It helped me compile it for the new 2.6.27.4 kernel.

  30. Luca Says:

    Thanks for the help, Juergen! However, I have to say that the new iwl driver has FINALLY begun to function properly and I have now no problems in connecting to any network … /rant_on if only they had waited till this was as developed as it is right now before putting it into the kernel as default driver … /rant_off

    Kudos to everyone :)

  31. DaveC Says:

    Has anyone else been having issues compiling this in the intrepid kernel, even with Juergen’s patch? Is their anywhere someone might be able to point me that might help me doing this? Thank you to everyone who has and may still help….

  32. Larry Says:

    DaveC: I have successfully compiled the ipw3945 driver on Intrepid Ibex and Hardy Heron. It seemed to work fine on Heron but I had stability issues on Ibex. I used an online forum to help me compile the ipw3945 driver similar to the directions above but instead uses checkinstall to make a debian package for easy install and removal. You can go to the forum link here. Just make sure to use the 2.6.24 and 2.6.27 patch from Juergen’s web site to patch the ipw3945.h and ipw3945.c files, respectively.

  33. DaveC Says:

    Thanks Larry, gonna check it out now, will let you know if I get it to work

  34. DaveC Says:

    when I get to the make command I keep getting this error:

    WARNING: Your kernel contains ieee80211 symbol definitions and you
    are not using the kernel’s default ieee80211 subsystem. (Perhaps you
    used the out-of-tree ieee80211 subsystem’s ‘make install’ or have
    provided a path to the ieee80211 subsystem via IEEE80211_INC.)

    If you wish to use the out-of-tree ieee80211 subsystem then it is
    recommended to use that projects’ “make patch_kernel” facility
    and rebuild your kernel to update the Module symbol version information.

    Failure to do this may result in build warnings and unexpected
    behavior when running modules which rely on the ieee80211 subsystem.

    Aborting the build. You can force the build to continue by adding:

    IEEE80211_IGNORE_DUPLICATE=y

    to your make command line.

    make: *** [check_inc] Error 1

    anyone know what exactly I am doing wrong?

  35. Torfinn Says:

    The patch mentioned initially isn’t available any more (http://james.colannino.org/downloads.html seems to have disappeared) I upgraded my laptop (Acer Aspire 5672) to Xubuntu 8.10, and now my kernel is 2.6.27-8.
    Are there a patch / working procedure to get ipw3945 working with this kernel?

  36. Larry Says:

    DaveC: I received this error as well the first time I tried running make on Ubuntu 8.10. A similar if not the same error was mentioned earlier in the comments by SlowPoison here. First, before running make I would make sure you have the kernel headers installed for your currently running kernel. Second, I’m also assuming that you’ve applied both of the patches from Juergen’s website to the ipw3945-1.2.2.tgz driver. Third, take Steve’s advice and run make SHELL=/bin/bash instead of make. That should get you going. Let us know how it goes.

    Torfinn: I have the exact same laptop that you have. Don’t worry about the patch originally posted here. Juergen’s website has both of them for download. In my second comment I put a link to a forum post about installing the driver on Ubuntu using checkinstall. The only difference between that post and your distro (Xubuntu 8.10) is that the kernel now is 2.6.27 and so you need to patch the ipw3945 driver with both patches from Juergen’s website.

    For the record…I think the iwl3945 driver is stable to use on a daily basis. The only issue I have found is that on my LAN I’m getting poor upload performance to my media server. With iwl3945 I get ~200-400kB/s, but with ipw3945 I get ~1.6-2.0MB/s. The weird thing is that the download from the exact same media server is the same for both drivers (~1.6-2.0MB/s). I’ve looked over on the bugzilla forums on intellinuxwireless.org but haven’t found anybody with the same performance issue.

  37. Torfinn Says:

    Larry: Ok, I got these patches from Juergen’s site: ipw3945-1.2.2-kernel-2.6.24.patch, ipw3945-1.2.2-kernel-2.6.27.patch. I patched and installed the ipw3945 module - no problem. Then I blacklisted the iwl3945 module and rebooted. Now I get this in dmesg and /var/log/messages:

    root@kg-home:~# dmesg | grep 3945
    [ 21.864415] ipw3945: Unknown symbol escape_essid

  38. Larry Says:

    Torfinn: I’m not sure what that error means. I did some googling but I didn’t come up with a clear answer. You might want to make sure that both drivers aren’t being loaded at boot. Try lsmod | grep iwl and lsmod | grep ipw. If you get a result from both commands, then each of the drivers are loade and conflicting with each other. I’m assuming that this is not the case but its worth trying. It could also be that the ipw3945 driver is conflicting somehow with the ieee80211 subsystem. In that case I would sudo make uninstall the ipw3945 driver and rebuild it again.

    I don’t use Ubuntu anymore but I’m currently writing this message from an Ubuntu 8.10 LiveDVD with the ipw3945 driver installed and running. So instead of troubleshooting I’ll write the commands that I used to get the driver up and running on the LiveDVD. Hopefully, you can compare the steps from the following steps to the ones you tried.

    Compiling IPW3945 Driver:
    # mkdir ipw3945
    # cd ipw3945
    # wget http://prdownloads.sourceforge.net/ipw3945/ipw3945-1.2.2.tgz
    # wget http://bughost.org/ipw3945/ucode/ipw3945-ucode-1.14.2.tgz
    # wget http://snapshot.debian.net/archive/2007/08/06/debian/pool/non-free/i/ipw3945d/ipw3945d_1.7.22-5_i386.deb
    # tar zxf ipw3945-ucode-1.14.2.tgz
    # sudo cp ipw3945-ucode-1.14.2/ipw3945.ucode /lib/firmware/
    # sudo dpkg -i ipw3945d_1.7.22-5_i386.deb
    # sudo nano /etc/modprobe.d/blacklist

    Insert into the blacklist file
    blacklist iwl3945
    blacklist mac80211
    blacklist cfg80211

    # sudo touch /etc/modprobe.d/00local
    # sudo nano /etc/modprobe.d/00local

    Insert into 00local
    #disable iwl3945 to allow ipw3945
    install iwl3945 /bin/true

    # sudo nano /etc/udev/rules.d/70-persistent-net.rules

    Change
    SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”00:13:02:03:d7:d1″, ATTR{type}==”1″, KERNEL==”wlan*”, NAME=”wlan0″

    to
    #SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”00:13:02:03:d7:d1″, ATTR{type}==”1″, KERNEL==”wlan*”, NAME=”wlan0″
    SUBSYSTEMS==”pci”, DRIVERS==”iwl3945″, ATTR{type}==”1″, NAME=”wlan0″

    SUBSYSTEMS==”pci”, DRIVERS==”ipw3945″, NAME=”wlan0″

    # tar zxf ipw3945-1.2.2.tgz
    # cd ipw3945-1.2.2
    # wget http://funknetztest.de/downloads/ipw3945/ipw3945-1.2.2-kernel-2.6.27.patch
    # wget http://funknetztest.de/downloads/ipw3945/ipw3945-1.2.2-kernel-2.6.24.patch
    # patch -p0 –verbose < ipw3945-1.2.2-kernel-2.6.24.patch
    # patch -p1 –verbose < ipw3945-1.2.2-kernel-2.6.27.patch
    # make SHELL=/bin/bash
    # sudo modprobe -r iwl3945
    # sudo make install
    # sudo /etc/init.d/udev restart

    or, alternatively, just reboot instead of the previous restart step.

    As I said earlier, I’m writing this from an Ubuntu 8.10 LiveDVD with the IPW3945 driver currently running, so I know this works without installing anything other then patch from Synaptic. I didn’t include the patch installation step since you already have it installed. I bypassed the checkinstall step as well because I wanted to keep this longwinded setup as short as possible. I, also, highly recommend using checkinstall to make the ipw3945 driver because that will help you uninstall the driver via Synaptic when there is a kernel upgrade.

    If you see any differences between your installation and the previous steps then I would try making the necessary changes. If you still get errors from dmesg then please reply back with the errors you are running into.

  39. Larry Says:

    I noticed that the formatting of my previous post was changed by me using the cite formatting tag. So here are the corrections.

    Insert into the blacklist file
    blacklist iwl3945
    blacklist mac80211
    blacklist cfg80211

    and

    Insert into the 00local file
    #disable iwl3945 to allow ipw3945
    install iwl3945 /bin/true

    Torfinn: If you still have error messages after making any changes then it would be best to start a new forum thread on either http://www.ubuntuforums.org or http://www.linuxquestions.org. The comments section here isn’t the best way to troubleshoot your problems. You will also get more eyeballs looking at your problem as well. So post the forum link here if you still need help.

  40. Torfinn Says:

    Larry and everybody: I did what I should have been doing in the first place; I booted a Xubuntu 8.10 livecd and tested my wireless there. It showed up as wlan0 and worked fine, so I just went back to my hard drive installation and undid all the things I did when I tried the ipw3945 driver. Then I did one more thing: I removed all lines from /etc/udev/rules.d/70-persistent-net.rules and then I restarted udev. Voila - now my wireless works with the iwl driver:

    tingo@kg-home:~$ sudo lshw -C network
    *-network
    description: Wireless interface
    product: PRO/Wireless 3945ABG [Golan] Network Connection
    vendor: Intel Corporation
    physical id: 0
    bus info: pci@0000:03:00.0
    logical name: wmaster0
    version: 02
    serial: 00:13:02:3e:d4:ce
    width: 32 bits
    clock: 33MHz
    capabilities: pm msi pciexpress bus_master cap_list logical ethernet physical wireless
    configuration: broadcast=yes driver=iwl3945 ip=10.1.150.12 latency=0 module=iwl3945 multicast=yes wireless=IEEE 802.11abg
    *-network
    description: Ethernet interface
    product: NetLink BCM5789 Gigabit Ethernet PCI Express
    vendor: Broadcom Corporation
    physical id: 0
    bus info: pci@0000:04:00.0
    logical name: eth0
    version: 21
    serial: 00:16:36:54:a9:ae
    capacity: 1GB/s
    width: 64 bits
    clock: 33MHz
    capabilities: pm vpd msi pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
    configuration: autonegotiation=on broadcast=yes driver=tg3 driverversion=3.94 firmware=5789-v3.49a latency=0 link=no module=tg3 multicast=yes port=twisted pair
    *-network DISABLED
    description: Ethernet interface
    physical id: 1
    logical name: pan0
    serial: 42:ad:dc:f9:68:08
    capabilities: ethernet physical
    configuration: broadcast=yes driver=bridge driverversion=2.3 firmware=N/A link=yes multicast=yes

    Why it didn’t work when I upgraded from 7.10 to 8.10 I don’t know, but perhaps the udev file was polluted already.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>