BalenaOS Image for TX2 Not Booting or Connecting

Hi,

I recently compiled my own BalenaOS image from source for the Jetson TX2 and add my own application data (balena os configure --app myApp). Upon completion, I flashed resulting image (balena-image-jetson-tx2.balenaos-img) to the TX2 over USB using the jetson-flash tool (version 0.5.9).

Everything flashes properly but upon boot I see the following on the serial console

[    0.000000] Booting Linux on physical CPU 0x100
[    0.000000] Linux version 4.9.140-l4t-r32.4 (oe-user@oe-host) (gcc version 9.3.0 (GCC) ) #1 SMP PREEMPT Tue Oct 27 20:38:55 UTC 2020
[    0.000000] Boot CPU: AArch64 Processor [411fd073]
[    0.000000] OF: fdt:memory scan node memory@80000000, reg size 80,
[    0.000000] OF: fdt: - 80000000 ,  70000000
[    0.000000] OF: fdt: - f0200000 ,  185600000
[    0.000000] OF: fdt: - 275e00000 ,  200000
[    0.000000] OF: fdt: - 276600000 ,  200000
[    0.000000] OF: fdt: - 277000000 ,  200000
[    0.000000] earlycon: uart8250 at MMIO32 0x0000000003100000 (options '')
[    0.000000] bootconsole [uart8250] enabled
[    0.531269] pca953x 0-0074: failed reading register
[    0.537180] pca953x 0-0077: failed reading register
[    1.201016] tegradc 15210000.nvdisplay: dc_hdmi_hotplug_init: couldn't get regulator vdd_hdmi_5v0, -517
[    0.531269] pca953x 0-0074: failed reading register
[    0.537180] pca953x 0-0077: failed reading register
[    1.201016] tegradc 15210000.nvdisplay: dc_hdmi_hotplug_init: couldn't get regulator vdd_hdmi_5v0, -517
[    1.411684] tegradc 15210000.nvdisplay: hdmi: edid read failed
[    1.411684] tegradc 15210000.nvdisplay: hdmi: edid read failed
[    1.415863] FAN: coudln't get the regulator
[    1.415863] FAN: coudln't get the regulator
[    1.485807] ina3221x 0-0042: ina3221 reset failure status: 0xffffff87
[    1.485807] ina3221x 0-0042: ina3221 reset failure status: 0xffffff87
[    1.487247] ina3221x 0-0043: ina3221 reset failure status: 0xffffff87
[    1.487247] ina3221x 0-0043: ina3221 reset failure status: 0xffffff87
Starting version 244.3+
[    6.574945] blk_update_request: I/O error, dev mmcblk0rpmb, sector 0
[    6.646846] blk_update_request: I/O error, dev mmcblk0rpmb, sector 0
[    7.533700] EXT4-fs (mmcblk0p25): couldn't mount as ext3 due to feature incompatibilities
[    7.543013] EXT4-fs (mmcblk0p25): couldn't mount as ext2 due to feature incompatibilities
[    8.326463] cgroup: cgroup2: unknown option "nsdelegate"
[    8.888249] systemd[1]: /etc/systemd/system/bluetooth.service.d/bluetooth.conf:6: Neither a valid executable name nor an absolute path: pkglibexecdir@/bluetoothd
[   23.630362] mmc1: Timeout waiting for hardware cmd interrupt.
[   23.636105] sdhci: =========== REGISTER DUMP (mmc1)===========
[   23.641932] sdhci: Sys addr: 0x00000000 | Version:  0x00000404
[   23.647758] sdhci: Blk size: 0x00000000 | Blk cnt:  0x00000000
[   23.653582] sdhci: Argument: 0x80062000 | Trn mode: 0x00000000
[   23.659406] sdhci: Present:  0x01fb00f1 | Host ctl: 0x00000001
[   23.665230] sdhci: Power:    0x00000000 | Blk gap:  0x00000000
[   23.671056] sdhci: Wake-up:  0x00000000 | Clock:    0x00000403
[   23.676881] sdhci: Timeout:  0x00000000 | Int stat: 0x00000000
[   23.682706] sdhci: Int enab: 0x00ff1003 | Sig enab: 0x00fc1003
[   23.688530] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
[   23.694355] sdhci: Caps:     0x3f6cd08c | Caps_1:   0x18006f73
[   23.700180] sdhci: Cmd:      0x0000341a | Max curr: 0x00000000
[   23.706001] sdhci: Host ctl2: 0x00003000
[   23.709920] sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x00000000f7d00410
[   23.716477] sdhci: ===========================================
[   23.726406] vdd-1v8: voltage operation not allowed
[   23.731224] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)
[   23.747961] sdhci-tegra 3440000.sdhci: Auto calibration timed out
[   23.754363] mmc1: Got command interrupt 0x00010001 even though no command operation was in progress.
[   23.763480] sdhci: =========== REGISTER DUMP (mmc1)===========
[   23.769305] sdhci: Sys addr: 0x00000000 | Version:  0x00000404
[   23.775130] sdhci: Blk size: 0x00000000 | Blk cnt:  0x00000000
[   23.780955] sdhci: Argument: 0x80062000 | Trn mode: 0x00000000
[   23.786781] sdhci: Present:  0x01fb0000 | Host ctl: 0x00000000
[   23.792607] sdhci: Power:    0x00000001 | Blk gap:  0x00000000
[   23.798432] sdhci: Wake-up:  0x00000000 | Clock:    0x00000407
[   23.804256] sdhci: Timeout:  0x00000000 | Int stat: 0x00000000
[   23.810079] sdhci: Int enab: 0x00ff1003 | Sig enab: 0x00fc1003
[   23.815903] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
[   23.821728] sdhci: Caps:     0x3f6cd08c | Caps_1:   0x18006f73
[   23.827552] sdhci: Cmd:      0x0000341a | Max curr: 0x00000000
[   23.833374] sdhci: Host ctl2: 0x00003008
[   23.837293] sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x00000000f7d00410
[   23.843850] sdhci: ===========================================
[   23.849933] vdd-1v8: voltage operation not allowed
[   23.854744] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)
[   23.879337] vdd-1v8: voltage operation not allowed
[   23.884139] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)
[   23.893127] vdd-1v8: voltage operation not allowed
[   23.897932] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)

And it basically remains there, it never registers to the cloud. I’m not sure if the kernel is halting or if it’s just a network connection problem (ethernet is on board and wifi is configured current balena provisioning). What’s the best way to debug?

Thanks,

Andrew

The TX2, if I remember correctly, also has the ability to flash the onboard eMMC by booting up from SD Card, using what we call a “flasher” image" that copies the contents of the SD Card to the eMMC, then upon completion removing the SD Card and rebooting…So that process might be worth a shot as well.

Alternatively, to rule out corruption during the Application loading, what happens if you flash the OS itself, just in it’s default configuration, minus the App loaded. Does that boot properly?

Thanks @dtischler . I’ll try the SD card “flasher” image.

I didn’t actually load the app into the image, I just configured it to connect to an existing cloud app.

Thanks for the tip @dtischler, I was able to get the TX2 up and running using the “flasher” image that I downloaded from panel, I haven’t tested with an image I compiled yet. In a pinch this works but it would certainly be better to support flashing TX2s the same way as Nanos and Xavier NX (via USB) since the new TX2 NX is a drop-in replacement for either. I would expect there are lots of custom expansion boards out there that don’t have an SD card on them.

Thanks again.

Hi Andrew, the TX2 can be flashed by USB, but you need to use the flasher image generated in your custom yocto build and not the ‘non-flasher one’. This applies to both os configure and jetson-flash.

Thanks @acostach, then I must be doing something wrong. Using an up-to-date jetson-flash tool (./bin/cmd.js --version → 0.5.9) and an image I just downloaded from the dashboard, I run the following:

~/jetson-flash$ ./bin/cmd.js -m jetson-tx2 -f ~/balena-cloud-test-jetson-tx2-2.73.1+rev4-dev-v12.4.6.img

and after it downloads the L4T stuff, I see

... Downloading and extracting https://developer.nvidia.com/embedded/L4T/r32_Relea- Downloading and extracting https://developer.nvidia.com/embedded/L4T/r32_ReleaSaved in /tmp/31844
Successfully generated hash
Checking resin cache
| Checking image cache for balena-cloud-test-jetson-tx2-2.73.1+rev4-dev-v12.4.6.img/balena-cloud-caCache image check done
Retrieve BalenaOS image from balena-cloud-test-jetson-tx2-2.73.1+rev4-dev-v12.4.6.img

#
# Fatal error in , line 0
# Check failed: result.second.
#
#
#
#FailureMessage Object: 0x7ffe1f9c6220
 1: 0xa71261  [node]
 2: 0x19d3254 V8_Fatal(char const*, ...) [node]
 3: 0xe5b519 v8::internal::GlobalBackingStoreRegistry::Register(std::shared_ptr<v8::internal::BackingStore>) [node]
 4: 0xba6a68 v8::ArrayBuffer::GetBackingStore() [node]
 5: 0x9dbb7f node::Buffer::Data(v8::Local<v8::Object>) [node]
 6: 0xa128ef  [node]
 7: 0xbe56eb  [node]
 8: 0xbe6c96  [node]
 9: 0xbe7316 v8::internal::Builtin_HandleApiCall(int, unsigned long*, v8::internal::Isolate*) [node]
10: 0x14012f9  [node]
Illegal instruction (core dumped)
~/jetson-flash$ 

This works fine with the Nano and the downloaded images from the dashboard or custom compiled ones. Am I doing something wrong? Thanks.

Hi @smithandrewc , looks like this has to do with the Node.js version used, the problem starts from v14. Please follow this ticket for updates. For now you can use Node versions v10 or v12, these versions worked for me.