HEADS UP: ndis(4) updated, please test
Sascha Wildner
saw at online.de
Wed Sep 7 13:40:54 PDT 2011
Hello,
I just pushed an upgrade of ndis(4) and have this to say about it:
First of all, be warned that USB adapter support is unstable, which means,
it might attach, it might even "ifconfig up" or something similar but will
likely panic on either. But I plan to look into that.
PCI adapters (and maybe PC Card adapters), on the other hand, work like a
charm (at least those four which Max Herrgard and I tested), if (and most
likely only if) you turn off ioapic via loader.conf: hw.ioapic_enable=0.
As I wrote in the commit message, I don't know why this is so, and it is
kinda hard to debug because the symptom is that the box will freeze
completely after a short while without doing so. This was observed on two
different boxes with all cards tested.
That said, if you are still interested, here are some instructions to get
you started:
* You'll need to upgrade world and kernel to current master.
* You'll need the Windows drivers for the card, obviously. Actually,
Windows XP drivers (either 32 bit or 64 bit, depending on your DragonFly
architecture). Server 2003 drivers might work but it is not tested.
Specifically, you will need the .sys and .inf files for the card. You'll
also need firmware files if they are needed for the card (ending in .bin).
Check the CD-ROM that came with the card or look on the net. You might
find that they come as a .cab or .exe file. In this case "cabextract" or
"unshield" from pkgsrc might help to extract them. Also, 7zip is sometimes
able to extract those files. Another Windows program that has shown good
results is the "Universal Extractor". If all that fails, please mail me or
poke me on the #dragonflybsd IRC channel on EFNet and we might be able to
figure it out (I might have it already or we can install it in a VM and
locate the files, for example). Getting hold of the drivers can sometimes
be the most difficult part of getting going with ndis(4).
* Once you have the files, run "ndisgen foo.inf foo.sys" on them (replace
"foo" accordingly). ndisgen(8) is an interactive script. Follow the
instructions, remember to specify the firmware files too (if needed) and
if all goes well, it will compile the driver/firmware module(s) for you.
Sometimes it will error on a specific line of the .inf file. Go and check
that line in the editor. Errors can have various reasons. Sometimes it's a
missing newline at the end of the file's last line, sometimes a missing
semicolon, sometimes something else. If you can't figure out what to fix,
again, mail me or contact me in IRC, or here.
* After a successful run of ndisgen you'll find one or more .ko files in
the current dir. Move the one named *_sys.ko to /boot/kernel and move any
remaining *.ko files (should be there if there was firmware to convert) to
/compat/ndis.
Now you are ready to use the driver the usual way. kldload it, set up the
wlan and test. For example, given a valid wpa_supplicant config, the
following might work:
In /boot/loader.conf:
foo_sys_load=yes #replace foo with your module name
In /etc/rc.conf:
wlans_ndis0="wlan0"
ifconfig_wlan0="up DHCP WPA"
It might be wise to first load the module manually and play with it a
little bit.
If all attaches and sets up properly, you will very likely notice that the
box will freeze after a while. If this happens (and I've never seen it not
happening), add "hw.ioapic_enable=0" to /boot/loader.conf. The card should
then work.
In any case: I'm interested in all results you people have with it.
Have fun,
Sascha
More information about the Users
mailing list