Cannot list mounted folders in Recalbox

What is the problem you are having with rclone?

I am trying to use rclone in Recalbox OS on Rpi3. I cannot use my mounted games from remote source in Recalbox. I see those files in Recalbox Manager and also in Recalbox samba share and sftp connection, but "update game list" feature does not find any of these games. When I have those file in regular folder, there are visible and playable.

Run the command 'rclone version' and share the full output of the command.

rclone v1.61.1

  • os/version: buildroot 2022.05.3-dirty
  • os/kernel: 5.15.45-v7 (armv7l)
  • os/type: linux
  • os/arch: arm
  • go/version: go1.19.4
  • go/linking: static
  • go/tags: none

Which cloud storage system are you using? (eg Google Drive)

FTP

The command you were trying to run (eg rclone copy /tmp remote:tmp)

Hard to say how Recalbox handles file operations when searching for the games. Batocera does not have this problem, it means I am able to run my games from rclone mounted folders there.

I am using mount command like this:
rclone mount ${rom[1]} /recalbox/share/roms/${rom[0]}/online --config=/recalbox/share/system/.config/rclone/rclone.conf --daemon --vfs-cache-mode full --no-checksum --no-modtime --attr-timeout 100h --dir-cache-time 100h --poll-interval 100h --allow-non-empty

The rclone config contents with secrets removed.

[archive]
type = internetarchive
access_key_id =
secret_access_key =

[myrient]
type = ftp
host = ftp.myrient.erista.me
tls = false
explicit_tls = true
pass = myUcMnWBKX9R-Gya--f8j0K26zYNvaWCqyqL
user = anonymous

[thumbnails]
type = http
url = https://thumbnails.libretro.com

A log from the command with the -vv flag

I dont know how Recalbox handles file search. I was not able to find it out on their support channel.

  • try adding --allow-other
  • --allow-non-empty - i would remove that unless you are 1000% sure.

post the rclone debug output.

1 Like

Thank you very much, I added --allow-other parameter and created -vv log:

https://paste.debian.net/1272734/

It would be worth strace-ing the recall box program to see what it is doing and what errors it is getting. The log looks as if things are working.

You could try --file-perms 777 which might help.

That strace may be a problem cause it is a buildroot system that does not contain this tool.
Even rclone was copied to /usr/bin manually, cause the default installer did not work correctly (it was afraid of some zip bomb)

Permission will be also a problem. Recalbox use exfat filesystem for share partition (and does not allow to use other fs, it looks like it always tries to prepare or convert it), so I think the permissions does not affect it. --file-perms 777 did not help either.

Can you get a strace binary from else where? You can strace a running program with strace -p PID I think so you don't need to interfere with the startup.

1 Like

That is great, ok, so I started strace like that and made update gamelists function while stracing. This is what I got as log:
log.txt (924.2 KB)

(log replaced, cause before I forgot to mount my rclone share, sorry)

These are the only references to /recalbox/share/roms in that strace

  11294:inotify_add_watch(37, "/recalbox/share/roms/atari2600/gamelist.xml", IN_ACCESS|IN_MODIFY|IN_ATTRIB|IN_CLOSE_WRITE|IN_CLOSE_NOWRITE|IN_OPEN|IN_MOVED_FROM|IN_MOVED_TO|IN_CREATE|IN_DELETE|IN_DELETE_SELF|IN_MOVE_SELF) = 1
  11354:inotify_add_watch(37, "/recalbox/share/roms/ports/Doom/gamelist.xml", IN_ACCESS|IN_MODIFY|IN_ATTRIB|IN_CLOSE_WRITE|IN_CLOSE_NOWRITE|IN_OPEN|IN_MOVED_FROM|IN_MOVED_TO|IN_CREATE|IN_DELETE|IN_DELETE_SELF|IN_MOVE_SELF) = 2
  11358:inotify_add_watch(37, "/recalbox/share/roms/ports/Quake/gamelist.xml", IN_ACCESS|IN_MODIFY|IN_ATTRIB|IN_CLOSE_WRITE|IN_CLOSE_NOWRITE|IN_OPEN|IN_MOVED_FROM|IN_MOVED_TO|IN_CREATE|IN_DELETE|IN_DELETE_SELF|IN_MOVE_SELF) = 3
  11362:inotify_add_watch(37, "/recalbox/share/roms/ports/Wolfenstein 3D/gamelist.xml", IN_ACCESS|IN_MODIFY|IN_ATTRIB|IN_CLOSE_WRITE|IN_CLOSE_NOWRITE|IN_OPEN|IN_MOVED_FROM|IN_MOVED_TO|IN_CREATE|IN_DELETE|IN_DELETE_SELF|IN_MOVE_SELF) = 4

Do these look like the right directories?

FUSE doesn't support inotify though - I wonder if that is the reason it isn't working?

I couldn't see any errors in the log.

Yes, all of those files do exist.

So, do you think that Recalbox use some inotify system to search for the files and therefore it does not work on mounted folders?

That is what I was thinking. I'm not an inotify expert though so I don't know if that is what it does.

Is the source available to Recalbox?

1 Like

It is, but I am not sure where to search: recalbox / recalbox-emulationstation · GitLab recalbox / recalbox · GitLab

I took a quick look but I couldn't work it out in 5 minutes. I got stuck in a twisty turn maze of C++. I think you'd be best asking on a user forum. The inotify thing may be the wrong direction completely.

1 Like

Ok, now I have an idea, to use a workaround and to generate those gamelists manually just in the script, using some list command.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.