Posted by Benjamin Close on November 8, 2008 under FreeBSD, wireless | 7 Comments to Read

Last Updated: 20080521054508

This page documents the current state of the IWN driver for FreeBSD, the driver supports the Intel 4965AGN Wireless Card, often found in Intel Centrino based laptops. If your looking for the driver for the 3945 chipset check out the wpi page.

Note: A majorly updated version of the iwn driver has been committed to FreeBSD -Current (aka 8.0). This version is greatly advanced over the perforce version. If you intend to try the perforce version under 7.0 please make sure you are running 7.0-STABLE not 7.0-RELEASE

An up to date commentary on what I’m working on can often be found in my blog and this is a wiki page so you can check the page history for what has changed

Details on how to help debug the driver are in README file that’s in the download package.

For those of you wanting to try the perforce version of the driver, the script P4fetch.rb will help you easily obtain the files. The script was provided by Tom Evans.


  • Iwn Committed to FreeBSD -Current (aka 8.0)
  • Perforce Version (Not yet tarballed – available here)
    • Initial OpenBSD Import
    • Many locking additions
    • Lots of changes to get things working. At present, the card will talk with an unencrypted access point, pass packets but stops passing packets after a while.
    • Major overhaul by Sam Leffler
  • Perforce (VAP Branch)
    • Major changes to support vap

Installation/Testing Instructions

At present installation of the driver is very much hands on.

To install the driver:

  • Download from p4 using the scribe above
  • Read the README file

FAQ / Build Issues

  • No common FAQ’s as yet.

Outstanding issues

  • Background scanning doesn’t yet exist.

Donations keep this site alive

  • Sting said,

    Hi Benjamin, thanks a lot for your contribution, I use a Compaq 6910p and I looked for this for a while.

    I download source code from P4DB and build it following the README, but I get “kldload: can’t load if_iwn: No such file or directory” when I try to load if_iwn.ko by “Kldload if_iwn”, as well as “kldload /boot/kernel/if_iwn.ko” and I’m sure /boot/kernel/if_iwn.ko exits.

    uname -a
    FreeBSD hp.sting.net 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Feb 24 19:59:52 UTC 2008 [email protected]:/usr/obj/usr/src/sys/GENERIC i386

    Can you tell me what I did was wrong, thank you.

  • Benjamin Close said,

    Check your messages (ie /var/log/messages). If your using 7.0-RELEASE then the p4 code is a little ahead of the release. If you get an error related to m_defrag or m_collapse (can’t remember which one) then you need to sync up to 7.0-STABLE (ie you need to do a buildworld/buildkernel/installworld/installkernel)

  • M said,


    Do you know if the perforce version works under 7.1-RELEASE?

    The driver seems to load fine and I can scan for access points, but when I run wpa_supplicant -iiwn0 -c /etc/wpa_supplicant.conf it hangs.

    My /var/log/messages says “kernel: iwn0: device timeout”


  • Benjamin Close said,

    The perforce version is vastly out of date. I believe there is a backport version of iwn available from 8.0 -> 7.1 as provided at: http://unix.derkeiler.com/Mailing-Lists/FreeBSD/stable/2008-09/msg00534.html This might be the better option to try.

  • 16hot said,


    I have some error:

    iwn0: mem 0xf2500000-0xf2501fff irq 17 at device 0.0 on pci3
    iwn0: Reg Domain: , address 00:22:fa:61:93:8e
    iwn0: iwn_read_eeprom_ht40: no entry for channel 124
    iwn0: iwn_read_eeprom_ht40: no entry for channel 132
    iwn0: iwn_read_eeprom_ht40: no entry for channel 149
    iwn0: iwn_read_eeprom_ht40: no entry for channel 157
    iwn0: Ethernet address: 00:22:fa:61:93:8e
    iwn0: [ITHREAD]
    iwn0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
    iwn0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
    iwn0: 11ng MCS: 6.5Mbps 13Mbps 19.5Mbps 26Mbps 39Mbps 52Mbps 58.5Mbps 65Mbps 13Mbps 26Mbps 39Mbps 52Mbps 78Mbps 104Mbps 117Mbps 130Mbps
    iwn0: iwn_transfer_firmware: invalid firmware header, main [128504,49152], init [118176,49152] boot 0
    iwn0: iwn_init: could not load firmware, error 22

  • Benjamin Close said,

    Howdy, I’ll need some more logs in order to diagnose this. Can you send me the output of dmesg (please boot verbosely) and pciconf -lv to [email protected] so I can try and work out why things aren’t working.

  • leaf vacuum said,

    Informative place and thanks for this update.

Add A Comment