diff --git a/.github/release-nest-v3-nvidia-iso b/.github/release-nest-v3-nvidia-iso index 62f9457..7813681 100644 --- a/.github/release-nest-v3-nvidia-iso +++ b/.github/release-nest-v3-nvidia-iso @@ -1 +1 @@ -6 \ No newline at end of file +5 \ No newline at end of file diff --git a/build.sh b/build.sh index fac598f..0e0df31 100755 --- a/build.sh +++ b/build.sh @@ -50,44 +50,47 @@ mksquashfs \ -Xbcj x86 # Copy Kernel to live (Disabled, Copy Kernels to refind instead) -cp "$ROOTFS_PATH/boot"/vmlinuz-* \ - "$LIVE_BOOT_LIVE_PATH/vmlinuz" && \ -cp "$ROOTFS_PATH/boot"/initrd.img-* \ - "$LIVE_BOOT_LIVE_PATH/initrd" && \ -cp ./data/refind/refind_linux.conf \ - "$LIVE_BOOT_LIVE_PATH/refind_linux.conf" +#cp "$ROOTFS_PATH/boot"/vmlinuz-* \ +# "$LIVE_BOOT_LIVE_PATH/vmlinuz" && \ +#cp "$ROOTFS_PATH/boot"/initrd.img-* \ +# "$LIVE_BOOT_LIVE_PATH/initrd" && \ +#cp ./data/refind/refind_linux.conf \ +# "$LIVE_BOOT_LIVE_PATH/refind_linux.conf" -REFIND_SIZE=$(du -s -B1 ./data/refind | cut -f1) -LIVE_SIZE=$(du -s -B1 $LIVE_BOOT_LIVE_PATH | cut -f1) -ISO_SIZE=$(($REFIND_SIZE + $LIVE_SIZE)) +# Generate bootable EFI Image from refind -DD_BOOT_IMAGE="./efiboot.img" -DD_LIVE_IMAGE="./live.img" +# Copy kernel to refind +mkdir -p ./data/refind/EFI +cp -vf "$ROOTFS_PATH/boot"/vmlinuz-"$ISO_KERNEL"* "./data/refind/EFI/vmlinuz" +cp -vf "$ROOTFS_PATH/boot"/initrd.img-"$ISO_KERNEL"* "./data/refind/EFI/initrd" -# Create Refind Image -dd if=/dev/zero of="$DD_BOOT_IMAGE" bs=1 count=$REFIND_SIZE -mkfs.vfat -F 16 "$DD_BOOT_IMAGE" +dd if=/dev/zero of="$LIVE_BOOT_PATH/efiboot.img" bs=1 count=$(du -s -B1 ./data/refind | cut -f1) +mkfs.vfat -F 32 "$LIVE_BOOT_PATH/efiboot.img" for directory in $(find ./data/refind/EFI/ -type d | cut -d'/' -f4-) do - mmd -i "$DD_BOOT_IMAGE" ::"$(echo $directory | tr '[:lower:]' '[:upper:]' | sed 's:/*$::')" + mmd -i "$LIVE_BOOT_PATH/efiboot.img" ::"$(echo $directory | tr '[:lower:]' '[:upper:]' | sed 's:/*$::')" done for file in $(find ./data/refind/EFI/ -type f) do - mcopy -i "$DD_BOOT_IMAGE" $file ::"$(echo $file | cut -d'/' -f4- | tr '[:lower:]' '[:upper:]')" + mcopy -i "$LIVE_BOOT_PATH/efiboot.img" $file ::"$(echo $file | cut -d'/' -f4- | tr '[:lower:]' '[:upper:]')" done -# Create Live medium image -dd if=/dev/zero of="$DD_LIVE_IMAGE" bs=1 count=$LIVE_SIZE -mkfs.ext4 "$DD_LIVE_IMAGE" -for directory in $(find $LIVE_BOOT_LIVE_PATH -type d | cut -d'/' -f4-) -do - mmd -i "$DD_LIVE_IMAGE" ::"$(echo $directory | tr '[:lower:]' '[:upper:]' | sed 's:/*$::')" -done - -for file in $(find $LIVE_BOOT_LIVE_PATH -type f) -do - mcopy -i "$DD_LIVE_IMAGE" $file ::"$(echo $file | cut -d'/' -f4- | tr '[:lower:]' '[:upper:]')" -done +# Create Bootable UEFI Full Image +mkdir -p ./output -cat $DD_BOOT_IMAGE $DD_LIVE_IMAGE > "./output/$ISO_IMAGE".iso \ No newline at end of file +xorriso \ + -as mkisofs \ + -iso-level 3 \ + -V "PikaOS 4" \ + -e --interval:appended_partition_2:all:: \ + -append_partition 2 0xef "$LIVE_BOOT_PATH/efiboot.img" \ + -J -joliet-long \ + -no-emul-boot \ + -isohybrid-gpt-basdat \ + -o "./output/$ISO_IMAGE".iso \ + "$LIVE_BOOT_DATA_PATH" + +# Generate an integrity sum +touch "./output/$ISO_IMAGE".md5 +md5sum "./output/$ISO_IMAGE".iso > "./output/$ISO_IMAGE".md5 diff --git a/data/refind/EFI/boot/refind.conf b/data/refind/EFI/boot/refind.conf index 3c47ae8..fb593d1 100644 --- a/data/refind/EFI/boot/refind.conf +++ b/data/refind/EFI/boot/refind.conf @@ -331,7 +331,7 @@ showtools install,bootorder,shell,memtest,gdisk,apple_recovery,csr_rotate,window # On UEFI PCs, default is internal,external,optical,manual # On Macs, default is internal,hdbios,external,biosexternal,optical,cd,manual # -#scanfor internal,external,optical,manual,firmware +scanfor manual # By default, rEFInd relies on the UEFI firmware to detect BIOS-mode boot # devices. This sometimes doesn't detect all the available devices, though. @@ -647,9 +647,6 @@ csr_values 10,77 # except when you must pass a forward slash to the loader, as when # passing a root= option to a Linux kernel. -# Below are several sample boot stanzas. All are disabled by default. -# Find one similar to what you need, copy it, remove the "disabled" line, -# and adjust the entries to suit your needs. menuentry "PikaOS Live Image" { icon EFI/BOOT/REFIND-DARK/ICONS/OS_PIKAOS.PNG loader EFI/VMLINUZ diff --git a/los.sh b/los.sh deleted file mode 100644 index 52cd585..0000000 --- a/los.sh +++ /dev/null @@ -1,25 +0,0 @@ -los() ( - img="$1" - dev="$(sudo losetup --show -f -P "$img")" - echo "$dev" - for part in "$dev"?*; do - if [ "$part" = "${dev}p*" ]; then - part="${dev}" - fi - dst="/mnt/$(basename "$part")" - echo "$dst" - sudo mkdir -p "$dst" - sudo mount "$part" "$dst" - done -) -losd() ( - dev="/dev/loop$1" - for part in "$dev"?*; do - if [ "$part" = "${dev}p*" ]; then - part="${dev}" - fi - dst="/mnt/$(basename "$part")" - sudo umount "$dst" - done - sudo losetup -d "$dev" -) \ No newline at end of file diff --git a/nvidia-enablement/data/refind/EFI/boot/refind.conf b/nvidia-enablement/data/refind/EFI/boot/refind.conf index 31406a8..a0d6744 100644 --- a/nvidia-enablement/data/refind/EFI/boot/refind.conf +++ b/nvidia-enablement/data/refind/EFI/boot/refind.conf @@ -331,7 +331,7 @@ showtools install,bootorder,shell,memtest,gdisk,apple_recovery,csr_rotate,window # On UEFI PCs, default is internal,external,optical,manual # On Macs, default is internal,hdbios,external,biosexternal,optical,cd,manual # -#scanfor internal,external,optical,manual,firmware +scanfor manual # By default, rEFInd relies on the UEFI firmware to detect BIOS-mode boot # devices. This sometimes doesn't detect all the available devices, though. @@ -647,10 +647,6 @@ csr_values 10,77 # except when you must pass a forward slash to the loader, as when # passing a root= option to a Linux kernel. -# Below are several sample boot stanzas. All are disabled by default. -# Find one similar to what you need, copy it, remove the "disabled" line, -# and adjust the entries to suit your needs. - menuentry "PikaOS Live Image" { icon EFI/BOOT/REFIND-DARK/ICONS/OS_PIKAOS.PNG loader EFI/VMLINUZ diff --git a/nvidia-enablement/hooks/2-link-uname-to-kernel.chroot b/nvidia-enablement/hooks/2-link-uname-to-kernel.chroot new file mode 100755 index 0000000..e7b385d --- /dev/null +++ b/nvidia-enablement/hooks/2-link-uname-to-kernel.chroot @@ -0,0 +1,15 @@ +#!/bin/bash + +. /chroot_scripts/info.sh + +if [ -z $ISO_KERNEL ] +then + exit 1 +fi + +echo "Workaround: Link chroot kernel to host kernel..." +ln -sfv /boot/config-$ISO_KERNEL /boot/config-$(uname -r) +ln -sfv /boot/initrd.img-$ISO_KERNEL /boot/initrd.img-$(uname -r) +ln -sfv /usr/src/linux-headers-$ISO_KERNEL /usr/src/linux-headers-$(uname -r) +ln -sfv /boot/System.map-$ISO_KERNEL /boot/System.map-$(uname -r) +ln -sfv /boot/vmlinuz-$ISO_KERNEL /boot/vmlinuz-$(uname -r) \ No newline at end of file diff --git a/old.sh b/old.sh deleted file mode 100644 index 166db4b..0000000 --- a/old.sh +++ /dev/null @@ -1,30 +0,0 @@ -dd if=/dev/zero of="$LIVE_BOOT_PATH/efiboot.img" bs=1 count=$(du -s -B1 ./data/refind | cut -f1) -mkfs.vfat -F 32 "$LIVE_BOOT_PATH/efiboot.img" -for directory in $(find ./data/refind/EFI/ -type d | cut -d'/' -f4-) -do - mmd -i "$LIVE_BOOT_PATH/efiboot.img" ::"$(echo $directory | tr '[:lower:]' '[:upper:]' | sed 's:/*$::')" -done - -for file in $(find ./data/refind/EFI/ -type f) -do - mcopy -i "$LIVE_BOOT_PATH/efiboot.img" $file ::"$(echo $file | cut -d'/' -f4- | tr '[:lower:]' '[:upper:]')" -done - -# Create Bootable UEFI Full Image -mkdir -p ./output - -xorriso \ - -as mkisofs \ - -iso-level 3 \ - -V "PikaOS 4" \ - -e --interval:appended_partition_2:all:: \ - -append_partition 2 0xef "$LIVE_BOOT_PATH/efiboot.img" \ - -J -joliet-long \ - -no-emul-boot \ - -isohybrid-gpt-basdat \ - -o "./output/$ISO_IMAGE".iso \ - "$LIVE_BOOT_DATA_PATH" - -# Generate an integrity sum -touch "./output/$ISO_IMAGE".md5 -md5sum "./output/$ISO_IMAGE".iso > "./output/$ISO_IMAGE".md5 \ No newline at end of file