GIDNetwork > Linux on Dell Precision M90 - Part IV: Networking
Register
« Linux on Dell Precision M90 - Part III: Kernel Update Linux on Dell Precision M90 - Part V: Sound »

Linux on Dell Precision M90 - Part IV: Networking

by: dsmith - May 15, 2006

This section covers the configuration of both, the ethernet card (Broadcom Netxtreme BCM5752) and the wireless card (Intel 3945ABG) on the Dell Precision M90. This is written specifically for Slackware Linux again, but could be applicable to about any distribution.

Ethernet Port Setup

Using lspci, my network card was identified as:

Generic Code Example:

Ethernet Controller: Broadcom Corporation NetXtreme BCM5752 Gigabit Ethernet PCI Express (rev 02)

This can be enabled in the kernel by selecting the following device driver:

Generic Code Example:

Device Drivers -->
	Network Device Support -->
		Ethernet (1000 Mbit) -->
			Broadcom Tigon3 support

This is somewhat confusing as there is another Broadcom driver for NetXtremell. That will not work for this card. It uses the Tigon3 chipset.

There is one more thing that you may want to do if you are running Slackware. In the rc.inet1 script, the timeout on dhcp is set to 60 seconds. If you are always going to be plugged into a land line then it is no big deal as the DHCP response should return almost immediately. However, if you are mostly running on wireless (as I am), then this will make your boot up take 60 seconds longer than it should. To fix this, find the line in the /etc/rc.d folder that starts with /sbin/dhcpcd and change the timeout to 5 like so:

Generic Code Example:

/sbin/dhcpcd -d -t 5 ${DHCP_OPTIONS} ${1}

Wireless Card Setup

Again, using lspci, the wireless card is identified as:

Generic Code Example:

Network Controller: Intel Corporation: Unknown Device 4222 (rev 02)

Unfortunately, this doesn't tell us a whole lot about the card. By using the command of lspci -n you can find the PCI ID of this card to be 8086:4222. Looking up the PCI ID card at The Linux PCI ID Repository reveals that this card is an Intel Pro/Wireless 3945ABG Network Connection.

Intel has been fairly proactive in getting drivers out for their wireless cards. Much more so than some other companies that I won't get into here. There are some instructions as well as links to all the necessary files here.

Step 1 - Configure your kernel to use wireless networking
First of all, you need to enable the Wireless LAN drivers

Generic Code Example:

Device Drivers -->
	Network device support -->
		Wireless LAN (non-hamradio)

Don't select any of the drivers under the Wireless LAN, just make sure that it is enabled.

Next, you need to enable cryptographic support for if you are using WEP & WPA

Generic Code Example:

Cryptographic Options -->
	Cryptographic API -->
		Arc4 cipher algorithm
		Michael MIC keyed digest algorithm
		AES cipher algorithms (i586)

Finally, enable Module unloading as the Intel loader grumbles if there is not kernel support for module unloading

Generic Code Example:

General setup -->
	Loadable module support -->
		Module Unloading

Step 2 - Download Drivers
Download all the necessary files as identified at this link, including the most current ipw3945 module source. Get the latest version of all, except be careful with the wireless extensions as it needs to be matched to your current kernel. I put all of these files under a subfolder in the /usr/local/src directory called wireless. The rest of these instructions are based on using this location.

I had the following files when I was done (your version numbers may vary)

  • ieee80211-1.1.13.tgz - ieee80211 subsystem

  • ipw3945-1.0.3.tgz - kernel module source for the ipw3945 driver

  • ipw3945-ucode-1.13.tgz - Firmware for ipw3945

  • ipw3945d-1.7.18.tgz - Regulatory Daemon

  • wireless_tools.28.tar.gz - Wireless tools and utilities

Step 3 -Make and install drivers and software
First of all, make and install the ieee80211 subsystem. The make process is a fairly common procedure in Linux, but if you are unfamiliar with the process, it is summarized as:

Generic Code Example:

tar xvfz ieee80211-1.1.13
cd ieee80211-1.1.13
make
make install

Next, make the ipw3945 kernel module using the some procedure as above except don't install it, only make it.

Now, the firmware files and the regulatory daemon need to be copied to the proper locations.

Generic Code Example:

tar xvfz ipw3945-ucode-1.13.tgz
cp ipw3945-ucode-1.13/ipw3945-ucode /lib/firmware
tar xvfz ipw3945d-1.7.18.tgz
cp ipw3945d-1.7.18/x86/ipw3945d /sbin

Finally, make and install the wireless tools using the same steps for make as above.

Step 4 - Test the setup
Make sure that you are in the ipw3945 directory and use the load script contained therein. That will load all the modules in the proper order. Use iwconfig to set the essid and the encryption key if necessary:

Generic Code Example:

/usr/local/sbin/iwconfig eth1 essid XXXXX key XXXXXXXXXX

Then try to obtain an address (or set one statically if you are not using dhcp):

Generic Code Example:

dhcpcd eth1 -t 5

Hopefully if you do an ifconfig listing you should see all the details for your new interface.

Step 5 - Setup to install at boot-time
After some experimenting with module dependency loading, I finally fell back to the good old rc.d start up scripts. I made the following bash script and then I call it in my rc.local startup script, passing my ESSID and Key.

Generic Code Example:

#!/bin/bash
#
# Script to load the intel pro wireless driver
# This script can be called with no parameters if neither the 
# ESSID or the WEP KEY need to be set.
# With one parameter, the ESSID will be set.
# With two parameters, the ESSID will be set and the WEP KEY will be set.
#
#set wldir to the location of the compiled ipw3945 driver
wldir="/usr/local/src/wireless/ipw3945-1.0.3"
holddir=`pwd`

echo "Starting up wireless card"
cd $wldir
./load
sleep 2
if [ $# -gt 0 ]
	then
	#The first parameter if there is the ESSID
	/usr/local/sbin/iwconfig eth1 essid $1
fi

if [ $# -gt 1 ]
	then
	#The second parameter if there is the WEP KEY
	/usr/local/sbin/iwconfig eth1 key $2
fi

dhcpcd eth1 -t 5
cd $holddir

By having this as a separate script, I can call it at anytime with a different ESSID and key if necessary. And that is about it for the networking. You should now have two effective options for getting on-line.

Would you like to comment? This story has been viewed 16,150 times.
« Linux on Dell Precision M90 - Part III: Kernel Update Linux on Dell Precision M90 - Part V: Sound »

__top__

Copyright © GIDNetwork™ 2001 - 2017

Another website by J de Silva

Page generated in : 0.02672 sec.