Skip to content
View in the app

A better way to browse. Learn more.

Armbian Community Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Armbian build PR] - Add compatibility to package kernel-debs that use a localversion-X file

Featured Replies

Description

The current kernel.sh build system uses the grab_version() function in utils-compilation.sh to determine the version string of the kernel and locate the build artifacts after make has completed.

grab_version is a simple implementation that parses the makefile to guess the final kernel version, but if a userpatch has been applied to the kernel that includes a localversion-xx file (the PREEMPT_RT patch does this, for example), the returned value will be wrong (grab_version returns 5.10.110 when the true value used to name the vmlinuz image is 5.10.110-rt53-rockchip-rk3588)

Thank you to @rpardini on Discord for helping me identify a fix for this issue.

This patch switches kernel.sh to use the built in make kernelrelease command to return the kernel version, which takes into account any localversion-xx files in the kernel tree, as well as the LOCALVERSION=-${LINUXFAMILY} value appended by the armbian kernel-make.sh code.

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Please also note any relevant details for your test configuration.

  • [x] Compile kernel on current HEAD with localversion-rt file present. Expected result: build failure Packaging fails at kernel_package_callback_linux_image() --> lib/functions/compilation/kernel-debs.sh:213 which is run_host_command_logged ls -la "${kernel_pre_package_path}" "${kernel_image_pre_package_path}" This fails because kernel_image_pre_package_path is derived from grab_version
  • [x] Compile kernel with this patch and no localverison-rt files: vmlinuz filenames are unchanged from current functionality and correctly located by kernel-debs.sh to be built into .deb files. Output from run_host_command_logged ls -la "${kernel_pre_package_path}" "${kernel_image_pre_package_path}":
-rw-rw-r-- 1 root root   215715 May 10 19:33 config-5.10.110-rockchip-rk3588
-rw-rw-r-- 1 root root  7779350 May 10 19:33 System.map-5.10.110-rockchip-rk3588
-rw-rw-r-- 1 root root 34013696 May 10 19:33 vmlinuz-5.10.110-rockchip-rk3588

.deb creation is correct:

linux-image-legacy-rockchip-rk3588_23.05.0-trunk--5.10.110-Sad1f-D4008-Pbb66-Cc2a1Hfe66-HK01ba-Vc222-B049d_arm64.deb
linux-headers-legacy-rockchip-rk3588_23.05.0-trunk--5.10.110-Sad1f-D4008-Pbb66-Cc2a1Hfe66-HK01ba-Vc222-B049d_arm64.deb
linux-dtb-legacy-rockchip-rk3588_23.05.0-trunk--5.10.110-Sad1f-D4008-Pbb66-Cc2a1Hfe66-HK01ba-Vc222-B049d_arm64.deb
  • [x] Compile kernel with this patch and localverison-rt files: vmlinuz files are correctly named with both the localversion-xx file and the armbian localversion appended in kernel-make.sh. Output from run_host_command_logged ls -la "${kernel_pre_package_path}" "${kernel_image_pre_package_path}":
-rw-rw-r-- 1 root root   210209 May 10 19:48 config-5.10.110-rt53-rockchip-rk3588
-rw-rw-r-- 1 root root  7777472 May 10 19:48 System.map-5.10.110-rt53-rockchip-rk3588
-rw-rw-r-- 1 root root 33714688 May 10 19:48 vmlinuz-5.10.110-rt53-rockchip-rk3588

.debs are created as expected:

linux-image-legacy-rockchip-rk3588_23.05.0-trunk--5.10.110-Scbae-D4008-Pbb66-C3f61Hfe66-HK01ba-Vc222-B049d_arm64.deb
linux-headers-legacy-rockchip-rk3588_23.05.0-trunk--5.10.110-Scbae-D4008-Pbb66-C3f61Hfe66-HK01ba-Vc222-B049d_arm64.deb
linux-dtb-legacy-rockchip-rk3588_23.05.0-trunk--5.10.110-Scbae-D4008-Pbb66-C3f61Hfe66-HK01ba-Vc222-B049d_arm64.deb

Checklist:

  • [x] My code follows the style guidelines of this project
  • [x] I have performed a self-review of my own code
  • [x] I have commented my code, particularly in hard-to-understand areas
  • [ ] I have made corresponding changes to the documentation
  • [x] My changes generate no new warnings
  • [ ] Any dependent changes have been merged and published in downstream modules

View the full article

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.