On 12/30/06, Andrew Neil Ramage nrsc16850@blueyonder.co.uk wrote:
A franklin eBookMan using the provided Windows Software.
(By the way, it's bad practice to top-post bottom-posted emails.)
What interface does the device provide? Is it a mass-storage device? Or some vendor-specific protocol? Do "lsusb -v" and see the class and subclass -if they're 0xFF (vendor-specific), you're probably out of luck, because:
If the Windows software includes .SYS files, wine can't load those yet (although wine's NTOSKRNL.EXE is coming soon, right?)
Since wine is largely designed for running Windows applications on Linux, a lot of the hardware support infrastructure (SETUPAPI, CFGMGR, ...) is still missing. At present, a Windows app cannot directly access the hardware, only indirectly (for example, it can save a file to a mass-storage device supported by Linux, or communicate through a USB ethernet controller supported by Linux).
Now in Windows, applications don't access USB directly either (Windows only allows USB control packets from user-space, not bulk, interrupt or isochronous, and no app I know uses that interface anyway). What apps usually do is open a .SYS device driver (eg. \.\USBSCAN0\2) and use ReadFile to send bulk data, WriteFile to receive bulk data, and DeviceIoControl for everything else. So in theory if you figure out the interface between the application and the driver in Windows, you can write a kernel module for Linux that does the same, and your app can communicate with the hardware. Wine currently doesn't do this at all, although I've written a semi-complete implementation of STI and USBSCAN.SYS this way, and it works with native TWAIN drivers.
Damjan
Andrew
On 12/30/06, Andrew Neil Ramage nrsc16850@blueyonder.co.uk wrote:
How do you get a Windows program access to the USB port ?
What are you trying to do? What device are you accessing?
Andrew
Damjan
-- Andrew Ramage