Device tree compilation

Can anyone explain to me why I wouldn’t be able to modify and install a new device tree blob on the Jetson Nano (on the target as opposed to flashing it from a host PC)

I’m not sure about the Nano, but on the other platforms the device tree has to be signed. Even if the tree is a regular file on the Nano, I suppose it is possible it still needs to be signed. Anyone know if signing works the same way on Nano versus other Jetsons?

Thanks for the reply.
As you might detect I’m somewhat confused by what’s running on the Nano.

I assume that I can use the device tree compiler on my Ubuntu PC (doesn’t currently exist…) and change the device tree for my PC. So, what’s different with the Jetson Ubuntu?

The sales pitch and documentation doesn’t help by asserting the Jetpack can be either installed as an image provided by nVidia or through a set of complicated cross-compilation tools from a PC Ubuntu host.

Of course if the default image supported J41 properly there wouldn’t be a lot of people wanting to ask trivial but hard to answer questions like mine…

hello usr2222,

if you’re using dtc binary to disassembler the dtb file into dts file for customization, besides convert it from dts into a dtb, you’ll also need another process to encrypt the file.
for example,
please check the flashing logs of Jetson-Nano.

[  68.9418 ] Writing partition DTB with tegra210-p3448-0000-p3449-0000-a01.dtb.encrypt
[  73.0102 ] [................................................] 100%

suggest you download the L4T Jetson Nano R32.1 Sources, and please check Kernel Customization chapter for building device tree.
please also refer to Flashing a Specific Partition for the steps to update your customized device tree .


Ok, well that clears up a lot of mystery(s) and allowed me to find the relevant posts about encrypted dtb.

So, evidently this is specific to nVidia Jetson platforms (I didn’t notice any other references to other platforms). I don’t know what the motivation is to do this. I certainly support the idea of some sort of security measures for lots of potentially internet connected hardware but security doesn’t seem to be relevant here.

This would be a lot less onerous if the process of building a customized kernel and the documentation were adequate. One has to waste so many hours trying to do anything useful or find information to resolve problems. I’ve had very many hours and days of bad experiences with the TK2 Ubuntu host tools and hosts being broken in past years.

It’s not a waste of time for Jetson developers to log the console output messages of your platform during boot to get a sense of what’s taking place before you get to log on…