Next branch kernel is currently broken DVFS can be safely enabled on C2 since the max reported frequency is 1.5GHz
173 lines
6.3 KiB
Diff
173 lines
6.3 KiB
Diff
diff --git a/scripts/package/builddeb b/scripts/package/builddeb
|
|
index aad67000..006d8ec7 100755
|
|
--- a/scripts/package/builddeb
|
|
+++ b/scripts/package/builddeb
|
|
@@ -29,6 +29,28 @@ create_package() {
|
|
# in case we are in a restrictive umask environment like 0077
|
|
chmod -R a+rX "$pdir"
|
|
|
|
+ # Create preinstall and post install script to remove dtb
|
|
+ if [[ "$1" == *dtb* ]]; then
|
|
+ echo "if [ -d /boot/dtb-$version ]; then mv /boot/dtb-$version /boot/dtb-$version.old; 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 mv /dtb /dtb.old; fi" >> $pdir/DEBIAN/preinst
|
|
+ echo "if [ -d /boot/dtb ]; then mv /boot/dtb /boot/dtb.old; fi" >> $pdir/DEBIAN/preinst
|
|
+ echo "exit 0" >> $pdir/DEBIAN/preinst
|
|
+ chmod 775 $pdir/DEBIAN/preinst
|
|
+ #
|
|
+ echo "if [ -d /boot/dtb-$version.old ]; then rm -rf /boot/dtb-$version.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 $forcearch -Vkernel:debarch="${debarch}" -p$pname -P"$pdir"
|
|
dpkg --build "$pdir" ..
|
|
@@ -95,11 +117,13 @@ tmpdir="$objtree/debian/tmp"
|
|
fwdir="$objtree/debian/fwtmp"
|
|
kernel_headers_dir="$objtree/debian/hdrtmp"
|
|
libc_headers_dir="$objtree/debian/headertmp"
|
|
+dtb_dir="$objtree/debian/dtbtmp"
|
|
dbg_dir="$objtree/debian/dbgtmp"
|
|
-packagename=linux-image-$version
|
|
-fwpackagename=linux-firmware-image-$version
|
|
-kernel_headers_packagename=linux-headers-$version
|
|
-libc_headers_packagename=linux-libc-dev
|
|
+packagename=linux-image-next"$LOCALVERSION"
|
|
+fwpackagename=linux-firmware-image-next"$LOCALVERSION"
|
|
+kernel_headers_packagename=linux-headers-next"$LOCALVERSION"
|
|
+dtb_packagename=linux-dtb-next"$LOCALVERSION"
|
|
+libc_headers_packagename=linux-libc-dev-next"$LOCALVERSION"
|
|
dbg_packagename=$packagename-dbg
|
|
debarch=
|
|
forcearch=
|
|
@@ -126,7 +150,9 @@ esac
|
|
BUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $KCONFIG_CONFIG || true)"
|
|
|
|
# Setup the directory structure
|
|
-rm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" $objtree/debian/files
|
|
+rm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" "$dtb_dir" $objtree/debian/files
|
|
+mkdir -m 755 -p "$dtb_dir/DEBIAN"
|
|
+mkdir -p "$dtb_dir/boot/dtb-$version" "$dtb_dir/usr/share/doc/$dtb_packagename"
|
|
mkdir -m 755 -p "$tmpdir/DEBIAN"
|
|
mkdir -p "$tmpdir/lib" "$tmpdir/boot"
|
|
mkdir -p "$fwdir/lib/firmware/$version/"
|
|
@@ -180,6 +206,11 @@ if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then
|
|
fi
|
|
fi
|
|
|
|
+if grep -q '^CONFIG_OF=y' $KCONFIG_CONFIG ; then
|
|
+ #mkdir -p "$tmpdir/boot/dtb"
|
|
+ INSTALL_DTBS_PATH="$dtb_dir/boot/dtb-$version" $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"
|
|
@@ -215,6 +246,55 @@ EOF
|
|
chmod 755 "$tmpdir/DEBIAN/$script"
|
|
done
|
|
|
|
+##
|
|
+## Create sym link to kernel image
|
|
+##
|
|
+sed -e "s/set -e//g" -i $tmpdir/DEBIAN/postinst
|
|
+sed -e "s/exit 0//g" -i $tmpdir/DEBIAN/postinst
|
|
+cat >> $tmpdir/DEBIAN/postinst <<EOT
|
|
+if [ "\$(grep nand /proc/partitions)" != "" ] && [ "\$(grep mmc /proc/partitions)" = "" ]; then
|
|
+mkimage -A arm -O linux -T kernel -C none -a "0x40008000" -e "0x40008000" -n "Linux kernel" -d /$installed_image_path /boot/uImage > /dev/null 2>&1
|
|
+cp /boot/uImage /tmp/uImage
|
|
+sync
|
|
+mountpoint -q /boot || mount /boot
|
|
+cp /tmp/uImage /boot/uImage
|
|
+rm -f /$installed_image_path
|
|
+else
|
|
+ln -sf $(basename $installed_image_path) /boot/Image > /dev/null 2>&1 || mv /$installed_image_path /boot/Image
|
|
+fi
|
|
+touch /boot/.next
|
|
+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 <<EOT
|
|
+# exit if we are running chroot
|
|
+if [ "\$(stat -c %d:%i /)" != "\$(stat -c %d:%i /proc/1/root/.)" ]; then exit 0; fi
|
|
+
|
|
+check_and_unmount (){
|
|
+boot_device=\$(mountpoint -d /boot)
|
|
+
|
|
+for file in /dev/* ; do
|
|
+ CURRENT_DEVICE=\$(printf "%d:%d" \$(stat --printf="0x%t 0x%T" \$file))
|
|
+ if [[ "\$CURRENT_DEVICE" = "\$boot_device" ]]; then
|
|
+ boot_partition=\$file
|
|
+ break;
|
|
+ fi
|
|
+done
|
|
+
|
|
+bootfstype=\$(blkid -s TYPE -o value \$boot_partition)
|
|
+if [ "\$bootfstype" = "vfat" ]; then
|
|
+umount /boot;
|
|
+rm -f /boot/System.map* /boot/config* /boot/vmlinuz* /boot/zImage /boot/uImage
|
|
+fi
|
|
+}
|
|
+mountpoint -q /boot && check_and_unmount
|
|
+EOT
|
|
+echo "exit 0" >> $tmpdir/DEBIAN/preinst
|
|
+
|
|
# Try to determine maintainer and email values
|
|
if [ -n "$DEBEMAIL" ]; then
|
|
email=$DEBEMAIL
|
|
@@ -329,12 +409,15 @@ if grep -q '^CONFIG_GCC_PLUGINS=y' $KCONFIG_CONFIG ; then
|
|
fi
|
|
destdir=$kernel_headers_dir/usr/src/linux-headers-$version
|
|
mkdir -p "$destdir"
|
|
+(cd $destdir; patch -p1 < /tmp/headers-debian-byteshift.patch)
|
|
(cd $srctree; tar -c -f - -T -) < "$objtree/debian/hdrsrcfiles" | (cd $destdir; tar -xf -)
|
|
(cd $objtree; tar -c -f - -T -) < "$objtree/debian/hdrobjfiles" | (cd $destdir; tar -xf -)
|
|
(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"
|
|
|
|
+(cd $destdir; make M=scripts clean)
|
|
+
|
|
cat <<EOF >> debian/control
|
|
|
|
Package: $kernel_headers_packagename
|
|
@@ -363,6 +446,16 @@ fi
|
|
|
|
cat <<EOF >> debian/control
|
|
|
|
+Package: $dtb_packagename
|
|
+Architecture: any
|
|
+Description: Linux DTB, version $version
|
|
+ This package contains device blobs from the Linux kernel, version $version.
|
|
+EOF
|
|
+
|
|
+create_package "$dtb_packagename" "$dtb_dir"
|
|
+
|
|
+cat <<EOF >> debian/control
|
|
+
|
|
Package: $libc_headers_packagename
|
|
Section: devel
|
|
Provides: linux-kernel-headers
|
|
@@ -374,7 +467,7 @@ EOF
|
|
|
|
if [ "$ARCH" != "um" ]; then
|
|
create_package "$kernel_headers_packagename" "$kernel_headers_dir"
|
|
- create_package "$libc_headers_packagename" "$libc_headers_dir"
|
|
+# create_package "$libc_headers_packagename" "$libc_headers_dir"
|
|
fi
|
|
|
|
create_package "$packagename" "$tmpdir"
|