We use cookies to provide our visitors with an optimal site experience. View our privacy notice and cookie notice to learn more about how we use cookies and how to manage your settings. By proceeding on our website you consent to the use of cookies.
since more than two weeks I am trying to get a custom kernel running on my Sancloud BeagleBone Enhanced. I made my way through several manuals to build several custom kernels but, always ended up with the booting process getting stuck at “Starting Kernel …”. My final goal is to have a Xenomai patched kernel running.
My last attempt was to follow the DigiKey instructions here exactly step by step. As before, everything worked perfectly and I got a microSD card ready this morning. Unfortunately, the boot hung up at “Starting kernel” again. So, like many times before, I tried to edit my uEnv.txt file to get the same output as with the working original kernel. But this did not help either. Thats why I am hoping to get some new input here, as I cannot find any further solution which I did not try yet.
Attached, you can find my current uEnv.txt as well as my latest boot output and the printenv. (As upload does not work as new user, you can see the files’ content below)
U-Boot SPL 2018.09 (Dec 12 2018 - 10:48:38 +0100)
Trying to boot from MMC1
Loading Environment from EXT4... ** File not found /boot/uboot.env **
** Unable to read "/boot/uboot.env" from mmc0:1 **
U-Boot 2018.09 (Dec 12 2018 - 10:48:38 +0100)
CPU : AM335X-GP rev 2.1
I2C: ready
DRAM: 1 GiB
No match for driver 'omap_hsmmc'
No match for driver 'omap_hsmmc'
Some drivers were not found
Reset Source: watchdog reset has occurred.
Reset Source: Power-on reset has occurred.
RTC 32KCLK Source: External.
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
Loading Environment from EXT4... ** File not found /boot/uboot.env **
** Unable to read "/boot/uboot.env" from mmc0:1 **
Board: BeagleBone Black
Model: SanCloud BeagleBone Enhanced
<ethaddr> not set. Validating first E-fuse MAC
BeagleBone Black:
Model: SanCloud BeagleBone Enhanced:
Timed out in wait_for_event: status=0000
Check if pads/pull-ups of bus are properly configured
BeagleBone: cape eeprom: i2c_probe: 0x54:
Timed out in wait_for_event: status=0000
Check if pads/pull-ups of bus are properly configured
BeagleBone: cape eeprom: i2c_probe: 0x55:
Timed out in wait_for_event: status=0000
Check if pads/pull-ups of bus are properly configured
BeagleBone: cape eeprom: i2c_probe: 0x56:
Timed out in wait_for_event: status=0000
Check if pads/pull-ups of bus are properly configured
BeagleBone: cape eeprom: i2c_probe: 0x57:
Net: eth0: MII MODE
cpsw, usb_ether
Press SPACE to abort autoboot in 2 seconds
board_name=[BBEN] ...
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
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 ...
Checking for: /boot.scr ...
Checking for: /boot/boot.scr ...
Checking for: /boot/uEnv.txt ...
gpio: pin 55 (gpio 55) value is 1
350 bytes read in 30 ms (10.7 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-4.14.78-bone17 ...
10367488 bytes read in 687 ms (14.4 MiB/s)
debug: [enable_uboot_overlays=1] ...
debug: [enable_uboot_cape_universal=1] ...
debug: [uboot_base_dtb_univ=am335x-sancloud-bbe-uboot-univ.dtb] ...
uboot_overlays: [uboot_base_dtb=am335x-sancloud-bbe-uboot-univ.dtb] ...
debug: unable to find [am335x-sancloud-bbe-uboot-univ.dtb] using [am335x-sancloud-bbe-uboot.dtb] instead ...
debug: [uboot_base_dtb_univ=am335x-sancloud-bbe-uboot.dtb] ...
uboot_overlays: [uboot_base_dtb=am335x-sancloud-bbe-uboot.dtb] ...
loading /boot/dtbs/4.14.78-bone17/am335x-sancloud-bbe.dtb ...
61893 bytes read in 82 ms (736.3 KiB/s)
uboot_overlays: [fdt_buffer=0x60000] ...
uboot_overlays: loading /lib/firmware/BB-BONE-eMMC1-01-00A0.dtbo ...
1440 bytes read in 372 ms (2.9 KiB/s)
uboot_overlays: loading /lib/firmware/BB-HDMI-TDA998x-00A0.dtbo ...
5127 bytes read in 305 ms (15.6 KiB/s)
uboot_overlays: loading /lib/firmware/BB-ADC-00A0.dtbo ...
711 bytes read in 289 ms (2 KiB/s)
uboot_overlays: loading /lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo ...
3513 bytes read in 119 ms (28.3 KiB/s)
uboot_overlays: loading /lib/firmware/univ-bbb-EVA-00A0.dtbo ...
61976 bytes read in 153 ms (395.5 KiB/s)
debug: [console=ttyO0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 quiet] ...
debug: [bootz 0x82000000 - 88000000] ...
## Flattened Device Tree blob at 88000000
Booting using the fdt blob at 0x88000000
reserving fdt memory region: addr=88000000 size=7e000
Loading Device Tree to 8ff7f000, end 8fffffff ... OK
Starting kernel ...
@eloa, it works here, what changes did you make to the config file? or any other changes to the build script? gcc change?
U-Boot SPL 2018.09-00002-gd5b4c4b656 (Oct 19 2018 - 14:16:02 -0500)
Trying to boot from MMC1
Loading Environment from EXT4... ** File not found /boot/uboot.env **
** Unable to read "/boot/uboot.env" from mmc0:1 **
U-Boot 2018.09-00002-gd5b4c4b656 (Oct 19 2018 - 14:16:02 -0500), Build: jenkins-github_Bootloader-Builder-84
CPU : AM335X-GP rev 2.1
I2C: ready
DRAM: 1 GiB
No match for driver 'omap_hsmmc'
No match for driver 'omap_hsmmc'
Some drivers were not found
Reset Source: Power-on reset has occurred.
RTC 32KCLK Source: External.
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
Loading Environment from EXT4... ** File not found /boot/uboot.env **
** Unable to read "/boot/uboot.env" from mmc0:1 **
Board: BeagleBone Black
Model: SanCloud BeagleBone Enhanced
<ethaddr> not set. Validating first E-fuse MAC
BeagleBone Black:
Model: SanCloud BeagleBone Enhanced:
Timed out in wait_for_event: status=0000
Check if pads/pull-ups of bus are properly configured
BeagleBone: cape eeprom: i2c_probe: 0x54:
Timed out in wait_for_event: status=0000
Check if pads/pull-ups of bus are properly configured
BeagleBone: cape eeprom: i2c_probe: 0x55:
Timed out in wait_for_event: status=0000
Check if pads/pull-ups of bus are properly configured
BeagleBone: cape eeprom: i2c_probe: 0x56:
Timed out in wait_for_event: status=0000
Check if pads/pull-ups of bus are properly configured
BeagleBone: cape eeprom: i2c_probe: 0x57:
Net: eth0: MII MODE
cpsw, usb_ether
Press SPACE to abort autoboot in 2 seconds
board_name=[BBEN] ...
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
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 ...
Checking for: /boot.scr ...
Checking for: /boot/boot.scr ...
Checking for: /boot/uEnv.txt ...
gpio: pin 55 (gpio 55) value is 1
2100 bytes read in 17 ms (120.1 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-4.14.78-bone17 ...
10367488 bytes read in 670 ms (14.8 MiB/s)
debug: [enable_uboot_overlays=1] ...
debug: [enable_uboot_cape_universal=1] ...
debug: [uboot_base_dtb_univ=am335x-sancloud-bbe-uboot-univ.dtb] ...
uboot_overlays: [uboot_base_dtb=am335x-sancloud-bbe-uboot-univ.dtb] ...
debug: unable to find [am335x-sancloud-bbe-uboot-univ.dtb] using [am335x-sancloud-bbe-uboot.dtb] instead ...
debug: [uboot_base_dtb_univ=am335x-sancloud-bbe-uboot.dtb] ...
uboot_overlays: [uboot_base_dtb=am335x-sancloud-bbe-uboot.dtb] ...
loading /boot/dtbs/4.14.78-bone17/am335x-sancloud-bbe.dtb ...
61893 bytes read in 41 ms (1.4 MiB/s)
uboot_overlays: [fdt_buffer=0x60000] ...
uboot_overlays: loading /lib/firmware/BB-BONE-eMMC1-01-00A0.dtbo ...
1440 bytes read in 191 ms (6.8 KiB/s)
uboot_overlays: loading /lib/firmware/BB-HDMI-TDA998x-00A0.dtbo ...
4896 bytes read in 196 ms (23.4 KiB/s)
uboot_overlays: loading /lib/firmware/BB-ADC-00A0.dtbo ...
711 bytes read in 41 ms (16.6 KiB/s)
uboot_overlays: loading /lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo ...
3513 bytes read in 36 ms (94.7 KiB/s)
uboot_overlays: loading /lib/firmware/univ-bbb-EVA-00A0.dtbo ...
61976 bytes read in 33 ms (1.8 MiB/s)
debug: [console=ttyO0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 quiet] ...
debug: [bootz 0x82000000 - 88000000] ...
## Flattened Device Tree blob at 88000000
Booting using the fdt blob at 0x88000000
reserving fdt memory region: addr=88000000 size=7f000
Loading Device Tree to 8ff7e000, end 8fffffff ... OK
Starting kernel ...
[ 0.001144] timer_probe: no matching timers found
[ 0.507856] dmi: Firmware registration failed.
[ 0.700903] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
[ 0.961534] omap_voltage_late_init: Voltage driver support not added
[ 1.141005] i2c i2c-0: Failed to register i2c client tda998x at 0x70 (-16)
[ 1.147987] i2c i2c-0: of_i2c: Failure registering /ocp/i2c@44e0b000/tda19988
[ 1.163089] hdmi-audio-codec hdmi-audio-codec.0.auto: ASoC: no source widget found for Playback
[ 1.172019] hdmi-audio-codec hdmi-audio-codec.0.auto: ASoC: Failed to add route Playback -> direct -> TX
In .config, I enabled LL-Debugging for beagle including earlyprintk. This, I did because of some research I did on how to debug booting process.
In case of gcc, i noticed that the build script actually installed the latest, but for u-boot I used the one listed in your post. I guess it does not matter?
The build script itself I did not change at all. It even compiled with -j1 because it did not get my number of cores (4).
But, as I have mentioned, the same “error” occurs with all previous attempts as well and I dont know what i am doing wrong at all. I am using Debian 9 VM on Windows 10.
@eloa, over the years we really had nothing bug trouble with any “virtual machine” running on windows. Usually it came down to simply not correctly writing the files to the external flash device.
This is why all my directions specifically note:
* Running a recent release of Debian, Fedora or Ubuntu; without OS Virtualization Software.
I’ve pushed this build to one of my external servers, retry your microSD with these files.
I’ve just downloaded your files directly to my microSD and replaced mine. And finally, my first custom kernel is booting and it seems to work perfectly. But, as I need to build my own kernel to patch it with Xenomai, i need to figure out what exactly goes wrong.
As it works with my own U-Boot configuration I guess the mistake must happen within the compiling process.
Usually it came down to simply not correctly writing the files to the external flash device.
So, what do you mean? Does the known error occur when copying the compiled files/archives from VM to SDcard or while compiling?
@eloa, no it’s a bug somewhere in the; usb adapter - host os - vm stack - linux os… Where the real fix is just to natively run Debian/Ubuntu or Fedora by itself. Thus not wasting time debugging random “VM” issues…
One more thing to add: I’ve just rebuilt the same kernel without the LL-debbuging and earlyprintk enabled in .config. And now my own kernel works, which is, first of all, awesome! Therefore, is it possible that the kernel does not boot because of those options enabled?
Ok, so my next step is gonna be to compile your xenomai-4.4 kernel. Thank you very much!
So in later kernel’s, you need to specify which “uart” LL-debugging is going to use. This is one reason it’s not enabled by default, as it very “board” specific.
The 4.9.x-xenomai branch really didn’t get any downstream users. Whereas the 4.4.x-xenomai branch is used by multiple groups and shipped by default in a few beagleboard based products today.
So in later kernel’s, you need to specify which “uart” LL-debugging is going to use. This is one reason it’s not enabled by default, as it very “board” specific.
That’s weird because I actually did this. I chose option “OMAP3 UART3” which was recommended somewhere online and which mentions “beagle” in its help window. So I cannot say why it leads to a not-working kernel.
I’ve successfully built your 4.4-xenomai kernel and its modules. To boot it, I replaced zImage- and .dtb-file and installed the modules to the existing rootfs (from previous 4.14 kernel). Apart from some errors, the kernel actually boots and “uname -r” says “4.4.113”. But, I am not able to run the “latency test” at “/usr/xenomai/bin/latency” and I do not notice any hint of the Xenomai patch. So, how can I test whether Xenomai actually works or not?
You don’t need to build it on “every” unit, just build it once and then copy the files under /usr/xenomai/
Yes, you’ll need to install the build dependices, start with build-essential and autoconf
Thanks, that worked for the first line. But when running the second command (./configure …) I get a weird error which I could not fix with installing packages so far:
./configure: line 13838: syntax error near unexpected token 'FUSE, ’
./configure: line 13838: ` PKG_CHECK_MODULES(FUSE, fuse) ’