Using IPW3945 instead IWL3945 for Intel wireless 3945 in hardy

Sponsored Link
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

Sponsored Link

et voila

Incoming search terms:

Related posts

54 thoughts on “Using IPW3945 instead IWL3945 for Intel wireless 3945 in hardy

  1. 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

    [Reply]

  2. 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.

    [Reply]

  3. 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

    [Reply]

  4. 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!”

    [Reply]

  5. to m4r10l4 ..

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

    [Reply]

  6. 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.

    [Reply]

  7. @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.

    [Reply]

  8. 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

    [Reply]

  9. 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.

    [Reply]

  10. 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

    [Reply]

  11. 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!

    [Reply]

  12. 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

    [Reply]

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

    Thx for the howto. Very nice!

    [Reply]

  14. 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!

    [Reply]

  15. 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???

    [Reply]

  16. 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.. :-(

    [Reply]

  17. 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:

    [Reply]

  18. 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 :)

    [Reply]

Leave a comment

Your email address will not be published. Required fields are marked *