Skip to content
Joshua Riek edited this page Sep 21, 2024 · 14 revisions

Identifying a kernel

The easiest way to determine the kernel you’re running is to type cat /proc/version_signature on the terminal.

For example:

$ cat /proc/version_signature
Ubuntu 6.1.0-1025.25-rockchip 6.1.75

This output provides important information about the kernel:

  • Ubuntu kernel-release = 6.1.0-1025.25-rockchip
    • kernel version is 6.1, which is identical to upstream kernel version
    • .0 is an obsolete parameter left over from older upstream kernel version naming practices
    • -1025 application binary interface (ABI) bump for this kernel
    • .25 upload number for this kernel
    • -rockchip is kernel flavor parameter indicating optimizations for Rockchip hardware

Obtaining the kernel sources

The source for each release is maintained in its own git repository on Launchpad.

The git repository is listed in the Vcs-Git: header in the source package and is of the following form:

https://github.com/Joshua-Riek/linux-rockchip/tree/<series>

For example, the standard Jammy kernel is available at:

https://github.com/Joshua-Riek/linux-rockchip/tree/jammy

There is a tree for each of the currently supported releases as well as any open development and upcoming releases. For example:

jammy https://github.com/Joshua-Riek/linux-rockchip/tree/jammy
noble https://github.com/Joshua-Riek/linux-rockchip/tree/noble
oracular https://github.com/Joshua-Riek/linux-rockchip/tree/oracular

Modifying the kernel configuration

The build process uses a kernel configuration located at debian.rockchip/config/config.common.ubuntu in the kernel source tree.

In order to make your kernel "newer" than the stock Ubuntu kernel from which you are based, you should add a local version modifier. Add something like "+test1" to the end of the first version number in the debian.rockchip/changelog file, before building. This will help identify your kernel when running as it also appears in uname -a. Note that when a new Ubuntu kernel is released that will be newer than your kernel (which needs regenerating), so care is needed when upgrading.

Building the kernel

Building the kernel is quite easy. Change your working directory to the root of the kernel source tree and then type the following commands:

export $(dpkg-architecture -aarm64)
export CROSS_COMPILE=aarch64-linux-gnu-
export CC=aarch64-linux-gnu-gcc
export LANG=C

fakeroot debian/rules clean binary-headers binary-rockchip do_mainline_build=true

If the build is successful, several .deb binary package files will be produced in the directory above the build root directory.

Clone this wiki locally