Compilation noyau ARM64

Tags: #<Tag:0x00007fc6ecd06938>

Bonjour à tous et bonne rentrée pour ceux qui reprennent.
Je tente de compiler/installer un noyau 6.12.1 sur odroid.
Jusq’à la création des paquests ça a l’air de fonctionner, c’est à l’installation que j’ai des erreurs:

odroid@G:~$ sudo dpkg -i linux-headers-6.16.1-perso_6.16.1-1_arm64.deb linux-image-6.16.1-perso_6.16.1-1_arm64.deb linux-libc-dev_6.16.1-1_arm64.deb 
Selecting previously unselected package linux-headers-6.16.1-perso.
(Reading database ... 64036 files and directories currently installed.)
Preparing to unpack linux-headers-6.16.1-perso_6.16.1-1_arm64.deb ...
Unpacking linux-headers-6.16.1-perso (6.16.1-1) ...
Selecting previously unselected package linux-image-6.16.1-perso.
Preparing to unpack linux-image-6.16.1-perso_6.16.1-1_arm64.deb ...
Unpacking linux-image-6.16.1-perso (6.16.1-1) ...
Preparing to unpack linux-libc-dev_6.16.1-1_arm64.deb ...
Unpacking linux-libc-dev:arm64 (6.16.1-1) over (6.12.38-2) ...
Setting up linux-headers-6.16.1-perso (6.16.1-1) ...
Setting up linux-image-6.16.1-perso (6.16.1-1) ...
dkms: running auto installation service for kernel 6.16.1-perso.
Sign command: /lib/modules/6.16.1-perso/build/scripts/sign-file
Binary /lib/modules/6.16.1-perso/build/scripts/sign-file not found, modules won't be signed

Building module:
Cleaning build area...
arch='aarch64' kernelver='6.16.1-perso' ./driverctl make all....(bad exit status: 2)
Error! Bad return status for module build on kernel: 6.16.1-perso (aarch64)
Consult /var/lib/dkms/rtl8852bu/1.19.14/build/make.log for more information.
Error! One or more modules failed to install during autoinstall.
Refer to previous errors for more information.
dkms: autoinstall for kernel: 6.16.1-perso failed!
run-parts: /etc/kernel/postinst.d/dkms exited with return code 11
update-initramfs: Generating /boot/initrd.img-6.16.1-perso
Using DTB: rockchip/rk3566-odroid-m1s.dtb
Installing rockchip into /boot/dtbs/6.16.1-perso/rockchip/
Installing rockchip into /boot/dtbs/6.16.1-perso/rockchip/
flash-kernel: deferring update (trigger activated)
Using DTB: rockchip/rk3566-odroid-m1s.dtb
Installing rockchip into /boot/dtbs/6.16.1-perso/rockchip/
Installing rockchip into /boot/dtbs/6.16.1-perso/rockchip/
flash-kernel: deferring update (trigger activated)
dpkg: error processing package linux-image-6.16.1-perso (--install):
 installed linux-image-6.16.1-perso package post-installation script subprocess returned error exit status 1
Setting up linux-libc-dev:arm64 (6.16.1-1) ...
Processing triggers for flash-kernel (5:3.99+202505211042) ...
Using DTB: rockchip/rk3566-odroid-m1s.dtb
Installing rockchip into /boot/dtbs/6.16.1-perso/rockchip/
Kernel /boot/vmlinuz-6.16.1-perso does not match any of the expected flavors (arm64), therefore not writing it to flash.
Errors were encountered while processing:
 linux-image-6.16.1-perso

Dans la partie /boot, j’ai pourtant ceci d’installé:

odroid@G:~$ ll /boot
total 96520
-rw-r--r-- 1 root root  8331264 Jul 22 16:45 ODROIDBIOS.BIN
-rw-r--r-- 1 root root  3881630 Jun 10 02:33 System.map-6.1.0-odroid-arm64
-rw-r--r-- 1 root root  4473513 Aug 22  2025 System.map-6.16.1-perso
-rw-rw-r-- 1 root root    41831 Dec 30  2019 boot-logo.bmp.gz
-rw-r--r-- 1 root root     3191 Aug  7 20:31 boot.scr
-rw-r--r-- 1 root root     3191 Aug  4 16:17 boot.scr.bak
-rw-r--r-- 1 root root   233114 Jun 10 02:33 config-6.1.0-odroid-arm64
-rw-r--r-- 1 root root   253987 Aug 22  2025 config-6.16.1-perso
-rw-r--r-- 1 root root      184 May 27 07:07 config.ini
lrwxrwxrwx 1 root root       48 Aug  7 20:39 dtb -> dtbs/6.16.1-perso/rockchip/rk3566-odroid-m1s.dtb
lrwxrwxrwx 1 root root       54 Aug  7 20:31 dtb-6.1.0-odroid-arm64 -> dtbs/6.1.0-odroid-arm64/rockchip/rk3566-odroid-m1s.dtb
lrwxrwxrwx 1 root root       48 Aug  7 20:39 dtb-6.16.1-perso -> dtbs/6.16.1-perso/rockchip/rk3566-odroid-m1s.dtb
drwxr-xr-x 5 root root     4096 Aug  7 20:38 dtbs
drwxr-xr-x 2 root root     4096 May 27 07:05 grub
-rw-r--r-- 1 root root 13504625 Aug  4 16:17 initrd.img-6.1.0-odroid-arm64
-rw-r--r-- 1 root root 13601109 Aug  7 20:38 initrd.img-6.16.1-perso
drwx------ 2 root root    16384 May 27 07:19 lost+found
lrwxrwxrwx 1 root root       35 Aug  7 20:39 overlays -> dtbs/6.16.1-perso/rockchip/overlays
-rw-r--r-- 1 root root 25352200 Jun 10 02:33 vmlinuz-6.1.0-odroid-arm64
-rw-r--r-- 1 root root 28960776 Aug 22  2025 vmlinuz-6.16.1-perso

Pour la compilation, voila comment je m’y suis pris:
tout le système est déjà installé sur carte SD et fonctionne, avec un noyau 6.1.0-arm64 (mais j’ai des soucis avec, d’ou la recompilation). Je mounte la carte sur sur mon portable, (amd64) et je monte en chroot.
ensuite j’ai téléchargé les sources linux , copié /boot/.config dans ~/linux/.config , make menuconfig. Je n’ai rien touché sauf au niveau des modules net/wireless.
La partie la plus longue:

make -j8 deb-pkg LOCALVERSION=-perso KDEB_PKGVERSION=$(make kernelversion)-1 

j’ai bien retrouvé mes paquets debian :

linux-headers-6.16.1-perso_6.16.1-1_arm64.deb
linux-image-6.16.1-perso_6.16.1-1_arm64.deb
linux-libc-dev_6.16.1-1_arm64.deb

Ce que je n’ai pas fait, c’est d’installer le moindre certificat , puisque je vois que dpkg signale des modules non signés.
Et je ne comprends pas l’erreur

Kernel /boot/vmlinuz-6.16.1-perso does not match any of the expected flavors (arm64), therefore not writing it to flash.

Ou ai-je fait la boulette?
Merci de votre aide.
Rémi.

je viens de compulser le handbook debian. J’ai corrigé l’erreur de certificat.
reste mon problème de « flavors » .

Bonjour,
comment as-tu fait ton chroot?

Bonjour @Zargos
Pour monter mon chroot, je fais ça:

MNT="/mnt/"
mount --bind /sys $MNT/sys
mount --bind /dev $MNT/dev
mount --bind /dev/pts $MNT/dev/pts
mount --bind /proc $MNT/proc
echo "nameserver 8.8.8.8" > $MNT/etc/resolv.conf
cd $MNT
chroot ./

sur ma machine AMD64, j’ai installé qemu-user et ses dépendances
Puis j’ai copié bien avant sur la carte SD qemu-img /mnt/usr/bin/

Jusque là mon chroot fonctionne parfaitement.

Assure toi que les efivars soient montées.

en chroot tu fais
moutn -t efivarfs efivars /sys/firmware/efi/efivars

:slight_smile: [quote=« Zargos, post:5, topic:91470 »]
moutn -t efivarfs efivars /sys/firmware/efi/efivars
[/quote]

Ah, je l’avais pas celui la

Résultat des opérations:
Je viens de recommencer la compilation:
efivarfs est mounté dans le chroot, ensuite:
[ code]
$ sudo moutn -t efivarfs efivars /sys/firmware/efi/efivars
$ cd linux
$ make clean
$ KDEB_PKGVERSION=$(make kernelversion)-1
$ make -j8 deb-pkg LOCALVERSION=-perso KDEB_PKGVERSION=$(make kernelversion)-1
[/code]

Au final, j’ai bien les paquets générés.
Je les installe sur la carte même, pas en chroot. J’ai le même problème que plus haut.Ai-je mal déclaré KDEB_PKGVERSION ?

sudo dpkg -i linux-headers-6.16.1-perso_6.16.1-1_arm64.deb linux-image-6.16.1-perso_6.16.1-1_arm64.deb linux-libc-dev_6.16.1-1_arm64.deb 
[sudo] password for odroid: 
Selecting previously unselected package linux-headers-6.16.1-perso.
(Reading database ... 66011 files and directories currently installed.)
Preparing to unpack linux-headers-6.16.1-perso_6.16.1-1_arm64.deb ...
Unpacking linux-headers-6.16.1-perso (6.16.1-1) ...
Selecting previously unselected package linux-image-6.16.1-perso.
Preparing to unpack linux-image-6.16.1-perso_6.16.1-1_arm64.deb ...
Unpacking linux-image-6.16.1-perso (6.16.1-1) ...
Preparing to unpack linux-libc-dev_6.16.1-1_arm64.deb ...
Unpacking linux-libc-dev:arm64 (6.16.1-1) over (6.16.1-1) ...
Setting up linux-headers-6.16.1-perso (6.16.1-1) ...
Setting up linux-image-6.16.1-perso (6.16.1-1) ...
dkms: running auto installation service for kernel 6.16.1-perso.
Sign command: /lib/modules/6.16.1-perso/build/scripts/sign-file
Binary /lib/modules/6.16.1-perso/build/scripts/sign-file not found, modules won't be signed

Building module:
Cleaning build area...
arch='aarch64' kernelver='6.16.1-perso' ./driverctl make all....(bad exit status: 2)
Error! Bad return status for module build on kernel: 6.16.1-perso (aarch64)
Consult /var/lib/dkms/rtl8852bu/1.19.14/build/make.log for more information.
Error! One or more modules failed to install during autoinstall.
Refer to previous errors for more information.
dkms: autoinstall for kernel: 6.16.1-perso failed!
run-parts: /etc/kernel/postinst.d/dkms exited with return code 11
update-initramfs: Generating /boot/initrd.img-6.16.1-perso
Using DTB: rockchip/rk3566-odroid-m1s.dtb
Installing rockchip into /boot/dtbs/6.16.1-perso/rockchip/
Installing rockchip into /boot/dtbs/6.16.1-perso/rockchip/
flash-kernel: deferring update (trigger activated)
Using DTB: rockchip/rk3566-odroid-m1s.dtb
Installing rockchip into /boot/dtbs/6.16.1-perso/rockchip/
Installing rockchip into /boot/dtbs/6.16.1-perso/rockchip/
flash-kernel: deferring update (trigger activated)
dpkg: error processing package linux-image-6.16.1-perso (--install):
 installed linux-image-6.16.1-perso package post-installation script subprocess returned error exit status 1
Setting up linux-libc-dev:arm64 (6.16.1-1) ...
Processing triggers for flash-kernel (5:3.99+202505211042) ...
Using DTB: rockchip/rk3566-odroid-m1s.dtb
Installing rockchip into /boot/dtbs/6.16.1-perso/rockchip/
Kernel /boot/vmlinuz-6.16.1-perso does not match any of the expected flavors (arm64), therefore not writing it to flash.
Errors were encountered while processing:
 linux-image-6.16.1-perso

Ce qui m’étonne, c’est le
arch=‹ aarch64 ›
Ce devrait être arm64 (ou arm tout court à la limite)
Problème dans mon .config j’ai l’impression, pourtant, j’ai repris celui du noyau actuellement fonctionnel.

Je pense que ça devrait être

linux-image-6.16.1-arm64

Et non

 linux-image-6.16.1-perso

ok!
je recommence alors. Réponse dans 4h :slight_smile:
Merci de ton aide en attendant.

1 J'aime

Fin de compilation:

.../...
  STRIP   debian/linux-image-6.16.1-arm64/lib/modules/6.16.1-arm64/kernel/net/hsr/hsr.ko
  DEPMOD  debian/linux-image-6.16.1-arm64/lib/modules/6.16.1-arm64
dpkg-deb: building package 'linux-image-6.16.1-arm64' in '../linux-image-6.16.1-arm64_6.16.1-1_arm64.deb'.
 dpkg-genbuildinfo --build=full -O../linux-upstream_6.16.1-1_arm64.buildinfo
 dpkg-genchanges --build=full -O../linux-upstream_6.16.1-1_arm64.changes
dpkg-genchanges: info: including full source code in upload
 dpkg-source --compression=gzip --after-build .
dpkg-source: info: using options from linux/debian/source/local-options: --diff-ignore --extend-diff-ignore=.*
dpkg-buildpackage: info: full upload (original source is included)

reste à installer.

Donc il y a du mieux:

dpkg -i linux-headers-6.16.1-arm64_6.16.1-1_arm64.deb linux-image-6.16.1-arm64_6.16.1-1_arm64.deb 
Selecting previously unselected package linux-headers-6.16.1-arm64.
(Reading database ... 66011 files and directories currently installed.)
Preparing to unpack linux-headers-6.16.1-arm64_6.16.1-1_arm64.deb ...
Unpacking linux-headers-6.16.1-arm64 (6.16.1-1) ...
Selecting previously unselected package linux-image-6.16.1-arm64.
Preparing to unpack linux-image-6.16.1-arm64_6.16.1-1_arm64.deb ...
Unpacking linux-image-6.16.1-arm64 (6.16.1-1) ...
Setting up linux-headers-6.16.1-arm64 (6.16.1-1) ...
Setting up linux-image-6.16.1-arm64 (6.16.1-1) ...
dkms: running auto installation service for kernel 6.16.1-arm64.
Sign command: /lib/modules/6.16.1-arm64/build/scripts/sign-file
Binary /lib/modules/6.16.1-arm64/build/scripts/sign-file not found, modules won't be signed

Building module:
Cleaning build area...
arch='aarch64' kernelver='6.16.1-arm64' ./driverctl make all....(bad exit status: 2)
Error! Bad return status for module build on kernel: 6.16.1-arm64 (aarch64)
Consult /var/lib/dkms/rtl8852bu/1.19.14/build/make.log for more information.
Error! One or more modules failed to install during autoinstall.
Refer to previous errors for more information.
dkms: autoinstall for kernel: 6.16.1-arm64 failed!
run-parts: /etc/kernel/postinst.d/dkms exited with return code 11
update-initramfs: Generating /boot/initrd.img-6.16.1-arm64
Using DTB: rockchip/rk3566-odroid-m1s.dtb
Installing rockchip into /boot/dtbs/6.16.1-arm64/rockchip/
Installing rockchip into /boot/dtbs/6.16.1-arm64/rockchip/
flash-kernel: deferring update (trigger activated)
Using DTB: rockchip/rk3566-odroid-m1s.dtb
Installing rockchip into /boot/dtbs/6.16.1-arm64/rockchip/
Installing rockchip into /boot/dtbs/6.16.1-arm64/rockchip/
flash-kernel: deferring update (trigger activated)
dpkg: error processing package linux-image-6.16.1-arm64 (--install):
 installed linux-image-6.16.1-arm64 package post-installation script subprocess returned error exit status 1
Processing triggers for flash-kernel (5:3.99+202505211042) ...
Using DTB: rockchip/rk3566-odroid-m1s.dtb
Installing rockchip into /boot/dtbs/6.16.1-arm64/rockchip/
flash-kernel: installing version 6.16.1-arm64
Generating boot script u-boot image... done.
Taking backup of boot.scr.
Installing new boot.scr.
Errors were encountered while processing:
 linux-image-6.16.1-arm64

Mais je pense savoir pourquoi: avant de recompiler, j’ai fait ‹ make clean › qui m’a, je pense supprimé le certificat debian.