Wine device drivers proposal

Kuba Ober kuba at mareimbrium.org
Fri Apr 1 16:15:04 CST 2005


> I am not trying to _load_ a Windows driver (that
> either requires kernel support for the Windows DDK,
> like ndiswrapper has, or emulation of an entire x86,
> like bochs does).

Not really. It just needs some sort of device-class-specific forwarding 
protocol. usbfs and libusb already do that, and you should be able to run any 
windows driver that way without even touching the kernel. ndiswrapper does 
what it does because they want to expose non-usb devices and to the whole 
linux system at that. I.e. they support pci devices as well as usb. If they 
wanted to support usb only, it's all plain userspace. You can emulate network 
adapters in userspace using  TAP or however it's called, and you can talk to 
arbitrary usb devices from userspace via usbfs and libusb.

In fact, for a wide variety of PCI drivers out there it should be perfectly 
feasible to provide a "short-circuit" kernel driver that could expose full 
access to a PCI device do a userland application, thus allowing wine to 
support arbitrary PCI devices as well. Considering that 2.6 kernel already 
has hardware abstraction that disconnects actual hardware accesses (like 
port/read writes and so on) from the logic of the PCI device drivers, it 
wouldn't be that hard to make such a gizmo.

http://vtun.sourceforge.net/tun/faq.html
http://libusb.sourceforge.net/

Cheers, Kuba



More information about the wine-devel mailing list