Sample Header Ad - 728x90

How can I create the kernel headers for ARM on X86?

1 vote
1 answer
1716 views
I have an ARM-based board, which I used with factory kernel (5.10.110). To manually build a kernel module, I needed the kernel-header package. To install this package it was explained in the documentation : > sudo dpkg -i /opt/linux-headers-*.deb This created the below structure: /lib/modules/5.10.110$ ls -la total 1584 drwxr-xr-x 1 root root 4096 Apr 29 15:13 . drwxr-xr-x 1 root root 4096 Jul 10 21:36 .. lrwxrwxrwx 1 root root 31 Feb 20 07:05 build -> /usr/src/linux-headers-5.10.110 drwxr-xr-x 2 root root 4096 Feb 20 13:29 extra drwxr-xr-x 1 root root 4096 Feb 20 13:29 kernel -rw-r--r-- 1 root root 327270 Apr 29 15:13 modules.alias -rw-r--r-- 1 root root 346627 Apr 29 15:13 modules.alias.bin -rw-r--r-- 1 root root 28645 Feb 20 13:29 modules.builtin -rw-r--r-- 1 root root 0 Apr 29 15:13 modules.builtin.alias.bin -rw-r--r-- 1 root root 30656 Apr 29 15:13 modules.builtin.bin -rw-r--r-- 1 root root 164216 Feb 20 13:29 modules.builtin.modinfo -rw-r--r-- 1 root root 95077 Apr 29 15:13 modules.dep -rw-r--r-- 1 root root 153551 Apr 29 15:13 modules.dep.bin -rw-r--r-- 1 root root 140 Apr 29 15:13 modules.devname -rw-r--r-- 1 root root 51432 Feb 20 13:29 modules.order -rw-r--r-- 1 root root 468 Apr 29 15:13 modules.softdep -rw-r--r-- 1 root root 163120 Apr 29 15:13 modules.symbols -rw-r--r-- 1 root root 206275 Apr 29 15:13 modules.symbols.bin Now I had to recompile the whole kernel and version is increased from 5.10.110 to **5.10.160**. So now, when I try to compile a kernel module it is not finding the required headers. Build folder contains these files in 5.10.110: /lib/modules/5.10.110/build$ ls -la total 1364 drwxr-xr-x 5 root root 4096 Apr 29 15:03 . drwxr-xr-x 1 root root 4096 Jul 10 22:35 .. -rw-r--r-- 1 root root 220133 Feb 20 07:05 .config -rw-r--r-- 1 root root 68886 Dec 1 2022 Makefile -rw-r--r-- 1 root root 1075160 Feb 20 07:02 Module.symvers drwxr-xr-x 3 root root 4096 Apr 29 15:03 arch drwxr-xr-x 31 root root 4096 Apr 29 15:03 include drwxr-xr-x 17 root root 12288 Apr 29 15:03 scripts How can I recreate these headers for building custom kernel modules against my new kernel of version 5.10.160? I made various trials: copying these folders from my computer where I cross-compiled the kernel: not working, as "scripts" folder contains machine code (x86_64) which is not executing on aarch64. Then I copied "scripts" folder from 5.10.110, but I'm unsure if it's okay, or will cause harm or unwanted results. So how could I cross-compile the environment for building custom kernel modules?
Asked by Daniel (358 rep)
Jul 10, 2023, 08:55 PM
Last activity: Jul 17, 2023, 12:12 PM