extlinux.conf DEFAULT kernel boot

I have restored a system using a cloned image and seeing an issue.

It has only one kernel image installed and the TIMEOUT is set to 2 sec but during bootup, bootloader waits for the user to select the kernel manually (even after timeout).

TIMEOUT 2
DEFAULT primary

MENU TITLE p2771-0000 eMMC boot options

LABEL primary
MENU LABEL primary kernel
LINUX /boot/Image
APPEND ${cbootargs} root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 noinitrd



Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
409 bytes read in 65 ms (5.9 KiB/s)
p2771-0000 eMMC boot options
1: primary kernel
Enter choice:

Bootloader waits at ‘Enter choice’ indefinitely until you select the kernel.

The issue is not seen with the original system, any suggestions on how to resolve this?

You may check https://devtalk.nvidia.com/default/topic/1028415/jetson-tx2/nvidias-u-boot-doesn-t-honor-default-boot-menu-label-/post/5232342/#5232342.

@Honey_Patouceul, thank you very much, that fixed my issue.

I did set this, even bootdelay=-2, but I have a device that always sends data through UART, which u-boot confuses to be a key.

So it still waits at Enter choice: …

Is there any chance setting the default Kernel as Primary Kernel, and make u-boot skip this selection via cbootargs or something?

Thank you.

The delay can be reduced, but I think a complete disable would require recompiling a custom U-Boot. If the serial UART is not used as a serial console you really have to disconnect the UART until boot is past U-Boot…and that only works if you disabled serial console in Linux (this latter is trivial to accomplish, whereas disable in U-Boot is not). Are you using this port for something other than serial console?

Are you able to set stdin to anything else than serial (say usbkbd or usbtty, maybe after after usb start) and saveenv ?
If not, as mentioned by @Linuxdev, you may indeed have to rebuild your own uboot.

I probably can, because I could set boot_delay to -2. And now I can’t change any parameters because of that. :-) .

Will changing stdin to any other, for example, non-existing ttySSS, will solve this? I’ll try to reset u-boot somehow, (disable boot_delay=-2) if it does.

Environment size: 4442/8188 bytes
Tegra210 (P2371-2180) # setenv stdin ttySSS
## Error inserting "stdin" variable, errno=22
Tegra210 (P2371-2180) # setenv stdin tty   
## Error inserting "stdin" variable, errno=22
Tegra210 (P2371-2180) # setenv stdin usbkbd
## Error inserting "stdin" variable, errno=22
Tegra210 (P2371-2180) # setenv stdin usbkbd
## Error inserting "stdin" variable, errno=22
Tegra210 (P2371-2180) # setenv stdin usbkbd
## Error inserting "stdin" variable, errno=22
Tegra210 (P2371-2180) # setenv stdin NULL  
## Error inserting "stdin" variable, errno=22
Tegra210 (P2371-2180) # setenv stdin asd 
## Error inserting "stdin" variable, errno=22
Tegra210 (P2371-2180) # setenv stdin asdasdf
## Error inserting "stdin" variable, errno=22
Tegra210 (P2371-2180) # setenv stdin serial 
Tegra210 (P2371-2180) # setenv stdin null  
## Error inserting "stdin" variable, errno=22
Tegra210 (P2371-2180) # setenv stdin usb 
## Error inserting "stdin" variable, errno=22
Tegra210 (P2371-2180) # setenv stdin usbb
## Error inserting "stdin" variable, errno=22
Tegra210 (P2371-2180) # setenv stdin usbba
## Error inserting "stdin" variable, errno=22
Tegra210 (P2371-2180) # setenv stdin usbtty
## Error inserting "stdin" variable, errno=22
Tegra210 (P2371-2180) # setenv stdin usbtty

Perhaps try using “/dev/null” for the input…this exists, and is a character device (just like a tty).

Tegra210 (P2371-2180) # setenv stdin  "/dev/null"
## Error inserting "stdin" variable, errno=22
Tegra210 (P2371-2180) # setenv stdin "/dev/null" 
## Error inserting "stdin" variable, errno=22
Tegra210 (P2371-2180) # setenv stdin /dev/null  
## Error inserting "stdin" variable, errno=22

This doesn’t work as well. Since serial looks like a keyword, I doubt just typing in a device name would fit. (I think it needs to be a specific option for setenv stdint, but I failed to find any documentation about it on the web.)