intiface / intiface-desktop

DEPRECATED - USE INTIFACE CENTRAL - Desktop GUI App for Intiface Service Usage
https://intiface.com/central
Other
55 stars 7 forks source link

On Linux - intiface crashes when starting server #182

Open LeGrosFromage opened 1 year ago

LeGrosFromage commented 1 year ago

This is on a clean build of Fedora 36 and beta Fedora 37 - attempting to start the server crashes the process:

/intiface-desktop-27.0.0-linux-x64$ ./intiface-desktop (node:31848) ExtensionLoadWarning: Warnings loading extension at /home/phil/.config/intiface-desktop/extensions/nhdogjmejiglipccpnnnanhbledajbpd: Unrecognized manifest key 'browser_action'. Unrecognized manifest key 'update_url'. Cannot load extension with file or directory name metadata. Filenames starting with "" are reserved for use by the system.

(Use intiface-desktop --trace-warnings ... to show where the warning was created) {"logType":"backend","location":"ElectronIntifaceInitializer","message":"Bringing up Electron Intiface Backend.","level":"debug","timestamp":"2022-10-10T15:31:32.246Z"} {"logType":"backend","location":"General","message":"Creating Backend Manager","level":"debug","timestamp":"2022-10-10T15:31:32.248Z"} {"logType":"backend","location":"St","message":"Constructing Backend Manager","level":"debug","timestamp":"2022-10-10T15:31:32.258Z"} /home/phil/.config/IntifaceDesktop/engine/IntifaceCLI {"logType":"backend","location":"St","message":"Online check: true","level":"debug","timestamp":"2022-10-10T15:31:32.326Z"} {"logType":"backend","location":"St","message":"Received ready signal from frontend","level":"debug","timestamp":"2022-10-10T15:31:32.489Z"} {"logType":"backend","location":"St","message":"Updating frontend configuration.","level":"debug","timestamp":"2022-10-10T15:31:32.490Z"} {"logType":"frontend","location":"Ot","message":"Intiface desktop application frontend mounted","level":"info","timestamp":"2022-10-10T15:31:32.492Z"} {"logType":"frontend","location":"Ot","message":"Loaded Configuration:","level":"info","timestamp":"2022-10-10T15:31:32.495Z"} {"logType":"frontend","location":"Ot","message":{"_events":{},"_eventsCount":1,"serverName":"Intiface Server","serverMaxPingTime":0,"useWebsocketServerInsecure":true,"websocketServerAllInterfaces":false,"websocketServerInsecurePort":12345,"serverLogLevel":"Trace","usePrereleaseEngine":false,"currentEngineVersion":"v50","currentDeviceFileVersion":66,"checkForUpdatesOnStart":true,"hasRunSetup":true,"deviceFileUpdateAvailable":false,"engineUpdateAvailable":false,"applicationUpdateAvailable":false,"hasUsableEngineExecutable":true,"startServerOnStartup":false,"withBluetoothLE":true,"withSerialPort":false,"withHID":false,"withLovenseHIDDongle":false,"withLovenseSerialDongle":false,"withLovenseConnectService":false,"withXInput":true,"_isOnline":null},"level":"info","timestamp":"2022-10-10T15:31:32.495Z"} {"logType":"backend","location":"St","message":"Checking for updates.","level":"info","timestamp":"2022-10-10T15:31:32.608Z"} {"logType":"backend","location":"General","message":"Checking for update","level":"info","timestamp":"2022-10-10T15:31:32.608Z"} {"logType":"backend","location":"General","message":"Error: Error: ENOENT: no such file or directory, open '/home/phil/Downloads/intiface-desktop-27.0.0-linux-x64/resources/app-update.yml'","level":"error","timestamp":"2022-10-10T15:31:32.609Z"} {"logType":"backend","location":"St","message":"Application updater check failed: ENOENT: no such file or directory, open '/home/phil/Downloads/intiface-desktop-27.0.0-linux-x64/resources/app-update.yml'.","level":"warn","timestamp":"2022-10-10T15:31:32.610Z"} {"logType":"backend","location":"_t","message":"Constructing Github Release Manager","level":"debug","timestamp":"2022-10-10T15:31:32.618Z"} {"logType":"backend","location":"_t","message":"Checking for new engine version.","level":"debug","timestamp":"2022-10-10T15:31:32.618Z"} {"logType":"backend","location":"_t","message":"Current Engine Version: v50","level":"debug","timestamp":"2022-10-10T15:31:32.922Z"} {"logType":"backend","location":"_t","message":"Latest Engine Version: v50","level":"debug","timestamp":"2022-10-10T15:31:32.922Z"} {"logType":"backend","location":"_t","message":"Checking for new device file version","level":"debug","timestamp":"2022-10-10T15:31:32.922Z"} {"logType":"backend","location":"_t","message":"Current device file version: 66","level":"debug","timestamp":"2022-10-10T15:31:33.164Z"} {"logType":"backend","location":"_t","message":"Latest device file version: 66","level":"debug","timestamp":"2022-10-10T15:31:33.164Z"} {"logType":"backend","location":"St","message":"Has engine update: false","level":"info","timestamp":"2022-10-10T15:31:33.164Z"} {"logType":"backend","location":"St","message":"Has device file update: false","level":"info","timestamp":"2022-10-10T15:31:33.165Z"} {"logType":"backend","location":"St","message":"Updating frontend configuration.","level":"debug","timestamp":"2022-10-10T15:31:33.166Z"} /home/phil/.config/IntifaceDesktop/engine/IntifaceCLI {"logType":"backend","location":"N","message":"Running /home/phil/.config/IntifaceDesktop/engine/IntifaceCLI --servername Intiface Server --deviceconfig /home/phil/.config/IntifaceDesktop/buttplug-device-config.json --frontendpipe --stayopen --wsinsecureport 12345 --log Trace --without-hid --without-lovense-dongle-hid --without-lovense-dongle-serial --without-serial","level":"info","timestamp":"2022-10-10T15:31:35.584Z"} {"logType":"backend","location":"N","message":"Server process exited.","level":"debug","timestamp":"2022-10-10T15:31:35.590Z"} {"logType":"backend","location":"St","message":"Did not receive process ended message, process most likely crashed.","level":"error","timestamp":"2022-10-10T15:31:35.591Z"}

Looked at the faq and found the info about port 12345 - nothing is using that. I did a netstat and there isn't anything that's grabbed that port.

If there's more info I can provide, please let me know...

Kyr4l commented 1 year ago

FIX : You need libssl1.1

wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb
sudo dpkg -i libssl1.1_1.1.0g-2ubuntu4_amd64.deb
LeGrosFromage commented 1 year ago

Thanks... I'm on Fedora so I'll have to find an alternate rpm but at least I know what to look for now.

Thank you!

LeGrosFromage commented 1 year ago

Hmmmm... not entirely sure that's it:

[root@undertaker ~]# dnf install openssl-libs Last metadata expiration check: 1:24:05 ago on Wed 12 Oct 2022 09:53:20 AM CDT. Package openssl-libs-1:3.0.5-2.fc37.x86_64 is already installed. Package openssl-libs-1:3.0.5-2.fc37.i686 is already installed. Dependencies resolved. Nothing to do. Complete!

jorgecastro05 commented 1 year ago

The issue with fedora 36-37 is the upgraded version for openssl-libs in this system, intiface-desktop and the cli application requires an outdated version. The package compat-openssl11, adds the missing version for openssl lib that requires this application. This rpm package provides compatibility for the version required: https://centos.pkgs.org/9-stream/centos-appstream-x86_64/compat-openssl11-1.1.1k-3.el9.x86_64.rpm.html

VoidField101 commented 1 year ago

Fedora still has the openssl1.1 packages in the repo but they are named openssl1.1-1:1.1.1q-1.fc36.x86_64 I wouldn't install a rpm for it because they won't get updates and OpenSSL 1.1.1 still seems to get bugfix updates.

The other option seems to be rebuilding https://github.com/intiface/intiface-cli-rs on the latest rust toolchain Which should automatically link against OpennSSL 3 Then just copy the target/release/intiface-cli binary to ~/.config/IntifaceDesktop/engine/IntifaceCLI

PS: It seems like you can also force linking to OpenSSL when building the CLI with DEP_OPENSSL_VERSION_NUMBER=30000000 cargo build --release

VoidField101 commented 1 year ago

~~I also released a prebuild binary on the Discord server. But you can also download it here: \<Link removed>~~

Updated the CI in a fork to build for openssl3: https://github.com/voidfield101/intiface-cli-rs/releases/tag/v50-ssl3-t2

As mentioned previously, simply replace ~/.config/IntifaceDesktop/engine/IntifaceCLI with the IntifaceCLI in the .zip

LeGrosFromage commented 1 year ago

Thanks for the updates and advice... for other reasons I ditched Fedora and am (back) on Gentoo. The intiface-desktop works fine in of itself, the server starts and can scan for devices but never finds any.

VoidField101 commented 1 year ago

That sounds like it belongs to a separate issue.

I also have no idea about bluetooth on Gentoo. I can only link you to the bluetooth guide to make sure bluetooth itself is working: https://wiki.gentoo.org/wiki/Bluetooth Bluetooth on Linux is a bit weird.

LeGrosFromage commented 1 year ago

I agree it's a separate issue. But to respond to your point, Bluetooth is working on my install of Linux, in fact I can run a Windows VM in VirtualBox, pass Bluetooth through to that and initface running in that Windows VM connects to the toy.

VoidField101 commented 1 year ago

Issue is that passing trough into a VM does not prove it is working on Linux. It only proves the USB device is detected. Passing trough detaches the native Linux drivers and attaches the Windows drivers.

The way to show best that it is working on Linux is either by using blueman-manager and searching for devices (which should find the device) or you could to the same with bluetoothctl in the terminal. Especially if bluetoothctl isn't available then it is likely that the bluetooth services are not installed on your system.

LeGrosFromage commented 1 year ago

They're installed and I can add devices (phone etc) inside KDE.

phil@undertaker:~$ rfkill ID TYPE DEVICE SOFT HARD 1 wlan phy0 unblocked unblocked 3 bluetooth hci0 unblocked unblocked phil@undertaker:~$ systemctl status bluetooth ● bluetooth.service - Bluetooth service Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; preset: disabled) Active: active (running) since Sat 2022-10-22 21:57:12 CDT; 2 days ago Docs: man:bluetoothd(8) Main PID: 756 (bluetoothd) Status: "Running" CPU: 3.305s CGroup: /system.slice/bluetooth.service └─756 /usr/libexec/bluetooth/bluetoothd

Oct 24 09:21:16 undertaker bluetoothd[756]: Endpoint unregistered: sender=:1.54 path=/MediaEndpoint/A2DPSink/sbc_xq_552 Oct 24 09:21:16 undertaker bluetoothd[756]: Endpoint unregistered: sender=:1.54 path=/MediaEndpoint/A2DPSource/sbc_xq_552 Oct 24 09:35:57 undertaker bluetoothd[756]: Endpoint registered: sender=:1.54 path=/MediaEndpoint/A2DPSink/sbc Oct 24 09:35:57 undertaker bluetoothd[756]: Endpoint registered: sender=:1.54 path=/MediaEndpoint/A2DPSource/sbc Oct 24 09:35:57 undertaker bluetoothd[756]: Endpoint registered: sender=:1.54 path=/MediaEndpoint/A2DPSink/sbc_xq_453 Oct 24 09:35:57 undertaker bluetoothd[756]: Endpoint registered: sender=:1.54 path=/MediaEndpoint/A2DPSource/sbc_xq_453 Oct 24 09:35:57 undertaker bluetoothd[756]: Endpoint registered: sender=:1.54 path=/MediaEndpoint/A2DPSink/sbc_xq_512 Oct 24 09:35:57 undertaker bluetoothd[756]: Endpoint registered: sender=:1.54 path=/MediaEndpoint/A2DPSource/sbc_xq_512 Oct 24 09:35:57 undertaker bluetoothd[756]: Endpoint registered: sender=:1.54 path=/MediaEndpoint/A2DPSink/sbc_xq_552 Oct 24 09:35:57 undertaker bluetoothd[756]: Endpoint registered: sender=:1.54 path=/MediaEndpoint/A2DPSource/sbc_xq_552

LeGrosFromage commented 1 year ago

phil@undertaker:~$ bluetoothctl Agent registered [bluetooth]# list Controller B4:B5:B6:92:B8:46 undertaker [default] [bluetooth]#

VoidField101 commented 1 year ago

Do you have access to the Buttplug.io Discord, maybe this would be a better place to discuss this issue? There are multiple causes which can effect this outside of intiface or buttplug.io like bluetooth drivers, the bluetooth radio itself, the toy you want to connect, etc. I have a similar issue on my laptop that trough the linux driver the radio will report as being turned on, but it won't be visible to any device and it also can't find any device. And I don't know if this could be a similar issue here.

LeGrosFromage commented 1 year ago

I thought the issue tracker was the best place for issues ;-)

TBH I'm not that worried about it on Linux. I've not been able to find a script player that works on Linux so when I want to use a video+funscript I just boot into Windows. It's a bit inconvenient but a lot more convenient than trying to get all these pieces working under Linux.