113 lines
4.1 KiB
Plaintext
113 lines
4.1 KiB
Plaintext
TODO:
|
||
compare sizes of glibc and musl installations
|
||
try running multiple MC versions on musl (incl ThatModPack)
|
||
need xdg menu maker?
|
||
check if there are problems with GRUB’s --disk-module=native on real USB drives on real hardware
|
||
test that the (RAM) boot option allows you to install to the stick the system booted off
|
||
adjust required USB stick and RAM size in README
|
||
test kernel hooks and grub-config with all sorts of weird kernel/initramfs setups
|
||
- all names
|
||
- various compressions
|
||
do not rely on the RTC
|
||
- change the message when configuring UTC/localtime to reflect that this is only for offline usage
|
||
- use ntp to get time
|
||
- only fall back to using rtc if offline
|
||
- do not set the RTC
|
||
move /boot to /container
|
||
|
||
musl downsides:
|
||
- no nvidia drivers
|
||
- may be janky in regards to running some Minecraft versions
|
||
musl upsides:
|
||
- ??
|
||
|
||
|
||
ideas:
|
||
use shell script for init, call real init via exec
|
||
system lives on squashfs
|
||
-> overlayfs with tmpfs set up at boot
|
||
-> new system image generated and written back on shutdown
|
||
-> user-selectable ("Do you want to save changes to the system? This will take some time.")
|
||
-> fstrim (if applicable)
|
||
swap on zram
|
||
f2fs for home
|
||
|
||
boot setup + dracut configuration
|
||
- root=/dev/loop0 ro
|
||
- custom dracut modules
|
||
- udev rule for /dev/loop0
|
||
- pre-mount script
|
||
- mount /container by UUID (possibly passed from a kernel command line parameter)
|
||
- losetup the squashfs img
|
||
- do we need one to move over the /container mount to real root?
|
||
- overlayfs gets mounted from fstab
|
||
|
||
when backing up
|
||
- do not cross file system boundaries
|
||
- exclude /tmp, package cache, logs
|
||
- possibly only save the changes in separate squashfs images
|
||
- either until it takes up too much space or until a certain number of images exist
|
||
- consolidate when the user requests it or when exceeding the limit
|
||
|
||
Steps to install:
|
||
- make our own or extract (if feasible) kb selection and time zone selection to hijack them for our purposes
|
||
- select kb layout
|
||
- install base system
|
||
-> select installation type (x86_32/x86_64/aarch64, glibc/musl)
|
||
-> if musl, add that bit to repo url
|
||
-> configure overlayfs setup
|
||
-> startup script
|
||
-> shutdown squashfs updater
|
||
-> rc.shutdown?
|
||
-> configure time zone
|
||
-> selection dialog?
|
||
-> symlink /etc/localtime
|
||
-> set up an initramfs to mount the squashfs/overlayfs at boot time
|
||
-> prepare 2nd stage installation
|
||
-> auto login root and put script in .bashrc
|
||
-> better method?
|
||
-> build squashfs
|
||
- prompt user to reboot to finish installation
|
||
- second stage installation
|
||
-> configure services
|
||
-> dbus
|
||
-> NetworkManager
|
||
-> acpid
|
||
-> ask user to connect to network using nmtui
|
||
-> install packages
|
||
-> setxkbmap xauth xorg-video-drivers mesa mesa-dri xorg-server elogind xorg-input-drivers xrandr acpilight xhost xinit xrdb xinput xgamma xset iceauth sessreg transset xcmsdb xkbutils xmodmap dejavu-fonts-ttf
|
||
-> terminal?
|
||
-> browser?
|
||
-> prism launcher
|
||
-> java (multiple versions?)
|
||
-> pipewire (pulsemixer?)
|
||
-> ask about nvidia driver
|
||
-> install if needed
|
||
-> find out when and where to set `nvidia-drm.modeset=1`
|
||
-> ask whether to use CTWM or IceWM
|
||
-> short description of up and downsides
|
||
-> if CTWM, also install
|
||
-> xclock
|
||
-> if IceWM, also install
|
||
-> network-manager-applet
|
||
-> sound applet
|
||
-> configure zram swap
|
||
-> passwd -l root
|
||
-> populate /etc/skel
|
||
-> ultimate bashrc bc why not
|
||
-> first run message in xinitrc
|
||
-> auto-deletes itself
|
||
-> displays README.txt on root dir of the F2FS partition
|
||
-> if using CTWM
|
||
-> put xclock in xinitrc
|
||
-> configure more sane defaults
|
||
-> prepend bashrc with a thing that checks of xorg is running
|
||
-> if not, run startx and ask user whether to shut down, reboot, or do nothing afterwards
|
||
-> set up user
|
||
-> ask for username
|
||
-> run useradd (non-interactively)
|
||
-> run passwd (interactively)
|
||
-> add to groups
|
||
-> including sudo group
|
||
-> build new squashfs image and reboot
|