Running ROMs from a Network Share
-
I had the exact same issue. It is not the fstab part that is important here but the options. Specifically one of "nounix,noserverino,defaults,users,auto". I have not deduced which one fixed it, but I am using the Autostart.sh and it works fine as follows
sudo mount -t cifs -o gid=1000,uid=1000,username=USER,password=PASS,domain=DOMAIN,nounix,noserverino,defaults,users,auto //192.168.X.X/SHARENAME /home/pi/RetroPie/roms
Note that you may not need domain above for your share.
After unmounting and remounting the share using the above arguments, I am now able to launch Mame2003 Roms just fine.
-
@guy-sensei sorry for the late answer
Mine fstab looks like this:
//192.168.X.XXX/SHARENAME /home/pi/RetroPie cifs username=XXX,password=XXX,nounix,noserverino,defaults,users,auto 0 0
-
I had serious trouble getting Samba share to work!
After hours of trying, I figured out it has something to do with the network interface not being ready, although I enabled waiting for network on boot.
Finally I ended up starting kodi before sudo mount and afterwards emulationstation in autostart.sh.
Like this:kodi
sudo mount -t cifs -o sec=ntlm,user='username',password='password' //hostip/roms /home/pi/RetroPie/roms
emulationstationOfc, I gotta quit Kodi each time to get to EmulationStation. If you don't need Kodi, you could try it with sleep x (x=seconds to wait) instead.
-
For people using Windows 10 you need to have SMB 1.0/CIFS File Sharing Support enabled in windows features for this to work. I just enabled that and now my network share is working.
-
@proxypunk You could just add a
sleep 8
before runningemulationstation
just so the mount succeeds before ES start and leave the normal mount working from fstab. If 8 seconds is not enough, you can start increasing the wait period until you get the correct number of seconds. -
Found a solution to your save and scrapping issue. if you simply add:
,rw,file_mode=0777,dir_mode=0777
after the username and password in your autostart.sh it will give your write access and will allow you to scrap and save to the NAS
Just be sure that access permissions are set correctly on the Windows share, including all sub-folders that you wish to share or else it will still not work.
This allows you to keep saves and scraps on the network and for a setup like mine where i have multiple RetroPies in the house this allows me to create a save folder for each Pi that way we are not overwriting each others saves
-
Hi guys,
I need some help with running my roms from a Synology NAS.
Despite following the guide, I can't get any of my systems or games to appear in RetroPie. I've tried putting a line in autostart.sh which didn't work and I've tried using fstab to no avail :(
I'm running a pre-made image of the latest build - RetroPie 4.4 on a Raspberry Pi 3B+ connected to my home network via ethernet. My Synology NAS is running on IP 10.0.0.10 and has a "Media" cifs share with guest access.
The line I've added to autostart.sh is:
`sudo mount -t cifs -o username=xxxxx,password=xxxxx //10.0.0.10/Media/RetroPie/roms /home/pi/RetroPie/roms
If I try "sudo mount -a" I don't get any errors, but I still don't see what the issue is. I've even tried using the hostname of the server e.g. "SYNOLOGY" in the path and it doesn't work.
Help!
-
@evh If the share name is
Media
, then the mount command is not correct. You can't mount arbitrary folders inside a share, you should mount the share itself.
My advice is to create a different share and name itRetroPie-Roms
, then follow the docs and add the share to the/etc/fstab
file to be auto-mounted to/home/pi/RetroPie/roms
. Restart and see if the share is correctly mounted, then restart Emulationstation and see if the ROMs from the share appear in the list. -
@mitu said in Running ROMs from a Network Share:
@evh If the share name is
Media
, then the mount command is not correct. You can't mount arbitrary folders inside a share, you should mount the share itself.
My advice is to create a different share and name itRetroPie-Roms
, then follow the docs and add the share to the/etc/fstab
file to be auto-mounted to/home/pi/RetroPie/roms
. Restart and see if the share is correctly mounted, then restart Emulationstation and see if the ROMs from the share appear in the list.Makes sense, I'll try it later and update.
The docs suggest that the path can contain folders... which I wrongly assumed would work.
sudo mount -t cifs -o username=something,password=something **//REMOTEHOST/path/to/roms** /home/pi/RetroPie/roms
-
Well, I can confirm it still doesn’t work.
Mounting a cifs share called RetroPie and having all the usual folders inside didn’t work.
I even tried appending the path to 10.0.0.10/volume 1/RetroPie/roms thinking that maybe I needed the volume name but I couldn’t get it working.
I’m almost about to give up which is a shame because I’ve got a NAS full of roms that I want to use and only a 16GB SD card :(
-
@evh Is the remote share mounted if you issue the command manually ? Does
mount -a
works after you set up the fstab ? Is there an error when you run themount
command ? -
@mitu said in Running ROMs from a Network Share:
@evh Is the remote share mounted if you issue the command manually ? Does
mount -a
works after you set up the fstab ? Is there an error when you run themount
command ?I gave up on cifs and finally got it working through NFS. Not sure which is better, but I was able to mount my folder inside the Media share i.e. 10.0.0.10/Media/RetroPie/roms which is good as it means less "what is this retropie thing" questions from the other half :D
-
Just in case someone comes into this topic and none of the posts in this thread or the wiki solves their issues (like what happened to me). Here's how I got mine working. I'm using an ASUS RT-AC86U router with a Network Place (Samba) Share on a Raspberry Pi 3 B running RetroPie 4.4.x:
Mount:
sudo mount -t cifs -o username=xxx,password=xxx,vers=1.0 //server/path/to/roms /home/pi/RetroPie/roms
Notice the
vers=1.0
. That was the only thing that would make the mount work for me. I found that option on a Linux support forum.Permissions:
sudo chown -R pi /home/pi/RetroPie/roms
I tried every variation of
sec
,file_mode
, anddir_mode
, but no matter what I did my gamelist.xml, save states, battery saves, etc. would not get created or updated. After chowning the newly mounted shared rom folder, everything worked like a charm. -
@ringnutz said in Running ROMs from a Network Share:
I had the exact same issue. It is not the fstab part that is important here but the options. Specifically one of "nounix,noserverino,defaults,users,auto". I have not deduced which one fixed it, but I am using the Autostart.sh and it works fine as follows
sudo mount -t cifs -o gid=1000,uid=1000,username=USER,password=PASS,domain=DOMAIN,nounix,noserverino,defaults,users,auto //192.168.X.X/SHARENAME /home/pi/RetroPie/roms
Note that you may not need domain above for your share.
After unmounting and remounting the share using the above arguments, I am now able to launch Mame2003 Roms just fine.
I know this is old, but thank you! This worked! Those extra options at the end allowed me to play Mame from my NFS file share, whereas before, everything BUT Mame worked.
-
I have been racking my brain. I switched from USB to Network share. I have followed everything in the guide, and in this thread. everything mounts properly, I can see everything when I enter the terminal on my RetroPie, or via SSH.
Even viewing the Samba Share via windows Explorer.
But when emulationstation starts, it hangs at checking system config. it will not move past that. I have verified the es_systems.cfg it is all proper, and matches my rom paths exactly.
there doesnt seem to be any logs, i check every log i can think of for emulationstation and they are all blank.
-
@XyberDAWG said in Running ROMs from a Network Share:
But when emulationstation starts, it hangs at checking system config. it will not move past that. I have verified the es_systems.cfg it is all proper, and matches my rom paths exactly.
Start Emulationstation with the
--debug
option and post the log you get - in a new topic please where you add the info about your system as requested in https://retropie.org.uk/forum/topic/3/read-this-first. -
@BuZz said in Running ROMs from a Network Share:
I avoid using fstab also, and just add the mount to the
/opt/retropie/configs/all/autostart.sh
script (4.0 feature)cat /opt/retropie/configs/all/autostart.sh
sudo mount -t cifs -o username=something,password=something //nas/retropie /home/pi/RetroPie kodi #auto emulationstation #auto
Maybe it is a stupid question but what username has to be put in? The User, i use as a User on my pi? Or the User on the Server?
-
@snydea the user for the share on your server.
-
@snydea For a better understanding, the username and password is needed to log into the NAS. You don't need the local username and password, because
you're already logged in locally when you are in the text console(edit) the autostart already runs as the local user.sudo
may ask for your local user's password, however, to gain temporary administrative rights to mount the remote share locally. (It will store the passwort for a short time, so subsequentsudo
commands may not ask for it again. edit: And on the official RetroPie image, its password request is disabled alltogether.)I hope I could make myself intelligible. :) I always find it better to understand something than to just know the necessary actions.
-
A much better way (for me) is using overlay file system, that way even if it can't connect to my server I can still play the games stored locally on the pi.
I have all the MAME ROM's on a share on my Windows PC, and this is what I put in autostart.sh:
(sudo mount -t cifs //10.88.44.17/Emu /net/emu -o username=Guest,guest,forceuid,uid=pi,ro,nounix,vers=3.0 && sudo mount -t overlay overlay -o lowerdir=/net/emu/Mame/roms,upperdir=/home/pi/RetroPie/roms/arcade,workdir=/home/pi/overlay.work /home/pi/RetroPie/roms/arcade ) &
emulationstation #autoEverything starting with ( and ending with & is supposed to go on one line.
Now it will mount the Windows share on my desktop 10.88.44.17/Emu in /net/emu (you need to create an empty directory there first), and I have all my MAME roms under Mame/roms under that share, and then it will underpin what was already in RetroPie/roms/arcade and when you make changes it gets written to that directory, but it can access all the files from my server, which is mounted read-only.
Because I do the mounting in a "( ) &" subshell, it will run in the background and not prevent or slow down the normal startup if the server can't be reached.
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.