duniter démarre correctement avec un kernel debian vanilla, le pb est donc bien lié à la configuration de l’adressage mémoire sur le kernel raspberrypi.
Pour savoir si vous avez un kernel raspberrypi vous pouvez exécuter la commande suivante :
dpkg -l |grep raspberrypi-kernel
Si vous voyez une ligne commençant par ii raspberrypi-kernel alors vous avez un kernel raspberrypi et il est probablement compilé avec l’option CONFIG_ARM64_VA_BITS_39=y.
ii raspberrypi-kernel 1:1.20230405-1 arm64 Raspberry Pi bootloader
Pour installer un kernel debian sur Raspberry Pi OS (raspbian), il faut supprimer le kernel raspberrypi et installer le kernel debian à la place, en veillant à ce que tous les prérequis nécessaires au boot soit bien respectés car les raspberry ont un mécanisme de boot particulier qui est différent des ordinateurs classiques (un raspi n’a pas de bios, c’est le GPU qui exécute le bootloader). C’est une manipulation délicate qui peut empêcher votre raspberry de redémarrer si elle n’est pas réalisée correctement. Préparez vous à réinstaller votre raspberry si les choses tournent mal et assurez vous que vous avez sauvegardé vos données utiles avant de continuer.
Le plus simple pour un débutant est de réinstaller son raspberry avec une distribution compatible (et/ou de remplacer son raspberry par une board bananapi ou olimex).
Les opérations listées ci-dessous ont fonctionné pour moi mais ne sont données qu’à titre d’exemple et doivent être adaptées à votre configuration. La démarche présentée permet d’installer un kernel debian sur un raspberrypi 4b (64bits) depuis un raspberrypi OS basé sur debian 12 bookworm. La procédure DOIT être adaptée en fonction de votre matériel (armv7/armv8/…) et de votre version de debian (bookworm/trixie/…).
ATTENTION DANGER : effectuer cette manip à distance est (très) risqué, il va falloir redémarrer le raspberry après installation du nouveau noyau et il est possible (et même fort probable :p) que cela ne fonctionne pas du 1er coup et que vous perdiez la main sur votre raspberry.
Voila, maintenant que les avertissements d’usage sont donnés, passons à la description des étapes :
- configuration des repos debian
- suppression du kernel raspberry
- installation du kernel debian
- vérification des prérequis
- reboot
Configuration des repos debian
- vérifier votre version debian
lsb_release -a
- ajouter les repos debian au fichier
/etc/apt/sources.list
deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb http://deb.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
- mettre à jour la liste des paquets
apt-get update --allow-insecure-repositories
apt-get install debian-archive-keyring --allow-unauthenticated
apt-get update
Suppression du kernel raspberry
apt-get remove --purge raspberrypi-bootloader raspberrypi-kernel raspi-firmware raspi-config plymouth
Installation du kernel debian
- préparer la partition de boot
umount /boot
mkdir /boot/firmware
sed -i s+/boot+/boot/firmware+ /etc/fstab
mount /boot/firmware
- installer les paquets debian
apt-get install linux-image-arm64 raspi-firmware
Si vous avez un message d’avertissement concernant le support des versions de l’initramfs et du kernel, vous n’avez pas désinstallé les paquets rapsberrypi avant d’installer les paquets debian. Veillez à bien désinstaller les paquets raspberrypi avant, surtout le paquet raspi-firmware.
Vérification des prérequis
Si vous avez effectué les commandes dans l’ordre et que vous n’avez pas eu d’erreur, votre système devrait être fonctionnel et prêt à redémarrer.
Si tout ne s’est pas passé comme prévu et/ou que vous êtes prudent, assurez vous d’avoir une configuration fonctionnelle avant de redémarrer. Il vous faut :
- une partition vfat montée sur /boot/firmware
grep boot /etc/fstab

- une version du kernel linux adaptée à votre raspberry (image-armmp-lpae pour raspi2 et image-arm64 pour raspi3 ou raspi4)
dpkg -l |grep linux-image
- une config qui pointe vers cette image linux avec son initramfs
ls -l /boot/firmware/|grep arm64
grep arm64 /boot/firmware/config.txt
Si les fichiers vmlinuz et initrd ne sont pas présents, vous pouvez les copier manuellement pour créer les fichiers attendus par défaut (kernel8.img et initramfs8 pour un raspi3 ou raspi4, kernel.img et initramfs pour un raspi2).

ls /boot/firmware/bcm*.dtb
Si les fichiers ne sont pas présents, vous pouvez les copier manuellement.
rsync -av /usr/lib/linux-image-*-arm64/broadcom/* /boot/firmware/
ls /boot/firmware/overlays/*.tdbo

Si vous avez chargé des fichiers d’overlay spécifiques dans le fichier config.txt, assurez vous qu’ils soient bien présents dans le répertoire overlays.
reboot
Si votre config est fonctionnelle il ne vous reste plus qu’à redémarrer votre raspberry et vérifier la version de votre nouveau kernel.
uname -a
grep -i va_bits /boot/config-*-arm64
Félicitations ! Vous avez désormais un kernel compatible avec duniter v2 