Boot From SD Card: Jetson TK1 got in to hang after trying to boot

Hi, is there a good way to boot from SD card on JTK1? I find the measly 12G on eMMC insufficient. I tried the steps (Installation (u-boot way[url]https://devtalk.nvidia.com/default/topic/923800/jetson-tx1/boot-from-sd-card/[/url])) here Basically, I downloaded zImage, jetson-tk1-grinch-21.3.4-{modules,firmware}.tar.bz2, put them into /boot/zImage, /lib/modules, and /lib, and then replaced the /boot/dtb/tegra124-pm375.dtb file. I also added an entry in /boot/extlinux/extlinux.conf and set the root to /dev/mmcblk1p1.

After boot, the TK1 hang and spit out some stack trace on screen. Has anyone ran into this before? Is there any straight forward way to boot from SD (like simply copying the kernel image into SD card and editing a bootloader menu).

Summary of Stack Trace:
CPU2: stopping
CPU: 2 PID: 0 Comm: swapper/2 Not tainted 3.10.40-grinch-21.3.4 #1

WARNING: at kernel/watchdog.c:269 watchdoc_timer_fn+0x288/0x2c4()
Watchdog detected hard LOCKUP on cpu 0
Modules linked in:
CPU: 3 PID 1 Comm: swapper/0 Not tainted 3.10.40-grinch-21.3.4 #1

tegra_idel_enter_clock_gating

I think default uses 12GB, but maximum if you flash is about 15GB. Flash parameter “-S 14580MiB”.

Unless you have need for a driver from Grinch you wouldn’t use this. Even if you do I’d suggest first creating the alternate boot with an unmodified kernel first, and only then adding in the modifications. So other than wanting more space, do you have requirements for drivers or hardware not available without Grinch?

Also, note that the current L4T version for a JTK1 is up to R21.5 now. The most recent Grinch kernel is from R21.3…this is probably good with R21.4 sample rootfs, but R21.5 made changes to default configuration so I don’t know how well it works on R21.5. If you use a separate extlinux.conf entry instead of replacing the default kernel and files then you can pick either one to boot from via serial console…and if it tests well you could make the new entry permanent.

Also, if you just need more space, and if that space does not need to be on the boot device, you can just mount an SD card for extra space without putting the entire rootfs on that space. So a big question is what do you really want to accomplish…does the extra space need to be the boot device? Would re-flashing with the “-S 14580MiB” for a larger space be enough (this adds about 2GB)? Do you have need of drivers not in the stock kernel?

Thanks for the response! I’m trying to run Robot Operating System and Grinch was the suggessted kernel. Imagine I might install more programs later on, want to make sure I have enough rather than worry about it down the road. Is it possible to start with Grinch kernel which is at 21.3 and upgrade to 21.5? I added additional entry in extlinux.conf but didn’t get to choose which version to boot to in a menu.
Anyway do you know of a way to recover from CPU lock up? My TK1 seems to be stuck during the boot process. If I remove the SD card (/dev/mmcblk1p1), TK1 will simply wait for /dev/mmcblk1p1 to be available and get stuck at the same place. Is there a way to recover from this? Thanks again!

I don’t know if R21.5 will work with that kernel. All releases up to and including R21.4 used the same default config file in the kernel. In R21.5 the default kernel config is not the same as that older default (make tegra12_defconfig no longer matches at R21.5). It is possible Grinch will work on that release, but no guarantee…this is the version where config diverges. It wouldn’t hurt to try though.

About the boot loader menu…you must use serial console via that 9-pin D-sub connector to get a menu (u-boot does not have a video driver). Also, make sure labels differ.

If an alternate extlinux.conf entry is used then you can pick the original boot config when the test config fails and rescue that way (to emphasize, the menu requires the serial console). If you flashed and named mmcblk1p1 during flash, or if your extlinux.conf removed the mmcblk0p1 entry and replaced it with mmcblk1p1 for root partition, then you’ll likely need to flash again.