i've done this on FreeBSD 8.0 so it could change a little for other versions.
UPDATED 12/10/2009
i've updated the how-to, there were some errors before, now it should be fine i think.
i've tried to keep this howto as simple as i can but please:
read ALL the post, and understand what you are doing don't simply copy/paste, i'm NOT responsible for any damage, loss, ghosts inside your pc...
i've tested the script a few times, it should work fine.
1. download the tar attached to the post.
if you have wget jump to point 3
2. download the driver and put it in the same directory as the tar.
3. unpack the tar file containing the script and execute it:
ndisgen will ask some questions, just press enter at every question.
at the end of the process you should see:
(should be the same directory as the script)
4. now we have to copy the driver in kernel's directory and load it:
a new interface "ndis0" should be created.
5.
6. create a wpa_supplicant.conf
for example containing:
if it doesn't work try playing with these values and adding them to the top (read wpa_supplicant.conf(5)())
we could also add the informations to rc.conf to avoid to do this at every reboot, as proposed by richardpl:
there can be some problems in the process though:
regards
ocean
ocean said:iwi driver should work with 8.0 generic, with a compiled kernel there are problems with an interrupt storm, i did read something about an interrupt storm fix in 8.0-STABLE, this could be related.
i think this solution should be used if isn't possible to get iwi working at all (for example if it's compulsory to use a compiled kernel, and sometimes also ndis fails on this because of the interrupt storm)
UPDATED 12/10/2009
i've updated the how-to, there were some errors before, now it should be fine i think.
i've tried to keep this howto as simple as i can but please:
read ALL the post, and understand what you are doing don't simply copy/paste, i'm NOT responsible for any damage, loss, ghosts inside your pc...

i've tested the script a few times, it should work fine.
1. download the tar attached to the post.
if you have wget jump to point 3
2. download the driver and put it in the same directory as the tar.
3. unpack the tar file containing the script and execute it:
Code:
tar -xvf gen_ndis_ipw.tar.gz
chmod +x gen_ndis_ipw.sh
./gen_ndis_ipw.sh
ndisgen will ask some questions, just press enter at every question.
at the end of the process you should see:
Code:
w29n51_sys.ko kernel module has been created here: /some/directory
4. now we have to copy the driver in kernel's directory and load it:
Code:
su
cp w29n51_sys.ko /boot/kernel
echo 'w29n51_load="YES"' >> /boot/loader.conf
kldload w29n51_sys.ko
a new interface "ndis0" should be created.
5.
Code:
ifconfig wlan0 create wlandev ndis0
6. create a wpa_supplicant.conf
for example containing:
Code:
network={
ssid="home"
scan_ssid=1
key_mgmt=WPA-PSK
psk="very secret passphrase"
}
if it doesn't work try playing with these values and adding them to the top (read wpa_supplicant.conf(5)())
Code:
ap_scan=1
eapol_version=1
fast_reauth=1
Code:
wpa_supplicant -Dndis -iwlan0 -B -cwpa_supplicant.conf
dhclient wlan0
we could also add the informations to rc.conf to avoid to do this at every reboot, as proposed by richardpl:
richardpl said:You dont need to manually run wpa_supplicant for ndis0's wlan0 every time machine boot:
Put this into /etc/rc.conf
Code:wlans_ndis0="wlan7" ifconfig_wlan7="WPA SYNCDHCP"
and your wpa_supplicant.conf should be in /etc dir.
there can be some problems in the process though:
- sometimes could be necessary to restart interfaces
Code:/etc/rc.d/netif restart
- keep present you shouldn't use iwi driver togheter so do NOT compile your kernel with it, and do NOT load it from loader.conf.
if it's already loaded execute this as root:
Code:echo 'if_iwi_load="NO"' >> loader.conf
- can happen to find error messages like
Code:firmware stuck in state 4
regards
ocean