|  |  |  | @ -2,22 +2,18 @@ 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 /run/void-usb/container instead of its own partition | 
		
	
		
			
				|  |  |  |  | look into UEFI specs and general availability of FAT16 support | 
		
	
		
			
				|  |  |  |  |   - if possible, shrink ESP and move GRUB to /run/void-usb/container | 
		
	
		
			
				|  |  |  |  | add manufacturer where users select the target device | 
		
	
		
			
				|  |  |  |  | show user-firently status instead of scrolling output from all sorts of tools | 
		
	
		
			
				|  |  |  |  | show user-friendly status instead of scrolling output from all sorts of tools | 
		
	
		
			
				|  |  |  |  | shutdown squashfs updater can’t get user input!? | 
		
	
		
			
				|  |  |  |  | make our own or extract (if feasible) kb selection and time zone selection to hijack them for our purposes | 
		
	
		
			
				|  |  |  |  | fix EFI boot | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | musl downsides: | 
		
	
		
			
				|  |  |  |  |   - no nvidia drivers | 
		
	
	
		
			
				
					|  |  |  | @ -26,91 +22,58 @@ 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 module | 
		
	
		
			
				|  |  |  |  |     - pre-mount script | 
		
	
		
			
				|  |  |  |  |       - mount /run/void-usb/container by UUID (passed from a kernel command line parameter) | 
		
	
		
			
				|  |  |  |  |       - losetup the squashfs img | 
		
	
		
			
				|  |  |  |  |     - pre-pivot script? | 
		
	
		
			
				|  |  |  |  |       - do we need one to move over the /run/void-usb/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 | 
		
	
		
			
				|  |  |  |  | Stage 1: | 
		
	
		
			
				|  |  |  |  |   - 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? | 
		
	
		
			
				|  |  |  |  |       -> auto login root and put stage 2 script in .bashrc | 
		
	
		
			
				|  |  |  |  |     -> 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 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | Stage 2: | 
		
	
		
			
				|  |  |  |  |   -> 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 | 
		
	
	
		
			
				
					| 
							
							
							
						 |  |  | 
 |