rpi-update icon indicating copy to clipboard operation
rpi-update copied to clipboard

WANT_64BIT_RT=1 does not activate a real-time kernel

Open jeffective opened this issue 6 months ago • 1 comments

I am on a cm4 booting from emmc flash with raspberry pi OS 64 bit.

I attempt to install real-time kernel with:

sudo SKIP_BOOTLOADER=1 WANT_64BIT_RT=1 rpi-update
 *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
 *** Performing self-update
 *** Relaunching after update
 *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
FW_REV:286a1d4d7520d7d592d19f64d2daf5160d595a3d
 *** We're running for the first time
 *** Backing up files (this will take a few minutes)
 *** Remove old firmware backup
 *** Backing up firmware
 *** Remove old modules backup
 *** Backing up modules 6.12.37-v8+
WANT_32BIT:0 WANT_64BIT:1 WANT_64BIT_RT:1 WANT_PI4:1 WANT_PI5:1
##############################################################
WARNING: This update bumps to rpi-6.12.y linux tree
See discussions at:
https://forums.raspberrypi.com/viewtopic.php?t=379745
##############################################################
Would you like to proceed? (y/N)

 *** Downloading specific firmware revision (this will take a few minutes)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  185M  100  185M    0     0  5089k      0  0:00:37  0:00:37 --:--:-- 4108k
 *** Updating firmware
 *** Updating kernel modules
 *** depmod 6.12.37-v8+
 *** depmod 6.12.37-v8-16k+
 *** depmod 6.12.37-v8-rt+
 *** Updating VideoCore libraries
 *** Running ldconfig
 *** Storing current firmware revision
 *** Deleting downloaded files
 *** Syncing changes to disk
 *** If no errors appeared, your firmware was successfully updated to 286a1d4d7520d7d592d19f64d2daf5160d595a3d
 *** A reboot is needed to activate the new firmware

I then reboot:

sudo reboot

And verify kernel running

uname -a
Linux <redacted> 6.12.37-v8+ #1894 SMP PREEMPT Fri Jul 11 16:47:45 BST 2025 aarch64 GNU/Linux

It says "PREEMPT" when I expect to see "PREEMPT_RT". How do I install the real-time kernel?

Here are the contents of my /boot and /boot/firmware

$ ls -1al /boot/
total 69650
drwxr-xr-x  4 root root    4096 Jul 11 11:27 .
drwxr-xr-x 19 root root    4096 May 31 19:49 ..
-rw-r--r--  1 root root      92 May 12 17:06 cmdline.txt
-rw-r--r--  1 root root  246476 Apr 30 05:45 config-6.12.25+rpt-rpi-2712
-rw-r--r--  1 root root  246452 Apr 30 05:45 config-6.12.25+rpt-rpi-v8
-rw-r--r--  1 root root  248969 Jun 26 02:26 config-6.12.34+rpt-rpi-2712
-rw-r--r--  1 root root  248945 Jun 26 02:26 config-6.12.34+rpt-rpi-v8
-rw-r--r--  1 root root      91 May 12 17:06 config.txt
drwxr-xr-x  4 root root    6144 Dec 31  1969 firmware
drwxr-xr-x  4 root root    4096 Dec 31  1969 firmware.bak
-rw-r--r--  1 root root 7720825 Jun 28 14:07 initrd.img-6.12.25+rpt-rpi-2712
-rw-r--r--  1 root root 7721081 Jun 28 14:07 initrd.img-6.12.25+rpt-rpi-v8
-rw-r--r--  1 root root 7725023 Jul  2 10:00 initrd.img-6.12.34+rpt-rpi-2712
-rw-r--r--  1 root root 7724915 Jul  2 10:00 initrd.img-6.12.34+rpt-rpi-v8
lrwxrwxrwx  1 root root      18 May 12 17:14 issue.txt -> firmware/issue.txt
lrwxrwxrwx  1 root root      17 May 12 17:06 overlays -> firmware/overlays
-rw-r--r--  1 root root      83 Apr 30 05:45 System.map-6.12.25+rpt-rpi-2712
-rw-r--r--  1 root root      83 Apr 30 05:45 System.map-6.12.25+rpt-rpi-v8
-rw-r--r--  1 root root      83 Jun 26 02:26 System.map-6.12.34+rpt-rpi-2712
-rw-r--r--  1 root root      83 Jun 26 02:26 System.map-6.12.34+rpt-rpi-v8
-rw-r--r--  1 root root 9727677 Apr 30 05:45 vmlinuz-6.12.25+rpt-rpi-2712
-rw-r--r--  1 root root 9726080 Apr 30 05:45 vmlinuz-6.12.25+rpt-rpi-v8
-rw-r--r--  1 root root 9962173 Jun 26 02:26 vmlinuz-6.12.34+rpt-rpi-2712
-rw-r--r--  1 root root 9958826 Jun 26 02:26 vmlinuz-6.12.34+rpt-rpi-v8
$ ls -1al /boot/firmware/
total 67328
drwxr-xr-x 4 root root    6144 Dec 31  1969  .
drwxr-xr-x 4 root root    4096 Jul 11 11:27  ..
-rwxr-xr-x 1 root root   30349 Jul 11 11:28  bcm2708-rpi-b.dtb
-rwxr-xr-x 1 root root   30652 Jul 11 11:28  bcm2708-rpi-b-plus.dtb
-rwxr-xr-x 1 root root   30011 Jul 11 11:28  bcm2708-rpi-b-rev1.dtb
-rwxr-xr-x 1 root root   29952 Jul 11 11:28  bcm2708-rpi-cm.dtb
-rwxr-xr-x 1 root root   29962 Jul 11 11:28  bcm2708-rpi-zero.dtb
-rwxr-xr-x 1 root root   31829 Jul 11 11:28  bcm2708-rpi-zero-w.dtb
-rwxr-xr-x 1 root root   32346 Jul 11 11:28  bcm2709-rpi-2-b.dtb
-rwxr-xr-x 1 root root   32121 Jul 11 11:28  bcm2709-rpi-cm2.dtb
-rwxr-xr-x 1 root root   32495 Jul 11 11:28  bcm2710-rpi-2-b.dtb
-rwxr-xr-x 1 root root   34687 Jul 11 11:28  bcm2710-rpi-3-b.dtb
-rwxr-xr-x 1 root root   35322 Jul 11 11:28  bcm2710-rpi-3-b-plus.dtb
-rwxr-xr-x 1 root root   33676 Jul 11 11:28  bcm2710-rpi-cm0.dtb
-rwxr-xr-x 1 root root   32258 Jul 11 11:28  bcm2710-rpi-cm3.dtb
-rwxr-xr-x 1 root root   33664 Jul 11 11:28  bcm2710-rpi-zero-2.dtb
-rwxr-xr-x 1 root root   33664 Jul 11 11:28  bcm2710-rpi-zero-2-w.dtb
-rwxr-xr-x 1 root root   56243 Jul 11 11:28  bcm2711-rpi-400.dtb
-rwxr-xr-x 1 root root   56239 Jul 11 11:28  bcm2711-rpi-4-b.dtb
-rwxr-xr-x 1 root root   56760 Jul 11 11:28  bcm2711-rpi-cm4.dtb
-rwxr-xr-x 1 root root   39913 Jul 11 11:28  bcm2711-rpi-cm4-io.dtb
-rwxr-xr-x 1 root root   53502 Jul 11 11:28  bcm2711-rpi-cm4s.dtb
-rwxr-xr-x 1 root root   78439 Jul 11 11:28  bcm2712d0-rpi-5-b.dtb
-rwxr-xr-x 1 root root   78431 Jul 11 11:28  bcm2712-d-rpi-5-b.dtb
-rwxr-xr-x 1 root root   78391 Jul 11 11:28  bcm2712-rpi-500.dtb
-rwxr-xr-x 1 root root   78435 Jul 11 11:28  bcm2712-rpi-5-b.dtb
-rwxr-xr-x 1 root root   79149 Jul 11 11:28  bcm2712-rpi-cm5-cm4io.dtb
-rwxr-xr-x 1 root root   79215 Jul 11 11:28  bcm2712-rpi-cm5-cm5io.dtb
-rwxr-xr-x 1 root root   79190 Jul 11 11:28  bcm2712-rpi-cm5l-cm4io.dtb
-rwxr-xr-x 1 root root   79256 Jul 11 11:28  bcm2712-rpi-cm5l-cm5io.dtb
-rwxr-xr-x 1 root root   52476 Jul 11 11:28  bootcode.bin
-rwxr-xr-x 1 root root       1 Jul 11 11:28  .bootloader_revision
-rwxr-xr-x 1 root root     102 May 12 17:14  cmdline.txt
-rwxr-xr-x 1 root root    1262 Jul 11 08:52  config.txt
-rwxr-xr-x 1 root root      41 Jul 11 11:28  .firmware_revision
-rwxr-xr-x 1 root root    3232 Jul 11 11:28  fixup4cd.dat
-rwxr-xr-x 1 root root    5458 Jul 11 11:28  fixup4.dat
-rwxr-xr-x 1 root root    8449 Jul 11 11:28  fixup4db.dat
-rwxr-xr-x 1 root root    8449 Jul 11 11:28  fixup4x.dat
-rwxr-xr-x 1 root root    3232 Jul 11 11:28  fixup_cd.dat
-rwxr-xr-x 1 root root    7327 Jul 11 11:28  fixup.dat
-rwxr-xr-x 1 root root   10296 Jul 11 11:28  fixup_db.dat
-rwxr-xr-x 1 root root   10294 Jul 11 11:28  fixup_x.dat
-rwxr-xr-x 1 root root 7725023 Jul  2 10:00  initramfs_2712
-rwxr-xr-x 1 root root 7724915 Jul  2 10:00  initramfs8
-rwxr-xr-x 1 root root     145 May 12 17:14  issue.txt
-rwxr-xr-x 1 root root 9879395 Jul 11 11:28  kernel_2712.img
-rwxr-xr-x 1 root root 9875330 Jul 11 11:28  kernel8.img
-rwxr-xr-x 1 root root 9913762 Jul 11 11:28  kernel8_rt.img
-rwxr-xr-x 1 root root    1594 Jun 28 14:07  LICENCE.broadcom
drwxr-xr-x 2 root root   32768 Jul  2 10:00  overlays
-rwxr-xr-x 1 root root  815516 Jul 11 11:28  start4cd.elf
-rwxr-xr-x 1 root root 3763976 Jul 11 11:28  start4db.elf
-rwxr-xr-x 1 root root 2265920 Jul 11 11:28  start4.elf
-rwxr-xr-x 1 root root 3013576 Jul 11 11:28  start4x.elf
-rwxr-xr-x 1 root root  815516 Jul 11 11:28  start_cd.elf
-rwxr-xr-x 1 root root 4835880 Jul 11 11:28  start_db.elf
-rwxr-xr-x 1 root root 2990080 Jul 11 11:28  start.elf
-rwxr-xr-x 1 root root 3737192 Jul 11 11:28  start_x.elf
drwxr-xr-x 2 root root    2048 May 30 13:17 'System Volume Information'

jeffective avatar Jul 11 '25 18:07 jeffective

I figured it out

I had to put the following line in /boot/firmware/config.txt

kernel=kernel8_rt.img

Probably worth putting that in the readme or telling the user that when they install rt kernel.

jeffective avatar Jul 11 '25 19:07 jeffective