Re: New driver loading scheme for Project Evil, need input

From: Daniel O'Connor <doconnor_at_gsoft.com.au>
Date: Wed, 20 Apr 2005 12:21:38 +0930
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

Received on Wed Apr 20 2005 - 00:51:48 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:32 UTC