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:
- Wireless Extensions (v17) and Tools (v28)
- Linux kernel 2.6.13+
- binary micocode image
- binary user space regulatory daemon
- ieee80211 subsystem 1.1.12+
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:
- Make sure the iwl3945.ko module was copied to /lib/modules/$(uname -r)
- Copy the ./load script (from the iwlwifi-0.?.? folder) to /etc/rc.d
- Rename it to rc.iwl3945
- 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.tgzFor 64 bit systems copy the file from the following:
# cp ipw3945d-1.7.18/x86/ipw3945d /sbin
# 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.
- Make sure the ipw3945.ko module was copied to /lib/modules/$(uname -r)
- Copy the ./load script (from the ipw3945-1.1.0 folder) to /etc/rc.d
- Rename it to rc.ipw3945
- 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
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
PD: my kernel version is: 2.6.16-2-686.. dont should be any problems for that
#uname -r
#lsmod
..and someone more
#iwconfig
tanks again
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:
# iwconfigI 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.
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…
Assuming your wireless is set to eth1, do the following to make sure your access point is listed:
# iwlist eth1 scanTry the following command to receive an IP from DHCP:
# dhcpcd -d -t 5 eth1That should give you an IP. Also, double check your wireless DHCP settings on your router.
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
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 ^^
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.
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.
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.