CFT/CFR: NDIS(4) USB support
weongyo.jeong at gmail.com
Thu Aug 28 05:47:33 UTC 2008
On Sun, Aug 24, 2008 at 12:09:32PM +0200, Paul B. Mahol wrote:
> On 8/23/08, Paul B. Mahol <onemda at gmail.com> wrote:
> > On 7/24/08, Weongyo Jeong <weongyo.jeong at gmail.com> wrote:
> >> Hello All,
> >> It looks that NDIS USB support works for some USB wireless drivers so
> >> I'd like to call for tests to everyone who interested in NDIS for
> >> FreeBSD. I have 7 USB wireless adapters and with current NDIS USB
> >> support 4 of 7 adapters are supported. The detail is as follows:
> >> Working:
> >> U-Khan UW-2054i (Marvell Libertas chipset)
> >> Netgear WG111v2 (Intersil/Prism chipset) - supported by upgt(4)
> >> EFM-IPTIME G054U2 (Ralink RT2573) - supported by rum(4)
> >> ZCOM XM-142 (Intersil/Prism chipset, another revision)
> >> Not working:
> >> Unicorn WL-54G (ZyDAS zd1211b chipset) - supported by zyd(4)
> >> Attaching is working sucessfully and LED works fine but it's not
> >> UPed.
> >> Zyxel G-200v2 (ZyDAS zd1211 chipset) - supported by zyd(4)
> >> The sympotom is same with Unicorn WL-54G.
> >> SMCWUSBT-G-CA EZ 108Mbps (Atheros chipset)
> >> This NDIS driver uses some functions which aren't supported by
> >> current NDIS implementation. So I can't test it now.
> >> The patch for HEAD can be found at:
> >> http://people.freebsd.org/~weongyo/patch_ndisusb_20080724.diff
> >> When you try to test this patch, you should make sure that ndiscvt(8)
> >> is updated. Some instructions like below could be helpful:
> >> # cd /usr/src
> >> # patch -p0 < ~/patch_ndisusb_20080724.diff
> > Here it asked me politely what to do:
> > I dont have share/man/man4/man4.i386/ndis.4
> > but I have share/man/man4/ndis.4
> >> # cd usr.sbin/ndiscvt
> >> # make && make install
> >> # cd ~/
> >> # ndisgen ABC.inf ABC.sys
> >> # cd /usr/src/sys/modules/ndis
> >> # make
> >> # kldload ./ndis.ko
> > Here I get:
> > link_elf: symbol M_USBDEV undefined
> Workaround is to build custom kernel with usb stuff ..
> I tested Edimax EW-7318Ug and EW-7318USg, both partialy supported
> with rum(4), mostly because of rx/tx low signals and crashing on
> SMP kernel.
> I got following kernel output on console:
> no match for ZwWriteFile
> no match for ZwCreateFile
> no match for ZwReadFile
> But both cards works fine, scan outputs are working and signal strength is
> great (comparing with rum(4)) Also association and data transfer works.
> It appears to deadlock if device is detached before module (rt73_sys.ko
> in this case) is unloaded, looks like usb problem to me.
> Before it got to HEAD, I would like if newly introduced linking bug got fixed.
It's great to hear success! In a case of `no match for ...' errors you
can ignore those if you didn't meet a panic. It's only harmful when NDIS
driver call it so I think your NDIS driver don't use. These functions
are on TODO list to implement and can be supported soon.
Currently detaching NDIS driver could make some problems like deadlocks
or panics and AFAIK it's related with aborting USB pipe(IRP cancelling)
and locking. It's one of problems to fix hard due to the form of
current USB framework (requiring Giant).
> > and kernel will not load it.
> > I have custom kernel without usb stuff (it is loaded via module)
> > The only place where M_USBDEV is defined is in sys/dev/usb/usb.h
> > and I'm somehow at dead end.
> >> # cd /usr/src/sys/modules/if_ndis
> > I can load new if_ndis.ko with old ndis.ko but that is not usefull.
> >> # make
> >> # kldload ./if_ndis.ko
> >> # kldload ~/ABC_sys.ko
> >> It seems that the current status of NDIS USB support is beta status so
> >> I'm not sure I've implemented all features yet that it needs more
> >> debugging and stability. I don't have all H/Ws for testing! :)
> >> Please tell me if you were successful or you failed though it looks
> >> it's not easy to debug NDIS .sys binary using disassembler.
> >> Any help and comments are welcome. Thanks.
> >> regards,
> >> Weongyo Jeong
More information about the freebsd-current