New driver loading scheme for Project Evil, need input

Daniel O'Connor doconnor at gsoft.com.au
Tue Apr 19 19:51:48 PDT 2005


On Wed, 20 Apr 2005 08:26, Bill Paul wrote:
> The objcopy(1) trick basically produces an ELF file that has the
> Windows .SYS file encapsulated with in it. Two symbols are created
> to denote the start end end of the image so that it can be loaded later.
> The windrv_stub.o module linked with the Windows image provides a
> small FreeBSD modevent handler that hooks the driver into Project
> Evil and eventually causes a bus-reprobe. This means that all you
> have to do is kldload this one module into the kernel, and presto!
> a new ndisX networking interface appears.

What about if you want to use >1 NDIS driver? How will it avoid symbol name 
collisions?

> The end result is that installing a Windows driver should be as simple
> as:
>
> - run the script
> - give it your foo.inf and foo.sys files when it asks you
> - it spits out a foo_sys.ko module and you kldload it
> - the end

Sounds much nicer :)

> You still end up needing the C compiler, objcopy, ndiscvt and (optionally)
> iconv, but the script automates the use of all these tooks and explains
> to the user what's going on while it's working.

It's certainly simpler than the current state of afairs and unless the kernel 
NDIS grows the ability to directly read .sys & .inf files from your disk 
(which would be very cool :) it's about a simple as it's going to get..

> - What should the script be called? wintobsd.sh sounds kind of lame.

encappe
win2elf
pe2elf

-- 
Daniel O'Connor software and network engineer
for Genesis Software - http://www.gsoft.com.au
"The nice thing about standards is that there
are so many of them to choose from."
  -- Andrew Tanenbaum
GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20050420/5b03b302/attachment-0001.bin


More information about the freebsd-current mailing list