[résolu] Pending kernel upgrade même après reboot

Bonjour,
Chaque fois que je mets à jour mon Pi4, il exécute needrestart qui se plaint que j’utilise une ancienne version du noyau et que je devrais redémarrer, mais le redémarrage ne change rien.

Il faut d’abord que je précise que:

  1. J’ai installé une version complète de Raspbian sur la carte SD (la plus à jour de mars 2020)
  2. J’ai changé mon cmdline.txt sur la carte SD afin de pouvoir démarrer depuis un disque dur
  3. La partition /boot est restée sur la carte sd…
  4. L’image sur le disque dur a été utilisée précédemment sur RPi3B+. Je l’ai mise à jour (dist-upgrade, full-upgrade) et elle fonctionne assez bien sur le RPi4 sauf que needrestart dit :

Pending kernel upgrade!

Running kernel version: 4.19.97-v7l+

Diagnostics: The currently running kernel version is not the
expected kernel version 4.19.97-v8+.

Restarting the system to load the new kernel will not be handled
automatically, so you should consider rebooting.

Les dossiers /boot (sur la carte SD) et /lib/modules (sur le disque dur) contiennent:

pi@raspberrypi ~ $ ls /lib/modules/
4.14.78+  4.14.78-v7+  4.19.97+  4.19.97-v7+  4.19.97-v7l+  4.19.97-v8+
pi@raspberrypi ~ $ ls /boot
 bcm2708-rpi-b.dtb        bcm2710-rpi-3-b-plus.dtb   fixup4.dat     kernel7.img        start4.elf
 bcm2708-rpi-b-plus.dtb   bcm2710-rpi-cm3.dtb        fixup4db.dat   kernel7l.img       start4x.elf
 bcm2708-rpi-cm.dtb       bcm2711-rpi-4-b.dtb        fixup4x.dat    kernel8.img        start_cd.elf
 bcm2708-rpi-zero.dtb     bootcode.bin               fixup_cd.dat   kernel.img         start_db.elf
 bcm2708-rpi-zero-w.dtb   cmdline.txt                fixup.dat      LICENCE.broadcom   start.elf
 bcm2709-rpi-2-b.dtb      config.txt                 fixup_db.dat   overlays           start_x.elf
 bcm2710-rpi-2-b.dtb      COPYING.linux              fixup_x.dat    start4cd.elf      'System Volume Information'
 bcm2710-rpi-3-b.dtb      fixup4cd.dat               issue.txt      start4db.elf

Pour chaque image sur /boot, j’ai lancé:

$ strings /boot/kernelXXX.img | grep -m 1 '^Linux version'

sans résultat sauf pour kernel8.img qui a donné:

Linux version 4.19.97-v8+ (dom@buildbot) (gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9)) #1294 SMP PREEMPT Thu Jan 30 13:27:08 GMT 2020

J’ai donc fait une sauvegarde de kernel.img et copié kernel8.img dans kernel.img, puis redémarré, mais rien n’a changé (toujours le kernel v7l+ booté)…

Du coup, j’ai fait une sauvegarde de kernel7l.img et (comme la version courante est 4.19.97-v7l+) j’ai copié kernel8.img dans kernel7l.img, et j’ai redémarré, mais là, pas de boot du tout…

Retour au kernel7l.img et le problème initial demeure…

J’ai vu dans un autre post sur stackexchange que je peux forcer l’image utilisée en utilisant kernel=xxx dans config.txt mais que ce n’est pas la façon normale de procéder, donc j’aimerais éviter de le faire si cela m’empêche de passer à des versions plus récentes dans le futur.
Je suis aussi un peu frileux à l’idée d’utiliser rpi-update avec tous les avertissements qu’on voit…

Que dois-je faire pour passer à la dernière version du noyau qui est déjà installé sur mon Pi ?

hello,
si j’ai bien compris ce post ( Cannot update to the latest kernel - Raspberry Pi Forums )
ce problème n’est pas un problème juste un excès de zèle de needrestart …

@bof super, merci, je n’avais pas trouvé ce post malgré mes recherches…
J’ai effectivement installé docker sur mon Pi et ça a poussé needrestart comme expliqué.
Ce qui reste bizarre, c’est que Docker (et needrestart donc) sont installés depuis longtemps mais que le problème est apparu uniquement au moment du passage sur le Pi4.
C’est peut-être le full-upgrade sur Pi4 qui a installé l’image kernel8…