Using IPW3945 instead IWL3945 for Intel wireless 3945 in hardy
Sponsored Link
-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
the microcode (and the others resources in the same host)is not available http://bughost.org/ipw3945/, some one has a mirror?
I have the same problem http://bughost.org/ipw3945/ is not available so I can’t get microcode and daemon
It’s fine now, but I got problems compiling ieee80211. ipw3945 installs fine but not ieee80211
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
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.
how make package for this module and when kernel is updated refresh this one?
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
@Cyber-Hero but tell us what you have a problem? hangs? 110kbps ? or other? or all?
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!”
to m4r10l4 ..
The problem was the Network Manager can’t find any wireless networks !
thanks.
i use iwl3945 and works ok. But Adhoc is really hard to make working.
I am still hesitating to start this procedure…
@M4r10l4: did you manage to solve AdHoc problems ?
Thanks!
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.
@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.
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
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.
Don’t forget to repeat those actions after kernel update…
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
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!
@slowpoison
run make with SHELL=/bin/bash (make SHELL=/bin/bash)
—
Steven
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
It works 🙂 I had to enable the ipw3945 in Kcontrol under restricted drivers. LED glows too.
Thx for the howto. Very nice!
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!
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???
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.. 🙁
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:
Luca, I try new kernel (2.6.27-3-generic) from new Ubuntu 8.10 (Inteprid), but still bad support of iwl3945
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…
Juergen: Thank you for this patch. It helped me compile it for the new 2.6.27.4 kernel.
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 🙂