Jump to content

Recommended Posts

Posted (edited)

Hi

I have upgraded an existing x86 Armbian system with kernel 6.6.63 and zfs 2.3.2 to the suggested kernel 6.12.32-current-x86, but I cannot get the zfs kernel module loaded after the latest updates to Armbian 25.5.1 noble. I also tried on other kernels, only the old 6.6.63 seems to work.

 

Normally when you select a different kernel in the armbian-config menu, it should automatically compile the zfs modules if it is activated. It just skips it. But you can of course compile it with the provided DKMS system:

Quote

 

dkms build -m zfs -v 2.3.2 -k 6.12.32-current-x86

 

 

 

the build just finishes fine, without any error, also the install, but when you try to load the module:

Quote

modprobe zfs

it responds with:

 

Quote

 

modprobe: ERROR: could not insert 'zfs': Exec format error

 

 

 

dmesg:

Quote

[Mon Jun 16 12:40:38 2025] module spl: .gnu.linkonce.this_module section size must match the kernel's built struct module size at run time

I have zfs 2.3.2 on kernel 6.12.32-current-bcm2711 running just fine on a Raspberry Pi 4, so I tested what would happen if I just build a small kernel driver module:


root@armbian:/usr/src/dummydriver# cat dummydriver.c
 

Quote

 

#include <linux/module.h>
#include <linux/version.h>
#include <linux/kernel.h>

static int __init driver_init(void)
{
    printk(KERN_INFO "Goodbye World!");

    return 0;
}

static void __exit driver_exit(void)
{
    printk(KERN_INFO "Hello World!");
}

module_init(driver_init);
module_exit(driver_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("dude");
MODULE_DESCRIPTION("driver");

 

 

 

root@armbian:/usr/src/dummydriver# cat Makefile
 

Quote

 

obj-m = dummydriver.o
KVERSION = $(shell uname -r)
all:
    make -C /lib/modules/$(KVERSION)/build M=$(shell pwd) modules

clean:
    make -C /lib/modules/$(KVERSION)/build M=$(shell pwd) clean

 

So when I run this on the  Raspberry Pi 4, I can load the module and unload

Quote

 

insmod dummydriver.ko

rmmod dummydriver

 

 

But when I run this on the x86 machine I get the same error:

Quote

root@armbian:/usr/src/dummydriver# insmod dummydriver.ko 
insmod: ERROR: could not insert module dummydriver.ko: Invalid module format
root@armbinan:/usr/src/dummydriver# [Mon Jun 16 12:13:21 2025] module dummydriver: .gnu.linkonce.this_module section size must match the kernel's built struct module size at run time


root@armbian:/usr/src/dummydriver# modinfo dummydriver.ko
 

Quote

 

filename:       /usr/src/dummydriver/dummydriver.ko
description:    driver
author:         dude
license:        GPL
srcversion:     4510E7795B8BE551B44A0E5
depends:        
name:           dummydriver
retpoline:      Y
vermagic:       6.12.32-current-x86 SMP preempt mod_unload modversions 
 

 

 

 

root@armbian:/usr/src/dummydriver# gcc --version
 

Quote

 

gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 

 

 

 

I also tried gcc 11.4.0

 

Here is my armbianmonitor -u:

 

https://paste.armbian.com/orepumazam

 

Any help welcome!

Philippe

 

 

Edited by phiser678
Posted

Hi

ok, I got a bit deeper. I installed the Armbian build framework and compiled the kernel.

 

./compile.sh build BOARD=uefi-x86 BRANCH=current BUILD_DESKTOP=no BUILD_MINIMAL=yes KERNEL_CONFIGURE=yes RELEASE=noble ENABLE_EXTENSIONS=

Then I got 3 deb files:


-

Quote

 

rw-rw-r-- 1 ubuntu root 551588032 Jun 17 11:08 linux-image-current-x86_25.08.0-trunk_amd64__6.12.33-Se03c-Dd997-P0000-C999999Hf8af-HK01ba-Vf5f1-Ba566-R448a.deb
-rw-rw-r-- 1 ubuntu root 103751872 Jun 17 11:08 linux-headers-current-x86_25.08.0-trunk_amd64__6.12.33-Se03c-Dd997-P0000-C999999Hf8af-HK01ba-Vf5f1-Ba566-R448a.deb
-rw-rw-r-- 1 ubuntu root   7649472 Jun 17 11:08 linux-libc-dev-current-x86_25.08.0-trunk_amd64__6.12.33-Se03c-Dd997-P0000-C999999Hf8af-HK01ba-Vf5f1-Ba566-R448a.deb

 

 

I installed the first 2 (libc-dev was complaining) and then I could compile and load the zfs module (and also the dummydriver)!

At first I used KERNEL_CONFIGURE=no with the compile script, and gave me 3 deb files from the ghcr.io/armbian/os/ repository without compiling the kernel, but these don't work! 

Quote

-rw-rw-r-- 1 ubuntu root  95467896 Jun 17 10:35 linux-image-current-x86_25.08.0-trunk_amd64__6.12.33-Se03c-Dd997-P0000-Ce553Hf8af-HK01ba-Vf5f1-Ba566-R448a.deb
-rw-rw-r-- 1 ubuntu root  14898368 Jun 17 10:35 linux-headers-current-x86_25.08.0-trunk_amd64__6.12.33-Se03c-Dd997-P0000-Ce553Hf8af-HK01ba-Vf5f1-Ba566-R448a.deb
-rw-rw-r-- 1 ubuntu root   1395792 Jun 17 10:35 linux-libc-dev-current-x86_25.08.0-trunk_amd64__6.12.33-Se03c-Dd997-P0000-Ce553Hf8af-HK01ba-Vf5f1-Ba566-R448a.deb
 

 

Notice also the sizes of the deb files are much smaller. I compared the 2 .config files of the one from the repository and the one that was compiled:

Quote

 diff linux-headers-6.12.33-current-x86-orig/.config linux-headers-6.12.33-current-x86/.config
24c24
< CONFIG_PAHOLE_VERSION=0
---
> CONFIG_PAHOLE_VERSION=125
138a139
> # CONFIG_SCHED_CLASS_EXT is not set
11911a11913,11917
> CONFIG_DEBUG_INFO_BTF=y
> CONFIG_PAHOLE_HAS_SPLIT_BTF=y
> CONFIG_PAHOLE_HAS_LANG_EXCLUDE=y
> CONFIG_DEBUG_INFO_BTF_MODULES=y
> # CONFIG_MODULE_ALLOW_BTF_MISMATCH is not set
12134a12141
> CONFIG_PROBE_EVENTS_BTF_ARGS=y
 

 

Posted (edited)

I think I solved it! In the upgraded system there was no package pahole! 

After I installed the pahole and reinstalled the package linux-headers-6.12.33-current-x86, I got the BTF stuff  as described above in the .config file and I can compile modules!

Pfff, finally!

 

I checked the Raspberry Pi 4 version, I see no pahole package installed there, and I can compile modules and zfs. I don't see any BTF stuff in the .config there also.

 

So, I don't know what is really going on here, I should install pahole on arm64 systems as well? And should pahole not be included when you upgrade your system to 25.5.1 ?

 

Edited by phiser678

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