linux

1210

on a dell xps...

Slackware 12

screenshots

navigate

Slackware on a Dell XPS 1210: Wireless

You may use the iwlwifi or the ipw3945 driver for the Intel PRO/Wireless 3945ABG device. This guide shows how to setup and use both so look closely if instructions are for the driver you are going to use.

Status: Working
Driver: iwlwifi or ipw3945

Additional requirements for iwlwifi:

Additional requirements for ipw3945:

Additional Information for iwlwifi: HOWTO: mac80211, HOWTO: iwlwifi
Additional Information for ipw3945: README.ipw3945, INSTALL.ipw3945

After the initial install the wireless was not working. Understandable as it needs a driver that is not included with Slackware. Make sure you have the files above (iwlwifi or ipw3945) before setting up your wireless. Skip to the iwlwifi info or skip to the ipw3945 info.

Using the iwlwifi driver

Step 1 - Install the mac80211 (d80211) subsystem

To use the mac80211 subsystem you need to have the kernel source installed. Download the mac80211 subsystem tarball and install as follows:

# tar xzvf mac80211-9.?.?.tgz
# cd mac80211-9.?.?
# make
# make patch_kernel

Now the module have to be built in order to be able to use it. Begin to compile a kernel normally:

# cd /lib/modules/$(uname -r)/build
# make menuconfig

Include the following in the config:

Networking --->
  <M> Generic IEEE 802.11 Networking Stack (dscape)

Build and install the module:

# make modules && make modules_install

Load the module:

# modprobe mac80211

Step 2 - Install the firmware

First download the file and then extract the tarball. After extracting we need to copy the two files to the firmware directory. The firmware directory on Slackware is /lib/firmware. Here’s what you need to do from extraction to installation:

# tar xzvf iwlwifi-3945-ucode-2.14.?.tgz
# cp iwlwifi-3945-ucode-2.14.?/iwlwifi-3945.ucode /lib/firmware

Step 3 - Build the iwl3945.ko module

This is the main driver module. Download and install:

# tar xzvf iwlwifi-1.?.?.tgz
# cd iwlwifi-1.?.?
# make
# make install
# depmod -a

Above, the second to last command installs the module to the kernel module directory. We do this so we can setup automatic module loading so we don’t have to load the module manually everytime we want to use the wireless. ‘#depmod -a‘ just updates module dependancies.

Step 4 - Load the module

In the iwlwifi-1.?.? directory we use the load script to load the module and initialise devices wlan0 and wmaster0:
# ./load

Loading the iwl3945 module at boot up

We want the module to load automatically at bootup for extra ease. We will start the ./load script on bootup:

  1. Make sure the iwl3945.ko module was copied to /lib/modules/$(uname -r)
  2. Copy the ./load script (from the iwlwifi-0.?.? folder) to /etc/rc.d
  3. Rename it to rc.iwl3945
  4. Call this script from /etc/rc.d/rc.local so it will run at bootup. Add the following to rc.local:

echo "Starting up Intel PRO/Wireless 3945ABG"
/etc/rc.d/./rc.iwl3945

Since I setup my wireless options in /etc/rc.d/rc.wireless.conf, just running the above script was enough to get my wireless up and running automatically at bootup. You can now skip to the ‘Connecting to the Internet‘ section.

Using the ipw3945 driver

Step 1 - Get the Wireless Extensions and Tools package

Make sure you have (v28) or newer. Download wireless-tools-28-i486-3.tgz, (scroll all the way down to find the file) change to your download directory and install by using pkgtool:

#installpkg wireless-tools-28-i486-3.tgz

Note: I will not provide a direct link to the file since the location of the file is under ’slackware-current.’ Future files will be newer versions with slightly different name, so linking here would be broken not before not long.

Step 2 - 2.6.13+ kernel

If you have a kernel higher than the requirement you can skip this step. If you are using a 2.4.32 kernel from the Slackware install you will need to compile a 2.6.13 or higher kernel to get the wireless functioning. If you don’t feel comfortable compiling a new kernel, you could use the test 2.6 kernel when prompted during the install. Or easier still, do the easy upgrade.

Step 3 - Install the ieee80211 subsystem

Download the ieee80211 subsystem tarball and install as follows:

# tar xzvf ieee80211-?.?.?.tgz
# cd ieee80211-?.?.?
# make
# make install
# cd ..

Step 4 - Build the ipw3945.ko module

This is the main driver module. Download and install:

# tar xzvf ipw3945-1.1.0.tgz
# cd ipw3945-1.1.0
# make
# cp ipw3945.ko /lib/modules/$(uname -r)
# depmod -a

Above, the second to last command copies the module to the kernel module directory. We do this so we can setup automatic module loading so we don’t have to load the module manually everytime we want to use the wireless. ‘#depmod -a‘ just updates module dependancies.

Step 5 - Install the firmware files

First download the file and then extract the tarball. After extracting we need to copy the two files to the firmware directory. The firmware directory on Slackware is /lib/firmware. Here’s what you need to do from extraction to installation:

# tar xzvf ipw3945-ucode-1.13.tgz
# cp ipw3945-ucode-1.13/ipw3945.ucode /lib/firmware

Step 6 - Install the regulatory daemon

This is the daemon that will enable you to interact with your wireless settings. Download and install for 32 bit systems:

# tar xzvf ipw3945d-1.7.18.tgz
# cp ipw3945d-1.7.18/x86/ipw3945d /sbin
For 64 bit systems copy the file from the following:

# cp ipw3945d-1.7.18/x86_64/ipw3945d /sbin

Step 7 - Loading the module

If you didn’t copy the ipw3945.ko module to the kernel module directory we can load the module by changing to the ipw3945-1.1.0 directory we created earlier and then typing the following:

# ./load debug=0
If you copied the module to the kernel module directory, we can load it this way: # modprobe ipw3945

Although the above worked for Slackware 10.2, it would not work for Slackware 11. The module loaded fine but would not load the ipw3945 daemon. I used the rc.d scripts to load the module and it’s dependancies.

Loading the ipw3945 module at boot up

We want the module to load automatically at bootup for extra ease. Add the following to your /etc/modules.conf or take a look at my example:

# Wireless
install ipw3945 /sbin/modprobe --ignore-install ipw3945 ; sleep 0.5 ; /sbin/ipw3945d --quiet
remove ipw3945 /sbin/ipw3945d --kill ; /sbin/modprobe -r --ignore-remove ipw3945

The above no longer worked in Slackware 11 so the trick was to run the ./load script on bootup.

  1. Make sure the ipw3945.ko module was copied to /lib/modules/$(uname -r)
  2. Copy the ./load script (from the ipw3945-1.1.0 folder) to /etc/rc.d
  3. Rename it to rc.ipw3945
  4. Call this script from /etc/rc.d/rc.local so it will run at bootup. Add the following to rc.local:

echo "Starting up Intel PRO/Wireless 3945ABG"
/etc/rc.d/./rc.ipw3945

Since I setup my wireless options in /etc/rc.d/rc.wireless.conf, just running the above script was enough to get my wireless up and running automatically at bootup. You can now skip to the ‘Connecting to the Internet‘ section.

Connecting to the internet


If you are using the iwlwifi driver, you device will be called wlan0. If you are using the ipw3945 driver then your device will be eth1. To see if the driver installed correctly type:

#iwconfig wlan0/eth1You should see the following or something similar for wlan0/eth1:

unassociated ESSID:off/any
Mode:Managed Channel=0 Access Point: 00:00:00:00:00:00
Bit Rate=0 kb/s Tx-Power=20 dBm
RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

You can use ‘iwconfig‘ to configure your access point or modify /etc/rc.d/rc.wireless.conf to do this automatically for you. See my rc.wireless.conf for an example how to set this up or just add the following to yours right after ‘case “$HWADDR” in‘:

# Intel PRO/Wireless 3945ABG on wlan0/eth1
*)
INFO="your ESSID"
ESSID="your"
MODE="Managed"
#FREQ=""
CHANNEL="10"
#SENS=""
RATE="auto"
KEY="enter encryption key here "
#RTS=""
#FRAG=""
;;

Once you have customised the values for you network you can get an IP address from the dhcp server:
# dhcpcd -d -t 5 wlan0
or
# dhcpcd -d -t 5 eth1

10 Responses to this post

  1. hello, im from argentina. this page is very good, thanks for your contribution..
    Im tryed to install the wireless driver but dont works.. im followed the steps like you said but dont walk, dont have any errors in the compilations (in order certainly) and the module its load correctly.. iwconfig dont show nothing.. only “no wireless extension” forr all disp. in the list.. can do you helpme with a date or track to resolve this? thanks for you cooperation, and sorry for my bad english :)

  2. PD: my kernel version is: 2.6.16-2-686.. dont should be any problems for that

    #uname -r

    2.6.16-2-686
    

    #lsmod

    ipw3945               169376       0
    ieee80211              44200       1   ipw3945
    firmware_class          9472       1   ipw3945
    

    ..and someone more

    #iwconfig

    lo        no wireless extensions.    //loopback address
    
    eth0      no wireless extensions.    //eternet utp
    
    eth1      no wireless extensions.    //1394 firewire
    
    sit0      no wireless extensions.
    

    tanks again

  3. German,
    Try running the ./load script and forget about modprobing the module for now. After running the script, do you see any information for eth1 when you run:
    # iwconfig
    I had a problem with loading the module manually through modprobe. It didn’t start the ipw3945 daemon and my wireless LED indicator did not light up. Most likely you just need to run that script to see if it resolves the problem.

  4. Hi its me again …My wireless says its connected …but my dhcp is not giving me an ip adress..when i use eth0 it works fine ..but my wireless says its connected yet i cant go online…

  5. Assuming your wireless is set to eth1, do the following to make sure your access point is listed:
    # iwlist eth1 scan

    Try the following command to receive an IP from DHCP:

    # dhcpcd -d -t 5 eth1

    That should give you an IP. Also, double check your wireless DHCP settings on your router.

  6. Excuse me, i have the same machine (Dell XPS 1210), but i have problems with the bluetooth, when i start windows it craches, but if i remove the bluetooth card windows starts veru good. I use linux (debian and ubuntu) but i don’t cofigure the card, my question is if you have some problems with the Bluetooth Card???

    Thanks

  7. Hi all,

    I’ve got some trouble with the Intel Pro-Wireless-3945AGB card. I’ve got Slackware 11.

    I follow the instructions to install firmware and configure it BUT…
    It doesn’t work !!

    you said this:

    The above no longer worked in Slackware 11 so the trick was to run the ./load script on bootup.

    1. Make sure the ipw3945.ko module was copied to /lib/modules/$(uname -r)
    2. Copy the ./load script (from the ipw3945-1.1.0 folder) to /etc/rc.d
    3. Rename it to
    rc.ipw3945
    4. Call this script from /etc/rc.d/rc.local so it will run at bootup. Add the following to rc.local:
    echo “Starting up Intel PRO/Wireless 3945ABG”
    /etc/rc.d/./rc.ipw3945
    Since I setup my wireless options in /etc/rc.d/rc.wireless.conf, just running the above script was enough to get my wireless up and running automatically at bootup.

    HOW CAN I DO THIS PLEASE ?
    Could you explain me all this installation for Slackware 11… Thanks ^^

  8. Marco,
    I don’t have any problems with bluetooth in either Windows or Linux. I would try upgrading the driver/software in windows to see if that helps. Search the dell support website for them. Other than that you could have a bad chip.

  9. Thanks, for the instructions. It worked perfectly for my Dell inspiron 6400 using slackware 11.0. However I notice that an error message comes on my line 14 in my rc.ipw9345 which mentions the fact that “unload” is missing or not available.

    Also, I think that adding the “how to” to configure wpa_supplicant for the rc.ipw3945 daemon for the Intel PRO wireless 3945 driver would have been a great idea so that we can use the wpa-psk security straight away. I am now surfing wirelessly but security lessly. Thank you. You can send my how you configured wpa_supplicant by mail if you don’t feel like adding it here due to space or whatever and I will be very greatful to you.

  10. Hi,
    I am back again to help my friends who still can’t get the ipw3945 driver working.
    After following all the instructions above, type this command as root without the quotation marks
    “dhcpcd eth1″ My advice for your installation is:
    First try getting the your wireless working without any form of security first.
    I recompiled my kernel. To install xzvf ieee80211-?.?.?.tgz make sure you compile it as a “module” in your kernel so that you will have no problem with the installation. unless ieee80211-?.?.?.tgz is installed properly, you cannot proceed with the rest of the installation especially compiling the ipw3945-1.1.0.tgz to get ipw3945.ko
    Whatever interface you use for your wireless whether wlan0 (ie using ndiswrapper) or the above instructions, don’t ever forget to do “dhcpcd wlan0″ or “dhcpcd eth1″ as root without the quotation marks.
    I hope this helps somebody. Thanks. Andrew.
    installation.

View Comment Policy & allowed tags

In effect as of 27th January 2006. ALL comments have to be reviewed before being accepted.

Relevance

Keep comments relevant to DesignLegion, article content, suggestions, requests, praise or critiques.

Formatting

The following tags are enabled for comments:

  • <a> (hyperlinks)
  • <code> (code section or quotes)
  • <cite> (Cite text)
  • <strong> or <b> (bold text)
  • <u> (underline)
  • <em> or <i> (italics)

The following classes are enabled:

  • .exclamation (for highlighting)

Spammers beware

If a comment has been classed as spam it will be deleted. Comments must be approved by the moderator and will not be displayed until approved.

If a comment seems to be relevant but the name/website seems to be an advertisement, then the given web url will be deleted and even changed to "Anonymous."

Private Matters?

If needing to contact me about private issues, please use the contact page.

XX

XX