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.

Is it still possible to build just the kernel?

Featured Replies

Hello,

for quite some time I have noticed that it seems impossible to build just the kernel, an image is built every time. I am using the following command:

./compile.sh BOARD=odroidxu4 BRANCH=current RELEASE=bullseye BUILD_MINIMAL=yes BUILD_DESKTOP=no BUILD_ONLY="kernel" KERNEL_CONFIGURE=no USE_CCACHE=no KEEP_KERNEL_CONFIG=no DEB_COMPRESS=xz

Additionally, output/debs seems not to be cleaned, despite documentation indicating this should happen with default CLEAN_LEVEL. Am I doing something wrong? Or does documentation need updating? Thanks!

actually, I'm curious where the built kernel modules go after running

./compile.sh kernel

 

I see it produces a tar in output/debs which has 3 debs (dtbs, initrd, & kernel), but I'm failing to find where the kernel modules (.ko) are at outside of the docker build container

 

[🐳|🌱] Kernel build finished [ version "6.4.0-rc1" git revision "cf431a5998326a0468532a188a188ac2c8e9c55d" codename "Hurr durr Ima ninja sloth" drivers hash "8bc9f0ca889841a4" patches hash "07933894b6baed73" .config hash "fe2e111c768e2bc6" .config hook hash "fe661159ee64825e" variables hash "" framework bash hash "9c188aa4807ed506" ]
[🐳|🔨]   linux-image-dev-meson64_23.05.1--6.4-rc1-Scf43-D8bc9-P0793-Cfe2eHfe66-HK01ba-Ve377-B9c18_arm64.deb
[🐳|🔨]   linux-headers-dev-meson64_23.05.1--6.4-rc1-Scf43-D8bc9-P0793-Cfe2eHfe66-HK01ba-Ve377-B9c18_arm64.deb
[🐳|🔨]   linux-dtb-dev-meson64_23.05.1--6.4-rc1-Scf43-D8bc9-P0793-Cfe2eHfe66-HK01ba-Ve377-B9c18_arm64.deb
[🐳|🌱] Created deb-tar artifact [ deb-tar: /armbian/output/debs/kernel-meson64-dev_23.05.1--6.4-rc1-Scf43-D8bc9-P0793-Cfe2eHfe66-HK01ba-Ve377-B9c18.tar ]

 

ok, nm - after examining linux-image-dev* pkg with dpkg -c, I see this contains the headers

My issue seems to be that for some reason after editing/patching a kernel driver, the module is not properly rebuilt, which seems like a different issue

Ok,

but how can I create u-boot, firmware and armbian-config packages?

Docs said:  BUILD_ONLY (comma-separated list) ie. "u-boot,kernel,armbian-config,armbian-zsh,plymouth-theme-armbian,armbian-firmware,armbian-bsp". but this not working.

What I am missing?

@IgorS You can now use the follows "./compile.sh BOARD=<board> BRANCH=<branch> <command>" where command can be one of the following uboot, uboot-config, uboot-patch, atf-patch, crust-patch, kernel, kernel-config, kernel-patch, armbian-config, armbian-zsh, plymouth-theme-armbian, firmware, firmware-full, armbian-bsp-cli, armbian-bsp-desktop, armbian-base-files, fake-ubuntu-advantage-tools, rootfs, desktop

 

you can only provide one command though. So probably you use for loop and supply each command through the same.

  • Author

There could be a variable to define, but you can just remove the patches from the respective patch/kernel subfolder. Once you want them back, do git restore.

noob's here. 

 

Basically, my goal is to upgrade my system to Linux kernel 6.7 but it's not yet available via armbian-config (edge's at 6.6 at the moment). I went ahead and followed 

https://docs.armbian.com/Developer-Guide_Building-with-Docker/

 

./compile.sh docker-shell

root@6bc1d026998c:/armbian# ./compile.sh

 

standard option : no change the kernel config, (my board) nanopim4, edge, jammy, Image with console interface (server), standard image with console interface

 

I got the output below. How do I properly install it without flashing the whole thing -- similar to in the end what I got from armbian-config - System - Other ?

 

 

My current system: 

$ uname -a

Linux nanopim4 6.1.63-current-rockchip64 #1 SMP PREEMPT Mon Nov 20 10:52:19 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux



$ cat /etc/armbian-release 

# PLEASE DO NOT EDIT THIS FILE

BOARD=nanopim4

BOARD_NAME="NanoPi M4"

BOARDFAMILY=rockchip64

BUILD_REPOSITORY_URL=https://github.com/armbian/build

BUILD_REPOSITORY_COMMIT=014eb55b5

LINUXFAMILY=rockchip64

ARCH=arm64

IMAGE_TYPE=stable

BOARD_TYPE=csc

INITRD_ARCH=arm64

KERNEL_IMAGE_TYPE=Image

FORCE_BOOTSCRIPT_UPDATE=

VENDOR="Armbian"

VENDORDOCS="https://docs.armbian.com"

VENDORURL="https://www.armbian.com/"

VENDORSUPPORT="https://forum.armbian.com"

VENDORBUGS="https://www.armbian.com/bugs"

BOOTSCRIPT_FORCE_UPDATE="no"

BOOTSCRIPT_DST="boot.cmd"

VERSION=23.11.1

REVISION=23.11.1

BRANCH=current

 

 

$ ls -R

.:

debs  images  logs  packages-hashed



./debs:

armbian-bsp-cli-nanopim4-edge_24.5.0-trunk_arm64__1-PC3155-V6b08-He03b-Ba537-Rf32b.deb

armbian-config_24.5.0-trunk_all__1-SAfb17-B0293-R448a.deb

armbian-firmware_24.5.0-trunk_all__1-SA6b6f-B90f5-R448a.deb

armbian-plymouth-theme_24.5.0-trunk_all__1-Bfcdb-R448a.deb

armbian-zsh_24.5.0-trunk_all__1-SAbfee-Baafd-R448a.deb

fake-ubuntu-advantage-tools_24.5.0-trunk_all__1-Bfcde-R448a.deb

jammy

linux-dtb-edge-rockchip64_24.5.0-trunk_arm64__6.7.6-Sb631-D6b4a-Pd972-C9e08Hfe66-HK01ba-Vc222-B067e-R448a.deb

linux-headers-edge-rockchip64_24.5.0-trunk_arm64__6.7.6-Sb631-D6b4a-Pd972-C9e08Hfe66-HK01ba-Vc222-B067e-R448a.deb

linux-image-edge-rockchip64_24.5.0-trunk_arm64__6.7.6-Sb631-D6b4a-Pd972-C9e08Hfe66-HK01ba-Vc222-B067e-R448a.deb

linux-u-boot-nanopim4-edge_24.5.0-trunk_arm64__2022.04-Se4b6-P9ac8-H8c72-V00d9-B11a8-R448a.deb



./debs/jammy:

base-files_24.5.0-trunk-12ubuntu4.6-jammy_arm64__1-jammy-1armbian1-Ba4f9-U12ubuntu4.6-R55fa.deb



./images:



./logs:

archive  log-docker-shell-2ff7b3cb-0116-4bab-af1f-513f2d12827b.log.ans  summary-docker-shell-2ff7b3cb-0116-4bab-af1f-513f2d12827b.md



./logs/archive:

log-build-12e521e3-4ee1-4e96-bd23-f7eab8343488.log.ans.zst  log-docker-9dabbb7b-14fc-4f43-af22-a35f4d67be8b.log.ans.zst        summary-docker-9dabbb7b-14fc-4f43-af22-a35f4d67be8b.md.zst

log-build-12e521e3-4ee1-4e96-bd23-f7eab8343488.log.zst      log-docker-shell-6c473265-ba31-45ab-83fb-3eafd8b54f89.log.ans.zst  summary-docker-shell-6c473265-ba31-45ab-83fb-3eafd8b54f89.md.zst

log-build-880a1d96-4ee1-4c1b-9fd5-ab60196a2a91.log.ans.zst  summary-build-12e521e3-4ee1-4e96-bd23-f7eab8343488.md.zst

log-build-880a1d96-4ee1-4c1b-9fd5-ab60196a2a91.log.zst      summary-build-880a1d96-4ee1-4c1b-9fd5-ab60196a2a91.md.zst



./packages-hashed:

armbian-bsp-cli-nanopim4-edge_1-PC3155-V6b08-He03b-Ba537-Rf32b_arm64.tar  global  jammy



./packages-hashed/global:



./packages-hashed/jammy:

 

On 2/24/2024 at 3:33 PM, Jerry Jyrer said:

How do I properly install it without flashing the whole thing


https://unix.stackexchange.com/questions/159094/how-to-install-a-deb-file-by-dpkg-i-or-by-apt

For each file that you have build. Since you are currently using "current" kernel its wise that you also build "current" kernel (v6.6.y) and not edge (v6.7.y).

Or wait few days, a week,  as this kernel will become available in armbian-config.

Thanks for the pointers. I added them as a local repository and upgraded with the armbian-config. Just for reference, here is what I did

 

sudo vi /etc/apt/sources.list

## add the following line:
deb [trusted=yes] file:/<mypath>/armbian/build/output/debs/ ./

cd /<mypath>/armbian/build/output/debs/
sudo bash -c 'dpkg-scanpackages . | gzip > ./Packages.gz'
sudo apt update

# Switch to the new kernel via armbian-config
sudo armbian-config   

 

Is it possible just to rebuild the kernel, without fetching kernel updates and reapplying patches? I would find it useful to develop kernel drivers like in a development cycle.

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

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.