From fd91d5920f146408e2460a58d4353f1bfcfa0bbc Mon Sep 17 00:00:00 2001 From: Igor Pecovnik Date: Thu, 7 Apr 2016 16:16:40 +0200 Subject: [PATCH] Cubox headers auto creation while install, initial RAM drive on kernel install and others packaging related fixes. Tested on one and two partition setup, fat or ext4 --- .../cubox-default/02-headers-packing.patch | 13 --- ... packaging-with-postinstall-scripts.patch} | 103 ++++++++++++++---- 2 files changed, 83 insertions(+), 33 deletions(-) delete mode 100644 patch/kernel/cubox-default/02-headers-packing.patch rename patch/kernel/cubox-default/{01-packaging-cubox.patch => packaging-with-postinstall-scripts.patch} (71%) diff --git a/patch/kernel/cubox-default/02-headers-packing.patch b/patch/kernel/cubox-default/02-headers-packing.patch deleted file mode 100644 index d27fd190d..000000000 --- a/patch/kernel/cubox-default/02-headers-packing.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/scripts/package/builddeb b/scripts/package/builddeb -index 6c3b038..616aa9b 100755 ---- a/scripts/package/builddeb -+++ b/scripts/package/builddeb -@@ -334,6 +334,8 @@ mkdir -p "$destdir" - ln -sf "/usr/src/linux-headers-$version" "$kernel_headers_dir/lib/modules/$version/build" - rm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles" - -+(cd "$destdir"; make M=scripts clean) -+ - cat <> debian/control - - Package: $kernel_headers_packagename diff --git a/patch/kernel/cubox-default/01-packaging-cubox.patch b/patch/kernel/cubox-default/packaging-with-postinstall-scripts.patch similarity index 71% rename from patch/kernel/cubox-default/01-packaging-cubox.patch rename to patch/kernel/cubox-default/packaging-with-postinstall-scripts.patch index cce52896e..a524864e1 100644 --- a/patch/kernel/cubox-default/01-packaging-cubox.patch +++ b/patch/kernel/cubox-default/packaging-with-postinstall-scripts.patch @@ -1,6 +1,8 @@ +diff --git a/scripts/package/builddeb b/scripts/package/builddeb +index 152d4d2..9b30ad2 100644 --- a/scripts/package/builddeb +++ b/scripts/package/builddeb -@@ -35,13 +35,15 @@ +@@ -35,13 +35,15 @@ create_package() { sparc*) debarch=sparc ;; s390*) @@ -18,16 +20,39 @@ arm*) debarch=arm$(grep -q CONFIG_AEABI=y $KCONFIG_CONFIG && echo el || true) ;; *) -@@ -62,7 +64,7 @@ +@@ -61,8 +63,30 @@ create_package() { + forcearch="-DArchitecture=$debarch" fi ++ # Create preinstall and post install script to remove dtb ++ if [[ "$1" == *dtb* ]]; then ++ echo "if [ -d /boot/dtb ]; then rm -rf /boot/dtb; fi" >> $pdir/DEBIAN/preinst ++ echo "if [ -d /boot/dtb-$version ]; then rm -rf /boot/dtb-$version; fi" >> $pdir/DEBIAN/preinst ++ echo "if [ -d /boot/dtb.old ]; then rm -rf /boot/dtb.old; fi" >> $pdir/DEBIAN/preinst ++ echo "if [ -d /dtb ]; then rm -rf /dtb; fi" >> $pdir/DEBIAN/preinst ++ echo "exit 0" >> $pdir/DEBIAN/preinst ++ chmod 775 $pdir/DEBIAN/preinst ++ # ++ echo "if [ -d /boot/dtb.old ]; then rm -rf /boot/dtb.old; fi" >> $pdir/DEBIAN/postinst ++ echo "ln -sf dtb-$version /boot/dtb > /dev/null 2>&1 || mv /boot/dtb-$version /boot/dtb" >> $pdir/DEBIAN/postinst ++ echo "exit 0" >> $pdir/DEBIAN/postinst ++ chmod 775 $pdir/DEBIAN/postinst ++ fi ++ ++ # Create postinstall script for headers ++ if [[ "$1" == *headers* ]]; then ++ echo "cd /usr/src/linux-headers-$version; echo \"Compiling headers - please wait ...\"; make -s scripts >/dev/null 2>&1" >> $pdir/DEBIAN/postinst ++ echo "exit 0" >> $pdir/DEBIAN/postinst ++ chmod 775 $pdir/DEBIAN/postinst ++ fi ++ # Create the package - dpkg-gencontrol -isp $forcearch -Vkernel:debarch="${debarch:-$(dpkg --print-architecture)}" -p$pname -P"$pdir" + dpkg-gencontrol $forcearch -Vkernel:debarch="${debarch:-$(dpkg --print-architecture)}" -p$pname -P"$pdir" dpkg --build "$pdir" .. } -@@ -78,11 +80,13 @@ +@@ -78,11 +102,13 @@ tmpdir="$objtree/debian/tmp" fwdir="$objtree/debian/fwtmp" kernel_headers_dir="$objtree/debian/hdrtmp" libc_headers_dir="$objtree/debian/headertmp" @@ -45,7 +70,7 @@ dbg_packagename=$packagename-dbg if [ "$ARCH" = "um" ] ; then -@@ -106,13 +110,17 @@ +@@ -106,13 +132,17 @@ esac BUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $KCONFIG_CONFIG || true)" # Setup the directory structure @@ -59,12 +84,12 @@ mkdir -p "$libc_headers_dir/usr/share/doc/$libc_headers_packagename" + +mkdir -m 755 -p "$dtb_dir/DEBIAN" -+mkdir -p "$dtb_dir/boot/dtb" "$dtb_dir/usr/share/doc/$dtb_packagename" ++mkdir -p "$dtb_dir/boot/dtb-$version" "$dtb_dir/usr/share/doc/$dtb_packagename" + mkdir -m 755 -p "$kernel_headers_dir/DEBIAN" mkdir -p "$kernel_headers_dir/usr/share/doc/$kernel_headers_packagename" mkdir -p "$kernel_headers_dir/lib/modules/$version/" -@@ -130,7 +138,7 @@ +@@ -130,7 +160,7 @@ if [ "$ARCH" = "um" ] ; then cp System.map "$tmpdir/usr/lib/uml/modules/$version/System.map" cp $KCONFIG_CONFIG "$tmpdir/usr/share/doc/$packagename/config" gzip "$tmpdir/usr/share/doc/$packagename/config" @@ -73,7 +98,7 @@ cp System.map "$tmpdir/boot/System.map-$version" cp $KCONFIG_CONFIG "$tmpdir/boot/config-$version" fi -@@ -150,21 +158,25 @@ +@@ -150,21 +180,25 @@ if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then rmdir "$tmpdir/lib/modules/$version" fi if [ -n "$BUILD_DEBUG" ] ; then @@ -103,15 +128,15 @@ fi +if grep -q '^CONFIG_OF=y' $KCONFIG_CONFIG ; then -+ mkdir -p "$tmpdir/boot/dtb" -+ cp $objtree/arch/arm/boot/dts/*.dtb $dtb_dir/boot/dtb ++ mkdir -p "$tmpdir/boot/dtb-""$version" ++ cp $objtree/arch/arm/boot/dts/*.dtb $dtb_dir/boot/dtb-$version + #INSTALL_DTBS_PATH="$dtb_dir/boot/dtb" $MAKE KBUILD_SRC= dtbs_install +fi + if [ "$ARCH" != "um" ]; then $MAKE headers_check KBUILD_SRC= $MAKE headers_install KBUILD_SRC= INSTALL_HDR_PATH="$libc_headers_dir/usr" -@@ -189,9 +201,11 @@ +@@ -189,9 +223,11 @@ for script in postinst postrm preinst prerm ; do set -e # Pass maintainer script parameters to hook scripts @@ -123,7 +148,7 @@ export INITRD=$want_initrd test -d $debhookdir/$script.d && run-parts --arg="$version" --arg="/$installed_image_path" $debhookdir/$script.d -@@ -200,6 +214,15 @@ +@@ -200,6 +236,51 @@ EOF chmod 755 "$tmpdir/DEBIAN/$script" done @@ -131,15 +156,51 @@ +## Create sym link to kernel image +## +kernel_tmp_version="${installed_image_path////\\/}" -+sed -e "s#exit 0#ln -sf $(basename $kernel_tmp_version) /boot/zImage || cp /$kernel_tmp_version /boot/zImage#g" -i $tmpdir/DEBIAN/postinst -+#echo "touch /boot/.next" >> $tmpdir/DEBIAN/postinst -+echo "exit 0" >> $tmpdir/DEBIAN/postinst ++sed -e "s/set -e//g" -i $tmpdir/DEBIAN/postinst ++sed -e "s/exit 0//g" -i $tmpdir/DEBIAN/postinst ++cat >> $tmpdir/DEBIAN/postinst < /dev/null 2>&1 || mv /$kernel_tmp_version /boot/zImage + ++if [ -f "/boot/initrd.img-$version" ]; then ++mkimage -A $UTS_MACHINE -O linux -T ramdisk -C gzip -a 0 -e 0 -n uInitrd -d /boot/initrd.img-$version /boot/uInitrd > /dev/null 2>&1 ++rm /boot/initrd.img-$version ++fi ++exit 0 ++EOT ++ ++## ++## FAT install workaround ++## ++sed -e "s/set -e//g" -i $tmpdir/DEBIAN/preinst ++sed -e "s/exit 0//g" -i $tmpdir/DEBIAN/preinst ++cat >> $tmpdir/DEBIAN/preinst <> $tmpdir/DEBIAN/preinst + # Try to determine maintainer and email values if [ -n "$DEBEMAIL" ]; then email=$DEBEMAIL -@@ -217,9 +240,20 @@ +@@ -217,9 +298,20 @@ else fi maintainer="$name <$email>" @@ -161,7 +222,7 @@ * Custom built Linux kernel. -@@ -233,10 +267,10 @@ +@@ -233,10 +325,10 @@ This is a packacked upstream version of the Linux kernel. The sources may be found at most Linux ftp sites, including: ftp://ftp.kernel.org/pub/linux/kernel @@ -174,7 +235,7 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by -@@ -287,14 +321,22 @@ +@@ -287,22 +379,32 @@ EOF fi @@ -203,7 +264,9 @@ (cd $objtree; cp $KCONFIG_CONFIG $destdir/.config) # copy .config manually to be where it's expected to be ln -sf "/usr/src/linux-headers-$version" "$kernel_headers_dir/lib/modules/$version/build" rm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles" -@@ -302,7 +344,7 @@ + ++(cd "$destdir"; make M=scripts clean) ++ cat <> debian/control Package: $kernel_headers_packagename @@ -212,7 +275,7 @@ Architecture: any Description: Linux kernel headers for $KERNELRELEASE on \${kernel:debarch} This package provides kernel header files for $KERNELRELEASE on \${kernel:debarch} -@@ -328,6 +370,16 @@ +@@ -328,6 +430,16 @@ fi cat <> debian/control @@ -229,7 +292,7 @@ Package: $libc_headers_packagename Section: devel Provides: linux-kernel-headers -@@ -339,7 +391,7 @@ +@@ -339,7 +451,7 @@ EOF if [ "$ARCH" != "um" ]; then create_package "$kernel_headers_packagename" "$kernel_headers_dir"