# --- T2-COPYRIGHT-NOTE-BEGIN --- # T2 SDE: architecture/x86/boot/boot.in # Copyright (C) 2007 - 2024 The T2 SDE Project # # This Copyright note is generated by scripts/Create-CopyPatch, # more information can be found in the files COPYING and README. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2. # --- T2-COPYRIGHT-NOTE-END --- . $base/architecture/share/boot/grub.in if [ "$SDECFG_X86_CD_LOADER" = "isolinux" ]; then arch_boot_cd_pre() { mkdir -p $isofsdir/boot/isolinux cp -af $build_root/usr/share/syslinux/isolinux.bin $isofsdir/boot/isolinux/ # TODO: theme: cp -af $build_root/boot/t2.xpm.gz $isofsdir/boot/ # header sed -n '/CUT/q;p' $base/architecture/x86/boot/isolinux.cfg \ > $1/boot/isolinux/isolinux.cfg isolinux_label=0 } arch_boot_cd_add() { [ $(( isolinux_label++ )) = 0 ] && cat >> $1/boot/isolinux/isolinux.cfg <<-EOT DEFAULT $2 EOT cat >> $1/boot/isolinux/isolinux.cfg <<-EOT LABEL $2 KERNEL $4 APPEND initrd=$5 EOT } arch_boot_cd_post() { # footer sed '1,/CUT/d' $base/architecture/x86/boot/isolinux.cfg \ >> $1/boot/isolinux/isolinux.cfg echo_status "Creating isofs_arch.txt file .." cat > $build_toolchain/isofs_arch.txt <<- EOT BOOT -b boot/isolinux/isolinux.bin -c boot/isolinux/isolinux.cat -no-emul-boot BOOTx -boot-load-size 4 -boot-info-table -allow-multidot -relaxed-filenames DISK1 $isofsdir/ / EOT unset isolinux_label } elif [ "$SDECFG_X86_CD_LOADER" = "grub" ]; then arch_boot_cd_pre() { mkdir -p $isofsdir/boot/grub cp -af $build_root/boot/grub/stage{1,2,2_eltorito} $isofsdir/boot/grub/ cp -af $build_root/boot/t2.xpm.gz $isofsdir/boot/ # header sed -n '/CUT/q;p' $base/architecture/x86/boot/menu.lst \ > $1/boot/grub/menu.lst } arch_boot_cd_add() { cat >> $1/boot/grub/menu.lst <<-EOT title $3 (Kernel: $2) kernel (cd)$4 initrd (cd)$5 EOT } arch_boot_cd_post() { # footer sed '1,/CUT/d' $base/architecture/x86/boot/menu.lst \ >> $1/boot/grub/menu.lst echo_status "Creating isofs_arch.txt file .." cat > $build_toolchain/isofs_arch.txt <<- EOT BOOT -b boot/grub/stage2_eltorito -no-emul-boot BOOTx -boot-load-size 4 -boot-info-table DISK1 $isofsdir/ / EOT } else # grub2 arch_boot_cd_pre() { local platform=i386-pc mkdir -p $isofsdir/boot/grub cp -af $build_root/usr/lib*/grub/* $isofsdir/boot/grub/ rm -f $isofsdir/boot/grub/*/*.{module,img} # not needed in the image [ -f $build_root/boot/microcode.img ] && cp $build_root/boot/microcode.img $isofsdir/boot/ [ -f $build_root/boot/memtest86.bin ] && cp $build_root/boot/memtest86.* $isofsdir/boot/ if true; then grub-mkimage -O i386-pc-eltorito -p /boot/grub \ -d $build_root/usr/lib*/grub/$platform \ -o $isofsdir/boot/grub/$platform/eltorito.img \ --compression auto biosdisk iso9660 part_msdos part_gpt fi platform=x86_64-efi local exe=bootx64.efi [ $arch = x86 ] && platform=i386-efi && exe=${exe/x64/ia32} mkdir -p $isofsdir/efi/boot/ grub-mkimage -O $platform -p "/boot/grub" \ -d $build_root/usr/lib*/grub/$platform \ -o $isofsdir/efi/boot/$exe \ --compression auto iso9660 fat part_msdos part_gpt grub_create_efi_img $isofsdir/efi/boot/$exe # header sed -n '/CUT/q;p' $base/architecture/{share,x86}/boot/grub.cfg \ > $1/boot/grub/grub.cfg } arch_boot_cd_add() { local initrd="$5" [[ -e $isofsdir/boot/microcode.img && $initrd != */minird* ]] && initrd="/boot/microcode.img $initrd" cat >> $1/boot/grub/grub.cfg <> $1/boot/grub/grub.cfg <> $1/boot/grub/grub.cfg echo_status "Creating isofs_arch.txt file .." echo "DISK1 $isofsdir/ /" > $build_toolchain/isofs_arch.txt if true; then cat >> $build_toolchain/isofs_arch.txt <<- EOT BOOT -b boot/grub/i386-pc/eltorito.img -no-emul-boot BOOTx -boot-load-size 4 -boot-info-table --grub2-boot-info --protective-msdos-label BOOTx --grub2-mbr $build_root/usr/lib*/grub/i386-pc/boot_hybrid.img EOT fi cat >> $build_toolchain/isofs_arch.txt <<- EOT BOOTx -eltorito-alt-boot -no-emul-boot EOT grub_create_boot_entry >> $build_toolchain/isofs_arch.txt } fi