public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Andreas K. Hüttel" <dilfridge@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/catalyst:dilfridge/qcow2 commit in: targets/support/
Date: Fri, 11 Oct 2024 20:14:15 +0000 (UTC)	[thread overview]
Message-ID: <1728677609.4cb160c076f04cc932aff3b658c051e7b402c4b4.dilfridge@gentoo> (raw)

commit:     4cb160c076f04cc932aff3b658c051e7b402c4b4
Author:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Fri Oct 11 20:13:29 2024 +0000
Commit:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Fri Oct 11 20:13:29 2024 +0000
URL:        https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=4cb160c0

Configure bootloader in qcow2

Signed-off-by: Andreas K. Hüttel <dilfridge <AT> gentoo.org>

 targets/support/create-qcow2.sh           |   4 +-
 targets/support/qcow2-bootloader-setup.sh | 182 +++---------------------------
 2 files changed, 20 insertions(+), 166 deletions(-)

diff --git a/targets/support/create-qcow2.sh b/targets/support/create-qcow2.sh
index 071dccac..9510cabb 100755
--- a/targets/support/create-qcow2.sh
+++ b/targets/support/create-qcow2.sh
@@ -43,14 +43,14 @@ qemu-nbd -c ${mydevice} -f qcow2 "${1}.tmp.qcow2" || die "Cannot connect qcow2 f
 parted -s ${mydevice} mklabel gpt || die "Cannot create disklabel"
 
 # create an EFI boot partition
-parted -s ${mydevice} -- mkpart efi fat32 1M ${clst_qcow2_efisize} || die "Cannot create EFI partition"
+parted -s ${mydevice} -- mkpart gentoo_efi fat32 1M ${clst_qcow2_efisize} || die "Cannot create EFI partition"
 # mark it as EFI boot partition
 parted -s ${mydevice} -- type 1 C12A7328-F81F-11D2-BA4B-00A0C93EC93B || die "Cannot set EFI partition UUID"
 # note down name
 mypartefi=${mydevice}p1
 
 # create the root partition
-parted -s ${mydevice} -- mkpart root ${clst_qcow2_roottype} ${clst_qcow2_efisize}GiB -1M || die "Cannot create root partition"
+parted -s ${mydevice} -- mkpart gentoo_root ${clst_qcow2_roottype} ${clst_qcow2_efisize}GiB -1M || die "Cannot create root partition"
 # mark it as generic linux filesystem partition
 parted -s ${mydevice} -- type 2 0FC63DAF-8483-4772-8E79-3D69D8477DE4 || die "Cannot set root partition UUID"
 # note down name

diff --git a/targets/support/qcow2-bootloader-setup.sh b/targets/support/qcow2-bootloader-setup.sh
index 34d95dc9..2bf6d873 100755
--- a/targets/support/qcow2-bootloader-setup.sh
+++ b/targets/support/qcow2-bootloader-setup.sh
@@ -2,112 +2,51 @@
 
 source ${clst_shdir}/support/functions.sh
 
-# $1 is the destination root
-
-if [[ -n ${clst_cdtar} ]]; then
-	extract_cdtar $1
-fi
-
-extract_kernels $1/boot
+# $1 would be the the destination root for an iso
+# ${clst_stage_path} is where the stage can be found
 
 cmdline_opts=()
+my_bootdir="${clst_stage_path}/boot"
 
 # Add any additional options
-if [ -n "${clst_livecd_bootargs}" ]
+if [ -n "${clst_diskimage_bootargs}" ]
 then
-	for x in ${clst_livecd_bootargs}
+	for x in ${clst_diskimage_bootargs}
 	do
 		cmdline_opts+=(${x})
 	done
 fi
 
-case ${clst_fstype} in
-	squashfs)
-		cmdline_opts+=(looptype=squashfs loop=/image.squashfs)
-	;;
-	jffs2)
-		cmdline_opts+=(looptype=jffs2 loop=/image.jffs2)
-	;;
-esac
-
 # Optional memtest setups
 memtest_grub() {
-  if [[ -e $1/memtest64.bios ]]; then
+  if [[ -e ${my_bootdir}/memtest64.bios ]]; then
     echo 'if [ "x$grub_platform" = xpc ]; then'
     echo '  menuentry "Memtest86+ 64bit BIOS" {'
     echo '    linux "/memtest64.bios"'
     echo '  }'
     echo 'fi'
   fi
-  if [[ -e $1/memtest.efi64 ]]; then
+  if [[ -e ${my_bootdir}/memtest.efi64 ]]; then
     echo 'if [ "x$grub_platform" = xefi ]; then'
     echo '  menuentry "Memtest86+ 64bit UEFI" {'
     echo '    chainloader "/memtest.efi64"'
     echo '  }'
     echo 'fi'
   fi
-  if [[ -e $1/memtest32.bios ]]; then
+  if [[ -e ${my_bootdir}/memtest32.bios ]]; then
     echo 'menuentry "Memtest86+ 32bit BIOS" {'
     echo '  linux "/memtest32.bios"'
     echo '}'
   fi
 }
 
-default_append_line=(${cmdline_opts[@]} cdroot)
-default_dracut_append_line=(${clst_livecd_bootargs} root=live:CDLABEL=${clst_iso_volume_id} rd.live.dir=/ rd.live.squashimg=image.squashfs cdroot)
+default_append_line=(${cmdline_opts[@]})
+default_dracut_append_line=(${clst_diskimage_bootargs} 'root="LABEL=gentoo_root"')
 
 case ${clst_hostarch} in
-	alpha)
-		# NO SOFTLEVEL SUPPORT YET
-		acfg=$1/etc/aboot.conf
-		bctr=0
-		# Pass 1 is for non-serial
-		for x in ${clst_boot_kernel}
-		do
-			echo -n "${bctr}:/boot/${x} " >> ${acfg}
-			echo -n "initrd=/boot/${x}.igz " >> ${acfg}
-			echo "${cmdline_opts[@]} cdroot" >> ${acfg}
-			((bctr=${bctr}+1))
-		done
-		# Pass 2 is for serial
-		cmdline_opts+=(console=ttyS0)
-		for x in ${clst_boot_kernel}
-		do
-			echo -n "${bctr}:/boot/${x} " >> ${acfg}
-			echo -n "initrd=/boot/${x}.igz " >> ${acfg}
-			echo "${cmdline_opts[@]} cdroot" >> ${acfg}
-			((bctr=${bctr}+1))
-		done
-	;;
-	arm)
-		# NO SOFTLEVEL SUPPORT YET
-	;;
-	hppa)
-		# NO SOFTLEVEL SUPPORT YET
-		mkdir -p $1/boot
-
-		icfg=$1/boot/palo.conf
-		kmsg=$1/boot/kernels.msg
-		hmsg=$1/boot/help.msg
-		# Make sure we strip the extension to the kernel to allow palo to choose
-		boot_kernel_common_name=${first/%32/}
-		boot_kernel_common_name=${boot_kernel_common_name/%64/}
-
-		# copy the bootloader for the final image
-		cp /usr/share/palo/iplboot $1/boot/
-
-		echo "--commandline=0/${boot_kernel_common_name} initrd=${first}.igz ${default_append_line[@]}" >> ${icfg}
-		echo "--bootloader=boot/iplboot" >> ${icfg}
-		echo "--ramdisk=boot/${first}.igz" >> ${icfg}
-		for x in ${clst_boot_kernel}
-		do
-			echo "--recoverykernel=boot/${x}" >> ${icfg}
-		done
-	;;
-	amd64|arm64|ia64|ppc*|powerpc*|sparc*|x86|i?86)
-		kern_subdir=/boot
-		iacfg=$1/boot/grub/grub.cfg
-		mkdir -p $1/boot/grub
+	amd64|arm64|ppc*)
+		iacfg=${my_bootdir}/grub/grub.cfg
+		mkdir -p ${my_bootdir}/grub
 		echo 'set default=0' > ${iacfg}
 		echo 'set gfxpayload=keep' >> ${iacfg}
 		echo 'set timeout=10' >> ${iacfg}
@@ -118,104 +57,19 @@ case ${clst_hostarch} in
 			eval "kernel_console=\$clst_boot_kernel_${x}_console"
 			eval "distkernel=\$clst_boot_kernel_${x}_distkernel"
 
-			echo "menuentry 'Boot LiveCD (kernel: ${x})' --class gnu-linux --class os {"  >> ${iacfg}
+			echo "menuentry 'Gentoo Linux (kernel: ${x})' --class gnu-linux --class os {"  >> ${iacfg}
 			if [ ${distkernel} = "yes" ]
 			then
-				echo "	search --no-floppy --set=root -l ${clst_iso_volume_id}" >> ${iacfg}
-				echo "	linux ${kern_subdir}/${x} ${default_dracut_append_line[@]}" >> ${iacfg}
+				echo "	search --no-floppy --set=root -l gentoo_efi" >> ${iacfg}
+				echo "	linux /${x} ${default_dracut_append_line[@]}" >> ${iacfg}
 			else
-				echo "	linux ${kern_subdir}/${x} ${default_append_line[@]}" >> ${iacfg}
+				echo "	linux /${x} ${default_append_line[@]}" >> ${iacfg}
 			fi
-			echo "	initrd ${kern_subdir}/${x}.igz" >> ${iacfg}
+			echo "	initrd /${x}.igz" >> ${iacfg}
 			echo "}" >> ${iacfg}
 			echo "" >> ${iacfg}
-			echo "menuentry 'Boot LiveCD (kernel: ${x}) (cached)' --class gnu-linux --class os {"  >> ${iacfg}
-			if [ ${distkernel} = "yes" ]
-			then
-				echo "	search --no-floppy --set=root -l ${clst_iso_volume_id}" >> ${iacfg}
-				echo "	linux ${kern_subdir}/${x} ${default_dracut_append_line[@]} rd.live.ram=1" >> ${iacfg}
-			else
-				echo "	linux ${kern_subdir}/${x} ${default_append_line[@]} docache" >> ${iacfg}
-			fi
-
-			echo "	initrd ${kern_subdir}/${x}.igz" >> ${iacfg}
-			echo "}" >> ${iacfg}
-			if [ -n "${kernel_console}" ]
-			then
-			echo "submenu 'Special console options (kernel: ${x})' --class gnu-linux --class os {" >> ${iacfg}
-				for y in ${kernel_console}
-				do
-					echo "menuentry 'Boot LiveCD (kernel: ${x} console=${y})' --class gnu-linux --class os {"  >> ${iacfg}
-					echo "	linux ${kern_subdir}/${x} ${default_append_line[@]} console=${y}" >> ${iacfg}
-					echo "	initrd ${kern_subdir}/${x}.igz" >> ${iacfg}
-					echo "}" >> ${iacfg}
-					echo "" >> ${iacfg}
-				done
-				echo "}" >> ${iacfg}
-			fi
-			echo "" >> ${iacfg}
 		done
 		memtest_grub $1 >> ${iacfg}
 	;;
-	mips)
-		# NO SOFTLEVEL SUPPORT YET
-
-		# Mips is an interesting arch -- where most archs will
-		# use ${1} as the root of the LiveCD, an SGI LiveCD lacks
-		# such a root.  Instead, we will use ${1} as a scratch
-		# directory to build the components we need for the
-		# CD image, and then pass these components to the
-		# `sgibootcd` tool which outputs a final CD image
-		scratch="${1}"
-		mkdir -p ${scratch}/{kernels/misc,arcload}
-		echo "" > ${scratch}/arc.cf
-
-		# Move kernel binaries to ${scratch}/kernels, and
-		# move everything else to ${scratch}/kernels/misc
-		for x in ${clst_boot_kernel}; do
-			[ -e "${1}/boot/${x}" ] && mv ${1}/boot/${x} ${scratch}/kernels
-			[ -e "${1}/boot/${x}.igz" ] && mv ${1}/boot/${x}.igz ${scratch}/kernels/misc
-		done
-		[ -d "${1}/boot" ] && rmdir ${1}/boot
-
-		# Source the arcload source file to generated required sections of arc.cf
-		source ${clst_shdir}/support/mips-arcload_conf.sh
-
-		# Generate top portions of the config
-		echo -e "${topofconfig}${serial}${dbg}${cmt1}" >> ${scratch}/arc.cf
-
-		# Next, figure out what kernels were specified in the
-		# spec file, and generate the appropriate arcload conf
-		# blocks specific to each system
-		ip22="$(echo ${clst_boot_kernel} | tr " " "\n" | grep "ip22" | tr "\n" " ")"
-		ip27="$(echo ${clst_boot_kernel} | tr " " "\n" | grep "ip27" | tr "\n" " ")"
-		ip28="$(echo ${clst_boot_kernel} | tr " " "\n" | grep "ip28" | tr "\n" " ")"
-		ip30="$(echo ${clst_boot_kernel} | tr " " "\n" | grep "ip30" | tr "\n" " ")"
-		ip32="$(echo ${clst_boot_kernel} | tr " " "\n" | grep "ip32" | tr "\n" " ")"
-
-		if [ -n "${ip22}" ]; then
-			echo -e "${ip22base}" >> ${scratch}/arc.cf
-			for x in ${ip22}; do echo -e "${!x}" >> ${scratch}/arc.cf; done
-			echo -e "${ip22vid}${ip22x}" >> ${scratch}/arc.cf
-		fi
-
-		[ -n "${ip27}" ] && echo -e "${ip27base}" >> ${scratch}/arc.cf
-		[ -n "${ip28}" ] && echo -e "${ip28base}" >> ${scratch}/arc.cf
-		[ -n "${ip30}" ] && echo -e "${ip30base}" >> ${scratch}/arc.cf
-
-		if [ -n "${ip32}" ]; then
-			echo -e "${ip32base}" >> ${scratch}/arc.cf
-			for x in ${ip32}; do echo -e "${!x}" >> ${scratch}/arc.cf; done
-			echo -e "${ip32vid}${ip32x}" >> ${scratch}/arc.cf
-		fi
-
-		# Finish off the config
-		echo -e "${cmt2}" >> ${scratch}/arc.cf
-
-		# Move the bootloader binaries & config to their destination
-		[ -e "${1}/sashARCS" ] && mv ${1}/sashARCS ${scratch}/arcload
-		[ -e "${1}/sash64" ] && mv ${1}/sash64 ${scratch}/arcload
-		[ -e "${1}/arc.cf" ] && mv ${1}/arc.cf ${scratch}/arcload
-		;;
 esac
 exit $?


             reply	other threads:[~2024-10-11 20:14 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-11 20:14 Andreas K. Hüttel [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-10-13 13:35 [gentoo-commits] proj/catalyst:dilfridge/qcow2 commit in: targets/support/ Andreas K. Hüttel
2024-10-13 13:35 Andreas K. Hüttel
2024-10-13 13:02 Andreas K. Hüttel
2024-10-13 12:43 Andreas K. Hüttel
2024-10-12 22:56 Andreas K. Hüttel
2024-10-12 22:18 Andreas K. Hüttel
2024-10-12 22:06 Andreas K. Hüttel
2024-10-12 22:06 Andreas K. Hüttel
2024-10-12 21:58 Andreas K. Hüttel
2024-10-12 21:39 Andreas K. Hüttel
2024-10-12 21:39 Andreas K. Hüttel
2024-10-12 21:15 Andreas K. Hüttel
2024-10-12 20:48 Andreas K. Hüttel
2024-10-12 19:01 Andreas K. Hüttel
2024-10-12 17:58 Andreas K. Hüttel
2024-10-12 17:52 Andreas K. Hüttel
2024-10-12 16:43 Andreas K. Hüttel
2024-10-12 16:29 Andreas K. Hüttel
2024-10-12 15:18 Andreas K. Hüttel
2024-10-12 14:54 Andreas K. Hüttel
2024-10-12 14:29 Andreas K. Hüttel
2024-10-11 23:09 Andreas K. Hüttel
2024-10-11 23:01 Andreas K. Hüttel
2024-10-11 22:51 Andreas K. Hüttel
2024-10-11 22:28 Andreas K. Hüttel
2024-10-11 22:28 Andreas K. Hüttel
2024-10-11 22:07 Andreas K. Hüttel
2024-10-11 22:07 Andreas K. Hüttel
2024-10-06 21:57 Andreas K. Hüttel
2024-10-06 20:41 Andreas K. Hüttel
2024-10-06 19:33 Andreas K. Hüttel
2024-10-05 19:15 Andreas K. Hüttel
2024-10-05 15:48 Andreas K. Hüttel
2024-10-02 21:47 Andreas K. Hüttel
2024-09-27 23:45 Andreas K. Hüttel
2024-09-27 23:04 Andreas K. Hüttel
2024-08-09 19:34 Andreas K. Hüttel
2024-08-09 19:34 Andreas K. Hüttel
2024-08-09 19:34 Andreas K. Hüttel
2024-08-09 19:34 Andreas K. Hüttel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1728677609.4cb160c076f04cc932aff3b658c051e7b402c4b4.dilfridge@gentoo \
    --to=dilfridge@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox