DragonFly BSD
DragonFly users List (threaded) for 2011-09
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

HEADS UP: ndis(4) updated, please test

From: "Sascha Wildner" <saw@xxxxxxxxx>
Date: Wed, 07 Sep 2011 22:40:54 +0200


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:

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,

[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]