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

In archr-launcher, open Settings › Network › Network services › File sharing (Samba).

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

  • smbd, the SMB file server
  • nmbd, the NetBIOS name service
  • wsdd2, Windows discovery

The Samba switch controls all three, so Windows discovery follows the Samba setting: with Samba on, the console shows up under "Network" in Explorer.


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
config/storage/.configEvery application config (launcher themes are in archr-launcher/themes)
logs/var/logSystem logs, handy when reporting a bug
update/var/cache/archr/updateDrop an update file here

All six 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. Wi-Fi availability and bands depend on the board and the adapter. Boards without an internal radio need a compatible USB adapter, and some adapters support both 2.4 and 5 GHz. Check the link with iwctl station wlan0 show. Moving closer to the router usually helps more than any setting.

On this page