Compare commits
No commits in common. "b95b8ce63428187997041e11dd1a377c4239e185" and "5913665869e580cffd9d16006b7a70f14464c468" have entirely different histories.
b95b8ce634
...
5913665869
|
@ -233,7 +233,6 @@ echo "# See fstab(5).
|
||||||
UUID=$(blkid --output value --match-tag UUID $TARGET_PART_BOOT) /boot f2fs defaults,nodev,nosuid 0 2
|
UUID=$(blkid --output value --match-tag UUID $TARGET_PART_BOOT) /boot f2fs defaults,nodev,nosuid 0 2
|
||||||
UUID=$(blkid --output value --match-tag UUID $TARGET_PART_EFI) /boot/efi vfat defaults,fmask=0077,dmask=0077 0 2
|
UUID=$(blkid --output value --match-tag UUID $TARGET_PART_EFI) /boot/efi vfat defaults,fmask=0077,dmask=0077 0 2
|
||||||
/run/void-usb/container/home /home none bind 0 0
|
/run/void-usb/container/home /home none bind 0 0
|
||||||
tmpfs /tmp tmpfs size=512m 0 0
|
|
||||||
" > /mnt/target/etc/fstab
|
" > /mnt/target/etc/fstab
|
||||||
|
|
||||||
if grep "#KEYMAP=" /mnt/target/etc/rc.conf; then
|
if grep "#KEYMAP=" /mnt/target/etc/rc.conf; then
|
||||||
|
|
|
@ -2,18 +2,22 @@ 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
|
||||||
show user-friendly status instead of scrolling output from all sorts of tools
|
look into UEFI specs and general availability of FAT16 support
|
||||||
shutdown squashfs updater can’t get user input!?
|
- if possible, shrink ESP and move GRUB to /run/void-usb/container
|
||||||
make our own or extract (if feasible) kb selection and time zone selection to hijack them for our purposes
|
add manufacturer where users select the target device
|
||||||
fix EFI boot
|
show user-firently status instead of scrolling output from all sorts of tools
|
||||||
|
|
||||||
musl downsides:
|
musl downsides:
|
||||||
- no nvidia drivers
|
- no nvidia drivers
|
||||||
|
@ -22,58 +26,91 @@ musl upsides:
|
||||||
- ??
|
- ??
|
||||||
|
|
||||||
|
|
||||||
Stage 1:
|
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
|
||||||
- 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 stage 2 script in .bashrc
|
-> auto login root and put 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
|
-> acpid
|
||||||
-> acpid
|
-> ask user to connect to network using nmtui
|
||||||
-> ask user to connect to network using nmtui
|
-> install packages
|
||||||
-> 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
|
||||||
-> 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?
|
||||||
-> terminal?
|
-> browser?
|
||||||
-> browser?
|
-> prism launcher
|
||||||
-> prism launcher
|
-> java (multiple versions?)
|
||||||
-> java (multiple versions?)
|
-> pipewire (pulsemixer?)
|
||||||
-> pipewire (pulsemixer?)
|
-> ask about nvidia driver
|
||||||
-> ask about nvidia driver
|
-> install if needed
|
||||||
-> install if needed
|
-> find out when and where to set `nvidia-drm.modeset=1`
|
||||||
-> find out when and where to set `nvidia-drm.modeset=1`
|
-> ask whether to use CTWM or IceWM
|
||||||
-> ask whether to use CTWM or IceWM
|
-> short description of up and downsides
|
||||||
-> short description of up and downsides
|
-> if CTWM, also install
|
||||||
-> if CTWM, also install
|
-> xclock
|
||||||
-> xclock
|
-> if IceWM, also install
|
||||||
-> if IceWM, also install
|
-> network-manager-applet
|
||||||
-> network-manager-applet
|
-> sound applet
|
||||||
-> sound applet
|
-> configure zram swap
|
||||||
-> configure zram swap
|
-> passwd -l root
|
||||||
-> passwd -l root
|
-> populate /etc/skel
|
||||||
-> populate /etc/skel
|
-> ultimate bashrc bc why not
|
||||||
-> ultimate bashrc bc why not
|
-> first run message in xinitrc
|
||||||
-> first run message in xinitrc
|
-> auto-deletes itself
|
||||||
-> auto-deletes itself
|
-> displays README.txt on root dir of the F2FS partition
|
||||||
-> displays README.txt on root dir of the F2FS partition
|
-> if using CTWM
|
||||||
-> if using CTWM
|
-> put xclock in xinitrc
|
||||||
-> put xclock in xinitrc
|
-> configure more sane defaults
|
||||||
-> configure more sane defaults
|
-> prepend bashrc with a thing that checks of xorg is running
|
||||||
-> 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
|
||||||
-> if not, run startx and ask user whether to shut down, reboot, or do nothing afterwards
|
-> set up user
|
||||||
-> set up user
|
-> ask for username
|
||||||
-> ask for username
|
-> run useradd (non-interactively)
|
||||||
-> run useradd (non-interactively)
|
-> run passwd (interactively)
|
||||||
-> run passwd (interactively)
|
-> add to groups
|
||||||
-> add to groups
|
-> including sudo group
|
||||||
-> including sudo group
|
-> build new squashfs image and reboot
|
||||||
-> build new squashfs image and reboot
|
|
||||||
|
|
Loading…
Reference in New Issue