Novena linux-kernel
The mainline Linux kernel contains Make targets to build .deb packages. We extend this slightly to also include DTB files, and to allow for an arbitrary kernel installation directory.
The Novena kernel is relatively close to mainline. It has a few additional patches, most of which will eventually get merged.
The kernel's github page is present at https://github.com/xobs/novena-linux, though be warned that it undergoes frequent rebasing. This could make your "git pull" fail.
To build a new kernel, perform the following steps:
- git clone https://github.com/xobs/novena-linux.git (or git clone git@github.com:xobs/novena-linux.git)
- cd novena-linux
- git branch -r # List remote branches
- git checkout [branchname] # e.g. git checkout v3.19-novena-etnadrm-r3
- make novena_defconfig
- make -j4 zImage
- make -j4 modules
- sudo make -j4 modules_install
Then, copy arch/arm/boot/zImage to /boot/
If you need to modify device tree files, run the following:
- make dtbs
Then, copy arch/arm/boot/dts/imx6q-novena.dtb to your boot device as novena.dtb.
Debian Packages
We use the following script to build kernel packages:
./package-kernel.sh
It is stored in the root of the kernel source, and will automatically tag and rebuild everything. A build takes about two hours, and does a fresh checkout of the tree.
The script is something along these lines:
#!/bin/sh threads=2 version=1.4 make -j${threads} \ LD=gold \ KBUILD_DEBARCH=armhf \ KBUILD_IMAGE=zImage \ KBUILD_DTB=imx6q-novena.dtb \ KBUILD_DESTDIR=usr/share/linux-novena \ KDEB_PKGVERSION=${version} \ EMAIL="xobs@kosagi.com" \ NAME="Sean Cross" \ dtbs || exit 1 make -j${threads} \ LD=gold \ KBUILD_DEBARCH=armhf \ KBUILD_IMAGE=zImage \ KBUILD_DTB=imx6q-novena.dtb \ KBUILD_DESTDIR=usr/share/linux-novena \ KDEB_PKGVERSION=${version} \ EMAIL="xobs@kosagi.com" \ NAME="Sean Cross" \ deb-pkg