damonlynch / rapid-photo-downloader

Rapid Photo Downloader is the leading photo and video downloader for the Linux desktop.
https://damonlynch.net/rapid
GNU General Public License v3.0
114 stars 30 forks source link

Permissions to read device #114

Closed graemev closed 9 months ago

graemev commented 1 year ago

I have a issue using RPD on recent Linux desktops (I suspect to relates to the, seemingly bizarre, concept of "seats") ...so it may not be "fixable" in RPD, but you may be able to shed light on where the core issue is.

I have a small NUC (Intel) I use as a Desktop . It runs a pretty standard kubuntu. As such it has good support for things like graphics drivers etc. The actual computers I use are sitting of the floor nearby. However I generally access them via X2GO from the NUC . Using the multiple workspace desktop feature I can quickly switch to any machine to work .

One such machine is full of USB ports and every shape and size of connector, so I can simply plug in any camera and download photos. However unless I use a KVM and physically switch the keyboard & screen to the native machine . RPD fails (cannot access the device) [so this is via X2GO for example, but I think any remote desktop would be similar]

Having failed, if I use the KVM and switched to the native machine, running RPD causes it to exit and also unmount the camera. Note I do NOT have "unmount when complete" checked. So now I cannot use RPD to download ( I can use a GUI file manager to copy photos off that I need)

damonlynch commented 1 year ago

I'm sorry I can't currently be of any help because essential information is missing, such as the program log files. I cannot understand what is going wrong from your brief narrative description.

Please be clear that if Rapid Photo Downloader is run within some kind of confined environment that affects its ability to interact with USB devices, it is guaranteed to fail.

I don't know what X2GO is, having never heard of it. I don't know what a seat is, in this context.

The vital context is missing for your statement about Rapid Photo Downloader unmounting the camera. For Rapid Photo Downloader to be able to access the camera, it needs exclusive access to it. If it does not have exclusive access, it cannot do anything with it. That means other programs, such as the KDE file manager, cannot be accessing it at the same time.

graemev commented 1 year ago

x2go )https://wiki.x2go.org/doku.php) is a pretty common remote desktop for X (it seems folks no longer like just using xdmcp (https://en.wikipedia.org/wiki/X_display_manager)

Seats seem to me like a flawed concept being introduced, since Unix & Linux have always been multiiuser. (https://wiki.debian.org/Multi_Seat_Debian_HOWTO)

I was hit by it before using a "blinkstick" ( https://www.blinkstick.com/ ) where the UDEV rules had assumptions that whoever was sitting on the "console" (a particular keyboard and display) In some sense "owned" any USB devices that were plugged in.

With the blinkstick, the permissions were very odd (ACLs IIRC) so even though I was the only user on a system the permissions forbade me access.

I realise I'm jumping to conclusions but the fact that I get very odd behaviour with RPD using a remote desktop (which persist even when I switch to a local desktop) and totally different behaviour when I just use a local desktop, suggests a conflict with seats & Udev .

damonlynch commented 1 year ago

Thanks for providing that information.

Here is what can be done. I want you to identify and communicate with an expert on seats, to try to understand what is going wrong. It will either be a problem with seats, or something needs to be improved in the Rapid Photo Downloader code so that it can work around the challenges that seats present.

If helpful, you can show them this code. First, how the program uses Udev:

https://github.com/damonlynch/rapid-photo-downloader/blob/main/raphodo/storage/storage.py#L1023

Second how the program uses UDisks2, if that is relevant to the conversation:

https://github.com/damonlynch/rapid-photo-downloader/blob/main/raphodo/storage/storage.py#L1140

damonlynch commented 9 months ago

Hello @graemev, are you still interested in this issue? Or shall I close it?

damonlynch commented 9 months ago

closing due to lack of response.

graemev commented 9 months ago

Damon,

This is the 1st response I've seen in my email. I was/am intending to collect some more info on this bug but at the time I raised it I'd just been asked to support an upstream package . On that very day the rather specialised motherboard died . I manage to obtain another (no longer in production) but hit various other bugs in the reinstall , which I've been working my way through. I now suddenly find I must switch my ISP & eMail provider (might help with missing eMails) .

So I do intend to collect more info on the problem, but it's taking a longer longer than I would wish.

(The chance to get the camera out and take some photos would be Nice :-) )