Configure iwl3945 Driver on Ubuntu

It is quite frustrating when you have a wireless card built in, but you cannot use it – don’t you agree? That seems to be the case for wifi cards that are served by “iwl3945” driver. One of such examples can be “Intel Corporation PRO/Wireless 3945ABG” card.

Before, ( e.g. Feisty and earlier ) “ipw3945” driver was used instead, and worked beautifully with Intel cards. However the active development of this driver has stopped a couple of years ago, which means that security risks that were identified in the last couple of years were not patched. Therefore Ubuntu community switched to a more recent and supported “iwl3945” driver.

However that created a problem with NetworkManager that is used as a default network user interface in (Gnome) Ubuntu. It appears that in order “to be compatible with NetworkManager, a wireless driver must support both hardware and software scanning. Currently, hardware scanning is faster and more reliable and so is recommended for use with NetworkManager“. But unfortunately “iwl3945″ driver does not support hardware scanning very well, however it is a default behaviour that NetworkManager expects.

But usually, and that is what I love Ubuntu for, if there is a problem, there is 99.9999% a solution to this problem. So this how to will help you solve it, and enjoy your Intel Wireless card with Ubuntu, despite of inconsiderate (in this case) NetworkManager.

1. Remove the bad guy

sudo apt-get remove network-manager

2. Disable “iwl3945″ hardware scan

sudo vi /etc/modrobe.d/iwl3945

enter:

	alias wlan0 iwl3945
	options iwl3945 disable_hw_scan=1   # <-- enables software scanning

and save it (:wq).

At this you might want to restart or (optinal) just re-insert the module like this:

sudo modprobe -r iwl3945
sudo modprobe iwl3945

3. Install the good guy

Here you’ll install “the good guy” – his/her name is WICD:

Add wicd’s repository to Ubuntu sources:

sudo vi /etc/apt/sources.list
	 deb http://apt.wicd.net intrepid extras

(if you have Hardy Heron, then add “deb http://apt.wicd.net hardy extras” instead)

Update repositories

   sudo apt-get update

Install wicd “the normal Ubuntu way”:

   sudo apt-get install wicd

4. Run the good guy

   wicd-client

or restart, it should run automatically.

Happy wifying!

18 comments

  1. thanks for the explanation, I used nano instead of vi cos I`m not a real hacker.

  2. You saved me a bunch of head aches! I’ve been trying to use my old ipw3945 driver cause iwl was giving me problems, which in reality it was network-manager! You the man. Much appreciated.

  3. Thanks, you saved my day today. My WiFi (intel card using iwl3945) was not working for few weeks). I am back online again.

  4. Thank you very much, relevant !

  5. Thank you very much! You have no idea (actually probably have) how hard it is to find working configs for old wlan chips.

  6. hey i love the way you structerd this page but imda stuck by step 2 and was hoping i could get help here is what im typing in

    “sudo vi /etc/modrobe.d/iwl3945
    alias wlan0 iwl3945
    options iwl3945 disable_hw_scan=1 # <– enables software scanning
    sudo modprobe iwl3945
    sudo modprobe -r iwl3945″

    were did i go wrong?
    K.M.

  7. @Ken,

    I am not sure what problem you are experiencing. In case you are not VI user, try to use an editor of your choice.

    /Toly

  8. Hey i am using UBUNTU 11.04 and wifi is not working .The option for enable wifi is not coming.how shud i resolve this.

  9. @isha
    use /etc/modprobe.conf/iwl3945.conf and only put:

    alias wlan0 iwl3945
    options iwl3945 disable_hw_scan=1

    in your /etc/modprobe/iwl3945.conf (dont put the ‘# <– enables software scanning' in there)

    i went from 41% packet loss using network-manager to 0% packet loss using wicd with hw_scan disabled on 11.04

    thank you so much for this!!!

  10. Sometimes I struggle with Ubuntu and think I will just go back to Windows, but you are right – 99% of the time there is a solution. Open source rules!

  11. I’m the same – I never thought I would get used to anything other than Windows XP, but Ubuntu is way faster. I see my friends waiting all the time for Windows to do stuff, and it’s not a problem I ever have to put up with.

  12. Hi i’ve been searching the web for a while for a new solution and totally forgot about this one.
    It works wonderfully on Ubuntu 11.10.

    Cheers!

  13. update: it only seem to work until the reboot when the system doesn\’t see the wireless extension anymore

  14. guys i need some help…
    at the step 2 i write the command “sudo vi /etc/modrobe.d/iwl3945″
    then i have to to write these “alias wlan0 iwl3945
    options iwl3945 disable_hw_scan=1″

    at the word wlan0 is it zero or “uppercase o”
    then i press esc and write :wq
    but it tells me””/etc/modrobe.d/iw13945″ E212: Can’t open file for writing”.what is goin’ wrong??

  15. also at step 3 after sudo vi ../sources.list , this command” deb http://apt.wicd.net intrepid extras
    ” i have to write it somewhere on terminal???? please help me…thx in advance!

  16. it’s not /etc/modrobe.d/

    the directory name is

    /etc/modprobe.d/

    the file probably needs the .conf extension also

  17. Step 2 took me hours due to your typing error: modrobe without P
    As Newbie I also tried hard to find out that vi doesn’t allow me to just type in “deb blabla” I have to write “i” beforehand and ESC afterwards in order to get back to command mode. WTF!
    It still doen’t work!

tell me something...
  1. (required)
  2. (valid email - optional)
  3. Captcha
  4. (required)