ISODrive broken since 4.5

Hello, ISODrive app from OpenRepos is broken since SFOS 4.5. After solving one error by installing libqt5sparql-declarative, there is another error:

[W] unknown:0 - “Couldn’t obtain a direct connection to the Tracker store: Cannot spawn a message bus when AT_SECURE is set”

and because of that error, the app don’t see any ISO files. How to fix this? The app seems abandoned.

Does it help to compile it again in the sailfish sdk?

Have you tried disabling SailJail?

Also, do these work differently?

https://build.sailfishos.org/package/show/home:nephros:devel:packaging/isodrive

2 Likes

I don’t have SDK installed, I can’t my use PC and on old laptop I have NixOS which I want to replace today by another Linux distro and found that ISODrive not working (I recently upgraded to 4.6 from 4.4 where the app was working).

Yes, I forget to mention disabling SailJail. Only more errors, but thanks for trying.

[W] unknown:0 - Error creating tracker connection: Cannot spawn
a message bus when AT_SECURE is set
[W] unknown:0 - QFSFileEngine::open: No file name specified
[W] unknown:0 - QIODevice::read (QFile, “”): device not open
[W] unknown:8 - file:///usr/share/ISODrive/qml/pages/MainPage.qml:8:5: QML DocumentGalleryModel: An error was encountered connecting to the document gallery
[W] unknown:0 - QFSFileEngine::open: No file name specified
[W] unknown:0 - QIODevice::read (QFile, “”): device not open
[W] unknown:0 - QFSFileEngine::open: No file name specified
[W] unknown:0 - QIODevice::read (QFile, “”): device not open
[W] unknown:8 - file:///usr/share/ISODrive/qml/pages/MainPage.qml:8:5: QML DocumentGalleryModel: An error was encountered connecting to the document gallery

So for that one you’ll have to install qt5-qtdocgallery I think. I’ll add that dep to my build.

2 Likes

But this package I have already installed.

I patched away the need for QtDocGallery so now at least I get a list of ISOs.

That version is ISODrive-0.5.2-1.9.1.

This changes the error messages to:

 unknown:0  QIODevice::read (QFile, "/sys/devices/virtual/android_usb/android0/f_mass_storage/lun/file"): device not open
 unknown:0  QIODevice::read (QFile, "/sys/devices/virtual/android_usb/android0/f_mass_storage/lun/file"): device not open
 unknown:0  QIODevice::read (QFile, "/sys/devices/virtual/android_usb/android0/f_mass_storage/lun/file"): device not open

But, I must say I don’t understand what all the LUN file stuff is about in e.g.

But I think the file open errors come from those.

If you @Kuba77 can figure out which device paths would be the right ones for your device version, I can try to do an adapted build with such paths.

E.g. PR8 does some stuff with those paths for the XA2:

Also, @Kuba77 , which device are you using?

Can you check whether the paths from PR8 exist on your device, or find some controls which have a similar function?

"/sys/devices/virtual/android_usb/android0/enable"
"/sys/devices/virtual/android_usb/android0/f_mass_storage/lun/file"
"/sys/kernel/config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/file"
"/sys/kernel/config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/cdrom"
"/sys/kernel/config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/ro"

You will have to check those as root.

I am using Xiaomi Redmi 5 Plus with 4.6.0.12. On 4.4.0.64 and older versions I didn’t need any adaptation for this device, ISODrive from Openrepos just worked.

The first and second path exist but the last three don’t - /sys/kernel/config/ is empty.

OK thanks.

Please test the current build from the repo link above. should be ISODrive-0.5.2-1.9.1. Does that make any difference?

I found out that these lun files are like virtual disks maybe, but they can differ from device to device, so for example the device for this on oneplus x had a slightly different name. I had to change that in the c++ source code, recompile and then it worked. So i would recommend searching in this path, or also near this path for devices with a similar name and then compiling it. Alternatively one can download the source code and run it directly with the app root@tide, for this the source code must be on /usr/share i believe. Sometimes one can run apps this way

Yeah, I think it uses the “USB gadget” feature from the kernel to access, read, and “boot” an ISO image. Quite, quite clever really.

But as you say, highly device-dependent.

The 0.5.2-1.9.1 version shows list of ISOs without errors in terminal, but not include ISOs from sdcard as before on SFOS 4.4.0.64. I will make more space on device memory and tomorrow I will try to boot some ISO. Thanks.

Well, progess! :slight_smile:

Yes, the replacement just looks at ~/Downloads. Not too sure how to add SD card, but I can try.

Looking forward to your tests!

Can you tell me where the SD card is mounted in your device? I don’t have any devices with an SD mounted and the location seems to differ between devices or releases.

It is under /run/media/nemo/ (I changed in system defaultuser to nemo).

1 Like

So I just tried Void Linux ISO (two years old ISO with Xfce which I know it worked on my laptop and it isn’t that big as today Linux distros ISOs) and it works fine :slightly_smiling_face: Thank you very much @nephros!!

Cool! :slight_smile:

I have just expanded the DocGallery replacement with convoluted support for SD Cards, please test ISODrive-0.5.2-1.12.1.

Actually, I downbumped the version to 0.5.1 because the build at the link above is now not including the PR Patch for Xperia10 devices.

So the package to test is ISODrive-0.5.1-1.9.1 now.

A patched version (0.5.2) is here:

https://build.sailfishos.org/package/show/home:nephros:devel:packaging/isodrive-x10#