dflemstr
It's a ball.
in other words, yet another +1 for a purely ramdisk-based solution, and deletion of symlinks in that ramdisk by the pnddaemon after PNDs are unmounted, to make management more simple.sverm said:God Ginrai said:That's why I suggested the symlinks shouldn't be deleted, to get rid of the excessive wear.
The issue I have with that is that if you try-then-delete a lot of software, you're going to end up with lots of symlinks over the years, and who knows what virtual spaghetti that could turn into. I would err on the side of keeping NAND read-only, unless a special kind of PND comes around whose sole purpose is to update the Pandora base firmware (by "base firmware", I mean OS, environment, GUI, sanctioned standard libs, and not media players, emulators, roms, or recently updated libs only required by certain games)
Just my $0.02 worth.
So far, this is how the FS layout would look:
Code:
/ - There's an UnionFS on the root directory. The / directory is the overlay and /mnt/overlays is the "base" directory.
|-- dev/
| `-- shm/ - Ramdisk
| |-- overlays/ - The directory where all of the symlinks are stored.
| | `-- usr
| | `-- lib
| | |-- libfoo.so.3.8.9 -> /mnt/pnd029883/libfoo.so
| | |-- libfoo.so.3 -> /mnt/pnd029883/libfoo.so
| | `-- libfoo.so -> /mnt/pnd029883/libfoo.so
| `-- pnd029883/ - A mounted PND
| |-- overlay/ - This directory contains the symlinks that now have been copied into the /mnt/overlays folder
| | `-- usr/
| | `-- lib/
| | |-- libfoo.so.3.8.9 -> /libfoo.so - I'm meaning the PND root when I say / here.
| | |-- libfoo.so.3 -> /libfoo.so
| | `-- libfoo.so.3 -> /libfoo.so
| `-- foo.so
`-- usr/
`-- lib/
|-- libfoo.so.2 -> libfoo.so - Note that an older version is already present on the system
|--#libfoo.so.3 -> /mnt/pnd029883/libfoo.so - These come from the UnionFS overlay
|--#libfoo.so.3.8.9 -> /mnt/pnd029883/libfoo.so
`-- libfoo.so - This already exists on the system and thus "shadows" the overlay version of it.
...so the commands needed to do this are:
(once per boot
Code:
sudo mkdir /dev/shm/overlays
sudo mount -t unionfs -o dirs=/:/dev/shm/overlays none /
(Once per PND
Code:
sudo mount -o loop mypnd.pnd /mnt/pnd029883
find /mnt/pnd029883/overlay -type l -exec sudo cp -n '{}' /dev/shm/overlays/ ;
(Before a PND is unmounted; this is not quite safe but we can work on it
Code:
files=`find /mnt/pnd029883/overlay -type l`
for file in $files; do
if [ -e "/dev/shm/overlays/${file}" ]; then
sudo rm "$file"
fi
done
...and we're done. Easy, right? Oh, and of course, this is done by the pnddaemon; we don't do it manually.
Last edited by a moderator: