I used the jetson-tx2i module, which automatically scans the HDMI section during startup.Since my board clipped hdmi and other display parts, the boot stuck. What device tree should I modify to skip hdmi detection?The system is achieved by jetpack4.2.
Please disable the 3 nvdisplay node in your device tree.
Could you explain how to modify it in detail?Kernel source version must be 4.9?
Please download the kernel source from the download center and follow the steps in L4T documentation to rebuild the device tree(dtb) and reflash the board.
Some information if you are not familiar with device trees…
Device tree source code files are simple human readable “nodes”…much like XML, but far simpler. You can easily see how they work if you look at a “.dts” file. The “.dtb” is the binary compiled version. The “.dtsi” is an “include” version, but is only used if working in the Linux kernel source.
The Linux kernel includes the device tree, but the tree is not really part of the kernel. It just happens that the device tree is a way to pass parameters to drivers (this way you can pass hardware information to the kernel instead of embedding every revision and manufacturer difference into the kernel itself…it is a way for kernel developers to keep their sanity), and that you only need the part of the tree which drivers are being built for and for which the hardware uses those drivers. Thus if you configure your kernel for build to fully match your existing system (save a pristine copy of “/boot/config.gz”, gunzip it, and modify CONFIG_LOCALVERSION to equal “-tegra”), then you can build any part of the kernel you want and it’ll be an exact match to the existing kernel, or the device tree if you were to build that target. The offical docs list build steps. You won’t need to install the kernel, but the configuration does need to match before building device trees.
The tool for compiling a source device tree into binary device tree is “dtc” (device tree compiler). The kernel source actually has a copy of this, but this is portable without issues across most all hardware. It can be installed separately. To install it for use outside of kernel builds:
sudo apt-get install device-tree-compiler
You will find various device trees in the flash software on the host in either the “Linux_for_Tegra/bootloader/” or “Linux_for_Tegra/kernel/” subdirectories after JetPack has been installed (or the “driver package”) on the host PC. If you log a flash, then you’ll see which trees were used for your particular configuration (the flash software understands a lot of hardware beyond Jetsons, and different revisions even within this list, so there is more than one tree that might be used). Once you know the tree that was used you can reverse compile it and have a human readable copy:
dtc -I dtb -O dts -o extracted.dts original.dtb
You could edit this, and then recompile it:
dtc -I dts -O dtb -o edited.dtb extracted.dts
The flash software instructions vary depending on release, but basically you’d save a backup of the original and replace it with your edited version, then flash. Some command line flash options would allow you to flash only the tree.
You might find this of interest, but you also simply delete nodes for a feature with an editor:
https://devtalk.nvidia.com/default/topic/1057100/jetson-tx2/generation-of-dtb-in-kernel-for-the-modification-done-in-dts-files-for-tx2-/post/5360275/#5360275
…but it might be better to explicitly turn off a feature.
If you choose to build the kernel source and then the device tree from the kernel, then be sure to configure to see if you can build an exact match of your existing kernel first, and only then build the device tree (you don’t want to be building trees for other hardware or configurations, e.g., you don’t care to build a tree for an IBM mainframe).
You can always ask for more information, but you should start with the docs on kernel customization since the device tree is normally generated from the “make dtbs” target of a kernel build.
FYI, there is a tool in the “Linux_for_Tegra/” directory of the host PC if you’ve used JetPack, and that is “source_sync.sh”. This will download source code for a particular release like this, and will work from either the PC or directly on the Jetson:
# Kernel source:
./source_sync.sh -k tegra-l4t-r32.1
# U-Boot source:
./source_sync.sh -u tegra-l4t-r32.1