ARCH R

Samba (compartilhamento de rede)

Acesse ROMs, temas e configurações pelo Windows, macOS ou Linux

O Samba transforma o console em um compartilhamento de rede, então dá para arrastar ROMs e temas pelo gerenciador de arquivos sem tirar o cartão e sem precisar de cliente SSH.

Vem desligado (samba.enabled=0).


Ligar

EmulationStation → Network Settings → Network Services → Enable Samba.

Isso grava samba.enabled=1, cria o arquivo marcador /storage/.cache/services/smb.conf e inicia dois serviços:

  • smbd, o servidor de arquivos SMB
  • nmbd, o serviço de nomes NetBIOS

A descoberta no Windows fica por conta do wsdd2, que já vem ativado, então o console aparece em "Rede" no Explorer assim que o Samba sobe.


Conectar

Windows

No Explorador de Arquivos, digite na barra de endereço:

\\archr

Se o nome não resolver, use o endereço direto:

\\archr.local
\\<ip-do-aparelho>

macOS

Finder → Ir → Conectar ao servidor (Cmd+K):

smb://archr.local

Linux

A maioria dos gerenciadores de arquivos aceita isto na barra de endereço:

smb://archr.local

Ou monte um compartilhamento pelo 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 é o nome de máquina padrão (system.hostname), e o .local funciona porque o Avahi está rodando.


O que é compartilhado

CompartilhamentoCaminhoConteúdo
games-roms/storage/romsROMs, BIOS, save-states, capturas de tela
games-internal/storage/games-internalJogos instalados no cartão interno
games-external/storage/games-externalJogos no segundo cartão
themes/storage/.config/emulationstation/themesTemas do EmulationStation
config/storage/.configConfigurações de todos os aplicativos
logs/var/logLogs do sistema, úteis ao relatar um problema
update/var/cache/archr/updateLocal para deixar um arquivo de atualização

Os sete são de leitura e escrita e abertos para convidados: map to guest = Bad User com guest account = root, ou seja, quem alcançar o console pela rede consegue escrever neles. Use na sua rede doméstica e deixe desligado fora dela.


Mudar a configuração

O arquivo que o servidor lê é o /storage/.config/smb.conf. Ele é copiado de /usr/config/smb.conf no primeiro boot, o /etc/samba/smb.conf é um link simbólico para ele, e o script de inicialização o liga em /run/samba/smb.conf, que é onde o smbd procura.

Edite por SSH para acrescentar ou alterar um compartilhamento:

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

Para exigir senha, coloque public = no no bloco, crie o usuário com smbpasswd -a <nome> e acrescente valid users = <nome>.

Aplique as mudanças com:

systemctl restart nmbd smbd

Durante o jogo

O Samba continua ativo enquanto você joga. Os serviços interrompidos na hora de abrir um jogo, e religados na saída, são o Syncthing, o Tailscale, o ZeroTier e o servidor HTTP simples, que disputam CPU e acesso ao cartão com o emulador.


Problemas comuns

O console não aparece em "Rede" no Windows. Digite \\archr.local na barra de endereço. O ícone só aparece com a descoberta de rede ligada, mas o endereço direto funciona de qualquer jeito.

"O servidor especificado não pode executar a operação solicitada". É um cliente SMB1. O smb.conf não define server min protocol, então vale o padrão do Samba 4.21, que não aceita SMB1. Atualize o cliente ou configure-o para SMB2 ou superior.

Nada acontece depois de ligar a opção. Verifique os dois serviços:

systemctl status smbd nmbd

Os dois se recusam a iniciar se o /run/samba/smb.conf não existir, que é como um /storage/.config/smb.conf quebrado se manifesta.

Transferências lentas no WiFi. O R36S não tem WiFi embutido, então tudo passa por um dongle USB em 2,4 GHz. Veja o enlace com iwctl station wlan0 show. Chegar mais perto do roteador costuma resolver mais do que qualquer ajuste.

On this page