Detecting if retropie is installed on a remote machine
-
Hi,
I'm working on extending my scraper (RetroScraper) with the functionality to remotely scan systems (so from your main pc, scrap a remote system in your network). Anyone has any idea on how would it be the best OS-independent approach to validate that retropie (or emulationstation for that matter) is installed in that system via SSH? I can check for certain files, but this would fail if the setup is a non-standard one. I was thinking of executing 'emulationstation --help' remotely, but will this work under windows/mac os ??
Any suggestions? Thanks!
[Edit]: Now that I think about it, I'm not sure there will be SSH access under windows/MacOS, right? So eventually just catering for a 'standalone' retropie setup should be more than enough...hmm
-
@kiro said in Detecting if retropie is installed on a remote machine:
Any suggestions? Thanks!
I think just pointing the scraper to the ROMS folder should be enough. Depending on where you want to save the scraped artwork/videos, you may need access to the
config
folder, but if you decide to save the data under amedia
sub-folder for each system, then it's not needed.[Edit]: Now that I think about it, I'm not sure there will be SSH access under windows/MacOS, right? So eventually just catering for a 'standalone' retropie setup should be more than enough...hmm
macOS
has SSH built in. Windows has it as an optional install from Win 10 (1809, see https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse).
EDIT: for the ROMs folder you don't need SSH, since it's shared via CIFS/SMB, so it can be easily mapped from either Windows Explorer or macOS Finder. -
Hi @mitu ! Thanks for the prompt answer.
I think I've not explained the situation properly as per your answer :-)
What I am trying to do is to add a functionality that will scan your local network for machines running retropie. I have the scanning running, but what I'm trying to see if there's some kind of 'signature' that will effectively mean that retropie is installed on that machine. For standard setups I'm remotely executing 'emulationstation --help' and if some output is returned I can more or less 'guess' if retropie is installed. This will work of course with standard retropie installs (as in the retropie image and an raspberry pi) , but I was wondering if there was a way to detect under other setups, just like windows and mac (or even Android) without having the user of retroscraper need to install anything that's already in their machines. Makes sense? Thanks!
-
@kiro said in Detecting if retropie is installed on a remote machine:
What I am trying to do is to add a functionality that will scan your local network for machines running retropie. I have the scanning running, but what I'm trying to see if there's some kind of 'signature' that will effectively mean that retropie is installed on that machine.
Yes, you're right - I was thinking about the scraping itself.
The easiest way to check for a RetroPie installation is by checking if the
/opt/retropie
folder exists. EmulationStation is installed in/opt/retropie/supplementary/emulationtation
.To be honest, I'd use the same approach used by Skraper/ARRM - check for the
roms
share, since this doesn't need any SSH connection. This way you can support other ES installation (i.e. Windows) without requiring a RetroPie installation. -
@mitu Hi, Thanks, that makes sense...I'll investigate into that direction, as a matter of fact, SSH is very easy for rpie images but difficult for other platforms. Although, when you install retropie under windows (or other platforms), will it automatically expose the roms directory as shares?
-
@kiro said in Detecting if retropie is installed on a remote machine:
Although, when you install retropie under windows (or other platforms), will it automatically expose the roms directory as shares?
RetroPie only works on Linux systems, Windows is not supported. EmulationStation though (even the RetroPie fork) can be compiled and run on Windows.
-
@mitu ok, got it... so eventually I can 'safely' assume that any 'remote' installation from retropie will be running under Linux (raspbian) and ssh will be available (unless disabled by the user). Right?
Thanks again!
-
@kiro said in Detecting if retropie is installed on a remote machine:
@mitu ok, got it... so eventually I can 'safely' assume that any 'remote' installation from retropie will be running under Linux (raspbian)
As far as RetroPie is concerned, yes - it's Linux only, though Raspbian (now Raspberry Pi OS) is not a strict requirement unless you're running it on a Pi. On a PC/other SBCs it can run over Ubuntu/Debian.
...and ssh will be available (unless disabled by the user). Right?
For Raspberry PI OS, SSH is not enabled by default - see SSH. Other distros may have it enabled by default if
ssh
is chosen during install, but it's not enabled by default on RetroPie's Pi images. -
@mitu Ah! Good call, thanks for that! I thought it was enabled...my bad. Saved me a lot of headaches there :-)
-
Hi @mitu, sorry to bother you...from the samba shares exposed by retropie, there's no way to access the es_systems.cfg, even if read-only, correct? Asking because in order to be sure of which systems the particular retropie setup is running, which extensions are accepted, and which is the path, this file is the only 100% reliable source, as reading the folders in the roms share may not necessarily be correct (folder = system name).
-
@mitu Sorry, should've had a better look at the docs:
//RETROPIE/configs/all/emulationstation
Thanks!
-
The
es_systems.cfg
used by default in EmulationStation is located in/etc/emulationstation
. The one in\\retropie\configs\all\emulationstation
is user-created (overriding the one in/etc/emulationstation
) and it's not generally not present in a RetroPie installation. Unless the user creates the override config, it's not there.You can find the list of default extensions by system in https://github.com/RetroPie/RetroPie-Setup/blob/master/platforms.cfg. This rarely changes and you can use it as a fallback in case the user doesn't have a custom/local
es_systems.cfg
in theconfig
folder. -
@mitu nice one... My concern is about heavily customized setups (for example mine) where I have one directory per Arcade manufacturer (although they use the same emulator, they have a different theme setup for example), and directories do not necessarily match the system name, but I guess I can consider that as an edge case.
Thanks Again!
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.