Good afternoon, dear NVidia! I have such a problem. I need to create remote workspace, based on jetson-nano for my university labs. Now we have only jetson-nano that’s why I wanted to use one board for remote workstation (for ssh connecting) and the second for experiments. When I tried to fully flash the second board I discovered that flash.sh run some binaries that compiled only for x86. Now I have only one question - is it possible to fully flash (not only rootfs but full EMMC) on one jetson-nano using another jetson-nano?
SDK 32.7.4
Not possible.
A Jetson in recovery mode is a custom USB device, which implies flash uses a custom USB driver. The flash software’s JetPack/SDK Manager is just a front end to the actual flash software, which is appropriately named the “driver package”. The driver package itself contains some x86 based compiled software which does not have publicly released source for it, so it must run on a Linux PC with that architecture.
The reason this is done is that Jetsons don’t have a BIOS (and thus consume less power, have a lower cost, and are smaller). All of the boot content and equivalent of a BIOS on a Jetson is done in either partitions of the eMMC, or in QSPI for the SD card models. Every flash is essentially also a BIOS flash (which incidentally makes it nearly impossible to “brick” a Jetson). Without an actual BIOS self-flash is problematic. That external host PC is required for this reason.
Thank you for you answer! Maybe my explanation of problem was no good, but I didn’t meant that I want to flash nano from itself, I just want to flash one nano board with another nano board.
The simplest and most stupid solution to the problem is to try setting up the launch of specific scripts through the qemu, but this looks like a crutch and I thought maybe there are some official toolchains to flash one nano board from another nano board. Or some official or around official possibilities to workaround this x86 binaries and flash it.
Oh I found tegrarcm sources on GitHub then I’m going to try to assemble this for nano and try to flash another nano with this
tegrarcm is only for the legacy 32 bit processors Tegra20, Tegra30, Tegra114, Tegra124. The Jetson Modules use a newer protocol that is not open-sourced.
You absolutely need a physical amd64 pc with Ubuntu 18.04 in order to flash a Nano. Period. There is no way around.
fchk
It’s unfortunate. Then I only should try to start this under QEMU
Flashing using emulation and virtual machines doesn’t work reliably. You really must use real 64 bit PC hardware. No qemu/kvm, no vmware or virtualbox, no hyper-v.
It is possible that an emulator will work, but I’d have to agree with @fchkjwlsq that this would be problematic (and probably a painful experience).