From 0fdc14e26d31848c125ef3e21deef3ea55a4b795 Mon Sep 17 00:00:00 2001 From: nmemmert <67961292+nmemmert@users.noreply.github.com> Date: Mon, 31 Aug 2026 13:47:25 -0400 Subject: [PATCH] Wire up installer, networking, and fix UEFI boot entry - Dockerfile: compile and install orioninstall-gui + orioninstall script - packages: add rsync, parted, arch-install-scripts, grub, efibootmgr, dosfstools, amd/intel-ucode, wpa_supplicant - customize_airootfs.sh: enable NetworkManager + wpa_supplicant on boot - orioninstall: fix UEFI (ESP at /boot, not /boot/efi); pass TIMEZONE and KEYBOARD into chroot heredoc; conditionalize microcode initrd lines - menu: launch orioninstall-gui via pkexec (runs as root) - profiledef: add file_permissions for installer binaries Co-Authored-By: Claude Sonnet 4.6 --- installer/orioninstall | 30 +++++++++---------- iso/docker/Dockerfile | 2 ++ .../airootfs/root/customize_airootfs.sh | 4 +++ iso/profile/packages.x86_64 | 11 +++++++ iso/profile/profiledef.sh | 2 ++ wm/src/menu.c | 2 +- 6 files changed, 35 insertions(+), 16 deletions(-) diff --git a/installer/orioninstall b/installer/orioninstall index 7b36793..4dda434 100644 --- a/installer/orioninstall +++ b/installer/orioninstall @@ -152,8 +152,8 @@ progress 14 "Mounting partitions…" info "Mounting..." mount "$ROOT_PART" /mnt if [[ "$BOOT_MODE" == "uefi" ]]; then - mkdir -p /mnt/boot/efi - mount "$EFI_PART" /mnt/boot/efi + mkdir -p /mnt/boot + mount "$EFI_PART" /mnt/boot fi ok "Mounted." @@ -197,9 +197,11 @@ info "Configuring system..." arch-chroot /mnt /bin/bash -s "$HOSTNAME" "$USERNAME" "$PASSWORD" \ "$BOOT_MODE" "$ROOT_PART" \ + "${TIMEZONE:-UTC}" "${KEYBOARD:-us}" \ <<'CHROOT' HOSTNAME="$1"; USERNAME="$2"; PASSWORD="$3" BOOT_MODE="$4"; ROOT_PART="$5" +TIMEZONE="${6:-UTC}"; KEYBOARD="${7:-us}" # Hostname echo "$HOSTNAME" > /etc/hostname @@ -268,22 +270,20 @@ mkinitcpio -P # Bootloader if [[ "$BOOT_MODE" == "uefi" ]]; then - bootctl install 2>/dev/null || true + bootctl --esp-path=/boot install 2>/dev/null || true ROOT_UUID="$(blkid -s UUID -o value "$ROOT_PART")" - mkdir -p /boot/efi/loader/entries - cat > /boot/efi/loader/loader.conf <<'LC' -default skyos.conf + mkdir -p /boot/loader/entries + cat > /boot/loader/loader.conf <<'LC' +default orionos.conf timeout 5 editor no LC - cat > /boot/efi/loader/entries/skyos.conf < /boot/loader/entries/orionos.conf else # Find the whole disk (strip trailing partition number) DISK="${ROOT_PART%[0-9]}" @@ -305,7 +305,7 @@ ok "System configured." progress 97 "Unmounting…" info "Unmounting..." sync -[[ "$BOOT_MODE" == "uefi" ]] && umount /mnt/boot/efi 2>/dev/null || true +[[ "$BOOT_MODE" == "uefi" ]] && umount /mnt/boot 2>/dev/null || true umount /mnt ok "Done." diff --git a/iso/docker/Dockerfile b/iso/docker/Dockerfile index 01650c0..f5d3b53 100644 --- a/iso/docker/Dockerfile +++ b/iso/docker/Dockerfile @@ -65,6 +65,8 @@ RUN cd /build/orionos && \ install -Dm755 orionshot/orionshot /build/orionos/iso/profile/airootfs/usr/local/bin/orionshot && \ install -Dm755 orionclip/orionclip /build/orionos/iso/profile/airootfs/usr/local/bin/orionclip && \ install -Dm755 orionpkg/orionpkg /build/orionos/iso/profile/airootfs/usr/local/bin/orionpkg && \ + install -Dm755 installer/orioninstall-gui /build/orionos/iso/profile/airootfs/usr/local/bin/orioninstall-gui && \ + install -Dm755 installer/orioninstall /build/orionos/iso/profile/airootfs/usr/local/bin/orioninstall && \ mkdir -p /build/orionos/iso/profile/airootfs/usr/share/themes/ && \ cp -r themes/OrionOS /build/orionos/iso/profile/airootfs/usr/share/themes/ && \ install -Dm644 themes/picom.conf /build/orionos/iso/profile/airootfs/etc/orionos/picom.conf diff --git a/iso/profile/airootfs/root/customize_airootfs.sh b/iso/profile/airootfs/root/customize_airootfs.sh index e2747f9..a47ef94 100644 --- a/iso/profile/airootfs/root/customize_airootfs.sh +++ b/iso/profile/airootfs/root/customize_airootfs.sh @@ -3,3 +3,7 @@ set -e -u # Allow passwordless root login on the live system passwd -d root + +# Enable networking on the live system +systemctl enable NetworkManager +systemctl enable wpa_supplicant diff --git a/iso/profile/packages.x86_64 b/iso/profile/packages.x86_64 index 5af4fcb..4c44c4a 100644 --- a/iso/profile/packages.x86_64 +++ b/iso/profile/packages.x86_64 @@ -50,6 +50,16 @@ brightnessctl # Media playback control playerctl +# Installer dependencies +rsync +parted +arch-install-scripts +grub +efibootmgr +dosfstools +amd-ucode +intel-ucode + # Arch tools archiso pacman-contrib @@ -68,6 +78,7 @@ gzip # Network networkmanager +wpa_supplicant dhcpcd # Misc diff --git a/iso/profile/profiledef.sh b/iso/profile/profiledef.sh index 431e623..137c348 100644 --- a/iso/profile/profiledef.sh +++ b/iso/profile/profiledef.sh @@ -29,4 +29,6 @@ file_permissions=( ["/usr/local/bin/orionshot"]="0:0:755" ["/usr/local/bin/orionclip"]="0:0:755" ["/usr/local/bin/orionpkg"]="0:0:755" + ["/usr/local/bin/orioninstall"]="0:0:755" + ["/usr/local/bin/orioninstall-gui"]="0:0:755" ) diff --git a/wm/src/menu.c b/wm/src/menu.c index 8961cda..d4a07df 100644 --- a/wm/src/menu.c +++ b/wm/src/menu.c @@ -17,7 +17,7 @@ static const MenuItem MENU_ITEMS[] = { { "Display Settings", "arandr &" }, { "──────────────────", NULL }, { "Change Wallpaper", "orionwallpaper --reset &" }, - { "Install OrionOS", "xterm -e bash -c 'orioninstall; exec bash' &" }, + { "Install OrionOS", "pkexec orioninstall-gui &" }, { "──────────────────", NULL }, { "Restart OrionWM", "pkill orionwm; sleep 0.2; orionwm &" }, { "Quit OrionOS", "pkill orionwm" },