ARCH R

Sincronização na nuvem

Syncthing, rclone, NFS, mantenha saves e ROMs sincronizados entre dispositivos

Três abordagens para manter o /storage do seu handheld sincronizado com outra máquina. Escolha a que melhor se encaixa no seu cenário.


Syncthing (peer-to-peer)

Ideal quando você tem um PC ou outro handheld e quer sincronização contínua e automática sem envolver uma conta na nuvem.

Configuração no handheld

  1. ES, Network Settings, Network Services, Enable Syncthing.
  2. Anote o IP do aparelho, que aparece em System Information.
  3. Veja a senha de root em System Settings, Security, Root password. De fábrica ela é archr, então troque antes de expor a interface web.

Configuração no seu PC

Instale o Syncthing pelo gerenciador de pacotes da sua distro ou em syncthing.net.

Conectando os dois

Acesse http://<handheld-ip>:8384 no navegador do PC. A interface web escuta em todas as interfaces. Entre como root com a senha do passo anterior.

Na interface web do handheld:

  • Add Remote Device, cole o Device ID do PC (visível na interface do Syncthing do PC em Actions, Show ID). Dispositivos na mesma LAN se descobrem automaticamente, caso contrário cole manualmente.
  • Add Folder, dê um rótulo (ex.: roms), caminho /storage/roms. Na aba Sharing, marque o PC.

No PC, aceite o dispositivo e a pasta recebidos. Escolha uma pasta local para espelhar. Pronto, a sincronização começa.

O que sincronizar

Tudo que vale sincronizar fica dentro de /storage/roms:

PastaConteúdoVale sincronizar
/storage/roms/<sistema>/ROMs, e os saves de bateria ao lado delasos saves sim, as ROMs só se houver espaço
/storage/roms/savestates/<sistema>/Save-statesveja a ressalva abaixo
/storage/roms/screenshots/Capturas de telasim
/storage/.config/Configurações dos aplicativosem geral não, são específicas do aparelho

O RetroArch aqui roda com savefiles_in_content_dir ligado, então o save de bateria (.srm, .sav) é gravado ao lado da ROM, e não numa pasta central. Os save-states são a exceção: o setsettings.sh aponta o savestate_directory para /storage/roms/savestates/<sistema> antes de cada partida.

Save-states dependem da build exata do core. Se o PC e o handheld rodarem versões diferentes dos cores libretro, um state gravado em um pode não carregar no outro. Os saves de bateria não têm esse problema. Sincronize os saves à vontade e deixe os states para quando as versões dos cores estiverem alinhadas.

O Syncthing é interrompido enquanto um jogo está aberto e volta quando você sai, para não disputar CPU e acesso ao cartão com o emulador.


rclone (armazenamento na nuvem)

Para Google Drive / OneDrive / Dropbox / S3 / etc. O ArchR já vem com o rclone pré-configurado e com um wrapper em ES, Tools, Cloud Backup / Cloud Restore.

Configuração

Habilite o SSH

Como no guia de SSH.

Configure seu provedor de nuvem

ssh root@archr.local
rclone config

Siga os prompts; consulte a documentação dos providers do rclone para configuração OAuth headless, se necessário.

Edite o cloud_sync.conf

Padrão em /storage/.config/cloud_sync.conf. Chaves mais úteis:

ChavePadrãoSignificado
BACKUPPATH/storage/romso que será copiado
RESTOREPATH/storage/romsonde restaurar (diferente de BACKUPPATH para testar o restore com segurança)
BACKUPFOLDER/storage/roms/backuparquivos de backup local
SYNCPATH/GAMEScaminho no remoto da nuvem
BACKUPMETHODsyncsync espelha / copy adiciona sem apagar
RESTOREMETHODcopycopy preserva o local existente / sync sobrescreve
RCLONEOPTSfiltros e verbosidadeconforme as flags do rclone

Execute um backup

ES, Tools, Cloud Backup. O mesmo menu tem Cloud Restore.

Logs

tail -f /var/log/cloud_sync.log

Regras de filtro

/storage/.config/cloud_sync-rules.txt decide o que sobe. Os caminhos ali são relativos ao BACKUPPATH, ou seja, /savestates/** significa /storage/roms/savestates. As regras que vêm de fábrica incluem save-states, capturas de tela e as extensões de save mais comuns (.srm, .sav, .state*, .dsv*, .eep e .mpk do N64, memory cards de PSX, pastas de save do Dreamcast e do PPSSPP), e excluem as próprias ROMs junto com BIOS, capas, vídeos, manuais e arquivos compactados. O arquivo .defaults ao lado é o modelo original, então copie linhas de lá se quiser o comportamento inicial de volta.


NFS (servidor de arquivos na LAN)

Se você tem um NAS ou um PC Linux rodando um servidor NFS, dá para montar o share NFS por cima da pasta de jogos. As ROMs ficam no servidor; os saves ficam no handheld.

Crie o arquivo de mount

/storage/.nfs-mount

Uma única linha:

NFS_PATH=192.168.1.10:/volume1/retro_games

O diretório exportado precisa conter uma pasta roms; é ela que entra no merge.

Monte

ES, Tools, Mount NFS. O compartilhamento é montado em /storage/games-external e então um overlay é montado em /storage/roms, com /storage/games-external/roms como camada inferior somente leitura e /storage/games-internal/roms como camada superior gravável. As leituras vêm do servidor e o que for escrito fica no cartão. O EmulationStation reinicia sozinho quando o overlay sobe.

Isso é ótimo para coleções grandes. Guarde o romset de 200 GB do MAME num NAS e tenha o handheld vendo tudo em /storage/roms/arcade.

Pegadinhas

  • NFS sobre WiFi é sensível à perda de pacotes; espere picos de latência ocasionais quando o sinal do WiFi oscila.
  • ROMs que precisam de leituras aleatórias rápidas (cenas pesadas de seek em ISO de PSP) ficam melhores quando o arquivo é local. Copie seus títulos mais jogados para /storage/games-internal/roms/ para usar o caminho local do overlay.
  • A montagem não é refeita sozinha no boot: rode o Mount NFS de novo depois de reiniciar.
  • As opções de montagem são pensadas para um portátil (soft, então um servidor inacessível devolve erro de I/O em vez de travar o console) e o script desiste em silêncio se o servidor não responder ao ping.

On this page