ValveSoftware / SteamVR-for-Linux

Issue tracker for the Linux port of SteamVR
921 stars 45 forks source link

[Feature Request] 3rd party SteamVR windows drivers under linux via proton?`- cybershoes #265

Open frostworx opened 4 years ago

frostworx commented 4 years ago

I recently ordered "cybershoes" which do not come with linux drivers. Their friendly support told me, that they would port their drivers to linux if there was more interest, but I was the only one who asked. They even offered a refund, but I want them anyway :) I do not have the shoes yet, but the drivers can be found here: https://www.cybershoes.io/support/ (nsis installer, installable with proton, comes with a qt5 cybershoes gui and some steamvr cybershoes and driver_vrinputemulator drivers ( https://github.com/matzman666/OpenVR-InputEmulator)). Even if the driver_vrinputemulator could be built for linux (not sure yet) there is still the proprietary cybershoes part. So I'd like to ask if it would be possible somehow to use the windows cybershoes drivers with SteamVR for linux, maybe using proton? Or maybe wrap the dlls with tavisos loadlibrary or something similar.

frostworx commented 4 years ago

I received the shoes today.

1) the usb cybershoes wireless receiver is detected as /dev/ttyACM0 idVendor=31d4, idProduct=1001 no need to sync the shoes: I powered them on by pressing a button and they immediately connect to the receiver. catting /dev/ttyACM0 returns lines like:

{ "device": 0, "y": 0.00, "IMUyaw": 144.59, "Rotation": 250, "CHN": 0, "L_max": 0, "rawy": 28, "q0": 0.47, "q1": -0.00, "q2": 0.77, "q3": 0.42, "L_thr": -80, "slider": 94.00, "lat": 30, "battery": 40, "dist": 1.17, "w": 0, "VerHW": 33, "VerFW": 3, "ed": 0 }
{ "device": 1, "y": 0.00, "IMUyaw": -87.38, "Rotation": 224, "CHN": 0, "L_max": 0, "rawy": 22, "q0": 0.67, "q1": 0.24, "q2": -0.68, "q3": -0.16, "L_thr": -80, "slider": 94.00, "lat": 30, "battery": 41, "dist": 1.17, "w": 0, "VerHW": 33, "VerFW": 3, "ed": 0 }

where device 0 is one and device 1 the other shoe. moving the rolls of the shoes changes the values as it should, so I guess basic functionality is already here ootb. 2) I copied the (proton installed) windows drivers into my linux SteamVR/drivers/ path and registered the external driver via /path/to/native/SteamVR/bin/linux64/vrpathreg $PWD (changed before into cybershoes drivers path copied before). for obvious reasons this is not enough, as drivers/cybershoes/bin/win64/* is windows stuff (mainly dlls) there's also a second driver_vrinputemulator (see above), which is opensource. as the shoes already deliver their data there might be a chance to $port (?) those drivers to linux and adjust the values as required.(?)

3) I also tried to start the (probably optional) windows CyberGUI using proton and wine, but it segfaults with X11DRV_wglGetPixelFormatAttribivARB unsupported 2008 WGL Attribute haven't debugged this any further

frostworx commented 4 years ago

the code of OpenVR-InputEmulator doesn't look really portable, last but not least because of its windows only MinHook third party dependency :(

dikonov commented 3 years ago

I would uphold the request to add cybershoes as a supported input device.

Patola commented 3 years ago

I'm interested in that too!

frostworx commented 3 years ago

This driver fork https://github.com/Dschadu/OpenVR-MotionCompensation is the most active one. As it is still being actively developed it seems that openvr-input still works in steam.

johnblommers commented 1 year ago

Over two years have passed.

Is there any progress with using Cybershoes under Steam VR on the Linux platform.