Fixes towards arm64/ceres installer
authorRalph Ronnquist <rrq@rrq.au>
Sat, 5 Oct 2024 01:39:49 +0000 (11:39 +1000)
committerRalph Ronnquist <rrq@rrq.au>
Sat, 5 Oct 2024 01:39:49 +0000 (11:39 +1000)
build-arm64.sh
build-installer.sh
installer-packages-arm64.list
pool-packages-installer-arm64.list

index 567de3655184f9174197b088642728f0d71d107a..0e91b1b255f30df018fd06add4eaf5a416f7dce9 100755 (executable)
@@ -1,7 +1,3 @@
 #!/bin/sh
 
-exec env \
-     LINUX=linux-image-6.1.0-25-arm64 \
-     TARGET_ARCH=arm64 \
-     DISTNAME=daedalus \
-     ./build-installer.sh
+exec env TARGET_ARCH=arm64 DISTNAME=ceres ./build-installer.sh
index 949cf04635592f0e8679cc423fa259160cd7bc6e..0c5545ba31b92593963dd3fc954d97f22b285fac 100755 (executable)
@@ -5,7 +5,6 @@
 
 export http_proxy=http://10.10.10.100:3142
 
-: ${LINUX:=linux-image-6.1.0-25-arm64}
 : ${DISTNAME:=daedalus}
 : ${DISTVERS:=5.1.0}
 : ${TARGET_ARCH:=arm64}
@@ -54,6 +53,18 @@ for S in $SECTIONS ; do
     [ -f $INTO ] || die "Cannot get $BASE"
 done
 
+######################################################################
+# Determine the linux kernel version from $LINUX or via
+# linux-image-$TARGET_ARCH
+if [ -z "$LINUX" ] ; then
+    M='/Package: \(linux\|kernel\)-image-'"$TARGET_ARCH"'$/'
+    M+=',/^$/!d;/^Depends:/!d;s|^[^ ]* ||;s| .*||'
+    LINUX="$(sed "$M" $SOURCES/main-Packages)"
+fi
+echo "LINUX=$LINUX" >&2
+export KERNELVERSION="${LINUX#linux-image-}"
+KERNELVERSION="${KERNELVERSION#kernel-mage-}" # jic
+
 ######################################################################
 # Populate DEBURL and DEBDIR from the $SOURCES/*-Packages files as
 # mappings from package name to download filename and pool section
@@ -107,6 +118,7 @@ EOF
 # already installed, and /sbin/losetup is retained (due to being hard
 # link).
 target_dpkg -E --unpack $(debs busybox-static)
+rm -f $INITRD/bin/sh
 executable $INITRD/bin/sh <<EOF
 #!$(realpath $INITRD)/bin/busybox sh
 echo "### /bin/sh OVERRIDE " >&2
@@ -124,8 +136,7 @@ target_dpkg -E --install $(debs libc6)
 # Note that udebs are installed with "--force-overwrite" because some
 # of them compete about adding some configuration files.
 UDEBS=(
-    $( KERNELVERSION="${LINUX#linux-image-}" envsubst '${KERNELVERSION}' \
-                   < $UDEBSLIST | sed '/#/d;/^$/d' )
+    $( envsubst '${KERNELVERSION}' < $UDEBSLIST | sed '/#/d;/^$/d' )
 )
 for P in ${UDEBS[@]} ; do
     echo "UDEB install = $P" >&2
@@ -138,6 +149,12 @@ ln -sTf busybox $INITRD/bin/sh
 echo ${DISTNAME} > $INITRD/etc/default-release
 mkdir $INITRD/etc/console-setup
 mkdir -p $INITRD/cdrom
+sed '/TAR_OPTIONS/d' -i $INITRD/usr/share/debootstrap/scripts/ceres
+
+# Add a udev rule to recognize /dev/loop0 as possible media device
+heredoc $INITRD/lib/udev/rules.d/70-loop0-is-media.rules <<EOF
+KERNEL=="loop0", ENV{ID_CDROM}="1"
+EOF
 
 ######################################################################
 # Install "initrd-init" as the initrd /init to run at boot time. This
@@ -194,7 +211,7 @@ heredoc $MEDIA/.disk/info <<EOF
 $(date +"Devuan GNU/Linux $DISTVERS $DISTNAME $ARCH - bespoke %Y%m%d")
 EOF
 heredoc $MEDIA/md5sum.txt <<EOF
-$(cd $MEDIA ; md5sum $( find . -type f -printf "%P\n" ))
+$(cd $MEDIA ; md5sum $( find . -type f -not -name 'md5sum*' -printf "%P\n" ))
 EOF
 
 #-- Prepare a squashfs of $MEDIA into $INITRD.
@@ -206,12 +223,14 @@ ln -s /bin/busybox $INITRD/sbin/logger
 rm $INITRD/bin/logger
 # cannot open /bin/archdetect -- file exists
 mv $INITRD/{bin,sbin}/archdetect
+# uses squashfs rather than iso9660
+sed 's/iso9960\b/squashfs/' -i $INITRD/var/lib/dpkg/info/cdrom-detect.postinst
 
 ######################################################################
 # Pack up $INITRD into a top-level initrd.gz, and copy out vmlinuz
 find $INITRD -not -name udebs -printf '%P\n' | \
     fakeroot cpio -o -H newc -D $INITRD | gzip > $TARGET_ARCH/initrd.gz
-VMLINUZ=( $INITRD/boot/vmlinu* )
+VMLINUZ=$INITRD/boot/vmlinuz-$KERNELVERSION
 #-- Note that this renames it to vmlinuz regarless of its real name
 #-- Eg the riscv64 kernel is actually not compressed
 cp $VMLINUZ $TARGET_ARCH/vmlinuz
index 317a4ce7ecd4276a80a31cd2ce9fbe94d5a11ae2..b4c8ce817101588f620d98b0129b71acc0165fdc 100644 (file)
@@ -46,7 +46,7 @@ kbd-chooser
 kmod-udeb
 libfribidi0-udeb
 libkmod2
-libpcre3-udeb
+#libpcre3-udeb #not in ceres
 libelogind0
 libtinfo6-udeb
 load-cdrom
@@ -83,7 +83,7 @@ f2fs-modules-${KERNELVERSION}-di
 fat-modules-${KERNELVERSION}-di
 fb-modules-${KERNELVERSION}-di
 #firewire-core-modules-${KERNELVERSION}-di
-fuse-modules-${KERNELVERSION}-di
+#fuse-modules-${KERNELVERSION}-di # not in ceres
 i2c-modules-${KERNELVERSION}-di
 input-modules-${KERNELVERSION}-di
 isofs-modules-${KERNELVERSION}-di
@@ -93,7 +93,7 @@ md-modules-${KERNELVERSION}-di
 #mmc-core-modules-${KERNELVERSION}-di
 mmc-modules-${KERNELVERSION}-di
 #mouse-modules-${KERNELVERSION}-di
-mtd-core-modules-${KERNELVERSION}-di
+#mtd-core-modules-${KERNELVERSION}-di # not in ceres
 multipath-modules-${KERNELVERSION}-di
 nbd-modules-${KERNELVERSION}-di
 nic-modules-${KERNELVERSION}-di
index 6dd095c6eedff68ef318d01bb66c3c8301d2c32d..299f797e79a1c4abaf988bd124b539da673bb14b 100644 (file)
@@ -111,3 +111,4 @@ sysv-rc
 tasksel
 wireless-tools
 wpasupplicant
+usr-is-merged