Compare commits
No commits in common. "0460940582e59714a59a8ed623800b000b9ae445" and "3fe25352130c488ca39450769b1d2501acc4b3c3" have entirely different histories.
0460940582
...
3fe2535213
|
@ -47,7 +47,6 @@ There are a couple manual steps to get started before the installer scripts can
|
|||
- Be aware that Void uses a US keymap until you change it. If your keyboard is different, you might need to look up an image of a US keyboard to find the right keys.
|
||||
- If booting off the USB stick you want to install to, use (RAM) option
|
||||
- Log in as `root`, password `voidlinux`
|
||||
- It won’t display anything while you type in the password but it will accept it.
|
||||
- If you need to use WiFi, run `void-installer`
|
||||
- Set your keyboard layout (optional)
|
||||
- Connect to your network
|
||||
|
@ -70,7 +69,7 @@ The scripts will take it from there, asking you for information and downloading
|
|||
- `install-stage2.sh`: continues setting up things after booting into the freshly installed base system
|
||||
- `opt/`: contains files to be installed in /opt/void-usb/
|
||||
- `grub-config`: custom grub config generator (probably not necessary but at this point I don’t wanna dig into the default one)
|
||||
- `system-image`: helper script to rebuild the squashfs
|
||||
- `backup-fs`: helper script to rebuild the squashfs
|
||||
- `kernel.d/`: kernel hooks to be installed in /etc/kernel.d
|
||||
- `skel/`: files to be added to /etc/skel
|
||||
- `bashrc`: my custom .bashrc
|
||||
|
|
|
@ -26,11 +26,9 @@ function yesno {
|
|||
read -p "[y/n] " -n1 DISCARD_ME
|
||||
case "$DISCARD_ME" in
|
||||
y)
|
||||
echo ""
|
||||
return 0
|
||||
;;
|
||||
n)
|
||||
echo ""
|
||||
return 1
|
||||
;;
|
||||
*)
|
||||
|
@ -53,7 +51,7 @@ if [ ! "$(id -u)" -eq 0 ]; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
if ping -c2 repo-default.voidlinux.org >> $LOGFILE 2>&1; then
|
||||
if ping -c4 repo-default.voidlinux.org >> $LOGFILE 2>&1; then
|
||||
:
|
||||
else
|
||||
echo "An internet connection is required to run this script."
|
||||
|
@ -242,7 +240,7 @@ echo "Adding mirror configuration."
|
|||
echo "repository=$TARGET_MIRROR" > /mnt/target/etc/xbps.d/00-repository-main.conf
|
||||
|
||||
echo "Adding sudo configuration."
|
||||
echo "%wheel ALL=(ALL:ALL) ALL" > /mnt/target/etc/sudoers.d/wheel_as_sudo_group
|
||||
echo "%wheel ALL=(ALL:ALL) ALL" > /mnt/target/etc/sudoers.d/wheel_as_sudo_group.conf
|
||||
echo "Disabling root password."
|
||||
run_in_target passwd --lock root
|
||||
|
||||
|
@ -268,13 +266,13 @@ wget --output-document=/mnt/target/lib/dracut/modules.d/90void-usb/overlay.sh "$
|
|||
chmod 744 /mnt/target/lib/dracut/modules.d/90void-usb/overlay.sh >> $LOGFILE 2>&1
|
||||
echo "done"
|
||||
|
||||
echo -n "Adding system-image helper... "
|
||||
echo -n "Adding file system helper... "
|
||||
mkdir -p /mnt/target/opt/void-usb >> $LOGFILE 2>&1
|
||||
chmod 755 /mnt/target/opt/void-usb >> $LOGFILE 2>&1
|
||||
wget --output-document=/mnt/target/opt/void-usb/system-image "$GIT_REPO_BASE/opt/system-image" >> $LOGFILE 2>&1
|
||||
chmod 744 /mnt/target/opt/void-usb/system-image >> $LOGFILE 2>&1
|
||||
wget --output-document=/mnt/target/opt/void-usb/backup-fs "$GIT_REPO_BASE/opt/backup-fs" >> $LOGFILE 2>&1
|
||||
chmod 744 /mnt/target/opt/void-usb/backup-fs >> $LOGFILE 2>&1
|
||||
echo "
|
||||
/opt/void-usb/system-image" >> /mnt/target/etc/rc.shutdown
|
||||
/opt/void-usb/backup-fs" >> /mnt/target/etc/rc.shutdown
|
||||
echo "done"
|
||||
|
||||
echo "Adding fstab."
|
||||
|
@ -434,7 +432,7 @@ echo 'if [ -x /sbin/agetty -o -x /bin/agetty ]; then
|
|||
fi' > /mnt/target/etc/sv/agetty-tty1/conf
|
||||
|
||||
[ -f /mnt/target/root/.profile ] && mv /mnt/target/root/.profile /mnt/target/root/.profile.bak >> $LOGFILE 2>&1
|
||||
echo "if ps aux | grep 'installer-stage2.sh' | grep -v 'grep' > /dev/null 2>&1; then
|
||||
echo "if ps aux | grep 'installer-stage2.sh' > /dev/null 2>&1; then
|
||||
true
|
||||
else
|
||||
/opt/void-usb/installer/install-stage2.sh
|
||||
|
@ -455,6 +453,6 @@ press_any_key
|
|||
|
||||
echo "Creating system image..."
|
||||
#TODO: make this work without user interaction
|
||||
run_in_target /opt/void-usb/system-image
|
||||
run_in_target /opt/void-usb/backup-fs
|
||||
reboot
|
||||
#
|
||||
|
|
|
@ -14,11 +14,9 @@ function yesno {
|
|||
read -p "[y/n] " -n1 DISCARD_ME
|
||||
case "$DISCARD_ME" in
|
||||
y)
|
||||
echo ""
|
||||
return 0
|
||||
;;
|
||||
n)
|
||||
echo ""
|
||||
return 1
|
||||
;;
|
||||
*)
|
||||
|
@ -95,17 +93,15 @@ for I in ${!SECTIONS[@]}; do
|
|||
else
|
||||
clear
|
||||
cat "/opt/void-usb/installer/package_selections/${SECTIONS[$I]}/description.txt"
|
||||
echo ""
|
||||
for J in ${!AVAILABLE_OPTIONS[@]}; do
|
||||
source "/opt/void-usb/installer/package_selections/${SECTIONS[$I]}/${AVAILABLE_OPTIONS[$J]}"
|
||||
echo "$J: $DESCRIPTION"
|
||||
done
|
||||
CHOICE=""
|
||||
while [ -z "$CHOICE" ]; do
|
||||
echo ""
|
||||
echo "Select by entering the corresponding number."
|
||||
read -p "> " CHOICE_NUMBER
|
||||
grep "^[0-9]*$" <<< "$CHOICE_NUMBER" && CHOICE="${AVAILABLE_OPTIONS[$CHOICE_NUMBER]}"
|
||||
CHOICE="${AVAILABLE_OPTIONS[$CHOICE_NUMBER]}"
|
||||
done
|
||||
fi
|
||||
|
||||
|
|
|
@ -8,16 +8,14 @@ do not rely on the RTC
|
|||
- only fall back to using rtc if offline
|
||||
- do not set the RTC
|
||||
make our own or extract (if feasible) kb selection and time zone selection to hijack them for our purposes
|
||||
- potentially interesting packages
|
||||
- ckbcomp
|
||||
- kbd-data
|
||||
vkpurge old stuff - only keep 2 vkpurgeable kernels
|
||||
- change kernel pre-install hook
|
||||
overview of the installation process at the start
|
||||
overall progress indication (step x out of y)
|
||||
exclude optical drives
|
||||
add newline after yesno (also in backup script)
|
||||
add bash completion along the line somewhere
|
||||
replace OpenBox with something lighter
|
||||
test that OpenBox is actually lighter than IceWM - or replace it with something that is
|
||||
allow unprivileged users to mount / unmount disks in GUI sessions
|
||||
look into roxterm as an alternative terminal
|
||||
add a zram swap option to package_selections
|
||||
|
@ -30,15 +28,8 @@ first run message in xinitrc
|
|||
put a README.txt on root dir of F2FS partition
|
||||
add online check to all the selections that need internet
|
||||
sort out /etc/resolv.conf for the chroot
|
||||
set keyboard layout for initramfs
|
||||
need some sort of notification handler?
|
||||
|
||||
when installing GUI also install elogind xdg-utils dbus-elogind dbus-elogind-libs dbus-elogind-x11
|
||||
allow backgrounds only for icewm-fancy
|
||||
when pre-configuring desktop
|
||||
-> check if pipewire installed
|
||||
-> add pipewire, pipewire-pulse, wireplumber
|
||||
-> run IceWM directly if the lighter setup was selected
|
||||
Minimum viable Xorg setup: 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
|
||||
|
||||
musl downsides:
|
||||
- no nvidia drivers
|
||||
|
@ -57,16 +48,9 @@ Stage 2:
|
|||
-> set up user
|
||||
-> ask for username
|
||||
-> run useradd (non-interactively)
|
||||
-> useradd --groups "comma,separated,groups" --create-home --shell /bin/bash $USERNAME
|
||||
-> groups: dialout users wheel
|
||||
-> ?? groups:
|
||||
-> video - Can use GUI? Can use webcam?
|
||||
-> cdrom optical - can listen to CDs? Can watch DVDs? Can mount / unmount CDs/DVDs?
|
||||
-> storage - can mount / unmount disks from GUI?
|
||||
-> scanner - can scan things (for example using XSane?)
|
||||
-> network - can interface with NetworkManager?
|
||||
-> kvm - can run QEMU?
|
||||
-> run passwd (interactively)
|
||||
-> add to groups
|
||||
-> including sudo group
|
||||
-> clean up
|
||||
-> mv /mnt/target/etc/sv/agetty-tty1/conf.bak /mnt/target/etc/sv/agetty-tty1/conf
|
||||
-> if [ -f /mnt/target/root/.profile.bak ]; then mv /mnt/target/root/.profile.bak /mnt/target/root/.profile; else rm /mnt/target/root/.profile; fi
|
||||
|
|
|
@ -14,11 +14,9 @@ function yesno {
|
|||
read -p "[y/n] " -n1 DISCARD_ME < $TTY_OR_CONSOLE
|
||||
case "$DISCARD_ME" in
|
||||
y)
|
||||
echo ""
|
||||
return 0
|
||||
;;
|
||||
n)
|
||||
echo ""
|
||||
return 1
|
||||
;;
|
||||
*)
|
||||
|
@ -50,39 +48,34 @@ for I in ${!MOUNT_LIST[@]}; do
|
|||
fi
|
||||
done
|
||||
|
||||
touch /run/void-usb/system-image-excludes
|
||||
touch /run/void-usb/system-image-pseudo
|
||||
touch /run/void-usb/backup-fs-excludes
|
||||
touch /run/void-usb/backup-fs-pseudo
|
||||
for I in ${!EXCLUDE_LIST[@]}; do
|
||||
echo "/${EXCLUDE_LIST[$I]}" >> /run/void-usb/system-image-excludes
|
||||
echo "/${EXCLUDE_LIST[$I]}" >> /run/void-usb/backup-fs-excludes
|
||||
FILE_PERMS="$(stat -c '%a %u %g' "${EXCLUDE_LIST[$I]}")"
|
||||
echo "\"/${EXCLUDE_LIST[$I]}\" d $FILE_PERMS" >> /run/void-usb/system-image-pseudo
|
||||
echo "\"/${EXCLUDE_LIST[$I]}\" d $FILE_PERMS" >> /run/void-usb/backup-fs-pseudo
|
||||
done
|
||||
|
||||
#TODO: refuse to run if system is running
|
||||
|
||||
#TODO: add a way to force a new system image up without asking (for example a file in /run/void-usb)
|
||||
#TODO: add a way to force backing up without asking (for example a file in /run/void-usb)
|
||||
|
||||
#TODO: colors (bright white / light gray for readability)
|
||||
echo "Create a new system image?
|
||||
echo "Back up system changes to disk?
|
||||
|
||||
This will replace the existing system image with a snapshot of the currently
|
||||
running system. Choosing no here will discard any newly installed programs,
|
||||
updates, system configuration changes, etc.
|
||||
|
||||
This should not affect your files in /home as they are stored to disk directly.
|
||||
Check /TODO/README.txt for more information.
|
||||
|
||||
Creating a new system image will take some time.
|
||||
This only affects things outside the /home directory.
|
||||
Backing up the system will take some time.
|
||||
"
|
||||
|
||||
if yesno; then
|
||||
echo "Building image..."
|
||||
mksquashfs / /run/void-usb/container/new_squashfs.img -b 1M -comp xz -progress -noappend -pf /run/void-usb/system-image-pseudo -ef /run/void-usb/system-image-excludes
|
||||
echo "Backing up..."
|
||||
mksquashfs / /run/void-usb/container/new_squashfs.img -b 1M -comp xz -progress -noappend -pf /run/void-usb/backup-fs-pseudo -ef /run/void-usb/backup-fs-excludes
|
||||
#TODO: check if enough disk space
|
||||
# yes -> create new image next to old image
|
||||
# no -> create new image in RAM
|
||||
#TODO: figure out when appending to existing squashfs is a good idea
|
||||
mv /run/void-usb/container/new_squashfs.img /run/void-usb/container/squashfs.img
|
||||
else
|
||||
echo "Discarding system changes."
|
||||
echo ""
|
||||
echo "Not backing up."
|
||||
fi
|
|
@ -5,9 +5,8 @@ function check {
|
|||
|
||||
DESCRIPTION="BodgeMaster’s IceWM setup (recommended)"
|
||||
|
||||
XORG_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"
|
||||
# TODO
|
||||
PACKAGES="$XORG_PACKAGES icewm elogind"
|
||||
PACKAGES=""
|
||||
|
||||
function post_install {
|
||||
echo "desktop/icewm-fancy" >> /tmp/stage-2-choices
|
||||
|
|
|
@ -5,9 +5,8 @@ function check {
|
|||
|
||||
DESCRIPTION="Lighter IceWM setup"
|
||||
|
||||
XORG_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"
|
||||
# TODO
|
||||
PACKAGES="$XORG_PACKAGES icewm elogind"
|
||||
PACKAGES=""
|
||||
|
||||
function post_install {
|
||||
echo "desktop/icewm-light" >> /tmp/stage-2-choices
|
||||
|
|
|
@ -6,9 +6,8 @@ function check {
|
|||
# TODO: more information for the user
|
||||
DESCRIPTION="OpenBox window manager (even more lightweight???)"
|
||||
|
||||
XORG_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"
|
||||
# TODO
|
||||
PACKAGES="$XORG_PACKAGES xclock openbox elogind"
|
||||
# TODO also add xclock
|
||||
PACKAGES=""
|
||||
|
||||
function post_install {
|
||||
echo "desktop/openbox" >> /tmp/stage-2-choices
|
||||
|
|
Loading…
Reference in New Issue