how to build wine with USB support ?
Hi I'm trying to use USB devices for Data acquisition on wine. The recording software is proprietary, but runs on wine. (It IgorPro with some binary called FPulse, and MultiClamp Commander 700B). The problem occurs only when trying to connect to the recording device through USB. I've already found the page [1] and trying to build wine with the recommended patch. Unfortunately, the current patches [2] do not apply cleanly to the most recent version of wine-git. Therefore, I'm asking what the recommended approach is ? Is there a more recent set up patches ? The once from [2] have been updated last in Jun 2012 ? Or would you recommend using the sources of wine from that date ? Kind regards, Alois [1] http://wiki.winehq.org/USB [2] ftp://ftp.etersoft.ru/pub/people/amorozov/usb/current/
"Alois" == Alois Schlögl <alois.schloegl(a)gmail.com> writes:
Alois> Hi I'm trying to use USB devices for Data acquisition on Alois> wine. The recording software is proprietary, but runs on Alois> wine. (It IgorPro with some binary called FPulse, and MultiClamp Alois> Commander 700B). The problem occurs only when trying to connect Alois> to the recording device through USB. How is the device accessed? Is it offering a serial device (comX)? Is it perhaps using the FTDI device and the ftd2xx driver? Or is it using an own kernel mode driver? Only when using an own kernel mode driver, [1] is needed. If it is a serial device, add the device to the wine configuration. If it is using the ftd2xx driver, I can send you a patch to add a wine dll that translates the windows ftd2xx calls to linux ftd2xx calls. Perhaps run a "WINEDEBUG=+relay log" to see how the device is accessed. Alois> I've already found the page [1] and trying to build wine with the Alois> recommended patch. Unfortunately, the current patches [2] do not Alois> apply cleanly to the most recent version of wine-git. Therefore, Alois> I'm asking what the recommended approach is ? Alois> Is there a more recent set up patches ? The once from [2] have Alois> been updated last in Jun 2012 ? Or would you recommend using the Alois> sources of wine from that date ? Probably using a equal old wine would be best if you need [1]. Bye -- Uwe Bonnes bon(a)elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
On 2014-03-17 13:43, Uwe Bonnes wrote:
"Alois" == Alois Schlögl <alois.schloegl(a)gmail.com> writes: Alois> Hi I'm trying to use USB devices for Data acquisition on Alois> wine. The recording software is proprietary, but runs on Alois> wine. (It IgorPro with some binary called FPulse, and MultiClamp Alois> Commander 700B). The problem occurs only when trying to connect Alois> to the recording device through USB.
How is the device accessed? Is it offering a serial device (comX)? Is it perhaps using the FTDI device and the ftd2xx driver? Or is it using an own kernel mode driver?
In one case, HKLM\System\CurrentControlSet\Services\<driver name> points to system32\Driver\hidusb.sys; in the other case, no driver name is specified. It most likely uses a vendor specific interface - and its not an interface for a serial protocol.
Only when using an own kernel mode driver, [1] is needed.
I'm afraid there is no way around it.
If it is a serial device, add the device to the wine configuration. If it is using the ftd2xx driver, I can send you a patch to add a wine dll that translates the windows ftd2xx calls to linux ftd2xx calls.
Yes, I'd be interested in that one, too.
Perhaps run a "WINEDEBUG=+relay log" to see how the device is accessed.
Alois> I've already found the page [1] and trying to build wine with the Alois> recommended patch. Unfortunately, the current patches [2] do not Alois> apply cleanly to the most recent version of wine-git. Therefore, Alois> I'm asking what the recommended approach is ?
Alois> Is there a more recent set up patches ? The once from [2] have Alois> been updated last in Jun 2012 ? Or would you recommend using the Alois> sources of wine from that date ?
Probably using a equal old wine would be best if you need [1].
Bye
Cheers, Alois
"Alois" == Alois Schlögl <alois.schloegl(a)gmail.com> writes:
... Alois> Yes, I'd be interested in that one, too. https://github.com/UweBonnes/wine, branch ftd2xx. -- Uwe Bonnes bon(a)elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
"Alois" == Alois Schlögl <alois.schloegl(a)gmail.com> writes:
Alois> In one case, HKLM\System\CurrentControlSet\Services\<driver name> Alois> points to system32\Driver\hidusb.sys; Can you show the exports of hidusb.sys? Maybe it is also a good candidate for a replacement dll. Bye -- Uwe Bonnes bon(a)elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
On 2014-03-17 17:22, Uwe Bonnes wrote:
"Alois" == Alois Schlögl <alois.schloegl(a)gmail.com> writes:
Alois> In one case, HKLM\System\CurrentControlSet\Services\<driver name> Alois> points to system32\Driver\hidusb.sys;
Can you show the exports of hidusb.sys? Maybe it is also a good candidate for a replacement dll.
Bye
I'm not sure how to export that information. nm does not work because its a sys file. pefile gives quite some information but no export section. grep Hint pefile_output lists this: ntoskrnl.exe.ExFreePool Hint[77] ntoskrnl.exe.ExAllocatePoolWithTag Hint[65] ntoskrnl.exe.KeSetEvent Hint[598] ntoskrnl.exe.IofCallDriver Hint[482] ntoskrnl.exe.KeWaitForSingleObject Hint[621] ntoskrnl.exe.MmMapLockedPages Hint[687] ntoskrnl.exe.InterlockedDecrement Hint[278] ntoskrnl.exe.IoBuildDeviceIoControlRequest Hint[302] ntoskrnl.exe.InterlockedIncrement Hint[281] ntoskrnl.exe.KeResetEvent Hint[588] ntoskrnl.exe.InterlockedExchange Hint[279] ntoskrnl.exe.IoInvalidateDeviceState Hint[385] ntoskrnl.exe.IoQueueWorkItem Hint[401] ntoskrnl.exe.InterlockedCompareExchange Hint[277] ntoskrnl.exe.IoAllocateWorkItem Hint[294] ntoskrnl.exe.IoCancelIrp Hint[307] ntoskrnl.exe.KeTickCount Hint[614] ntoskrnl.exe.KeBugCheckEx Hint[502] ntoskrnl.exe.PoCallDriver Hint[822] ntoskrnl.exe.KeInitializeSpinLock Hint[542] ntoskrnl.exe.KeInitializeEvent Hint[536] ntoskrnl.exe.IoFreeWorkItem Hint[355] ntoskrnl.exe.IofCompleteRequest Hint[483] HIDCLASS.SYS.HidRegisterMinidriver Hint[3] USBD.SYS.USBD_ParseConfigurationDescriptorEx Hint[22] USBD.SYS.USBD_CreateConfigurationRequestEx Hint[6] -- Alois
"Alois" == Alois Schlögl <alois.schloegl(a)gmail.com> writes:
Alois> On 2014-03-17 17:22, Uwe Bonnes wrote: >>>>>>> "Alois" == Alois Schlögl <alois.schloegl(a)gmail.com> writes: >> Alois> In one case, HKLM\System\CurrentControlSet\Services\<driver name> Alois> points to system32\Driver\hidusb.sys; >> >> Can you show the exports of hidusb.sys? Maybe it is also a good >> candidate for a replacement dll. >> >> Bye >> Alois> I'm not sure how to export that information. nm does not work Alois> because its a sys file. pefile gives quite some information but Alois> no export section. grep Hint pefile_output lists this: ... Alois> ntoskrnl.exe.IofCompleteRequest Hint[483] Alois> HIDCLASS.SYS.HidRegisterMinidriver Hint[3] Alois> USBD.SYS.USBD_ParseConfigurationDescriptorEx Hint[22] ... It looks like hidusb.sys only exports some way to register another (mini) driver. Probably this minidriver creates some device. How does the application talk to that device. Probably another dll is involved or access happens with Read|WriteFile() to that device. But I am only guessing, I have no experience with HID. Bye -- Uwe Bonnes bon(a)elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
Hi, For some kinds of HID device which is also CCID compliant, it might be worth to check scard4wine (winscard.dll.so) as well: http://sourceforge.net/projects/scard4wine/ http://pcsclite.alioth.debian.org/ccid.html#CCID_compliant Good luck :p
participants (3)
-
Alois Schlögl -
Qian Hong -
Uwe Bonnes