Why has new bookwork installation given me a newer kernel than an upgraded bookworm?

Jan 30, 2025 Last reply: 1 year ago 14 Replies

I'm confused, I've just installed Raspberry Pi OS (Bookworkm) on a new Pi 4B and it has installed Kernel: 6.6.62+rpt-rpi-v8 aarch64.



I have another 4B on which I installed Bookworm a while ago and have updated regularly and it only has Kernel: 6.1.21-v8+ aarch64.



Why hasn't the older (to me) system got the latest kernel as installed on the new one?


apt list installed 'linux-image*'

Then apt policy <package>

That simply lists every possible matching package as far as I can see, not what's actually installed.

There isn't anything actually installed with a package name matching 'linux-image':-

chris@homepi$ dpkg -l | grep linux-image chris@homepi$

The 'older' system has /boot/kernel8.img installed from the raspberrypi-kernel package.

The 'newer' system says /boot/kernel8.img comes from the raspberrypi-kernel package but there isn't any raspberrypi-kernel package installed. :-

root@newodinpi:~# apt-file search kernel8.img raspberrypi-kernel: /boot/kernel8.img root@newodinpi:~# dpkg -l | grep raspberrypi-kernel root@newodinpi:~#

Something is funny here!

Don't you have to use apt-get dist-upgrade to install newer kernels? I assumed that was to avoid the need to reboot on automated updates.

Yeah. I think I am right. The policy is not to change the kernel on normal upgrades

I tried that, no change, still 6.1 kernel:-

root@homepi# uname -a Linux homepi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux root@homepi# apt update Get:1

formatting link
bookworm-security InRelease [48.0 kB] Hit:2
formatting link
bookworm InRelease Hit:3
formatting link
bookworm-updates InRelease Hit:4
formatting link
bookworm InRelease Get:5
formatting link
syncthing InRelease [15.7 kB] Fetched 63.6 kB in 2s (38.1 kB/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done All packages are up to date. root@homepi# apt dist-upgrade Reading package lists... Done Building dependency tree... Done Reading state information... Done Calculating upgrade... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. root@homepi#

Odd. apt and apt-get may have different rules

"apt-get upgrade only upgrades the apps, tools, and utilities. It does not install new Linux kernel of the OS.

"apt upgrade upgrades the apps, tools, and utilities and installs new Linux kernel of the OS. However, it never removes old packages.

"apt full-upgrade upgrades the apps, tools, and utilities and installs new Linux kernel of the OS. It also removes old packages if needed for the upgrade."

It looks to me apt full-upgrade does the same thing as apt-get dist-upgrade. That is to say the full-upgrade will check for and install a new kernel if available and removes old packages if the removal is necessary for the upgrade."

I don't think apt dist-upgrade is actually a valid command.

"apt full-upgrade and apt-get dist-upgrade are the same command. But again apt is the newer command."

Anyway see if any of that works., I am pretty sure it did for me

You forgot the “policy” part.

The Natural Philosopher snipped-for-privacy@invalid.invalid wrote:

root@homepi# apt-get update Hit:1

formatting link
bookworm InRelease Get:2
formatting link
bookworm-updates InRelease [55.4 kB] Get:3
formatting link
bookworm-security InRelease [48.0 kB] Hit:4
formatting link
bookworm InRelease Get:5
formatting link
syncthing InRelease [15.7 kB] Fetched 119 kB in 2s (71.8 kB/s) Reading package lists... Done root@homepi# apt-get dist-upgrade Reading package lists... Done Building dependency tree... Done Reading state information... Done Calculating upgrade... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. root@homepi# apt update Hit:1
formatting link
bookworm-security InRelease Hit:2
formatting link
bookworm InRelease Hit:3
formatting link
bookworm-updates InRelease Hit:4
formatting link
bookworm InRelease Get:5
formatting link
syncthing InRelease [15.7 kB] Fetched 15.7 kB in 2s (9,499 B/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done All packages are up to date. root@homepi# apt full-upgrade Reading package lists... Done Building dependency tree... Done Reading state information... Done Calculating upgrade... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. root@homepi# uname -a Linux homepi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux root@homepi#

They both look the same to me, neither of them gets the latest kernel.

I think running 'rpi-update' may update the kernel but it shouldn't be necessary to do that.

I meant that "apt list installed 'linux-image*'" lists every possible matching package.

Without knowing what <package> I'm interested in "apt policy <package>" isn't much help.

None of the packages listed by "apt list installed 'linux-image*'" is installed on my system. If I do "apt list --installed 'linux-image*'" which I think is maybe what was intended it shows nothing. In other words the kernel is no longer in a package called anything like linux-image.

I think there's something awry or different in some way on the older system. There is a hardware difference, the older system (which is a

2Gb Pi 4B) boots in the standard way from an SD card. The newer system (which is a 1Gb Pi 4B) boots from USB.

The contents of /boot are different on the two systems:-

Newer Pi 4B (wiht kernel 6.6.62):-

chris@newodinpi$ ls /boot System.map-6.6.51+rpt-rpi-2712 config-6.6.51+rpt-rpi-v8 initrd.img-6.6.51+rpt-rpi-v8 vmlinuz-6.6.51+rpt-rpi-v8 System.map-6.6.51+rpt-rpi-v8 config-6.6.62+rpt-rpi-2712 initrd.img-6.6.62+rpt-rpi-2712 vmlinuz-6.6.62+rpt-rpi-2712 System.map-6.6.62+rpt-rpi-2712 config-6.6.62+rpt-rpi-v8 initrd.img-6.6.62+rpt-rpi-v8 vmlinuz-6.6.62+rpt-rpi-v8 System.map-6.6.62+rpt-rpi-v8 config.txt issue.txt cmdline.txt firmware overlays config-6.6.51+rpt-rpi-2712 initrd.img-6.6.51+rpt-rpi-2712 vmlinuz-6.6.51+rpt-rpi-2712 chris@newodinpi$

Older Pi 4B (with kernel 6.1.21):-

chris@homepi$ ls /boot COPYING.linux bcm2710-rpi-zero-2.dtb cmdline.txt fixup_cd.dat start4.elf LICENCE.broadcom bcm2711-rpi-4-b.dtb config.txt fixup_db.dat start4cd.elf bcm2710-rpi-2-b.dtb bcm2711-rpi-400.dtb fixup.dat fixup_x.dat start4db.elf bcm2710-rpi-3-b-plus.dtb bcm2711-rpi-cm4-io.dtb fixup4.dat issue.txt start4x.elf bcm2710-rpi-3-b.dtb bcm2711-rpi-cm4.dtb fixup4cd.dat kernel8.img start_cd.elf bcm2710-rpi-cm3.dtb bcm2711-rpi-cm4s.dtb fixup4db.dat overlays start_db.elf bcm2710-rpi-zero-2-w.dtb bootcode.bin fixup4x.dat start.elf start_x.elf chris@homepi$

The newer system has all the bcm and similar files in /boot/firmware. I can't see the vmlinuz files and such anywhere on the older system.

The older system does seem to have a rather anomolous configuration:-

root@homepi# apt-file search vmlinuz-6.6.62 linux-image-6.6.62+rpt-rpi-2712: /boot/vmlinuz-6.6.62+rpt-rpi-2712 linux-image-6.6.62+rpt-rpi-v8: /boot/vmlinuz-6.6.62+rpt-rpi-v8

So apt thinks the vmlinuz files should be in /boot but they definitely aren't there. It also shows the version as 6.6.62 and that *isn't* the actually running kernel.

I have just tried:-

apt reinstall linux-image-6.6.62+rpt-rpi-v7 apt reinstall linux-image-6.6.62+rpt-rpi-v8 apt reinstall linux-image-6.6.51+rpt-rpi-2712

But apart from installing the vmlinuz files in /boot that hasn't changed anything, it still boots into a 6.1.21 kernel.

It seems maybe as if something in the boot sequence is different/wrong.

Did you try apt-get dist-upgrade or apt fullupgrade yet???

Yes, no help.

However I'm pretty sure I have found the problem, see:-

formatting link
Obviously my 'older' system has been upgraded from Bullseye to Bookworm but not properly/completely. I don't really remember doing it but I guess I must have at some point.

It's not got a lot of cusotmisation, I'll probably just do a reinstall from scratch which will guarantee it's 'clean'.

Ah. I think if you install the 'generic' kernel you will upgrade to the latest stable

If upgrades get scratchy that's what I end up doing.

I think you mean:

apt list --installed

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required