Jump to content

Is it still possible to build just the kernel?


Recommended Posts

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!

Link to comment
Share on other sites

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 ]

 

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

@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.

Link to comment
Share on other sites

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:

 

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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   

 

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines