2023-06-20 13:19:28 +02:00
|
|
|
|
TODO:
|
2023-06-13 08:25:52 +02:00
|
|
|
|
compare sizes of glibc and musl installations
|
2023-06-20 13:19:28 +02:00
|
|
|
|
try running multiple MC versions on musl (incl ThatModPack)
|
2023-06-13 08:25:52 +02:00
|
|
|
|
need xdg menu maker?
|
2023-06-20 13:19:28 +02:00
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
musl downsides:
|
|
|
|
|
- no nvidia drivers
|
|
|
|
|
- may be janky in regards to running some Minecraft versions
|
|
|
|
|
musl upsides:
|
|
|
|
|
- ??
|
|
|
|
|
|
2023-06-13 08:25:52 +02:00
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
2023-06-13 14:24:42 +02:00
|
|
|
|
when backing up
|
|
|
|
|
- do not cross file system boundaries
|
|
|
|
|
- exclude /tmp, package cache, logs
|
2023-06-20 13:19:28 +02:00
|
|
|
|
- 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
|
2023-06-13 14:24:42 +02:00
|
|
|
|
|
2023-06-13 08:25:52 +02:00
|
|
|
|
Steps to install:
|
|
|
|
|
- (user does this:) boot Void installer
|
|
|
|
|
-> log in as root
|
|
|
|
|
-> connect to the internet
|
|
|
|
|
-> download and run install script
|
|
|
|
|
- preparations:
|
|
|
|
|
-> update xbps
|
2023-06-14 09:37:16 +02:00
|
|
|
|
-> install xmirror squashfs-tools
|
|
|
|
|
-> make our own or extract (if feasible) kb selection and time zone selection to hijack them for our purposes
|
2023-06-13 08:25:52 +02:00
|
|
|
|
- select kb layout
|
2023-06-14 09:37:16 +02:00
|
|
|
|
- set up disk
|
2023-06-13 08:25:52 +02:00
|
|
|
|
-> select disk from a list
|
2023-06-14 09:37:16 +02:00
|
|
|
|
-> warn user about formatting and making the USB stick unusable with Windows
|
|
|
|
|
-> allow user to double check that it’s the USB drive
|
|
|
|
|
-> wipe and partition disk (new gpt)
|
|
|
|
|
-> 2M BIOS GRUB
|
|
|
|
|
-> 268M ESP
|
|
|
|
|
-> 1G /boot
|
|
|
|
|
-> rest /container
|
|
|
|
|
-> format partitions
|
2023-06-13 08:25:52 +02:00
|
|
|
|
-> ESP FAT32
|
2023-06-14 09:37:16 +02:00
|
|
|
|
-> /boot and /container F2FS
|
|
|
|
|
- mount them things
|
|
|
|
|
-> set up plain tmpfs as / for now
|
2023-06-13 08:25:52 +02:00
|
|
|
|
- install base system
|
|
|
|
|
-> select mirror
|
2023-06-13 14:24:42 +02:00
|
|
|
|
-> just use xmirror and get the result from the file
|
|
|
|
|
-> if musl repo, remove that bit from repo url
|
2023-06-13 08:25:52 +02:00
|
|
|
|
-> select installation type (x86_32/x86_64/aarch64, glibc/musl)
|
2023-06-13 14:24:42 +02:00
|
|
|
|
-> if musl, add that bit to repo url
|
2023-06-13 08:25:52 +02:00
|
|
|
|
-> install packages
|
2023-06-20 13:19:28 +02:00
|
|
|
|
-> linux bash shadow f2fs-tools dosfstools dbus NetworkManager iana-etc iw wpa_supplicant util-linux which tar man-pages iproute2 iputils wifi-firmware traceroute grep gzip file sed gawk less coreutils findutils diffutils pciutils usbutils tzdata base-files ncurses mdocml procps-ng kbd xbps sudo ethtool kmod eudev runit-void removed-packages nano acpid squashfs-tools grub grub-i386-efi grub-x86_64-efi
|
2023-06-14 09:37:16 +02:00
|
|
|
|
-> configure XBPS mirror
|
2023-06-13 08:25:52 +02:00
|
|
|
|
-> configure sudo
|
|
|
|
|
-> drop a file with "%wheel ALL=(ALL:ALL) ALL" in /etc/sudoers.d/sudo_group
|
|
|
|
|
-> configure overlayfs setup
|
2023-06-14 09:37:16 +02:00
|
|
|
|
-> startup script
|
|
|
|
|
-> shutdown squashfs updater
|
|
|
|
|
-> rc.shutdown?
|
|
|
|
|
-> configure fstab
|
|
|
|
|
-> /boot, /boot/efi
|
|
|
|
|
-> /home (bind mount)
|
|
|
|
|
-> NOT /, /container
|
|
|
|
|
-> configure rc.conf
|
|
|
|
|
-> keyboard layout
|
|
|
|
|
-> hardware clock set to UTC?
|
|
|
|
|
-> configure time zone while we’re at it
|
|
|
|
|
-> selection dialog?
|
|
|
|
|
-> symlink /etc/localtime
|
|
|
|
|
-> configure host name
|
2023-06-20 13:19:28 +02:00
|
|
|
|
-> install and configure bootloader
|
|
|
|
|
-> install GRUB for i386-pc, i386-efi, x86_64-efi
|
|
|
|
|
-> --removable and --no-nvram for EFI
|
|
|
|
|
-> --boot-directory set to /boot/loader to prevent grub-mkconfig kernel hook from running
|
|
|
|
|
-> state as much in a text file in there
|
|
|
|
|
-> add kernel hooks
|
|
|
|
|
-> script to run /opt/void-usb/grub-config
|
|
|
|
|
-> a script that updates vmlinu{z,x} and initramfs.img symlinks
|
|
|
|
|
-> add symlinks for newly installed kernel
|
|
|
|
|
-> guess best choice when removing the currently symlinked kernel
|
|
|
|
|
-> ask whether to run vkpurge if disk space is low
|
|
|
|
|
-> download grub-config and its resources and drop them in /opt/void-usb
|
2023-06-13 08:25:52 +02:00
|
|
|
|
-> xbps-reconfigure -fa
|
|
|
|
|
-> prepare 2nd stage installation
|
|
|
|
|
-> auto login root
|
|
|
|
|
-> put script in .bashrc
|
|
|
|
|
-> build squashfs
|
|
|
|
|
-> (if needed) set up an initramfs with busybox to mount the squashfs/overlayfs at boot time
|
|
|
|
|
- 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
|
2023-06-13 14:24:42 +02:00
|
|
|
|
-> terminal?
|
|
|
|
|
-> browser?
|
|
|
|
|
-> prism launcher
|
2023-06-14 09:37:16 +02:00
|
|
|
|
-> java (multiple versions?)
|
2023-06-13 14:24:42 +02:00
|
|
|
|
-> pipewire (pulsemixer?)
|
2023-06-13 08:25:52 +02:00
|
|
|
|
-> ask about nvidia driver
|
|
|
|
|
-> install if needed
|
2023-06-20 13:19:28 +02:00
|
|
|
|
-> find out when and where to set `nvidia-drm.modeset=1`
|
2023-06-13 08:25:52 +02:00
|
|
|
|
-> 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
|