feat: add install.sh for one-command installation#27
Open
rgvxsthi wants to merge 11 commits into
Open
Conversation
Signed-off-by: Thomas Rohloff <v10lator@myway.de>
Downloads latest release, removes any existing Neptune kernel packages, installs Charcoal kernel and headers, updates GRUB, and re-enables read-only filesystem. Usage: curl -L https://github.com/V10lator/linux-charcoal/raw/master/install.sh | bash
Detects the matching Neptune kernel from Charcoal's Replaces field, removes all Charcoal packages, reinstalls Neptune, updates GRUB, and re-enables the read-only filesystem.
- Switch steamos-readonly disable to steamos-devmode enable — headers package pulls signed repo deps (llvm, clang, lld, polly) which require keyring initialisation - Fix neptune/charcoal package detection: pacman -Qq glob pattern unreliable, use pacman -Qq | grep '^linux-neptune' instead
- steamos-devmode enable needs --no-prompt to run non-interactively - steamos-devmode disable does not exist; use steamos-readonly enable instead
Dev mode stays on after install. SteamOS updates reset it anyway.
- Confirmed steamos-devmode enable --no-prompt required (headers package pulls signed repo deps needing keyring init) - Fix package detection: use pacman -Qq | grep instead of glob - Remove steamos-readonly re-enable after install (devmode stays on, SteamOS updates reset it anyway) - Update README manual steps to match script behavior
- Save originally installed neptune package name to /etc/charcoal-original-neptune during install so uninstall can restore the exact version the user had - Add error handling in install: if charcoal install fails, automatically reinstall the saved neptune and exit cleanly - Uninstall falls back to Replaces field if save file not present
awk '/^Replaces/{print $3}' grabbed wrong package (virtualbox-guest-modules-arch).
Use grep + tr to extract linux-neptune specifically from the Replaces line.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds
install.shanduninstall.shso users can install or remove Charcoal with a single command — similar to how Decky Loader and Decky plugins are installed.Install:
curl -L https://github.com/V10lator/linux-charcoal/raw/master/install.sh | bashUninstall:
curl -L https://github.com/V10lator/linux-charcoal/raw/master/uninstall.sh | bashTested
Fully tested on Asus ROG Ally RC71L (SteamOS neptune-611 → charcoal-616 → neptune-611). Logs here.
What the scripts handle
steamos-readonly disable). The headers package pulls signed repo dependencies (llvm,clang,lld,polly) which need keyring initialisation.linux-neptune*packages before installing Charcoal usingpacman -Qq | grep '^linux-neptune'. Handles any series, avoiding the vmlinuz file conflict./etc/charcoal-original-neptune. Uninstall reads this to restore the exact version the user had, not just the series Charcoal was built against.vmlinuz-linux-neptune-616(charcoal's kernel image name) and writes the right grub entry.Notes
ata_generic,virtio_*andplymoutherrors during install are harmless — documented in the README.