I have a flight sim, PhoenixRC, which I'd like to get working under Wine. As of a couple months ago most of the DirectX problems have been fixed, but the game uses a USB adapter to connect various controllers to the computer. The USB adapter is an HID and is recognized by Linux; however I can't get it to work through Wine. At least part of the problem seems to be that SetupDiGetClassDevs calls SETUPDI_EnumerateInterfaces which tries to open registry keys that don't exist. There isn't an entry in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses for HID interfaces, in fact that whole set of registry keys seems to be missing. Is anyone working on patches to make this work, or can someone point me to the function(s) that need to be implemented for HIDs to be setup in the registry correctly? I'm not sure when/how those keys are suppose to be created. Thanks, Christopher Berner
Hi Christopher,
There isn't an entry in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses for HID interfaces, in fact that whole set of registry keys seems to be missing. Is anyone working on patches to make this work, or can someone point me to the function(s) that need to be implemented for HIDs to be setup in the registry correctly? I'm not sure when/how those keys are suppose to be created.
Those should be created by explorer; see hal.c. No one's working on this that I know of. --Juan
Hello Luang,
2008/3/25, Juan Lang juan.lang@gmail.com:
There isn't an entry in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses for HID interfaces, in fact that whole set of registry keys seems to be missing. Is anyone working on patches to make this work, or can someone point me to the function(s) that need to be implemented for HIDs to be setup in the registry correctly? I'm not sure when/how those keys are suppose to be created.
Those should be created by explorer; see hal.c. No one's working on this that I know of.
I have been working on hal, but it's mostly moving everything to mountmgr so I can get ipods (except iphone/ipod touch) working, if you populate control\deviceclasses and control\enum a hid device is 'added'. Just copy those keys from a windows installation.
Cheers, Maarten.
Maarten Lankhorst wrote:
Hello Luang,
2008/3/25, Juan Lang juan.lang@gmail.com:
There isn't an entry in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses for HID interfaces, in fact that whole set of registry keys seems to be missing. Is anyone working on patches to make this work, or can someone point me to the function(s) that need to be implemented for HIDs to be setup in the registry correctly? I'm not sure when/how those keys are suppose to be created.
Those should be created by explorer; see hal.c. No one's working on this that I know of.
I have been working on hal, but it's mostly moving everything to mountmgr so I can get ipods (except iphone/ipod touch) working, if you populate control\deviceclasses and control\enum a hid device is 'added'. Just copy those keys from a windows installation.
Cheers, Maarten.
Thanks! SetupDiGetClassDevs and GetDeviceInterfaceData seem to work now, but GetDeviceInterfaceDetailData causes several errors. I'll look into it now that I have somewhere concrete to start. Christopher
Hello Christopher,
2008/3/25, Christopher raccoonone@procyongames.com:
Maarten Lankhorst wrote:
Hello Luang,
2008/3/25, Juan Lang juan.lang@gmail.com:
There isn't an entry in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses for HID interfaces, in fact that whole set of registry keys seems to be missing. Is anyone working on patches to make this work, or can someone point me to the function(s) that need to be implemented for HIDs to be setup in the registry correctly? I'm not sure when/how those keys are suppose to be created.
Those should be created by explorer; see hal.c. No one's working on this that I know of.
I have been working on hal, but it's mostly moving everything to mountmgr so I can get ipods (except iphone/ipod touch) working, if you populate control\deviceclasses and control\enum a hid device is 'added'. Just copy those keys from a windows installation.
Cheers, Maarten.
Thanks! SetupDiGetClassDevs and GetDeviceInterfaceData seem to work now, but GetDeviceInterfaceDetaiData causes several errors. I'll look into it now that I have somewhere concrete to start.
It probably asks for the specific keys in \ENUM\category\devicename\idname so if you copy these over it will probably work. WINEDEBUG=+setupapi is your friend.
Cheers, Maarten.
Maarten Lankhorst wrote:
It probably asks for the specific keys in \ENUM\category\devicename\idname so if you copy these over it will probably work. WINEDEBUG=+setupapi is your friend.
Cheers, Maarten.
Thanks for the suggestion. I tried that, and now that some page fault bugs are fixed it gets a little further. However looking at the +setupapi,+hid traces there are a whole bunch of calls to SetupDiEnumDeviceInterfaces and SetupDiGetDeviceInterfaceDetailA, but after that nothing and the controller still isn't detected by PhoenixRC. Anyone have a suggest as to what I should look into next? I've tried transferring both the deviceclasses regkey for HID, and the enum regkeys for HID.
Thanks, Christopher