Update readme
This commit is contained in:
parent
129325d4c9
commit
490e6c8283
72
README.md
72
README.md
@ -24,3 +24,75 @@ Or put it in /etc/fstab like:
|
||||
```
|
||||
/local/cache/dir /where/you/want/it/mounted cachefs defaults,ro,allow_other,remote_dir=/remote/dir/to/cache,nofail,_netdev 0 0
|
||||
```
|
||||
|
||||
How to compile
|
||||
--------------
|
||||
|
||||
If you have rust installed already, run the normal:
|
||||
`cargo build --release`
|
||||
|
||||
If you don't, or if you need to compile for some ancient glibc, and have podman or docker, run:
|
||||
`podman run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp docker.io/library/rust:1.62.1 bash -c 'apt-get update && apt-get -y install libfuse-dev && cargo build --release && strip target/release/cache-fs'`
|
||||
|
||||
How to use it on the Steam Deck over NFS
|
||||
---------------------------------------
|
||||
|
||||
There are many ways to set this up, personally I run `sudo systemctl start sshd` on the Deck and run all these commands
|
||||
via ssh from another computer, but that's optional, this is how I did it.
|
||||
|
||||
(Optional): To speed first access up, you can pre-cache your filesystem on the NFS server, or from a computer with a faster
|
||||
(perhaps wired) connection by running `cache-fs -c /path/to/server/roms/dir/`, this will create a file `/path/to/server/roms/dir/cache-fs.tree.zst`
|
||||
which will be copied to the cache directory on first run instead of made by scanning the NFS share over Deck WiFi.
|
||||
|
||||
Switch to desktop mode, install [EmuDeck](https://www.emudeck.com/) following instructions from there, copy your compiled
|
||||
`cache-fs` to `/home/deck/cache-fs` (I run `scp target/release/cache-fs deck@steamdeck:/home/deck/`) then run these
|
||||
commands, you'll need to re-run them again after any SteamOS update:
|
||||
|
||||
```
|
||||
# create the directories to be mounted
|
||||
mkdir -p /home/deck/Emulation/{romsnfs,roms,roms-cache}
|
||||
|
||||
# type your password to get a root console
|
||||
sudo -i
|
||||
|
||||
# link the executable so mount.cachefs works
|
||||
ln -sf /home/deck/cache-fs /usr/bin/mount.cachefs
|
||||
# disable readonly fs
|
||||
steamos-readonly disable
|
||||
# initialize the pacman keyring
|
||||
pacman-key --init
|
||||
|
||||
# these next 3 commands shouldn't be necessary but are, probably a bug to report to Valve...
|
||||
# this command will fail, press 'N' to not delete the package
|
||||
pacman -Sy archlinux-keyring
|
||||
# delete the signature file so we can install it anyway
|
||||
rm /var/cache/pacman/pkg/archlinux-keyring-*.pkg.tar.zst.sig
|
||||
# install the keys, press 'Y' to trust them
|
||||
pacman -U /var/cache/pacman/pkg/archlinux-*.pkg.tar.zst
|
||||
|
||||
# finally install what we were after, nfs-utils that provide mount.nfs
|
||||
pacman -S --overwrite '*' nfs-utils
|
||||
```
|
||||
|
||||
Now add the following to your `/etc/fstab`, I use run the command `nano /etc/fstab`, obviously replace IP and share with yours:
|
||||
```
|
||||
192.168.1.1:/mnt/deck/roms /home/deck/Emulation/romsnfs nfs defaults,ro,soft,timeo=100,retrans=0,retry=0,nodev,noexec,nosuid,noatime,async,v4,noauto,nofail,x-systemd.automount,x-systemd.mount-timeout=10,x-systemd.requires=NetworkManager.service,x-systemd.idle-timeout=1min,_netdev 0 0
|
||||
|
||||
/home/deck/Emulation/roms-cache /home/deck/Emulation/roms cachefs defaults,ro,allow_other,remote_dir=/home/deck/Emulation/romsnfs,nofail,_netdev 0 0
|
||||
```
|
||||
|
||||
Now you can reboot, or just run, (as root):
|
||||
```
|
||||
systemctl daemon-reload
|
||||
systemctl start home-deck-Emulation-romsnfs.automount home-deck-Emulation-roms.mount
|
||||
```
|
||||
|
||||
You will now see all of your roms (the same network tree) in `/home/deck/Emulation/romsnfs` and `/home/deck/Emulation/roms`,
|
||||
but `/home/deck/Emulation/roms-cache` will be empty until the first file is accessed and it's copied there, start up
|
||||
EmulationStation and enjoy!
|
||||
|
||||
How to use it a different way
|
||||
-----------------------------
|
||||
|
||||
Send me other ways you use it, if your roms are accessible over http, running cache-fs over [rclone](https://rclone.org/commands/rclone_mount/)
|
||||
might be a great way to go, what else?
|
||||
|
Loading…
Reference in New Issue
Block a user