JetPack 4.3 - L4T R32.3.1 released

Hi odiezapha and dusty_nv,

There are spi0.0 and spi1.0 in /dev directory by default in R32.3.1, but spi0.0 can’t be tested by spidev_test tool as you can see in /dev/spi0.0 not work in l4t32.3.1.

I ran ‘’ on jetson nano. but ‘’ is turned off immediately when run without error code.


Can you provide some more details please? When you say is turned-off do you mean that the board powered-down or the tool did nothing?

Can you confirm what command you executed? Did you launch jetson-io from a terminal?

Per the documentation before running jetson-io for the first time you need to open a terminal execute the following command (this will be fixed in future releases).

$ sudo find /opt/nvidia/jetson-io/ -mindepth 1 -maxdepth 1 -type d -exec touch {}/ \;

Once the above have been executed you just need to execute the following from a terminal …

$ sudo /opt/nvidia/jetson-io/

You can also try the following command as well as this should display some output …

$ sudo /opt/nvidia/jetson-io/


Experiencing the same issue with beargomer.

I got the following error.

$ sudo /opt/nvidia/jetson-io/
Traceback (most recent call last):
File “/opt/nvidia/jetson-io/”, line 51, in
File “/opt/nvidia/jetson-io/”, line 34, in main
jetson = board.Board()
File “/opt/nvidia/jetson-io/Jetson/”, line 149, in init
self.dtb = _board_get_dtb(self.compat, self.model, dtbdir)
File “/opt/nvidia/jetson-io/Jetson/”, line 88, in _board_get_dtb
raise RuntimeError(“No DTB found for %s!” % model)
RuntimeError: No DTB found for NVIDIA Jetson Nano Developer Kit!

In my case, dtb files are under /boot/ , while script expects /boot/dtb/

the following change works for me.

line 135@/opt/nvidia/jetson-io/Jetson/

    #dtbdir = os.path.join(self.bootdir, 'dtb')
    dtbdir = os.path.join(self.bootdir, '')
1 Like

Thanks for the feedback. Can you …

$ cat /sys/firmware/devicetree/base/compatible



You should have one dtb file under /boot/dtb/ which is the dtb file for the platform and then dtbs for all Jetson platforms under /boot/. Can you tell me what you see from the following comands …

$ cat /sys/firmware/devicetree/base/compatible
$ fdtget /boot/dtb/*.dtb / compatible


Here it is.
$cat /sys/firmware/devicetree/base/compatible

Thanks can you also dump …

$ fdtget /boot/dtb/*.dtb / compatible


dj@dj-desktop:/boot$ fdtget /boot/dtb/.dtb / compatible
Couldn’t open blob from '/boot/dtb/
.dtb’: No such file or directory

dj@dj-desktop:/boot$ fdtget /boot/*.dtb / compatible
Error at ‘/boot/tegra210-jetson-tx1-p2597-2180-a02-devkit-24x7.dtb’: FDT_ERR_NOTFOUND

Thanks. That’s very odd. It appears that you have no dtb file under /boot/dtb. Can you confirm that you have no files there?

ls -l /boot/dtb/

I have flashed the released version of L4T r32.3.1 and I don’t see this issue. I have a slightly older board version (A02), but that shouldn’t matter.

$ fdtget /boot/dtb/*.dtb / compatible                                                                                                                                                                                  
nvidia,p3449-0000-a02+p3448-0000-a02 nvidia,jetson-nano nvidia,tegra210

$ cat /sys/firmware/devicetree/base/compatible

Can you tell me exactly how you flashed the board? Or are you using the SD card image? Ah looking at the SD card image there is no /boot/dtb directory so that will be a problem if you are using this image. Please confirm. We will look into a fix for this.



I have reproduced the issue with the SD card image. Please note that although the above will fix the initial problem, this change will cause further issues. So at the moment please refrain from making this change. We will have a fix for you to try shortly.



On further the review, the simplest fix for the Jetson.IO tool when using the SD card is to do the following …

$ sudo mkdir /boot/dtb
$ sudo cp -v /boot/tegra210-p3448-0000-p3449-0000-[ab]0[012].dtb /boot/dtb/

Let me know if this works. I will ensure that this is fixed for future releases.


1 Like

Apparently my worship of the old ones is insufficient. Switching to Satan. The apt configuration is incorrect on the rootfs. As such, the OTA updates would appear to be broken (maybe something happens to the sources at first boot, idk) (edit: it does).

$ sudo rootfs
+ cp /usr/bin/qemu-aarch64-static rootfs/usr/bin
+ mount -t sysfs -o ro none rootfs/sys
+ mount -t proc -o ro none rootfs/proc
+ mount -t tmpfs none rootfs/tmp
+ mount -o bind,ro /dev rootfs/dev
+ mount -t devpts none rootfs/dev/pts
+ mount -o bind,ro /etc/resolv.conf rootfs/run/resolvconf/resolv.conf
+ chroot rootfs
root@hostname:/# apt update
Hit:1 r32 InRelease
Hit:2 bionic InRelease                                                 
Get:3 bionic-updates InRelease [88.7 kB]                               
Hit:4 bionic-backports InRelease                
Hit:5 bionic-security InRelease
Ign:6<SOC> r32 InRelease
Err:7<SOC> r32 Release
  404  Not Found [IP: 443]
Get:8 bionic-updates/main arm64 Packages [603 kB]
Get:9 bionic-updates/universe arm64 Packages [924 kB]
Reading package lists... Done                                                      
E: The repository '<SOC> r32 Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

If I comment out “Index” in the sources, apt update works, but I assume I’m missing packages in this case. Any idea what’s supposed to go in “” for the nano?

To those looking for how to update these packages prior to first boot (in a chroot, for example), the script that fills in the apt sources on first boot is rootfs/etc/systemd/

important bit:

# Update chipid to apt source list file
if [ -e "${SOURCE}" ]; then
	CHIP="$(cat /proc/device-tree/compatible)"
	if [[ "${CHIP}" =~ "tegra210" ]]; then
		sed -i "s/<SOC>/t210/g" "${SOURCE}"
	elif [[ "${CHIP}" =~ "tegra186" ]]; then
		sed -i "s/<SOC>/t186/g" "${SOURCE}"
	elif [[ "${CHIP}" =~ "tegra194" ]]; then
		sed -i "s/<SOC>/t194/g" "${SOURCE}"
		logger "nvfb: Updating apt source list failed with exit code: 1"

so if you run into this issue, edit rootfs/etc/apt/sources.list.d/nvidia-l4t-apt-source.list to match the following for Nano (t210 is nano, right?):

deb r32 main
deb r32 main

Aha, thanks for digging into that - yes, T210 is Nano (and TX1)

YW. Thanks for the confirmation. Perhaps in future releases, SDKM could fill it in, rather than a first boot script? For those who ask, is there anything that’s not available through the online repos, that in a case of a chroot must still be installed via dpkg?

These online repos are great, btw. I just did a full system update and installed deepstream, all before first boot. Many thanks again for moving to this system rather than requiring SDKM or manual .deb installation for this step!

Do I have to reflash / reimage the Jetson Nano everytime a new Jetpack SDK is released?

I cannot for the life of me figure out how to “update” jetson nano jetpack sdk… I originally flashed the SD card using the image from the nvidia site about 4 months ago. There have been a few jetpack SDK upgrades I need that I cant figure out how to update.

thanks . this works for me.

Hi mitchross09, you will need to re-flash your SD card to upgrade to JetPack 4.3. Be sure to backup any files you want to save from your SD card, because the SD card will be wiped during the flashing process.

Then for future upgrades, you will simply be able to upgrade to the next JetPack version from the command line without re-flashing, as JetPack 4.3 introduced a new APT server for hosting JetPack packages. You still need to re-flash to get on JetPack 4.3, but future upgrades can just use the APT server.

Does it matter that my a02 board shows b00?

The module is labelled 180-13448-DAAA-A02
The carrier is labelled 180-13449-DAAF-A02


cat /sys/firmware/devicetree/base/compatible
nvidia,p3449-0000-b00+p3448-0000-b00 nvidia,Jetson-nano nvidia,tegra210

and the b00 dtb is the one that gets used as the base by jetson-io.