uureel / batocera-containers

containers for x64 batocera 36/37/38/39: ubuntu, debian, alpine, arch, plex, jellyfin
https://batocera.pro/containers
GNU General Public License v3.0
10 stars 1 forks source link

batocera-casaos suggested changes, issues, and wishlist #3

Open udance4ever opened 2 months ago

udance4ever commented 2 months ago
          wanna test? 

image

Originally posted by @uureel in https://github.com/uureel/batocera-containers/issues/2#issuecomment-2054183430

hey I dived pretty much head first into this container the last 48 hours so I want to make sure this is all logged & tracked somewhere so we don’t have duplicate effort. since GitHub is one gigantic wiki on steroids, we can edit this thread and break up this issue into separate ones as there’s a lot to unpack here!

Changes I made

these might be worth merging efforts

  1. updated default passwords 1a. made CasaOS login password match Batocera Linux root 1b. deleted and recreated Portainer to reset its unknown password (glad it was this easy!) (propose defaulting to “batocera/batoceralinux” due to its 12 char requirement)
  2. since custom.sh is depreciated as of v38, moved the script into services/casaos and enabled service: batocera-services enable casaos
  3. got ~/casaos down to 7GB barebones (was 16GB) (closer to 6GB w an empty .ipfs container (see 3b) & if say we only include Jellyfin since it’s open source, though I’m baised and use Emby :) 3a. deleted Kodi (and MariaDB which I believe it uses) and Syncthing as they are already part of the official Batocera Linux distro 3b. replaced DATA/emulatorjs/data/.ipfs with the one in data_default (97MB) - it’s grown to ~500MB (which is much better than 2GB!) 3c. containers that could be optional: Pi-hole, Sabrzbd, Doublecommander, qdirstat (we could create a Batocera AppStore) 3d. my personal pref: deleted PLEX - it forces a cloud login to plex.tv - can’t stand creepy big brother sh*t! 3e. Remmina’s image footprint is rather large at 2GB+ so deleted it until I get figure out how to RDP from my iPadPro 3f. went into Portainer and pruned remaining unused images 3g. went into DATA/AppData and cleaned up orphaned configs
  4. removed unnecessary volume access (eg. EmulatorJS only needs access to /userdata/roms to work)
  5. EmulatorJS 5a. reset emulatorjs/data/config back to nothing so it doesn’t contain 1000 roms & art assets that don’t exist ;) 5b. fixed mappings in emulatorjs/data for systems that have different names (eg. segaGG —> /userdata/roms/gamegear) 5c. wrote a script to symlink existing Batocera logo & video assets (we’re pretty spoiled by the robustness of the Batocera scraper - let it find everything and do it correctly!)
  6. mapped Emby & Jellyfin volumes to /userdata/kodi (it would make sense to create default “batocera” users with default libraries (movies, tv, music, pictures) for both)

Issues

  1. found a bug where the HDMI audio driver version changes from v3.0 to v3.0.5 after podman completes initializing the Debian12 container. Who could tell us why the HDMI audio driver version changes as a result of starting a Debian12 container w CasaOS in it? Documented a workaround to restart audio as part of the startup script (scroll up in the issue for more context)
  2. unable to upgrade CasaOS (complains about samba dependency)
  3. some EmulatorJS cores appear to be broken in default install (do you have them all working?): sega32x, colecovision, segaSaturn, psx, segaCD
  4. cosmetic: Apacer and WD Blue drive references that won’t die (even after clicking hidden close button)

Wishlist

  1. gamepad integration w emulatorJS (keyboard bindings work - do u have a gamepad working?)
  2. emulatorJS uses existing /userdata/saves
  3. emulatorJS uses existing ~/configs/retroarch directory (esp for remaps & overlays) (though I feel like we are reinventing Emulation Station at this point :) (where is the emulatorJS retroarch directory anyways?)
  4. Wireguard support (think this depends on this being built into Batocera Linux kernel?) - Mullva Browser has integrated VPN support and works awesome!
  5. drives in Batocera’s automounter in /media show up in CasaOS springboard
  6. home matches host /userdata/system (eg. so it picks up the same ~/.gitconfig)
  7. CasaOS navigation w gamepad

whew - that was a mouthful! hope it’s all useful - this is amazing work y’all are doing! thanks again for the invitation to test and peer into the future 🔮

uureel commented 1 month ago

that's fantastic input, much appreciated; was planning to get into it much earlier but am stuffed elsewhere; maybe you could make the clean/slim image for casaos? (it's just tar czvf batocera-casaos.tar.gz ./casaos); from there i can try fiddle with a few things if spare time some time;

eg samba missing - i just kicked it in first release since it sometimes collided with batocera's and didn't want users to mess with two versions (but it's easily reinstallable via apt etc), also downgraded casa intentionally 1release down, as latest ver had a bug that didn't allow it to add custom launchers/containers with nonstandard/non-'latest' versions or smth)

most of the preinstalled stuff there was to bundle containers that are 'easier to delete than to add', esp for beginners, and to show examples of configs in the casa gui, for bato paths/volumes etc, i admit the full image would best be shaved a few gb

udance4ever commented 6 days ago

hey sorry for the delay in response - I'm glad the input is appreciated!

I've been focused on working on enhancements to the world of coco in Bactocera & starting to drum up new interest in both Batocera Linux & CasaOS on both YouTube & Discord so I'll be circling back around here soon (though I will be taking a big trip primarily off the grid quite soon!)

I would be happy to contribute a cleaned up zip & realizing I'm missing some kind of "sanitizer" script that will take a Batocera CasaOS install & restore default passwords, clean out user data (ie. Emby or emuJS db), non-default apps & pretty much get it back to a default configuration ready for distribution - have you done any work on such a script I can bounce off of?

I'm also wondering where you request I upload a new zip & integrate it into your current release over on batocera.pro?