diff --git a/airootfs/etc/default/grub b/airootfs/etc/default/grub deleted file mode 100644 index 15ee01f..0000000 --- a/airootfs/etc/default/grub +++ /dev/null @@ -1,62 +0,0 @@ -# GRUB boot loader configuration - -GRUB_DEFAULT=0 -GRUB_TIMEOUT=5 -GRUB_DISTRIBUTOR="Arch" -GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet audit=0" -GRUB_CMDLINE_LINUX="" - -# Preload both GPT and MBR modules so that they are not missed -GRUB_PRELOAD_MODULES="part_gpt part_msdos" - -# Uncomment to enable booting from LUKS encrypted devices -GRUB_ENABLE_CRYPTODISK=y - -# Set to 'countdown' or 'hidden' to change timeout behavior, -# press ESC key to display menu. -GRUB_TIMEOUT_STYLE=menu - -# Uncomment to use basic console -GRUB_TERMINAL_INPUT=console - -# Uncomment to disable graphical terminal -#GRUB_TERMINAL_OUTPUT=console - -# The resolution used on graphical terminal -# note that you can use only modes which your graphic card supports via VBE -# you can see them in real GRUB with the command `vbeinfo' -GRUB_GFXMODE=auto - -# Uncomment to allow the kernel use the same resolution used by grub -GRUB_GFXPAYLOAD_LINUX=keep - -# Uncomment if you want GRUB to pass to the Linux kernel the old parameter -# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx" -#GRUB_DISABLE_LINUX_UUID=true - -# Uncomment to disable generation of recovery mode menu entries -GRUB_DISABLE_RECOVERY=true - -# Uncomment and set to the desired menu colors. Used by normal and wallpaper -# modes only. Entries specified as foreground/background. -#GRUB_COLOR_NORMAL="white/black" -#GRUB_COLOR_HIGHLIGHT="light-cyan/black" - -# Uncomment one of them for the gfx desired, a image background or a gfxtheme -#This background comes in the minimal and flagship editions -#GRUB_BACKGROUND="/usr/share/wallpapers/real-wood/real-wood.jpg" -#GRUB_THEME= - -# Uncomment to get a beep at GRUB start -#GRUB_INIT_TUNE="480 440 1" - -# Uncomment to make GRUB remember the last selection. This requires -# setting 'GRUB_DEFAULT=saved' above. Change 0 into saved. -# Do not forget to 'update-grub' in a terminal to apply the new settings -#GRUB_SAVEDEFAULT="true" - -# Uncomment to make grub stop using submenus -#GRUB_DISABLE_SUBMENU=y - -#New GRUB update disables OS prober by default. We don't want that. -GRUB_DISABLE_OS_PROBER=false diff --git a/airootfs/etc/holoinstall/post_install/flathub-beta.flatpakrepo b/airootfs/etc/holoinstall/post_install/flathub-beta.flatpakrepo new file mode 100644 index 0000000..315c8c6 --- /dev/null +++ b/airootfs/etc/holoinstall/post_install/flathub-beta.flatpakrepo @@ -0,0 +1,8 @@ +[Flatpak Repo] +Title=Flathub Beta +Url=https://dl.flathub.org/beta-repo/ +Homepage=https://flathub.org/ +Comment=Beta builds of Flatpak applications +Description=Beta builds of Flatpak applications +Icon=https://dl.flathub.org/repo/logo.svg +GPGKey=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 \ No newline at end of file diff --git a/airootfs/etc/holoinstall/post_install/install_holoiso.sh b/airootfs/etc/holoinstall/post_install/install_holoiso.sh new file mode 100644 index 0000000..a81183f --- /dev/null +++ b/airootfs/etc/holoinstall/post_install/install_holoiso.sh @@ -0,0 +1,352 @@ +#!/bin/zsh +# HoloISO Installer v2 +# This defines all of the current variables. +HOLO_INSTALL_DIR="${HOLO_INSTALL_DIR:-/mnt}" +IS_WIN600=$(cat /sys/devices/virtual/dmi/id/product_name | grep Win600) +IS_STEAMDECK=$(cat /sys/devices/virtual/dmi/id/product_name | grep Jupiter) + +if [ -n "${IS_WIN600}" ]; then + GAMEPAD_DRV="1" + INST_MSG1=$(echo "You're running this on Anbernic Win600. A suitable gamepad driver will be installed.") +fi + +if [ -n "${IS_STEAMDECK}" ]; then + FIRMWARE_INSTALL="1" + INST_MSG1=$(echo "You're running this on a Steam Deck. linux-firmware-neptune will be installed to ensure maximum kernel-side compatibility.") +fi + +check_mount(){ + if [ $1 != 0 ]; then + echo "\nError: Something went wrong when mounting $2 partitions. Please try again!\n" + echo 'Press any key to exit...'; read -k1 -s + exit 1 + fi +} + +check_download(){ + if [ $1 != 0 ]; then + echo "\nError: Something went wrong when $2.\nPlease make sure you have a stable internet connection!\n" + echo 'Press any key to exit...'; read -k1 -s + exit 1 + fi +} + +partitioning(){ + echo "Select your drive in popup:" + + DRIVEDEVICE=$(lsblk -d -o NAME | sed "1d" | awk '{ printf "FALSE""\0"$0"\0" }' | \ +xargs -0 zenity --list --width=600 --height=512 --title="Select disk" --text="Select your disk to install HoloISO in below:\n\n $(lsblk -d -o NAME,MAJ:MIN,RM,SIZE,RO,TYPE,VENDOR,MODEL,SERIAL,MOUNTPOINT)" \ +--radiolist --multiple --column ' ' --column 'Disks') + + DEVICE="/dev/${DRIVEDEVICE}" + + INSTALLDEVICE="${DEVICE}" + + if [ ! -b $DEVICE ]; then + echo "$DEVICE not found! Installation Aborted!" + exit 1 + fi + lsblk $DEVICE | head -n2 | tail -n1 | grep disk > /dev/null 2>&1 + if [ $? != 0 ]; then + echo "$DEVICE is not disk type! Installation Aborted!" + echo "\nNote: If you wish to preform partition install.\nPlease specify the disk drive node first then select \"2\" for partition install." + exit 1 + fi + echo "\nChoose your partitioning type:" + install=$(zenity --list --title="Choose your installation type:" --column="Type" --column="Name" 1 "Erase entire drive" \2 "Install alongside existing OS/Partition (Requires at least 50 GB of free space from the end)" --width=700 --height=220) + + case $install in + 1) + destructive=true + # Umount twice to fully umount the broken install of steam os 3 before installing. + umount $INSTALLDEVICE* > /dev/null 2>&1 + umount $INSTALLDEVICE* > /dev/null 2>&1 + $INST_MSG1 + if zenity --question --text "WARNING: The following drive is going to be fully erased. ALL DATA ON DRIVE ${DEVICE} WILL BE LOST! \n\n$(lsblk -o NAME,MAJ:MIN,RM,SIZE,RO,TYPE,VENDOR,MODEL,SERIAL,MOUNTPOINT ${DEVICE} | sed "1d")\n\nErase ${DEVICE} and begin installation?" --width=700 + then + echo "\nWiping partitions..." + sfdisk --delete ${DEVICE} + wipefs -a ${DEVICE} + echo "\nCreating new gpt partitions..." + parted ${DEVICE} mklabel gpt + else + echo "\nNothing has been written.\nYou canceled the destructive install, please try again" + echo 'Press any key to exit...'; read -k1 -s + exit 1 + fi + ;; + 2) + echo "\nHoloISO will be installed alongside existing OS/Partition.\nPlease make sure there are more than 24 GB on the >>END<< of free(unallocate) space available\n" + parted $DEVICE print free + echo "HoloISO will be installed on the following free (unallocated) space.\n" + parted $DEVICE print free | tail -n2 | grep "Free Space" + if [ $? != 0 ]; then + echo "Error! No Free Space found on the end of the disk.\nNothing has been written.\nYou canceled the non-destructive install, please try again" + exit 1 + echo 'Press any key to exit...'; read -k1 -s + fi + $INST_MSG1 + if zenity --question --text "HoloISO will be installed on the following free (unallocated) space.\nDoes this look reasonable?\n$(sudo parted ${DEVICE} print free | tail -n2 | grep "Free Space")" --width=500 + then + echo "\nBeginning installation..." + else + echo "\nNothing has been written.\nYou canceled the non-destructive install, please try again" + echo 'Press any key to exit...'; read -k1 -s + exit 1 + fi + ;; + esac + + numPartitions=$(grep -c ${DRIVEDEVICE}'[0-9]' /proc/partitions) + + echo ${DEVICE} | grep -q -P "^/dev/(nvme|loop|mmcblk)" + if [ $? -eq 0 ]; then + INSTALLDEVICE="${DEVICE}p" + numPartitions=$(grep -c ${DRIVEDEVICE}p /proc/partitions) + fi + + efiPartNum=$(expr $numPartitions + 1) + rootPartNum=$(expr $numPartitions + 2) + homePartNum=$(expr $numPartitions + 3) + + echo "\nCalculating start and end of free space..." + diskSpace=$(awk '/'${DRIVEDEVICE}'/ {print $3; exit}' /proc/partitions) + # <= 60GB: typical flash drive + if [ $diskSpace -lt 60000000 ]; then + digitMB=8 + realDiskSpace=$(parted ${DEVICE} unit MB print free|head -n2|tail -n1|cut -c 16-20) + # <= 500GB: typical 512GB hard drive + elif [ $diskSpace -lt 500000000 ]; then + digitMB=8 + realDiskSpace=$(parted ${DEVICE} unit MB print free|head -n2|tail -n1|cut -c 20-25) + # anything else: typical 1024GB hard drive + else + digitMB=9 + realDiskSpace=$(parted ${DEVICE} unit MB print free|head -n2|tail -n1|cut -c 20-26) + fi + + if [ $destructive ]; then + efiStart=2 + else + efiStart=$(parted ${DEVICE} unit MB print free|tail -n2|sed s/' '//|cut -c1-$digitMB|sed s/MB//|sed s/' '//g) + fi + efiEnd=$(expr $efiStart + 256) + rootStart=$efiEnd + rootEnd=$(expr $rootStart + 24000) + + if [ $efiEnd -gt $realDiskSpace ]; then + echo "Not enough space available, please choose another disk and try again" + exit 1 + echo 'Press any key to exit...'; read -k1 -s + fi + + echo "\nCreating partitions..." + parted ${DEVICE} mkpart primary fat32 ${efiStart}M ${efiEnd}M + parted ${DEVICE} set ${efiPartNum} boot on + parted ${DEVICE} set ${efiPartNum} esp on + # If the available storage is less than 64GB, don't create /home. + # If the boot device is mmcblk0, don't create an ext4 partition or it will break steamOS versions + # released after May 20. + if [ $diskSpace -lt 64000000 ] || [[ "${DEVICE}" =~ mmcblk0 ]]; then + parted ${DEVICE} mkpart primary btrfs ${rootStart}M 100% + else + parted ${DEVICE} mkpart primary btrfs ${rootStart}M ${rootEnd}M + parted ${DEVICE} mkpart primary ext4 ${rootEnd}M 100% + home=true + fi + root_partition="${INSTALLDEVICE}${rootPartNum}" + mkfs -t vfat ${INSTALLDEVICE}${efiPartNum} + efi_partition="${INSTALLDEVICE}${efiPartNum}" + fatlabel ${INSTALLDEVICE}${efiPartNum} HOLOEFI + mkfs -t btrfs -f ${root_partition} + btrfs filesystem label ${root_partition} holo-root + if [ $home ]; then + mkfs -t ext4 -O casefold ${INSTALLDEVICE}${homePartNum} + home_partition="${INSTALLDEVICE}${homePartNum}" + e2label "${INSTALLDEVICE}${homePartNum}" holo-home + fi + + echo "\nPartitioning complete, mounting and pacstrapping..." +} + +base_os_install() { + # Added failsafe check to prevent dualboot being fucked + #OSROOT=/dev/disk/by-label/holo-root + #OSHOME=/dev/disk/by-label/holo-home + #if [[ -f "$OSROOT" ]]; then + # echo "It appears that HoloISO installation was found on your device" + # read "?Do you want to format your installation or start over? (yN) " OSROOT_REDO + # if [[ "${OSROOT_REDO}" == "y" ]] || [[ "${OSROOT_REDO}" == "Y" ]]; then + # mkfs -t vfat /dev/disk/by-label/HOLOEFI + # mkfs -t btrfs -f /dev/disk/by-label/holo-root + # if [[ -f "$OSHOME" ]]; then + # echo "Installation with home detected... Formatting..." + # mkfs -t ext4 -O casefold /dev/disk/by-label/holo-home + # home_partition="/dev/disk/by-label/holo-home" + # else + # echo "Home partition not required... Skipping..." + # fi + # root_partition="/dev/disk/by-label/holo-root" + # efi_partition="/dev/disk/by-label/HOLOEFI" + # elif [[ "${OSROOT_REDO}" == "n" ]] || [[ "${OSROOT_REDO}" == "N" ]]; then + # partitioning + # fi + #else + sleep 1 + clear + partitioning + #fi + # Actual installer below: + echo "${UCODE_INSTALL_MSG}" + sleep 1 + clear + mount -t btrfs -o subvol=/,compress-force=zstd:1,discard,noatime,nodiratime ${root_partition} ${HOLO_INSTALL_DIR} + check_mount $? root + ${CMD_MOUNT_BOOT} + check_mount $? boot + echo "Bootstrapping root filesystem...\nThis may take more than 10 minutes.\n" + rsync -axHAWXS --numeric-ids --info=progress2 / ${HOLO_INSTALL_DIR} + arch-chroot ${HOLO_INSTALL_DIR} install -Dm644 "$(find /usr/lib | grep vmlinuz | grep neptune)" "/boot/vmlinuz-$(cat /usr/lib/modules/*neptune*/pkgbase)" + cp -r /etc/holoinstall/post_install/pacman.conf ${HOLO_INSTALL_DIR}/etc/pacman.conf + arch-chroot ${HOLO_INSTALL_DIR} pacman-key --init + arch-chroot ${HOLO_INSTALL_DIR} pacman -Rdd --noconfirm mkinitcpio-archiso + arch-chroot ${HOLO_INSTALL_DIR} mkinitcpio -P + arch-chroot ${HOLO_INSTALL_DIR} pacman -U --noconfirm $(find /etc/holoinstall/post_install/pkgs | grep pkg.tar.zst) + arch-chroot ${HOLO_INSTALL_DIR} userdel -r liveuser + arch-chroot ${HOLO_INSTALL_DIR} rm -rf /home/* + check_download $? "installing base package" + sleep 2 + clear + if [ $home ]; then + mount -t ext4 ${home_partition} ${HOLO_INSTALL_DIR}/home + check_mount $? home + fi + + sleep 1 + clear + echo "\nBase system installation done, generating fstab..." + genfstab -U -p /mnt >> /mnt/etc/fstab + sleep 1 + clear + + echo "Configuring first boot user accounts..." + rm ${HOLO_INSTALL_DIR}/etc/skel/Desktop/* + arch-chroot ${HOLO_INSTALL_DIR} rm /etc/sddm.conf.d/* + mv /etc/holoinstall/post_install_shortcuts/steam.desktop /etc/holoinstall/post_install_shortcuts/desktopshortcuts.desktop ${HOLO_INSTALL_DIR}/etc/xdg/autostart + mv /etc/holoinstall/post_install_shortcuts/steamos-gamemode.desktop ${HOLO_INSTALL_DIR}/etc/skel/Desktop + + # Setup password for root + while true; do + ROOTPASS=$(zenity --forms --title="Account configuration" --text="Set root/system administrator password" --add-password="Password for user root") + if [ -z $ROOTPASS ]; then + zenity --warning --text "No password was set for user \"root\"!" --width=300 + break + fi + echo + ROOTPASS_CONF=$(zenity --forms --title="Account configuration" --text="Confirm your root password" --add-password="Password for user root") + echo + if [ $ROOTPASS = $ROOTPASS_CONF ]; then + break + fi + zenity --warning --text "Passwords not match." --width=300 + done + # Create user + NAME_REGEX="^[a-z][-a-z0-9_]*\$" + while true; do + HOLOUSER=$(zenity --entry --title="Account creation" --text "Enter username for this installation:") + if [ $HOLOUSER = "root" ]; then + zenity --warning --text "User root already exists." --width=300 + elif [ -z $HOLOUSER ]; then + zenity --warning --text "Please create a user!" --width=300 + elif [ ${#HOLOUSER} -gt 32 ]; then + zenity --warning --text "Username length must not exceed 32 characters!" --width=400 + elif [[ ! $HOLOUSER =~ $NAME_REGEX ]]; then + zenity --warning --text "Invalid username \"$HOLOUSER\"\nUsername needs to follow these rules:\n\n- Must start with a lowercase letter.\n- May only contain lowercase letters, digits, hyphens, and underscores." --width=500 + else + break + fi + done + # Setup password for user + while true; do + HOLOPASS=$(zenity --forms --title="Account configuration" --text="Set password for $HOLOUSER" --add-password="Password for user $HOLOUSER") + echo + HOLOPASS_CONF=$(zenity --forms --title="Account configuration" --text="Confirm password for $HOLOUSER" --add-password="Password for user $HOLOUSER") + echo + if [ -z $HOLOPASS ]; then + zenity --warning --text "Please type password for user \"$HOLOUSER\"!" --width=300 + HOLOPASS_CONF=unmatched + fi + if [ $HOLOPASS = $HOLOPASS_CONF ]; then + break + fi + zenity --warning --text "Passwords do not match." --width=300 + done + + echo "\nCreating user ${HOLOUSER}..." + echo -e "${ROOTPASS}\n${ROOTPASS}" | arch-chroot ${HOLO_INSTALL_DIR} passwd root + arch-chroot ${HOLO_INSTALL_DIR} useradd --create-home ${HOLOUSER} + echo -e "${HOLOPASS}\n${HOLOPASS}" | arch-chroot ${HOLO_INSTALL_DIR} passwd ${HOLOUSER} + echo "${HOLOUSER} ALL=(root) NOPASSWD:ALL" > ${HOLO_INSTALL_DIR}/etc/sudoers.d/${HOLOUSER} + chmod 0440 ${HOLO_INSTALL_DIR}/etc/sudoers.d/${HOLOUSER} + echo "127.0.1.1 ${HOLOHOSTNAME}" >> ${HOLO_INSTALL_DIR}/etc/hosts + sleep 1 + clear + + echo "\nInstalling bootloader..." + mkdir -p ${HOLO_INSTALL_DIR}/boot/efi + mount -t vfat ${efi_partition} ${HOLO_INSTALL_DIR}/boot/efi + arch-chroot ${HOLO_INSTALL_DIR} holoiso-grub-update + sleep 1 + clear +} +full_install() { + if [[ "${GAMEPAD_DRV}" == "1" ]]; then + echo "You're running this on Anbernic Win600. A suitable gamepad driver will be installed." + arch-chroot ${HOLO_INSTALL_DIR} pacman -U --noconfirm $(find /etc/holoinstall/post_install/pkgs_addon | grep win600-xpad-dkms) + fi + if [[ "${FIRMWARE_INSTALL}" == "1" ]]; then + echo "You're running this on a Steam Deck. linux-firmware-neptune will be installed to ensure maximum kernel-side compatibility." + arch-chroot ${HOLO_INSTALL_DIR} pacman -Rdd --noconfirm linux-firmware + arch-chroot ${HOLO_INSTALL_DIR} pacman -U --noconfirm $(find /etc/holoinstall/post_install/pkgs_addon | grep linux-neptune-firmware) + arch-chroot ${HOLO_INSTALL_DIR} mkinitcpio -P + fi + echo "\nConfiguring Steam Deck UI by default..." + ln -s /usr/share/applications/steam.desktop ${HOLO_INSTALL_DIR}/etc/skel/Desktop/steam.desktop + echo "[General]\nDisplayServer=wayland\n\n[Autologin]\nUser=${HOLOUSER}\nSession=gamescope-wayland.desktop" >> ${HOLO_INSTALL_DIR}/etc/sddm.conf.d/autologin.conf + arch-chroot ${HOLO_INSTALL_DIR} systemctl enable holoiso-reboot-tracker + arch-chroot ${HOLO_INSTALL_DIR} usermod -a -G rfkill ${HOLOUSER} + arch-chroot ${HOLO_INSTALL_DIR} usermod -a -G wheel ${HOLOUSER} + echo "Preparing Steam OOBE..." + arch-chroot ${HOLO_INSTALL_DIR} sudo -u ${HOLOUSER} steam + check_download $? "installing flatpak" + echo "Preparing flatpak..." + arch-chroot ${HOLO_INSTALL_DIR} flatpak remote-add --if-not-exists flathub-beta /etc/holoinstall/post_install/flathub-beta.flatpakrepo + echo "Cleaning up..." + arch-chroot ${HOLO_INSTALL_DIR} rm -rf /etc/holoinstall + sleep 1 + clear +} + + +# The installer itself. Good wuck. +echo "SteamOS 3 Installer" +echo "Start time: $(date)" +echo "Please choose installation type:" +HOLO_INSTALL_TYPE=$(zenity --list --title="Choose your installation type:" --column="Type" --column="Name" 1 "barebones (Will install base SteamOS 3 root filesystem and hooks)" \2 "deck-experience (Will install full SteamOS 3 including gamescope and Plasma DE)" --width=700 --height=220) +if [[ "${HOLO_INSTALL_TYPE}" == "1" ]] || [[ "${HOLO_INSTALL_TYPE}" == "barebones" ]]; then + echo "Installing SteamOS, barebones configuration..." + base_os_install + echo "Installation finished! You may reboot now, or type arch-chroot /mnt to make further changes" + echo 'Press any key to exit...'; read -k1 -s +elif [[ "${HOLO_INSTALL_TYPE}" == "2" ]]; then + + echo "Installing SteamOS, deckperience configuration..." + base_os_install + full_install + echo "Installation finished! You may reboot now, or type arch-chroot /mnt to make further changes" + echo 'Press any key to exit...'; read -k1 -s +else + echo "Invalid choice. Exiting installer..." +fi + +echo "End time: $(date)" \ No newline at end of file diff --git a/airootfs/etc/holoinstall/post_install/mkinitcpio_presets/linux-neptune.preset b/airootfs/etc/holoinstall/post_install/mkinitcpio_presets/linux-neptune.preset new file mode 100644 index 0000000..f324a87 --- /dev/null +++ b/airootfs/etc/holoinstall/post_install/mkinitcpio_presets/linux-neptune.preset @@ -0,0 +1,14 @@ +# mkinitcpio preset file for the 'linux-neptune' package + +ALL_config="/etc/mkinitcpio.conf" +ALL_kver="/boot/vmlinuz-linux-neptune" + +PRESETS=('default' 'fallback') + +#default_config="/etc/mkinitcpio.conf" +default_image="/boot/initramfs-linux-neptune.img" +#default_options="" + +#fallback_config="/etc/mkinitcpio.conf" +fallback_image="/boot/initramfs-linux-neptune-fallback.img" +fallback_options="-S autodetect" diff --git a/airootfs/etc/holoinstall/post_install/pacman.conf b/airootfs/etc/holoinstall/post_install/pacman.conf new file mode 100644 index 0000000..3b3df38 --- /dev/null +++ b/airootfs/etc/holoinstall/post_install/pacman.conf @@ -0,0 +1,115 @@ +# +# /etc/pacman.conf +# +# See the pacman.conf(5) manpage for option and repository directives + +# +# GENERAL OPTIONS +# +[options] +# The following paths are commented out with their default values listed. +# If you wish to use different paths, uncomment and update the paths. +#RootDir = / +#DBPath = /var/lib/pacman/ +#CacheDir = /var/cache/pacman/pkg/ +#LogFile = /var/log/pacman.log +#GPGDir = /etc/pacman.d/gnupg/ +#HookDir = /etc/pacman.d/hooks/ +HoldPkg = pacman glibc +#XferCommand = /usr/bin/curl -L -C - -f -o %o %u +#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u +#CleanMethod = KeepInstalled +Architecture = auto + +# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup +IgnorePkg = linux-firmware-neptune linux-firmware-neptune-rtw-debug +#IgnoreGroup = + +#NoUpgrade = +#NoExtract = + +# Misc options +#UseSyslog +#Color +#TotalDownload +# We cannot check disk space from within a chroot environment +#CheckSpace +#VerbosePkgLists +ParallelDownloads = 5 + +# By default, pacman accepts packages signed by keys that its local keyring +# trusts (see pacman-key and its man page), as well as unsigned packages. +SigLevel = Required DatabaseOptional +LocalFileSigLevel = Optional +#RemoteFileSigLevel = Required + +# NOTE: You must run `pacman-key --init` before first using pacman; the local +# keyring can then be populated with the keys of all official Arch Linux +# packagers with `pacman-key --populate archlinux`. + +# +# REPOSITORIES +# - can be defined here or included from another file +# - pacman will search repositories in the order defined here +# - local/custom mirrors can be added here or in separate files +# - repositories listed first will take precedence when packages +# have identical names, regardless of version number +# - URLs will have $repo replaced by the name of the current repo +# - URLs will have $arch replaced by the name of the architecture +# +# Repository entries are of the format: +# [repo-name] +# Server = ServerName +# Include = IncludePath +# +# The header [repo-name] is crucial - it must be present and +# uncommented to enable the repo. +# + +# The testing repositories are disabled by default. To enable, uncomment the +# repo name header and Include lines. You can add preferred servers immediately +# after the header, and they will be used before the default mirrors. + +#[testing] +#Include = /etc/pacman.d/mirrorlist + +[holoiso-stable] +Include = /etc/pacman.d/holo_mirrorlist +SigLevel = Never + +[holostaging] +Include = /etc/pacman.d/holo_mirrorlist +SigLevel = Never + +[jupiter] +Include = /etc/pacman.d/mirrorlist +SigLevel = Never + +[holo] +Include = /etc/pacman.d/mirrorlist +SigLevel = Never + +[core] +Include = /etc/pacman.d/mirrorlist +SigLevel = Never + +[extra] +Include = /etc/pacman.d/mirrorlist +SigLevel = Never + +#[community-testing] +#Include = /etc/pacman.d/mirrorlist + +[community] +Include = /etc/pacman.d/mirrorlist +SigLevel = Never + +[multilib] +Include = /etc/pacman.d/mirrorlist +SigLevel = Never + +# An example of a custom package repository. See the pacman manpage for +# tips on creating your own repositories. +#[custom] +#SigLevel = Optional TrustAll +#Server = file:///home/custompkgs \ No newline at end of file diff --git a/airootfs/etc/holoinstall/pre_install/desktop_pkglist b/airootfs/etc/holoinstall/pre_install/desktop_pkglist new file mode 100644 index 0000000..e69de29 diff --git a/airootfs/etc/holoinstall/pre_install/iso_build_deps.sh b/airootfs/etc/holoinstall/pre_install/iso_build_deps.sh new file mode 100644 index 0000000..8cadd2a --- /dev/null +++ b/airootfs/etc/holoinstall/pre_install/iso_build_deps.sh @@ -0,0 +1,35 @@ +#!/bin/zsh +# Prepares ISO for packaging + +# Init pacman keys +pacman-key --init +pacman -Sy + +# Install desktop suite +pacman -Rcns --noconfirm pulseaudio xfce4-pulseaudio-plugin pulseaudio-alsa +pacman --overwrite="*" -S holoiso-main holo/filesystem holoiso-updateclient wireplumber flatpak packagekit-qt5 rsync unzip sddm-wayland dkms +wget https://gdrivecdn.thevakhovske.pw/6:/holoiso/os/x86_64/lib32-nvidia-utils-515.57-1-x86_64.pkg.tar.zst -P /etc/holoinstall/post_install/pkgs +pacman -U --noconfirm /etc/holoinstall/post_install/pkgs/lib32-nvidia-utils-515.57-1-x86_64.pkg.tar.zst + +# Remove useless shortcuts for now +mv /etc/xdg/autostart/steam.desktop /etc/xdg/autostart/desktopshortcuts.desktop /etc/skel/Desktop/steamos-gamemode.desktop /etc/skel/Desktop/Return.desktop /etc/holoinstall/post_install_shortcuts + +# Enable stuff +systemctl enable sddm NetworkManager systemd-timesyncd cups bluetooth + +# Download extra stuff +mkdir -p /etc/holoinstall/post_install/pkgs +wget https://gdrivecdn.thevakhovske.pw/6:/holostaging/os/x86_64/linux-holoiso-5.18.1.holoiso20220606.1822-1-x86_64.pkg.tar.zst -P /etc/holoinstall/post_install/pkgs +wget https://gdrivecdn.thevakhovske.pw/6:/holostaging/os/x86_64/linux-holoiso-headers-5.18.1.holoiso20220606.1822-1-x86_64.pkg.tar.zst -P /etc/holoinstall/post_install/pkgs +wget $(pacman -Sp win600-xpad-dkms) -P /etc/holoinstall/post_install/pkgs_addon +wget $(pacman -Sp linux-firmware-neptune) -P /etc/holoinstall/post_install/pkgs_addon + +# Workaround mkinitcpio bullshit so that i don't KMS after rebuilding ISO each time and having users reinstalling their fucking OS bullshit every goddamn time. +rm /etc/mkinitcpio.conf +mv /etc/mkinitcpio.conf.pacnew /etc/mkinitcpio.conf +rm /etc/mkinitcpio.d/* # This removes shitty unasked presets so that this thing can't overwrite it next time +cp /etc/holoinstall/post_install/mkinitcpio_presets/linux-neptune.preset /etc/mkinitcpio.d/ # Yes. I'm lazy to use mkinitcpio-install. Problems? *gigachad posture* + +# Prepare thyself +chmod +x /etc/holoinstall/post_install/install_holoiso.sh +chmod +x /etc/skel/Desktop/install.desktop \ No newline at end of file diff --git a/airootfs/etc/lightdm/lightdm.conf b/airootfs/etc/lightdm/lightdm.conf deleted file mode 100644 index 7782537..0000000 --- a/airootfs/etc/lightdm/lightdm.conf +++ /dev/null @@ -1,168 +0,0 @@ -# -# General configuration -# -# start-default-seat = True to always start one seat if none are defined in the configuration -# greeter-user = User to run greeter as -# minimum-display-number = Minimum display number to use for X servers -# minimum-vt = First VT to run displays on -# lock-memory = True to prevent memory from being paged to disk -# user-authority-in-system-dir = True if session authority should be in the system location -# guest-account-script = Script to be run to setup guest account -# logind-check-graphical = True to on start seats that are marked as graphical by logind -# log-directory = Directory to log information to -# run-directory = Directory to put running state in -# cache-directory = Directory to cache to -# sessions-directory = Directory to find sessions -# remote-sessions-directory = Directory to find remote sessions -# greeters-directory = Directory to find greeters -# backup-logs = True to move add a .old suffix to old log files when opening new ones -# dbus-service = True if LightDM provides a D-Bus service to control it -# - -[LightDM] -#start-default-seat=true -#greeter-user=lightdm -#minimum-display-number=0 -#minimum-vt=7 # Setting this to a value < 7 implies security issues, see FS#46799 -#lock-memory=true -#user-authority-in-system-dir=false -#guest-account-script=guest-account -#logind-check-graphical=false -#log-directory=/var/log/lightdm -run-directory=/run/lightdm -#cache-directory=/var/cache/lightdm -#sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions:/usr/share/wayland-sessions -#remote-sessions-directory=/usr/share/lightdm/remote-sessions -#greeters-directory=$XDG_DATA_DIRS/lightdm/greeters:$XDG_DATA_DIRS/xgreeters -#backup-logs=true -#dbus-service=true - -# -# Seat configuration -# -# Seat configuration is matched against the seat name glob in the section, for example: -# [Seat:*] matches all seats and is applied first. -# [Seat:seat0] matches the seat named "seat0". -# [Seat:seat-thin-client*] matches all seats that have names that start with "seat-thin-client". -# -# type = Seat type (local, xremote) -# pam-service = PAM service to use for login -# pam-autologin-service = PAM service to use for autologin -# pam-greeter-service = PAM service to use for greeters -# xserver-command = X server command to run (can also contain arguments e.g. X -special-option) -# xmir-command = Xmir server command to run (can also contain arguments e.g. Xmir -special-option) -# xserver-config = Config file to pass to X server -# xserver-layout = Layout to pass to X server -# xserver-allow-tcp = True if TCP/IP connections are allowed to this X server -# xserver-share = True if the X server is shared for both greeter and session -# xserver-hostname = Hostname of X server (only for type=xremote) -# xserver-display-number = Display number of X server (only for type=xremote) -# xdmcp-manager = XDMCP manager to connect to (implies xserver-allow-tcp=true) -# xdmcp-port = XDMCP UDP/IP port to communicate on -# xdmcp-key = Authentication key to use for XDM-AUTHENTICATION-1 (stored in keys.conf) -# greeter-session = Session to load for greeter -# greeter-hide-users = True to hide the user list -# greeter-allow-guest = True if the greeter should show a guest login option -# greeter-show-manual-login = True if the greeter should offer a manual login option -# greeter-show-remote-login = True if the greeter should offer a remote login option -# user-session = Session to load for users -# allow-user-switching = True if allowed to switch users -# allow-guest = True if guest login is allowed -# guest-session = Session to load for guests (overrides user-session) -# session-wrapper = Wrapper script to run session with -# greeter-wrapper = Wrapper script to run greeter with -# guest-wrapper = Wrapper script to run guest sessions with -# display-setup-script = Script to run when starting a greeter session (runs as root) -# display-stopped-script = Script to run after stopping the display server (runs as root) -# greeter-setup-script = Script to run when starting a greeter (runs as root) -# session-setup-script = Script to run when starting a user session (runs as root) -# session-cleanup-script = Script to run when quitting a user session (runs as root) -# autologin-guest = True to log in as guest by default -# autologin-user = User to log in with by default (overrides autologin-guest) -# autologin-user-timeout = Number of seconds to wait before loading default user -# autologin-session = Session to load for automatic login (overrides user-session) -# autologin-in-background = True if autologin session should not be immediately activated -# exit-on-failure = True if the daemon should exit if this seat fails -# - -[Seat:*] -#type=local -#pam-service=lightdm -#pam-autologin-service=lightdm-autologin -#pam-greeter-service=lightdm-greeter -#xserver-command=X -#xmir-command=Xmir -#xserver-config= -#xserver-layout= -#xserver-allow-tcp=false -#xserver-share=true -#xserver-hostname= -#xserver-display-number= -#xdmcp-manager= -#xdmcp-port=177 -#xdmcp-key= -greeter-session=lightdm-gtk-greeter -#greeter-hide-users=false -#greeter-allow-guest=true -#greeter-show-manual-login=false -#greeter-show-remote-login=true -user-session=plasma -#allow-user-switching=true -#allow-guest=true -#guest-session= -session-wrapper=/etc/lightdm/Xsession -#greeter-wrapper= -#guest-wrapper= -#display-setup-script= -#display-stopped-script= -#greeter-setup-script= -#session-setup-script= -#session-cleanup-script= -#autologin-guest=false -autologin-user=liveuser -#autologin-user-timeout=0 -#autologin-in-background=false -#autologin-session=xfce -#exit-on-failure=false - -# -# XDMCP Server configuration -# -# enabled = True if XDMCP connections should be allowed -# port = UDP/IP port to listen for connections on -# listen-address = Host/address to listen for XDMCP connections (use all addresses if not present) -# key = Authentication key to use for XDM-AUTHENTICATION-1 or blank to not use authentication (stored in keys.conf) -# hostname = Hostname to report to XDMCP clients (defaults to system hostname if unset) -# -# The authentication key is a 56 bit DES key specified in hex as 0xnnnnnnnnnnnnnn. Alternatively -# it can be a word and the first 7 characters are used as the key. -# -greeter-show-manual-login=false - -[XDMCPServer] -#enabled=false -#port=177 -#listen-address= -#key= -#hostname= - -# -# VNC Server configuration -# -# enabled = True if VNC connections should be allowed -# command = Command to run Xvnc server with -# port = TCP/IP port to listen for connections on -# listen-address = Host/address to listen for VNC connections (use all addresses if not present) -# width = Width of display to use -# height = Height of display to use -# depth = Color depth of display to use -# - -[VNCServer] -#enabled=false -#command=Xvnc -#port=5900 -#listen-address= -#width=1024 -#height=768 -#depth=8 diff --git a/airootfs/etc/motd b/airootfs/etc/motd deleted file mode 100644 index e50574d..0000000 --- a/airootfs/etc/motd +++ /dev/null @@ -1,8 +0,0 @@ -Welcome to SteamOS 3! - -To install SteamOS 3 on your device, connect to network using RNDIS/Ethernet -or connect to wifi using iwctl -then type holoinstall in! - -Alternatively, you can repair your current ArchLinux/SteamOS installation -by chrooting into it using arch-chroot diff --git a/airootfs/etc/pacman.conf b/airootfs/etc/pacman.conf index 98bbf71..3b3df38 100644 --- a/airootfs/etc/pacman.conf +++ b/airootfs/etc/pacman.conf @@ -33,7 +33,7 @@ IgnorePkg = linux-firmware-neptune linux-firmware-neptune-rtw-debug #Color #TotalDownload # We cannot check disk space from within a chroot environment -CheckSpace +#CheckSpace #VerbosePkgLists ParallelDownloads = 5 @@ -91,18 +91,22 @@ SigLevel = Never [core] Include = /etc/pacman.d/mirrorlist +SigLevel = Never [extra] Include = /etc/pacman.d/mirrorlist +SigLevel = Never #[community-testing] #Include = /etc/pacman.d/mirrorlist [community] Include = /etc/pacman.d/mirrorlist +SigLevel = Never [multilib] Include = /etc/pacman.d/mirrorlist +SigLevel = Never # An example of a custom package repository. See the pacman manpage for # tips on creating your own repositories. diff --git a/airootfs/etc/sddm.conf.d/installer_autologin.conf b/airootfs/etc/sddm.conf.d/installer_autologin.conf new file mode 100644 index 0000000..14f02a9 --- /dev/null +++ b/airootfs/etc/sddm.conf.d/installer_autologin.conf @@ -0,0 +1,6 @@ +[General] +DisplayServer=wayland + +[Autologin] +User=liveuser +Session=plasma.desktop \ No newline at end of file diff --git a/airootfs/etc/skel/Desktop/install.desktop b/airootfs/etc/skel/Desktop/install.desktop new file mode 100644 index 0000000..e2f650a --- /dev/null +++ b/airootfs/etc/skel/Desktop/install.desktop @@ -0,0 +1,19 @@ +[Desktop Entry] +Comment[en_US]= +Comment= +Exec=sudo /etc/holoinstall/post_install/install_holoiso.sh +GenericName[en_US]= +GenericName= +Icon=input-keyboard-symbolic +MimeType= +Name[en_US]=Install SteamOS on this machine +Name=Installs HoloISO on this device +Path= +StartupNotify=true +Terminal=true +TerminalOptions= +Type=Application +X-DBUS-ServiceName= +X-DBUS-StartupType= +X-KDE-SubstituteUID=false +X-KDE-Username= \ No newline at end of file diff --git a/airootfs/etc/systemd/system/display-manager.service b/airootfs/etc/systemd/system/display-manager.service deleted file mode 120000 index 5595cea..0000000 --- a/airootfs/etc/systemd/system/display-manager.service +++ /dev/null @@ -1 +0,0 @@ -/usr/lib/systemd/system/lightdm.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf b/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf deleted file mode 100644 index 370735f..0000000 --- a/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf +++ /dev/null @@ -1,6 +0,0 @@ -# -# SPDX-License-Identifier: GPL-3.0-or-later - -[Service] -ExecStart= -ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux diff --git a/efiboot/loader/entries/01-archiso-x86_64-ram-linux-neptune.conf b/efiboot/loader/entries/01-archiso-x86_64-ram-linux-neptune.conf index e42f24c..40d6b76 100644 --- a/efiboot/loader/entries/01-archiso-x86_64-ram-linux-neptune.conf +++ b/efiboot/loader/entries/01-archiso-x86_64-ram-linux-neptune.conf @@ -3,4 +3,4 @@ linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-neptune initrd /%INSTALL_DIR%/boot/intel-ucode.img initrd /%INSTALL_DIR%/boot/amd-ucode.img initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-neptune.img -options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% copytoram +options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% cow_spacesize=20G copytoram diff --git a/efiboot/loader/entries/02-archiso-x86_64-ram-linux.conf b/efiboot/loader/entries/02-archiso-x86_64-ram-linux.conf deleted file mode 100644 index cd60114..0000000 --- a/efiboot/loader/entries/02-archiso-x86_64-ram-linux.conf +++ /dev/null @@ -1,6 +0,0 @@ -title SteamOS installer (Kernel 5.18, NVIDIA and higher compatibility; x86_64, UEFI) -linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-holoiso -initrd /%INSTALL_DIR%/boot/intel-ucode.img -initrd /%INSTALL_DIR%/boot/amd-ucode.img -initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-holoiso.img -options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% copytoram diff --git a/packages.holo_x86_64 b/packages.holo_x86_64 new file mode 100644 index 0000000..e834e51 --- /dev/null +++ b/packages.holo_x86_64 @@ -0,0 +1,7 @@ +holoiso-main +holoiso-updateclient +wireplumber +flatpak +packagekit-qt5 +rsync +unzip \ No newline at end of file diff --git a/packages.x86_64 b/packages.x86_64 index 1083657..89c633e 100644 --- a/packages.x86_64 +++ b/packages.x86_64 @@ -35,7 +35,6 @@ gptfdisk grml-zsh-config grub hdparm -holostaging/holoiso-install-script-gui intel-ucode irssi iw @@ -46,6 +45,7 @@ lftp libfido2 libusb-compat linux-neptune +linux-neptune-headers linux-atm linux-firmware linux-firmware-marvell @@ -123,8 +123,7 @@ plasma-nm plasma-meta steamdeck-kde-presets xorg-server -lightdm -lightdm-gtk-greeter +vim xdg-user-dirs bash-completion networkmanager