ARCH R

Samba (network share)

Browse ROMs, themes and configs from Windows, macOS or Linux

Samba turns the console into a network share, so you can drag ROMs and themes across from your file manager without pulling the card out and without an SSH client.

It is off by default (samba.enabled=0).


Enable

EmulationStation → Network Settings → Network Services → Enable Samba.

That sets samba.enabled=1, creates the marker file /storage/.cache/services/smb.conf and starts two services:

  • smbd, the SMB file server
  • nmbd, the NetBIOS name service

Windows discovery is handled separately by wsdd2, which is enabled from the start, so the console shows up under "Network" in Explorer once Samba is running.


Connect

Windows

In File Explorer, type into the address bar:

\\archr

If the name does not resolve, use the address directly:

\\archr.local
\\<device-ip>

macOS

Finder → Go → Connect to Server (Cmd+K):

smb://archr.local

Linux

Most file managers accept this in the location bar:

smb://archr.local

Or mount one share from the terminal:

sudo mkdir /mnt/archr-roms
sudo mount -t cifs //archr.local/games-roms /mnt/archr-roms -o guest,uid=$(id -u),gid=$(id -g)

archr is the default hostname (system.hostname), and .local works because Avahi is running.


What is shared

SharePathWhat it holds
games-roms/storage/romsROMs, BIOS, save-states, screenshots
games-internal/storage/games-internalGames installed on the internal card
games-external/storage/games-externalGames on a second card
themes/storage/.config/emulationstation/themesEmulationStation themes
config/storage/.configEvery application config
logs/var/logSystem logs, handy when reporting a bug
update/var/cache/archr/updateDrop an update file here

All seven are read-write and open to guests: map to guest = Bad User with guest account = root, so anyone on the network who can reach the console can write to them. Keep it on your home network and leave it off elsewhere.


Changing the configuration

The file the server reads is /storage/.config/smb.conf. It is copied from /usr/config/smb.conf on first boot, /etc/samba/smb.conf is a symlink to it, and the boot script links it into /run/samba/smb.conf where smbd picks it up.

Edit it over SSH and add or change a share:

[games-roms]
  path = /storage/roms
  available = yes
  browseable = yes
  public = yes
  writeable = yes

To require a password, set public = no in the share, add a user with smbpasswd -a <name>, and put valid users = <name> in the share block.

Apply the changes with:

systemctl restart nmbd smbd

During gameplay

Samba stays up while you play. The services that get stopped on launch and restarted on exit are Syncthing, Tailscale, ZeroTier and the simple HTTP server, which compete with the emulator for CPU and card I/O.


Troubleshooting

The console does not appear under "Network" in Windows. Type \\archr.local in the address bar instead. Windows network discovery has to be on for the icon to appear, but the direct address works either way.

"The specified server cannot perform the requested operation". That is an SMB1 client. smb.conf sets no server min protocol, so Samba 4.21 applies its own default and SMB1 is not accepted. Update the client, or configure it for SMB2 or later.

Nothing happens after enabling the switch. Check the two services:

systemctl status smbd nmbd

Both refuse to start if /run/samba/smb.conf is missing, which is where a broken /storage/.config/smb.conf shows up.

Slow transfers over WiFi. The R36S has no built-in WiFi, so you are going through a USB dongle on 2.4 GHz. Check the link with iwctl station wlan0 show. Moving closer to the router usually helps more than any setting.

On this page