From ac5acd6d0dd40655335b62ecc33db0937a322f6c Mon Sep 17 00:00:00 2001 From: Iru Cai Date: Mon, 29 Jun 2020 14:30:42 +0800 Subject: initial meta distro support Now we support using an iso file directly other than first downloading it, this is very useful for iso files that update frequently (like openSUSE) or custom iso files. --- distro/arch/meta | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 distro/arch/meta (limited to 'distro') diff --git a/distro/arch/meta b/distro/arch/meta new file mode 100644 index 0000000..5f375ed --- /dev/null +++ b/distro/arch/meta @@ -0,0 +1,20 @@ +entry() { + TITLE="$ISONAME" + KERNEL=/liveusb-kernel/$KEYWORD/x86_64/vmlinuz + INITRD=(/liveusb-kernel/$KEYWORD/intel_ucode.img + /liveusb-kernel/$KEYWORD/amd_ucode.img + /liveusb-kernel/$KEYWORD/x86_64/archiso.img) + OPTION="archisodevice=/dev/disk/by-uuid/$UUID archisobasedir=liveusb-data/$KEYWORD" + X64=y +} + +install_live() { + mount_iso + install -d "$DATADIR/$KEYWORD" "$KERNELDIR/$KEYWORD" + cp -r "$ISOMNT/arch/x86_64" "$DATADIR/$KEYWORD/" + cp -r "$ISOMNT/arch/boot/x86_64" "$KERNELDIR/$KEYWORD/" + cp "$ISOMNT/arch/boot/"*.img "$KERNELDIR/$KEYWORD/" + umount_iso +} + +entries=(entry) -- cgit v1.2.3 From 893c5127d41f8a54b44c72cb853755acbcff4ad1 Mon Sep 17 00:00:00 2001 From: Iru Cai Date: Tue, 30 Jun 2020 14:31:49 +0800 Subject: distro: add ubuntu meta file --- distro/ubuntu/meta | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 distro/ubuntu/meta (limited to 'distro') diff --git a/distro/ubuntu/meta b/distro/ubuntu/meta new file mode 100644 index 0000000..c051049 --- /dev/null +++ b/distro/ubuntu/meta @@ -0,0 +1,36 @@ +entry() { + if test -z "${ubt_kernel}" -o -z "${ubt_initrd}" + then + msg "warn: kernel image or initramfs not found." + msg " the Ubuntu based entry may not work." + fi + isofn="$(basename "$ISOFILE")" + TITLE="$ISONAME" + KERNEL="/liveusb-kernel/${KEYWORD}/${ubt_kernel}" + INITRD="/liveusb-kernel/${KEYWORD}/${ubt_initrd}" + OPTION="file=/cdrom/preseed/ubuntu.seed boot=casper iso-scan/filename=/liveusb-data/${KEYWORD}/${isofn}" + X64=y +} + +install_live() { + install -d "$KERNELDIR/${KEYWORD}" "$DATADIR/${KEYWORD}" + mount_iso + ubt_kernel=($(find "$ISOMNT/casper/" -maxdepth 1 -name 'vmlinuz*')) + if [ "${#ubt_kernel[@]}" != 1 ]; then + fatalerror "panic: more than one kernel image found." + else + ubt_kernel="$(basename ${ubt_kernel[0]})" + fi + ubt_initrd=($(find "$ISOMNT/casper/" -maxdepth 1 -name 'initrd*')) + if [ "${#ubt_initrd[@]}" != 1 ]; then + fatalerror "panic: more than one initramfs image found." + else + ubt_initrd="$(basename ${ubt_initrd[0]})" + fi + cp "$ISOMNT/casper/${ubt_kernel}" "$ISOMNT/casper/${ubt_initrd}" \ + "$KERNELDIR/${KEYWORD}/" + umount_iso + cp "$ISOFILE" "$DATADIR/${KEYWORD}/" +} + +entries=(entry) -- cgit v1.2.3 From cf412741681b69a382c4f49481b367195837e2ec Mon Sep 17 00:00:00 2001 From: Iru Cai Date: Wed, 8 Jul 2020 21:10:38 +0800 Subject: openSUSE meta file --- distro/opensuse/meta | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 distro/opensuse/meta (limited to 'distro') diff --git a/distro/opensuse/meta b/distro/opensuse/meta new file mode 100644 index 0000000..87deffa --- /dev/null +++ b/distro/opensuse/meta @@ -0,0 +1,20 @@ +entry() { + isofn="$(basename "$ISOFILE")" + label="$(get_iso_label "${ISO_FILEPATH}")" + TITLE="$label" + KERNEL=/liveusb-kernel/$KEYWORD/linux + INITRD=/liveusb-kernel/$KEYWORD/initrd + OPTION="root=live:CDLABEL=$label iso-scan/filename=liveusb-data/$KEYWORD/$isofn" + X64=y +} + +install_live() { + mount_iso + install -d "$DATADIR/$KEYWORD" "$KERNELDIR/$KEYWORD" + cp "$ISOMNT/boot/x86_64/loader"/{linux,initrd} \ + "$KERNELDIR/$KEYWORD" + umount_iso + cp "${ISO_FILEPATH}" "$DATADIR/$KEYWORD/" +} + +entries=(entry) -- cgit v1.2.3 From 3c98b419c34f5cc204ae1a6284fce6b269ff1b58 Mon Sep 17 00:00:00 2001 From: Iru Cai Date: Tue, 30 Mar 2021 13:15:01 +0800 Subject: arch: update meta file to use the new script --- distro/arch/meta | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'distro') diff --git a/distro/arch/meta b/distro/arch/meta index 5f375ed..fcfe18f 100644 --- a/distro/arch/meta +++ b/distro/arch/meta @@ -1,20 +1,20 @@ +# SPDX-License-Identifier: GPL-3.0-or-later +# TODO: detect kernel, initramfs, and ucode filenames + entry() { TITLE="$ISONAME" - KERNEL=/liveusb-kernel/$KEYWORD/x86_64/vmlinuz - INITRD=(/liveusb-kernel/$KEYWORD/intel_ucode.img - /liveusb-kernel/$KEYWORD/amd_ucode.img - /liveusb-kernel/$KEYWORD/x86_64/archiso.img) - OPTION="archisodevice=/dev/disk/by-uuid/$UUID archisobasedir=liveusb-data/$KEYWORD" + prefix="/liveusb-kernel/$KEYWORD/arch/boot" + KERNEL="$prefix/x86_64/vmlinuz-linux" + INITRD=("$prefix/intel-ucode.img" "$prefix/amd-ucode.img" + "$prefix/x86_64/initramfs-linux.img") + OPTION="img_dev=/dev/disk/by-uuid/$UUID img_loop=liveusb-data/$KEYWORD/$ISONAME" X64=y } install_live() { - mount_iso install -d "$DATADIR/$KEYWORD" "$KERNELDIR/$KEYWORD" - cp -r "$ISOMNT/arch/x86_64" "$DATADIR/$KEYWORD/" - cp -r "$ISOMNT/arch/boot/x86_64" "$KERNELDIR/$KEYWORD/" - cp "$ISOMNT/arch/boot/"*.img "$KERNELDIR/$KEYWORD/" - umount_iso + iso_extract "${ISO_FILEPATH}" arch/boot/x86_64 'arch/boot/*.img' "$KERNELDIR/$KEYWORD/" + cp "${ISO_FILEPATH}" "$DATADIR/$KEYWORD/" } entries=(entry) -- cgit v1.2.3