X-Git-Url: https://git.rrq.au/?a=blobdiff_plain;f=mkit.sh;h=728fe335a81b96339d86bc3e374e580adbe5d16a;hb=44364c01c3173388a1dd0617a08839fb9c2a9b78;hp=64e461e3099cf7ec4a1f6de0891e113d7b78a37a;hpb=a1eb8ab8aacf7a2363345a95e2a162f73352f13a;p=rrq%2Ftiniest.git diff --git a/mkit.sh b/mkit.sh index 64e461e..728fe33 100755 --- a/mkit.sh +++ b/mkit.sh @@ -14,6 +14,7 @@ REPO="deb.devuan.org/merged" SUITE="daedalus" SECTION="main" ARCH="amd64" +MBR=dos # or dos PKGFILE=${REPO//\//_}_${SUITE}_${SECTION}_binary-${ARCH}_Packages if [ ! -r $PKGFILE ] ; then @@ -26,7 +27,8 @@ echo "# Creating mapdepends.txt and mapfile.txt" awk ' BEGIN { print "###" > "mapdepends.txt"; print "###" > "mapfile.txt"; } $1=="Package:" {P=$2; next} -$1=="Depends:" {print P,$2 >> "mapdepends.txt";next } +$1=="Pre-Depends:" {print P,$0 >> "mapdepends.txt";next } +$1=="Depends:" {print P,$0 >> "mapdepends.txt";next } $1=="Filename:" {print P,$2 >> "mapfile.txt";next } ' ${PKGFILE} @@ -64,9 +66,9 @@ echo $KERNEL echo "# Create initrd filesystem" rm -fr initrd -echo "# Install busybox, and fluff it up" -fakechroot fakeroot \ -dpkg --log=dpkg.log --root=initrd -i $(debfile busybox-static) +echo "# Extract busybox, and fluff it up" +mkdir initrd +debextract initrd $(debfile busybox-static) for L in $(initrd/bin/busybox --listfull) ; do mkdir -p $(dirname initrd/$L) case "$L" in @@ -87,6 +89,7 @@ if [ ! -d kernel ] ; then debextract kernel $(debfile syslinux-common) debextract kernel $(debfile syslinux-efi) debextract kernel $(debfile syslinux-utils) + debextract kernel $(debfile isolinux) fi echo "# Include some kernel modules in the initrd" @@ -97,8 +100,8 @@ MODULES=( t10-pi sd_mod sg nls_cp437 nls_ascii fat vfat crc32c_generic jbd2 mbcache crc16 ext4 + usb-storage usbcore usb-common xhci-pci xhci-hcd isofs - overlay # input psmouse evdev # network @@ -126,22 +129,7 @@ depmod -F initrd/System.map-$V -b initrd $V $MOODLES echo "# setup a scripted init. The kernel runs this via the #! interpreter" rm -f initrd/sbin/init # just in case -cat < initrd/init -#!/bin/sh -echo -echo -echo "Hi there, tiniest lover!" - -mkdir /proc -mount -t proc proc /proc -mount -t devtmpfs devtmpfs /dev -mkdir /dev/pts -mount -t devpts devpts /dev/pts -mkdir /sys -mount -t sysfs sysfs /sys -$(for m in ${MODULES[@]} ; do echo modprobe $m ; done) -exec /bin/sh -EOF +cp init/init initrd/init chmod a+x initrd/init echo "# Now pack up that initrd as initrd.gz" @@ -151,8 +139,10 @@ echo "# Now pack up that initrd as initrd.gz" rm -f bootimage.raw dd if=/dev/zero of=bootimage.raw bs=32M count=1 -# Prepare a dos partition table with a first partition marked as EFI +# Prepare a gpt/dos partition table with a first partition marked as EFI sfdisk bootimage.raw < syslinux-uefi.cfg path /EFI/BOOT/efi64 @@ -191,15 +183,25 @@ EOF mmd $IMG ::/EFI mmd $IMG ::/EFI/BOOT -mmd $IMG ::/EFI/BOOT/efi64 mcopy $IMG kernel/usr/lib/SYSLINUX.EFI/efi64/syslinux.efi \ ::/EFI/BOOT/bootx64.efi mcopy $IMG \ kernel/usr/lib/syslinux/modules/efi64/* ::/EFI/BOOT -mcopy $IMG syslinux-uefi.cfg ::/EFI/BOOT/syslx64.cfg - -syslinux --install --offset=${IMG#*@@} bootimage.raw +mcopy $IMG syslinux-uefi.cfg ::/EFI/BOOT/syslinux.cfg + +#echo "# Set up isolinux boot" +#mcopy $IMG kernel/usr/lib/ISOLINUX/isolinux.bin ::/ + +case "$MBR" in + dos) MBRBIN=mbr.bin ;; + gpt) + MBRBIN=gptmbr.bin + sfdisk --relocate gpt-bak-std bootimage.raw + sfdisk -f --part-attrs bootimage.raw 1 LegacyBIOSBootable + ;; + *) exit 1 ;; +esac dd conv=notrunc of=bootimage.raw bs=440 count=1 \ - if=kernel/usr/lib/syslinux/mbr/mbr.bin + if=kernel/usr/lib/syslinux/mbr/$MBRBIN exit