![v34] pcsx savestate screenshot are black · Issue #6046 · batocera-linux/ batocera.linux](https://user-images.githubusercontent.com/54243866/164970145-43915bcf-c76d-4c77-adff-d2b1d068543b.jpg)
Archivia i giochi su un NAS
Anziché utilizzare la memoria interna o una chiavetta USB/disco rigido esterno per archiviare i dati utente (giochi, salvataggi, configurazione, ecc.), è possibile utilizzare un NAS (Network Attached Storage).
Consigliato per la visione: Batocera Nation's advanced features volume 4.
Batocera verifica ripetutamente la presenza di una connessione di rete all'avvio e, in caso di assenza, ripiega automaticamente sull'utilizzo della memoria interna. Non è possibile modificare la posizione dei dati utente senza riavviare il sistema. Se si utilizza un NAS su un dispositivo dotato di un interruttore per attivare o disattivare il Wi-Fi, è importante tenere presente questo aspetto, poiché la disattivazione del Wi-Fi eliminerà di fatto la cartella dei dati utente dal punto di vista di Batocera.
In generale, se si utilizza Batocera su un dispositivo portatile, non è comunque consigliabile utilizzare un NAS locale per l'archiviazione a causa dell'instabilità della sua connessione Wi-Fi. Syncthing offre un metodo molto più sicuro per sincronizzare i dati tra dispositivi portatili.
Sintassi
Dovrai sostituire la sharedevice=INTERNALriga con sharedevice=NETWORKinside batocera-boot.conf. Questo file si trova nella partizione di avvio del sistema Batocera. Se si trova su un'unità rimovibile, puoi modificarlo da qualsiasi computer poiché è in un file system FAT32 leggibile (non usare Blocco note di Windows).
Puoi capire se hai eseguito correttamente l'operazione perché il campo Dispositivo di archiviazione nel menu principale > Impostazioni di sistema sarà vuoto! Ma questo potrebbe anche significare che hai inserito una voce non valida sharedevice...
Batocera utilizza una sintassi più semplice rispetto al montaggio di rete standard di Linux . Per ogni condivisione di rete che si desidera collegare, aggiungere una riga aggiuntiva qui sotto sharedeviceche inizia con sharenetwork_smb#=(per la maggior parte delle condivisioni Samba di Windows) o sharenetwork_nfs#(per la maggior parte delle condivisioni del Network File System di Linux) dove # è il numero della condivisione da 0 a 9 (sì, questo significa che si è limitati a sole dieci condivisioni per tipo di condivisione, questo limite potrebbe essere modificato in futuro). Successivamente, inserire la parola chiave per la directory appropriata che si desidera sostituire in Batocera (come elencato di seguito).
Ecco le parole chiave predefinite che puoi utilizzare:
Parola chiave
Descrizione
SHARE
Per l'intera directory dei dati utente.
ROMS
Per l' romselenco.
BIOS
Per l' bioselenco.
SAVES
Per l' saveselenco.
MUSIC
Per la musica di sottofondo personalizzata del menu.
DECORATIONS
Per cornici personalizzate.
SCREENSHOTS
Per gli screenshot scattati nel gioco o con batocera-screenshot.
THEMES
Per i temi.
CHEATS
Per i database di trucchi.
SOUNDS
Per i suoni ( v32 e successive).
LIBRARY
Per riviste e video.
SPLASH
Per la schermata di avvio.
È possibile aggiungere qualsiasi combinazione di quanto sopra (tranne SHAREche include tutto) aggiungendo righe aggiuntive.
Se si mappano sul NAS solo determinate directory, Batocera cercherà le directory rimanenti nella memoria interna.
Per Samba
@[IP-address/hostname]:[share-name]/[path/to/directory]:[option1-name]=[option1-value],[option2-name]=[option2-value],[etc.]
Quindi aggiungi il simbolo @, l'indirizzo IP/nome host del dispositivo con la condivisione, il carattere :, il nome della condivisione seguito da una /, quindi il percorso della directory (utilizzando la sintassi Unix / invece di \), un altro carattere : e poi eventuali opzioni aggiuntive richieste per la condivisione separate da una virgola (,) (le condivisioni guest richiedono solo :guestcome opzione, le condivisioni protette da password richiedono :username=[your-username],password=[your-password]). Sintassi:
sharenetwork_[smb-or-nfs][0-9]=[keyword]@[IP-address/hostname]:[share-name]/[path/to/directory]:[option1-name]=[option1-value],[option2-name]=[option2-value],[etc.]
Per NFS
@[IP-address]:[/absolute/path/to/directory]:[option1-name]=[option1-value],[option2-name]=[option2-value],[etc.]
Di seguito sono riportati alcuni esempi . Se non conosci già l'indirizzo esatto della tua condivisione, consulta la sezione "Scopri i nomi delle condivisioni di rete" qui sotto .
Se Batocera non riesce a connettersi alla rete all'avvio, attenderà circa un minuto tentando nuovamente la connessione prima di ripiegare sulla memoria interna.
Esempi di condivisione Samba/Windows
Le condivisioni Windows possono utilizzare un identificativo o un account guest per connettersi.
Negli esempi seguenti, la condivisione CIFS di Windows denominata Documenti contiene una cartella con lo stesso nome batocerache racchiude la struttura di cartelle della directory userdata di Batocera. In questo esempio, l'indirizzo IP del server condiviso Windows è 192.168.0.1. Se applicabile, è possibile utilizzare il nome host del NAS, tuttavia ciò potrebbe causare problemi con alcuni router.
L'intera directory dei dati utente sul NAS
dispositivo condiviso=RETE sharenetwork_smb1=SHARE@192.168.0.1:Documents/batocera:guest
Solo la directory ROM sul NAS
dispositivo condiviso=RETE sharenetwork_smb1=ROMS@192.168.0.1:Documents/batocera/roms:guest
Solo la directory ROM sul NAS con autenticazione CIFS
A meno che non siate davvero esperti, è sconsigliabile configurare il NAS con un nome utente e una password per le ROM, i salvataggi e le cartelle di sistema. Questo può interferire con l'accesso di Batocera ai file eseguibili, causando gli stessi problemi del filesystem NTFS.
Si raccomanda comunque di utilizzare l'autenticazione per il NAS in generale; è possibile creare una condivisione aggiuntiva che, ad esempio, condivida solo la cartella delle ROM con l'accesso guest.
Se il tuo NAS utilizzava già NTFS, questa limitazione era già presente, quindi non ci sarebbe stata alcuna differenza rispetto all'utilizzo dell'autenticazione.
dispositivo condiviso=RETE sharenetwork_smb1=ROMS@192.168.0.1:Documents/batocera/roms:username=john,password=wayne
Le directory ROM, salvataggi e BIOS sul NAS
dispositivo condiviso=RETE sharenetwork_smb1=ROMS@192.168.0.1:Documents/batocera/roms:guest sharenetwork_smb2=SAVES@192.168.0.1:Documents/batocera/saves:guest sharenetwork_smb3=BIOS@192.168.0.1:Documents/batocera/bios:guest
Opzioni specifiche della versione SMB
In diversi casi, è necessario aggiungere opzioni SMB , ad esempio se il NAS richiede una versione CIFS specifica:
sharenetwork_smb1=ROMS@192.168.0.1:Documents/Batocera/roms:guest,vers=1.0
La versione CIFS è necessaria per diversi produttori di NAS:
-
quando si utilizza un Orange Livebox come NAS o su Synology (testato su un DS418play), è necessario
vers=1.0 -
se usi OpenMediaVault 5, hai bisogno
vers=3.0
In questo tipo di configurazione, assicurati che:
-
Devi fornire il nome esatto della tua condivisione SMB sul NAS (
Documents/Batocera/romsnell'esempio sopra è il percorso esportato dal NAS). -
Hai effettuato l'autenticazione utente corretta (
username=john,password=waynecome nell'esempio precedente) e, se utilizziguestl'accesso anonimo, hai abilitato l'accesso in scrittura, in modo che Batocera possa scrivere gli aggiornamenti neigamelist.xmlfile e scaricare i metadati estratti, come miniature o istantanee video.
Esempi di condivisione NFS
L'intera directory dei dati utente sul NAS
dispositivo condiviso=RETE sharenetwork_nfs1=CONDIVIDI@192.168.0.1:/mnt/Documenti/batocera
Solo la directory ROM sul NAS, con una specifica versione NFS
dispositivo condiviso=RETE sharenetwork_nfs1=ROMS@192.168.0.1:/mnt/Documents/batocera/roms:vers=4
Le directory ROM, salvataggi e BIOS sul NAS
dispositivo condiviso=RETE sharenetwork_nfs1=ROMS@192.168.0.1:/mnt/Documents/batocera/roms sharenetwork_nfs2=SAVES@192.168.0.1:/mnt/Documents/batocera/saves sharenetwork_nfs3=BIOS@192.168.0.1:/mnt/Documents/batocera/bios
Montaggio di condivisioni di rete dietro una VPN o una rete Tailscale
Sfondo
Montare una cartella condivisa su un server che richiede prima una connessione VPN o Tailscale è problematico a causa del processo di inizializzazione all'avvio di Batocera. Sebbene Batocera offra diverse opzioni per eseguire uno script personalizzato durante il processo di avvio, nessuna di esse è adatta per diversi motivi. La procedura di configurazione presente nella documentazione VPN/Tailscale è ottima per configurare funzionalità come il multiplayer, ma risulta inadeguata per il montaggio delle cartelle principali di Batocera.
Flusso di avvio di base:
1. /boot/boot-custom.sh - In questa fase, la rete del sistema non è ancora stata inizializzata, pertanto non è possibile stabilire una connessione VPN o Tailscale.
2. /etc/init.d/S07network - Qui viene inizializzata la rete.
3. /etc/init.d/S11share - Qui viene inizializzata la directory /userdata.
4. /boot/postshare.sh - Eseguito subito dopo il completamento dell'inizializzazione di /userdata. A questo punto è troppo tardi e qualsiasi tentativo di montare una condivisione di rete VPN/Tailscale fallirà perché questi servizi non sono ancora stati inizializzati.
5. /userdata/system/custom.sh - Questo script è il punto consigliato per l'inizializzazione di VPN/Tailscale secondo la documentazione, ma viene eseguito dopo la fase di montaggio di /userdata.
Da quanto sopra, possiamo vedere che il client VPN/Tailscale dovrà essere inizializzato in un punto compreso tra la fase 2 e la fase 3.
Soluzione alternativa
Esiste una funzionalità chiamata sharenetwork_cmd# che consente di creare un comando di montaggio personalizzato; tuttavia, poiché accetta qualsiasi comando shell, possiamo riutilizzarla per inizializzare il nostro client VPN/Tailscale.
Innanzitutto, configura e testa il client VPN/Tailscale seguendo la documentazione . Una volta verificato che tutto funzioni correttamente, disabilita custom.sho commenta le righe relative a VPN/Tailscale. Questi client verranno inizializzati in un'altra fase del processo.
Il risultato finale della mia configurazione è simile a quello mostrato di seguito. Si noti che nel mio esempio utilizzo Tailscale e monto cartelle NFS, sebbene questa configurazione dovrebbe essere adattabile a qualsiasi combinazione di VPN/Tailscale e SMB/NFS. Inoltre, nel mio esempio ho incluso una correzione per la build ARM che richiede la creazione della cartella /dev/net oltre al comando "sleep 2s", poiché ho osservato che a volte il demone di Tailscale non termina l'inizializzazione prima che il client Tailscale gli chieda di attivare la rete. Modificate questi elementi in base alla vostra configurazione.
dispositivo condiviso=RETE sharenetwork_cmd1=eval if [ ! -d /dev/net ]; then mkdir -p /dev/net; mknod /dev/net/tun c 10 200; chmod 600 /dev/net/tun; fi && /userdata/tailscale/tailscaled -state /userdata/tailscale/state > /userdata/tailscale/tailscaled.log 2>&1 & sleep 2s; /userdata/tailscale/tailscale up --accept-routes sharenetwork_nfs1=ROMS@100.0.0.1:/mnt/Documents/batocera/roms sharenetwork_nfs2=SAVES@100.0.0.1:/mnt/Documents/batocera/saves sharenetwork_nfs3=BIOS@100.0.0.1:/mnt/Documents/batocera/bios
Avanzato
Risoluzione dei problemi
Assicurati di eseguire l'escape dei caratteri speciali nelle tue password CIFS, se ne hai. Per eseguire l'escape di un carattere, anteponi una barra rovesciata (\). Per eseguire l'escape della barra rovesciata stessa, usa il prefisso \\.
A scopo di risoluzione dei problemi, disponi /tmp/mountNetwork.logdi /tmp/mountNetwork.errinformazioni che ti forniranno, se necessario, dettagli sui guasti del montaggio.
Scopri i nomi delle azioni di rete
Se non hai ancora utilizzato la condivisione di rete con altri dispositivi e non sei sicuro del nome della condivisione stessa (è molto comune che i NAS segnalino un percorso errato per accedere ai dati), puoi "visualizzare" le condivisioni di rete disponibili dal file manager di Batocera . Nell'elenco di sistema, premi [F1]per aprirlo. Quindi, nel menu in alto, vai su Vai → Rete . Verranno visualizzati i nomi delle condivisioni di rete disponibili (insieme alla condivisione di rete di Batocera):
Questa procedura può essere utilizzata per verificare che il dispositivo Batocera riesca almeno a visualizzare il NAS. Potrebbe essere utile annotare questi nomi. Tuttavia, da questo menu non sarà possibile accedere alle cartelle condivise.
Scopri i percorsi di condivisione della rete
Kodi può essere utilizzato per visualizzare e accedere alle condivisioni di rete. Potrebbe essere necessario conoscere il nome della condivisione di rete per farlo. Apri Kodi, quindi vai su File (anche detto sezione Inserisci file ) → File → Aggiungi file multimediali… (per impostazione predefinita, Aggiungi video… ) → Sfoglia → Aggiungi posizione di rete… .
Da qui, inserisci il nome della condivisione di rete (e il tuo nome utente e la password se non hai abilitato l'accesso ospite/anonimo sul tuo NAS):
Nel caso in cui non si conosca il nome del dispositivo di rete (o non sia disponibile perché il router ha i nomi host disabilitati/un firewall molto restrittivo), è comunque possibile scoprire l'indirizzo IP del dispositivo di rete da qui.
Invece di andare su Aggiungi posizione di rete... , vai invece al browser Zeroconf . Ti verrà mostrato un elenco di tutti i dispositivi. Seleziona quello che desideri utilizzare e, se richiesto, ti verrà chiesto di inserire nome utente e password. Dopodiché, continua a seguire i passaggi come di consueto, sostituendo il nome della condivisione con l'indirizzo IP che ti verrà mostrato.
La tua condivisione verrà aggiunta all'elenco dei dispositivi navigabili; accedi ad essa (in questo esempio, smb://RASPBERRYPI) e quindi accedi alla cartella che intendi utilizzare per Batocera.
Annota il percorso del file indicato in fondo alla finestra; questo è il percorso da utilizzare per configurare il NAS. Ad esempio, il percorso di Kodi smb://RASPBERRYPI/samsung1tb/Emulation/romscontiene la condivisione tramite il protocollo Samba (smb) con il nome host, RASPBERRYPIil nome della condivisione samsung1tbe il percorso samsung1tb/Emulation/roms. Le righe di configurazione corrette batocera-boot.confsarebbero:
dispositivo condiviso=RETE sharenetwork_smb1=ROMS@RASPBERRYPI:samsung1tb/Emulation/roms
Condivisioni Samba/Windows montate manualmente
È possibile mappare singole cartelle sharenetwork_cmd#se si ha familiarità con il montaggio standard dello storage di rete Linux . Esempi di mappatura di altre directory tramite sharenetwork_cmd:
sharenetwork_cmd1=mount.cifs -o guest //192.168.0.1/Documents/batocera/music /userdata/music sharenetwork_cmd2=mount.cifs -o guest //192.168.0.1/Documents/batocera/cheats /userdata/cheats sharenetwork_cmd3=mount.cifs -o guest //192.168.0.1/Documents/batocera/screenshots /userdata/screenshots sharenetwork_cmd4=mount.cifs -o guest //192.168.0.1/Documents/batocera/themes /userdata/themes
Questo funzionerà solo se sharedevice=NETWORK. Puoi anche usarlo per montare qualsiasi cosa con comandi bash accettabili, incluse cartelle da unità locali, ecc.
Questi file appariranno come se fossero locali all'unità, quindi tieni presente questo aspetto quando risolverai problemi in futuro!
Permessi NFS e di root
Batocera ha un rootutente univoco, quindi tutti i file a cui si accede sulla condivisione provengono da tale rootutente, il che può entrare in conflitto con il modo in cui altri client NFS accedono ai file. È necessario verificare come sono dichiarati i permessi dei file sul server NFS. Un metodo comune per assicurarsi che i permessi dei file siano gestiti correttamente è quello di mappare i diritti dei file all'UID dell'utente che accederà a questi file localmente. In genere, se le condivisioni NFS sono definite in /etc/exportse si desidera concedere l'accesso a un utente con UID/GID pari a 1000, è possibile farlo con:
/media/games/batocera 192.168.0.1(rw,sync,all_squash,anonuid=1000,anongid=1000,no_subtree_check)
Risoluzione dei problemi
I log relativi al montaggio delle condivisioni sono disponibili /tmp/mountDevicesOrNetwork.errdopo l'avvio. Se l'avvio di una condivisione di rete non riesce, Batocera tenterà di ristabilire la connessione diverse volte prima di ripiegare sulla memoria interna.
Trovato questo articolo interessante? Condividilo sulla tua rete di contatti in Twitter, sulla tua bacheca su Facebook, in Linkedin, Instagram o Pinterest. Diffondere contenuti che trovi rilevanti aiuta questo blog a crescere. Grazie!















0 commenti:
Posta un commento