FreeBSD iwi support in 6-STABLE

Recently, a large set of fixes have been MFC'd to the 6-STABLE version of the iwi(4) driver. This is not a transparent change to the system, as changes to the firmware support have been made.

In order to use the new driver, a number of steps must be followed:

First, ensure the line device firmware exists within your FreeBSD configuration file.

Second, the new driver requires that the port iwi-firmware-kmod be installed on the system. One slight problem is that the port will refuse to build on a 6-STABLE system (at least at the time of writing), since it is expecting a Release 7 target. It is therefore necessary to modify the Makefile in the ipw-firmware-kmod directory (which is used by the Makefile in iwi-firmware-kmod). Change the os version checked against, 700014, to that returned by /sbin/sysctl -n kern.osreldate. So, the old version should look like this:

.if ${OSVERSION} < 700014
IGNORE=         needs fresh ${DRIVERNAME}(4), install net/${DRIVERNAME}-firmware instead

And be changed to this:

.if ${OSVERSION} < 601102
IGNORE=         needs fresh ${DRIVERNAME}(4), install net/${DRIVERNAME}-firmware instead

This has been fixed in the latest ports tree (from 12th July, 2006).

Whatever means you used to load the old firmware, you can now discard (in my case it was /etc/start_if.iwi0)