diff options
Diffstat (limited to 'distro')
-rw-r--r-- | distro/arch/meta | 20 | ||||
-rw-r--r-- | distro/opensuse/meta | 20 | ||||
-rw-r--r-- | distro/ubuntu/meta | 36 |
3 files changed, 76 insertions, 0 deletions
diff --git a/distro/arch/meta b/distro/arch/meta new file mode 100644 index 0000000..fcfe18f --- /dev/null +++ b/distro/arch/meta @@ -0,0 +1,20 @@ +# SPDX-License-Identifier: GPL-3.0-or-later +# TODO: detect kernel, initramfs, and ucode filenames + +entry() { + TITLE="$ISONAME" + 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() { + install -d "$DATADIR/$KEYWORD" "$KERNELDIR/$KEYWORD" + iso_extract "${ISO_FILEPATH}" arch/boot/x86_64 'arch/boot/*.img' "$KERNELDIR/$KEYWORD/" + cp "${ISO_FILEPATH}" "$DATADIR/$KEYWORD/" +} + +entries=(entry) 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) 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) |