Hi. I’m using Orin NX 16GB with a custom board.
Everything has been fine, until recently I experimented a liitle with yocto. Unfortunately, I somehow made it unable to boot, and from UART I saw:
boot.txt (78.8 KB)
It suggested that /sbin/init was missing in my yocto image, or maybe the kernel was broken. Anyway, I thought it was time to reflash with L4T method again. However, I got a “timeout” error in “Step 3: Starting the flashing process”, as below:
flash_logs.txt (213.2 KB)
And in UART log, it still said /sbin/init was missing.
flash_uart.txt (245.7 KB)
Why can’t L4T flash work? Please help check.
I tried adding --erase-all to the command, but it still did not work properly. It seemed that the erase process would happen after boot up, which my device couldn’t do.
Just to confirm, if yocto is not in use, then you can flash the board, right?
No. The second and third logs are just what I saw with NV L4T initrd flash, not yocto. In other word, currently I have no way to successfully reflash orin nx.
May I know how did you get your BSP direcotry? It sounds like some files are missing from the beginning.
Today I re-download the BSP package and sample fs from https://developer.nvidia.com/embedded/jetson-linux, then follow the guide https://docs.nvidia.com/jetson/archives/r35.2.1/DeveloperGuide/text/IN/QuickStart.html to prepare the flashing environment. Unfortunately, I still get the same “timeout” error as before.
flash_uart2.txt (87.2 KB)
Is there any approach to wipe the nvme drive without boot up? I guess reflashing an empty disk should work fine.
please directly download your BSP folder by using sdkmanager. Do not do it by yourself first.
So does your rootfs really have “init” binary in /sbin/init?
Just a reminder, you need to provide the uart log and host log at same time when doing any update.
The UART log can have 100 reasons to fail, but the host log may always describe them in same way. So please make sure UART log is also attached.
Honestly I’m not 100% sure. I tweaked some values when building yocto, and right now I can’t read the content on nvme. But I’ll say it’s possible that init is indeed missing. Is there anything I can do if init isn’t there?
Besides, I forgot to upload UART log, but it was still missing init & kernel panic. If you need it I can capture again.
No, I didn’t ask you to check your nvme. I know you cannot access it. I mean check Linux_for_Tegra/rootfs/sbin/.
You need to at least know learn this file comes from…
Also, please just forget about yocto at this moment. That is just making noise.
Please make sure your step is clean without any other things installed. Only the tool provided by NV should be in use.
Yes. There is an “init” in Linux_for_Tegra/rootfs/sbin/. When you just say rootfs, it’s a little ambiguous.
I suppose that since the flash process never go beyond “wait for bootup”, even though init is in L4T directory, it won’t be written into nvme, right? As all erasing and writting stuff happens after device exposing SSH.
Could you install the directory by sdkmanager and run the command again?
This was what I keep asking for. You don’t need to download BSP and rootfs manually. Just let sdkmanager do this work for you to make sure nothing gets missing.
The only thing you need to do is run initrd flash command in the BSP folder installed by sdkm.
I’ll try. Do I need to run apply-binaries.sh?
No, you don’t need to run anything except the initrd flash tool. Those things are all handled by sdkmanager already.
I let sdkmanager do the prepare job and then execute initrd flash command, the results remain the same.
host_logs_sdkmanager.txt (242.9 KB)
uart_logs_sdkmanager.txt (87.0 KB)
Do you have Xavier NX devkit on your side to test instead of using your custom board?
Also, how about other cases like other nvme drive or using usb drive?