I’m having issues with the ti-linux-rt-5.4.y kernel. It stops booting after about 11 seconds when I have device(s) plugged into USB port(s). I can’t make sense of the log output (attached). Can you help me?
log.txt (44.8 KB)
I’m having issues with the ti-linux-rt-5.4.y kernel. It stops booting after about 11 seconds when I have device(s) plugged into USB port(s). I can’t make sense of the log output (attached). Can you help me?
log.txt (44.8 KB)
So, am335x with RT and USB… First I’d disable the RT patch-set and try again. There’s a reason we never shipped it enabled by default..
Regards,
I’ll give that a try. The ti-linux-rt-5.10.y branch works, but the CPU usage of my RT application has more than doubled compared to 4.4.70-bone-rt-r17, making it a non-viable product. The boot-up time has also doubled. I was hoping that stepping down to 5.4 would help. I’ve considered trying to step up to 6.x, but not sure how much has changed between 5.10 and 6.x.
Have the issues with RT been resolved in 6.x?
Don’t compare ti-linux-rt with bone-rt, ti-linux-rt is tuned for both (am335x and am57xx), bone-rt is tuned for only am335x…
At this point I’m mostly focusing my work on 6.12.x+ (and 6.6.x/6.1.x are getting occasion fixes)..
Regards,
I discovered that the ti-linux-rt-5.4 and ti-linux-5.4 boot fine with the am335x-bonegreen device tree. The problem appears to be with my custom device tree, which I created by starting with am335x-bonegreen.dts and added a second Ethernet interface, made both USB ports hosts, etc. I’ll have to go through my changes and find my mistake, then hope the RT performance is similar to 4.4 kernel.
I fixed my device tree and got ti-linux-rt-5.4 working, but it has the same RT performance as ti-linux-rt-5.10. I would like to try 6.12.x+, but I don’t see a git tag for 6.12.x-ti-rt-ry.
Is there support for real time patch in 6.12.x?
I stopped using TI’s branch for am335x devices. GitHub - RobertCNelson/bb-kernel
branches that’ll interest you:
am33x-rt-v6.1
am33x-rt-v6.6
am33x-rt-v6.12
Regards.
What are the rules for mixing kernels and file systems. Will the am33x-rt-v6.1 kernel work with Debian 11?
I’m trying to determine if I should step up the kernel first, then the file system, or try to do both at the same time.
P.S. I currently have a custom Debian 11 working with 5.4 and 5.10 that I built using your omap–image-builder.
The major limiter is always glibc, glibc 2.31 was shipped in Debian 11… Really anything newer then 3.2 is fine…
Regards,
I believe I successfully built the am33x-rt-v6.1 kernel. I’m not sure about my custom device tree, so I’m using the one for the pocketbeagle for now. Uboot says it’s starting the kernel and resets after 50 or so seconds. Here’s the following output from uboot:
switch to partitions #0, OK
mmc0 is current device
Checking for /boot/uEnv.txt on mmc0:3
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1…
gpio: pin 56 (gpio 56) value is 0
gpio: pin 55 (gpio 55) value is 0
gpio: pin 54 (gpio 54) value is 0
gpio: pin 53 (gpio 53) value is 1
switch to partitions #0, OK
mmc0 is current device
gpio: pin 54 (gpio 54) value is 1
Checking for: /uEnv.txt …
reading uEnv.txt
603 bytes read in 5 ms (117.2 KiB/s)
gpio: pin 55 (gpio 55) value is 1
Loaded environment from uEnv.txt
Importing environment from mmc …
Checking if uenvcmd is set …
gpio: pin 56 (gpio 56) value is 1
Running uenvcmd …
Checking if client_ip is set …
Checking for: /boot.scr …
Checking for: /boot/boot.scr …
Checking for: /boot/uEnv.txt …
gpio: pin 55 (gpio 55) value is 1
2044 bytes read in 13 ms (153.3 KiB/s)
Loaded environment from /boot/uEnv.txt
debug: [dtb=am335x-pocketbeagle.dtb] …
Using: dtb=am335x-pocketbeagle.dtb …
Checking if uname_r is set in /boot/uEnv.txt…
gpio: pin 56 (gpio 56) value is 1
Running uname_boot …
stopping USB..
starting USB…
USB0: scanning bus 0 for devices… 1 USB Device(s) found
scanning usb for storage devices… 1 Storage Device(s) found
Checking for recovery.bbg on USB…
recovery.bbg not found
loading /boot/vmlinuz-6.1.157-bone-rt-r43 …
8462848 bytes read in 474 ms (17 MiB/s)
loading /boot/dtbs/6.1.157-bone-rt-r43/am335x-pocketbeagle.dtb …
68293 bytes read in 35 ms (1.9 MiB/s)
debug: [console=tty0 console=ttyS1,115200n8 console=ttyS1,115200n8 lcd_detect=0xfff7ff ipaddr= serverip= gatewayip= netmask=255.255.255.0 root=/dev/mmcblk0p3 ro rootfstype=ext4 rootwait fsck.mode=force fsck.repair=yes uio_pruss.extram_pool_sz=0x200000 net.ifnames=0] …
debug: [bootz 0x82000000 - 0x88000000] …
Kernel image @ 0x82000000 [ 0x000000 - 0x812200 ]Flattened Device Tree blob at 88000000
Booting using the fdt blob at 0x88000000
Loading Device Tree to 8ffec000, end 8ffffac4 … OKStarting kernel …
Any idea why it can’t start the kernel? My uboot is quite old (2016 era), not sure if that could be an issue, and I’m still using Debian 11. I didn’t completely understand your answer to my question about whether Debian 11 would work with am33x-rt-v6.1.
I’m now running the u-boot from the “Getting Started with Beaglebone Black” tutorial, but with the am33x-rt-v6.1 kernel running on a PocketBeagle.
U-Boot SPL 2022.04-00041-gc6f4cf7d (Nov 05 2025 - 07:27:37 -0600)
Trying to boot from MMC1U-Boot 2022.04-00041-gc6f4cf7d (Nov 05 2025 - 07:27:37 -0600)
CPU : AM335X-GP rev 2.1
Model: TI AM335x PocketBeagle
DRAM: 512 MiB
Reset Source: watchdog reset has occurred.
Reset Source: Power-on reset has occurred.
RTC 32KCLK Source: Internal.
Core: 146 devices, 12 uclasses, devicetree: separate
WDT: Started wdt@44e35000 with servicing (60s timeout)
MMC: OMAP SD/MMC: 0
Loading Environment from EXT4…
** Unable to use mmc 0:1 for loading the env **
Model: BeagleBoard.org PocketBeagle
not set. Validating first E-fuse MAC
Net: No ethernet found.
Press SPACE to abort autoboot in 0 seconds
board_name=[A335PBGL] …
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
Couldn’t find partition 0:2 0x82000000
Can’t set block device
Couldn’t find partition 0:2 0x82000000
Can’t set block device
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1…
Scanning disk mmc@48060000.blk…
Found 3 disks
No EFI system partition
BootOrder not defined
EFI boot manager: Cannot load any image
gpio: pin 56 (gpio 56) value is 0
gpio: pin 55 (gpio 55) value is 0
gpio: pin 54 (gpio 54) value is 0
gpio: pin 53 (gpio 53) value is 1
switch to partitions #0, OK
mmc0 is current device
gpio: pin 54 (gpio 54) value is 1
Checking for: /uEnv.txt …
Checking for: /boot/uEnv.txt …
gpio: pin 55 (gpio 55) value is 1
28 bytes read in 3 ms (8.8 KiB/s)
Loaded environment from /boot/uEnv.txt
Checking if uname_r is set in /boot/uEnv.txt…
gpio: pin 56 (gpio 56) value is 1
Running uname_boot …
loading /boot/vmlinuz-6.1.157-bone-rt-r43 …
8462848 bytes read in 535 ms (15.1 MiB/s)
debug: [enable_uboot_overlays=] …
loading /boot/dtbs/6.1.157-bone-rt-r43/am335x-pocketbeagle.dtb …
68293 bytes read in 9 ms (7.2 MiB/s)
uboot_overlays: add [enable_uboot_overlays=1] to /boot/uEnv.txt to enable…
debug: [console=ttyS0,115200n8 root=/dev/mmcblk0p2 ro rootfstype=ext4 rootwait] …
debug: [bootz 0x82000000 - 88000000] …
Kernel image @ 0x82000000 [ 0x000000 - 0x812200 ]Flattened Device Tree blob at 88000000
Booting using the fdt blob at 0x88000000
Loading Device Tree to 8ffec000, end 8ffffac4 … OKStarting kernel …
Same result… can’t start the kernel and resets after several seconds. The tutorial says to use u-boot-dtb.img, but the MLO says it can’t find u-boot.img, so I’m using u-boot.img instead. I think I’ve stripped out all my custom stuff except for my custom Debian 11.
Any idea what to try next?
Now I have U-Boot 2022.04, kernel 6.1.157-bone-rt-r43, and Debian 13 on a PocketBeagle on it’s still not able to start the kernel. I’m following the steps in the “Getting Started with Beaglebone Black” tutorial, but I’ve swapped out the v5.x kernel with v6.1 and Debian 11 with Debian 13.
This combination should play well together since I see images on Latest Software Images - BeagleBoard with U-Boot 2022.04, kernel v6.x, and Debian 13.
Any idea what to try next?
I followed this tutorial but checked out am33x-rt-v6.1 kernel and used Debian 13.1 from here:
https://rcn-ee.com/rootfs/eewiki/minfs/debian-13-minimal-armhf-2025-03-31.tar.xz
I’m getting the attached output saying “no working init found”.
What am I missing? I was expecting the same results I got with am33x-rt-v5.10 kernel using Debian 11.8.
log3.txt (25.6 KB)
The kernel is booting now. I’m not 100% sure, but I think I forgot to:
export CC=pwd/gcc-11.3.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-
before building. Now the kernel can’t find a working init. Not sure how to fix this.
[ 2.589877] Not activating Mandatory Access Control as /sbin/tomoyo-init does not exist.
[ 2.609474] Starting init: /sbin/init exists but couldn't execute it (error -8)
[ 2.609496] Run /etc/init as init process
this means the rootfs wasn’t correctly copied over..
i’ve been moving things to genimage to help remove user missing steps, and adding CRA requirements..
You can also use BeagleBoard Imager to grab ready to go AM335 images.
Regards,
I (re)made the SD card and now it appears to blow right by /sbin/init. Does that mean it didn’t find it? It’s there. /sbin is symbolic link to /usr/sbin, and /usr/sbin/init is a symbolic link to ../lib/systemd/systemd, and systemd is an executable.
[ 2.519067] Run /sbin/init as init process
[ 2.519073] with arguments:
[ 2.519081] /sbin/init
[ 2.519085] with environment:
[ 2.519090] HOME=/
[ 2.519093] TERM=linux
[ 2.554286] Not activating Mandatory Access Control as /sbin/tomoyo-init does not exist.
Does /sbin/tomoyo-init not existing cause a problem?
log4.txt (25.5 KB)
i’m looking at the dates… your using an image that was auto built and is old.. give this a try: https://rcn-ee.com/rootfs/eewiki/minfs/debian-13.1-base-armhf-2025-11-01.tar.xz
Hmm… Same results (see attached).
log5.txt (25.5 KB)
This is probably too much information, but here’s the script I’m using to build 5.10 and 6.1. The 5.10 works, but the 6.1 has the init problem.
rootfs (15.8 KB)
I downloaded one of the “latest images” to see how it handles init:
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 6.17.5-bone14 (voodoo@rpi4b4g-07) (gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44) #1 SMP PREEMPT Tue Oct 28 23:21:44 UTC 2025[ 5.824953] Freeing unused kernel image (initmem) memory: 1024K
[ 5.832596] Run /init as init process
[ 5.849915] mmc0: new high speed SDHC card at address 59b4
[ 5.860027] mmcblk0: mmc0:59b4 CACTU 7.56 GiB
[ 5.866525] mmc1: new high speed MMC card at address 0001
[ 5.875273] mmcblk1: mmc1:0001 P1XXXX 3.60 GiB
[ 5.891414] mmcblk0: p1 p2 p3
Loading, please wait…
[ 5.900373] mmcblk1boot0: mmc1:0001 P1XXXX 16.0 MiB
[ 5.921145] mmcblk1boot1: mmc1:0001 P1XXXX 16.0 MiB
[ 5.940003] mmcblk1rpmb: mmc1:0001 P1XXXX 128 KiB, chardev (243:0)
Starting systemd-udevd version 257.8-1~deb13u2
Begin: Loading essential drivers … done.
Begin: Running /scripts/init-premount … done.
Begin: Mounting root file system … Begin: Running /scripts/local-top … done.
Begin: Running /scripts/local-premount … Scanning for Btrfs filesystems
done.
It runs /init as init process (even though I don’t see an init file in the root folder) and starts systemd, which I think is the intent of the image I built.
debian@BeagleBone:~$ ls -l /
total 60
lrwxrwxrwx 1 root root 7 Aug 24 16:20 bin → usr/bin
drwxr-xr-x 4 root root 4096 Oct 29 14:08 boot
drwxr-xr-x 17 root root 3520 Oct 29 14:16 dev
drwxr-xr-x 87 root root 4096 Oct 29 14:17 etc
drwxr-xr-x 3 root root 4096 Oct 29 14:08 home
lrwxrwxrwx 1 root root 7 Aug 24 16:20 lib → usr/lib
drwx------ 2 root root 16384 Oct 29 14:08 lost+found
drwxr-xr-x 2 root root 4096 Oct 29 13:40 media
drwxr-xr-x 2 root root 4096 Oct 29 13:40 mnt
drwxr-xr-x 4 root root 4096 Oct 29 14:08 opt
dr-xr-xr-x 170 root root 0 Jan 1 2000 proc
drwx------ 3 root root 4096 Oct 29 13:43 root
drwxr-xr-x 23 root root 620 Oct 29 14:17 run
lrwxrwxrwx 1 root root 8 Aug 24 16:20 sbin → usr/sbin
drwxr-xr-x 2 root root 4096 Oct 29 13:40 srv
dr-xr-xr-x 12 root root 0 Jan 1 2000 sys
drwxrwxrwt 8 root root 4096 Oct 29 14:15 tmp
drwxr-xr-x 11 root root 4096 Oct 29 13:40 usr
drwxr-xr-x 12 root root 4096 Oct 29 14:09 var