# Kernel for uConsole_CM4_v3.1_64bit.img Kernel source tree: `https://github.com/cuu/ClockworkPi-linux` branch rpi-6.12.y Commit hash: `03436f4117533693d608b10eb4b3965987230b68` # How to compile the kernel ``` export ARCH=arm64 export CROSS_COMPILE=aarch64-linux-gnu- export DTS_SUBDIR=broadcom export IMAGE=Image.gz export KERNEL=kernel8 make O=build bcm2711_defconfig make O=build menuconfig make O=build -j 2 $IMAGE headers modules dtbs V=1 mkdir -p install/boot/overlays make O=build INSTALL_MOD_PATH=install modules_install cp build/arch/$ARCH/boot/dts/$DTS_SUBDIR/*.dtb install/boot/ cp build/arch/$ARCH/boot/dts/overlays/*.dtb* install/boot/overlays/ cp arch/${ARCH}/boot/dts/overlays/README install/boot/overlays/ cp build/arch/$ARCH/boot/$IMAGE install/boot/kernel8.img rm -rf install/lib mv build/install/lib/ install rm -rf install.tar.gz tar zcvf install.tar.gz install ``` ## How to package kernel files to a deb file Use the files produced above ``` VERSION=$(make O=build kernelrelease | sed -n '2p') DEB_FOLDER=uconsole-kernel-cm4-rpi_$VERSION mkdir -p $DEB_FOLDER/boot/firmware/overlays mkdir -p $DEB_FOLDER/usr/src make O=build INSTALL_MOD_PATH=install modules_install make O=build INSTALL_HDR_PATH=install headers_install cp build/arch/$ARCH/boot/dts/$DTS_SUBDIR/*.dtb $DEB_FOLDER/boot/firmware cp build/arch/$ARCH/boot/dts/overlays/*.dtb* $DEB_FOLDER/boot/firmware/overlays/ cp arch/${ARCH}/boot/dts/overlays/README $DEB_FOLDER/boot/firmware/overlays/ cp build/arch/$ARCH/boot/$IMAGE $DEB_FOLDER/boot/firmware/kernel8.img rm -rf $DEB_FOLDER/lib cp -rf build/install/lib/ $DEB_FOLDER cp build/.config $DEB_FOLDER/boot/config-${VERSION} cp build/System.map $DEB_FOLDER/boot/System.map-${VERSION} cp build/arch/$ARCH/boot/$IMAGE $DEB_FOLDER/boot/vmlinuz-${VERSION} cp -rf build/install/include/ $DEB_FOLDER/usr/src/linux-headers-${VERSION} rm -rf ${DEB_FOLDER}.tar.gz tar zcvf ${DEB_FOLDER}.tar.gz ${DEB_FOLDER} ```