From 35a0654c009a51e033f252b88b6d4ac373f9139e Mon Sep 17 00:00:00 2001 From: BodgeMaster <> Date: Tue, 13 Jun 2023 08:25:52 +0200 Subject: [PATCH] Figure out process to follow --- procedure.txt | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 procedure.txt diff --git a/procedure.txt b/procedure.txt new file mode 100644 index 0000000..28e4bcb --- /dev/null +++ b/procedure.txt @@ -0,0 +1,104 @@ +compare sizes of glibc and musl installations +try running multiple MC versions on musl +need xdg menu maker? + +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 +tmpfs for package cache, /tmp, logs? + +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 + -> install xmirror + -> make our own or extract kb selection, mirror selection, and time zone selection (if feasible) to hijack them for our purposes + - warn user about formatting and making the USB stick unusable with Windows + - select kb layout + - set up disks + -> select disk from a list + -> wipe disk (new gpt) + -> partition disk + -> 270M ESP (if needed) or 2M BIOS GRUB + -> partition that holds home and the squashfs image + -> format partitions (use force option) + -> ESP FAT32 + -> rest F2FS + - mount them things, set up tmpfs as / for now + - install base system + -> select mirror + -> select installation type (x86_32/x86_64/aarch64, glibc/musl) + -> install packages + -> 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 + -> configure XBPS (set mirror, anything else?) + -> configure sudo + -> drop a file with "%wheel ALL=(ALL:ALL) ALL" in /etc/sudoers.d/sudo_group + -> configure overlayfs setup + -> configure tmpfses + -> configure /home (bind mount or symlink?) + -> configure keymap (etc/rc.conf) + -> configure shutdown squashfs updater + -> rc.shutdown? + -> configure and install bootloader + -> determine BIOS or UEFI + -> if UEFI, install as removable device + -> 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 + -> set up timezone + -> ask user which zone + -> ask user whether to use UTC or local time + -> configure (rc.conf and /etc/localtime) + -> set hostname + -> ask user + -> configure + -> 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 + -> ?? xorg-fonts pulsemixer PrismLauncher + -> ask about nvidia driver + -> install if needed + -> 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