summaryrefslogtreecommitdiff
path: root/distro
diff options
context:
space:
mode:
Diffstat (limited to 'distro')
-rw-r--r--distro/arch/meta20
-rw-r--r--distro/opensuse/meta20
-rw-r--r--distro/ubuntu/meta36
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)