Subject: Converting Windows(r) NDIS drivers for use with NetBSD?
To: None <tech-kern@netbsd.org>
From: Jeremy C. Reed <reed@reedmedia.net>
List: tech-kern
Date: 02/26/2004 12:32:26
FreeBSD has:

http://www.freebsd.org/cgi/man.cgi?query=ndiscvt&apropos=0&sektion=0&manpath=FreeBSD%205.2-current&format=html
http://www.freebsd.org/cgi/man.cgi?query=ndis&sektion=4&apropos=0&manpath=FreeBSD+5.2-curent

This ndiscvt(8) manpage says: "The ndiscvt utility transforms a Windows(r)
NDIS driver into a data file which is used to build an ndis(4)
compatibility driver module."

And the ndis(4) says: "The ndis driver is a wrapper designed to allow
binary Windows(r) NDIS miniport network drivers to be used with FreeBSD.
The ndis driver is provided in source code form and must be combined with
the Windows(r)  driver supplied with your network adapter."

The man pages say it was written by Bill Paul of WindRiver. It also says
to also see
       NDIS 5.1 specification, http://www.microsoft.com.

I heard about this at the Seattle-area BSD users group meeting.

I believe the project is called "Project Evil".

So a few days ago, this student I was teaching had a Dell Inspiron 8500
laptop with a built-in Dell Truemobile 1300 wireless device. (It was not
configured, but the firewire and bfe0 cards were configured fine with
FreeBSD.)

He downloaded the zip file containing the Windows (Xp?) driver from Dell's
site.

We upgraded his FreeBSD 5.2 system to -current.

Then ran the ndiscvt tool to generate the ndis and if_ndis kernel module
headers using the Windows driver's .sys and .inf files.

Then ran make in sys/modules/ndis and sys/modules/if_ndis. Then make
install for them too.

Then kldload worked (for both modules) and the ndis0 interface was
available and showed up in the ifconfig output.

This student said the wireless card worked fine using that ndis0 driver
back at his hotel.

So my question is: has anyone looked at porting ndis code for NetBSD?

   Jeremy C. Reed
   http://bsd.reedmedia.net/

p.s. Please Cc me on replies.