|  |  | @ -2,22 +2,18 @@ TODO: | 
			
		
	
		
		
			
				
					
					|  |  |  | compare sizes of glibc and musl installations |  |  |  | compare sizes of glibc and musl installations | 
			
		
	
		
		
			
				
					
					|  |  |  | try running multiple MC versions on musl (incl ThatModPack) |  |  |  | try running multiple MC versions on musl (incl ThatModPack) | 
			
		
	
		
		
			
				
					
					|  |  |  | need xdg menu maker? |  |  |  | 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 |  |  |  | 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 |  |  |  | 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 |  |  |  | do not rely on the RTC | 
			
		
	
		
		
			
				
					
					|  |  |  |   - change the message when configuring UTC/localtime to reflect that this is only for offline usage |  |  |  |   - change the message when configuring UTC/localtime to reflect that this is only for offline usage | 
			
		
	
		
		
			
				
					
					|  |  |  |   - use ntp to get time |  |  |  |   - use ntp to get time | 
			
		
	
		
		
			
				
					
					|  |  |  |     - only fall back to using rtc if offline |  |  |  |     - only fall back to using rtc if offline | 
			
		
	
		
		
			
				
					
					|  |  |  |   - do not set the RTC |  |  |  |   - do not set the RTC | 
			
		
	
		
		
			
				
					
					|  |  |  | move /boot to /run/void-usb/container instead of its own partition |  |  |  | move /boot to /run/void-usb/container instead of its own partition | 
			
		
	
		
		
			
				
					
					|  |  |  | look into UEFI specs and general availability of FAT16 support |  |  |  | show user-friendly status instead of scrolling output from all sorts of tools | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   - if possible, shrink ESP and move GRUB to /run/void-usb/container |  |  |  | shutdown squashfs updater can’t get user input!? | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | add manufacturer where users select the target device |  |  |  | make our own or extract (if feasible) kb selection and time zone selection to hijack them for our purposes | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | show user-firently status instead of scrolling output from all sorts of tools |  |  |  | fix EFI boot | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | musl downsides: |  |  |  | musl downsides: | 
			
		
	
		
		
			
				
					
					|  |  |  |   - no nvidia drivers |  |  |  |   - no nvidia drivers | 
			
		
	
	
		
		
			
				
					|  |  | @ -26,53 +22,20 @@ musl upsides: | 
			
		
	
		
		
			
				
					
					|  |  |  |   - ?? |  |  |  |   - ?? | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | ideas: |  |  |  | Stage 1: | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 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 |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   - select kb layout |  |  |  |   - select kb layout | 
			
		
	
		
		
			
				
					
					|  |  |  |   - install base system |  |  |  |   - install base system | 
			
		
	
		
		
			
				
					
					|  |  |  |     -> select installation type (x86_32/x86_64/aarch64, glibc/musl) |  |  |  |     -> select installation type (x86_32/x86_64/aarch64, glibc/musl) | 
			
		
	
		
		
			
				
					
					|  |  |  |       -> if musl, add that bit to repo url |  |  |  |       -> if musl, add that bit to repo url | 
			
		
	
		
		
			
				
					
					|  |  |  |     -> configure overlayfs setup |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       -> startup script |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       -> shutdown squashfs updater |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         -> rc.shutdown? |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     -> configure time zone |  |  |  |     -> configure time zone | 
			
		
	
		
		
			
				
					
					|  |  |  |       -> selection dialog? |  |  |  |       -> selection dialog? | 
			
		
	
		
		
			
				
					
					|  |  |  |       -> symlink /etc/localtime |  |  |  |       -> symlink /etc/localtime | 
			
		
	
		
		
			
				
					
					|  |  |  |     -> set up an initramfs to mount the squashfs/overlayfs at boot time |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     -> prepare 2nd stage installation |  |  |  |     -> prepare 2nd stage installation | 
			
		
	
		
		
			
				
					
					|  |  |  |       -> auto login root and put script in .bashrc |  |  |  |       -> auto login root and put stage 2 script in .bashrc | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         -> better method? |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     -> build squashfs |  |  |  |     -> build squashfs | 
			
		
	
		
		
			
				
					
					|  |  |  |   - prompt user to reboot to finish installation |  |  |  |   - prompt user to reboot to finish installation | 
			
		
	
		
		
			
				
					
					|  |  |  |   - second stage installation |  |  |  | 
 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | Stage 2: | 
			
		
	
		
		
			
				
					
					|  |  |  |   -> configure services |  |  |  |   -> configure services | 
			
		
	
		
		
			
				
					
					|  |  |  |     -> dbus |  |  |  |     -> dbus | 
			
		
	
		
		
			
				
					
					|  |  |  |     -> NetworkManager |  |  |  |     -> NetworkManager | 
			
		
	
	
		
		
			
				
					|  |  | 
 |