About the missing display…is your display purely HDMI? If there is any VGA component, then it isn’t possible for automatic configuration to work (you’d have to get lucky with a default mode).
Do you have ssh or serial console access? If so, see what you get from:
cat `find /sys -name 'edid'`
You can extract the current running system’s device tree like this:
dtc -I fs -O dts -o extracted.dts /proc/device-tree
If you were to edit this and turn it back into a binary format useful with flash software it would go something like this after editing the extracted.dts:
dtc -I dts -O dtb -o modified.dtb extracted.dts
Steps used to install the tree depend on what release you are using. You might want to check the official documentation. The specific L4T release will have something for you, but the general document page is here:
Some documentation specific to the current L4T release is here:
Note that UART drivers for a Jetson have both a regular serial driver available, and also a DMA-capable driver. You will see references in the device tree to which drivers are compatible (literally, the “compatible =” entry), and the ones with “-uart” are ordinary drivers, while the DMA-capable ones are “-hsuart” (High Speed UART). Normally one would access all of the 16450/16550 style UARTs as “/dev/ttyS#”, e.g., the serial console is “/dev/ttyS0”. You will see the HS UART equivalent as well, e.g., the dev board connector J17 is “/dev/ttyTHS2”…had this been used as a regular driver you would access it as “/dev/ttyS2”. You will want to use only the THS# entry if possible. The reason the “ttyS0” is used for serial console is to allow for continuity of service when transitioning from bootloader to the Linux kernel (there is no HSUART driver in U-Boot and changing the driver during boot would mean lost console text).
FYI, you can have multiple drivers shown in the “compatible” entry, but it is up to the kernel to pick and use one at a time.
You will find the TRM (Technical Reference Manual is available in the downloads URL I gave above) refers to groups of certain functions as belonging to a single controller. An example is GPIO where a single controller has many GPIO pins. As more GPIO is added, instead of making one bigger GPIO controller, you will get multiple controllers with each controller being an exact duplicate of the other…but the base address determines which group of GPIO is being looked at (the code to use any controller is identical other than the base address). The UARTs are the same, and the device tree entry to determine which UART you are working with in the tree goes by base address. For example, “serial@3110000” is one UART controller.
Within “/sys” you will find controllers have many ways of accessing them, but the base address will be useful there. If you knew you were looking for serial controller at 3110000, then this would give you some clues:
sudo find /sys -name '*3110000*'
(fyi, you need sudo to get root permission before you can go to “/sys”…you can drop into a root shell with “sudo -s”, and then later “exit” the shell)