Using the Broadcom 440x Network Interface with OpenSolaris (Nevada)

My main desktop machine has an Asus A7V8X motherboard, which includes an onboard broadcom 10/100 network interface. This has been pretty good since I first bought the machine 3 years ago, so I've not found any reason to put a real network card in.

I finally got round to properly playing with OpenSolaris on the desktop over the Christmas break, but unfortunately found that it doesn't support my network interface. It would have been trivial to put in an Intel card which I know works, but I figured that would be overkill.

Here's how I got the Broadcom 440x interface working.

Network Configuration

First off, I set up the relevant network configuration, since I'd need to do this regardless of the brand of network card I ended up using. You can do this with the sys-unconfig command, but since that resets all sorts of things, I didn't want to do that. Hereś 's the list:

edit /etc/hosts, and add 'ip hostname' for this machine - eg:    phaal

edit /etc/networks, and add 'netname range' - eg:

home    192.168.6

edit /etc/resolv.conf and add entries for your domain and DNS servers:

domain spod.cx 

edit /etc/nsswitch.conf, and change the hosts line so it reads:

hosts:  files dns 

edit /etc/defaultrouter and add your gatweway (router) address: 'ip' - eg:

Installing the bfe driver

Get the latest bfe driver from http://homepage2.nifty.com/mrym3/taiyodo/eng/ - I used bfe-2.3.0a.tar.gz on Nevada build 54. I downloaded this on another machine and transferred it using a USB stick (fat32 formatted), which just worked - Nevada just picked it up when I plugged the device in.

Set the path to include the sfw tools - you'll need this later:

export PATH=$PATH:/usr/sfw/bin

Untar the driver, and change to the directory it creates.

gtar xfz bfe-2.3.0a.tar.gz
cd bfe-2.3.0a

Itś 's worth browsing the README.txt file at this point, but I'm going to repeat the relevant bits of instructions that worked for me on Nevada.

Make sure you're building for the correct architecture:

rm obj; rm Makefile 
ln -s Makefile.i386_gcc Makefile
ln -s i386 obj

Compile the driver


If no errors are reported, then you can install the driver for testing:

gmake install

Testing the driver

To test the driver, load it and look at the list of network interfaces:

modload obj/bfe
devfsadm -i bfe
ifconfig bfe0 plumb
ifconfig -a 

Check that you have a bfe0 interface listed.

Finally, you can add the correct IP address using the hostname you added to the '/etc/hosts' file earlier.

ifconfig bfe0 <hostname>
ifconfig bfe0 (to check that the correct IP address is displayed)
ifconfig bfe0 up

At this point you should be able to ping another host on your network by IP address.

Finishing off

Create /etc/hostname.bfe0 and enter the hostname for the IP you added to the /etc/hosts file earlier - in my case this is 'phaal'.

Last of all, type init 6 to reboot.

When the system comes back up, you should find that the interface has come up automatically.

Contact: site@spod.cx