1440x2560 HDMI Display not working on Jetson TX2


I am currently working on a research project for building a AR/VR system using: Jetson TX2 and a 1440x2560 HDMI display 5.5” (model LS055R1SX04).

The problem is that when trying to run the desktop from terminal doing:
startx – -logverbose 6
the display does not show anything, just a black screen, but still I can ssh to the device.

The Xorg.0.log says:

[ 79.457] (II) NVIDIA(GPU-0): — Building ModePool for ZHDISP05504 (DFP-0) —
[ 79.457] (WW) NVIDIA(GPU-0): Validating Mode “1440x2560_50”:
[ 79.457] (WW) NVIDIA(GPU-0): Mode Source: X Configuration file ModeLine
[ 79.457] (WW) NVIDIA(GPU-0): 1440 x 2560 @ 50 Hz
[ 79.457] (WW) NVIDIA(GPU-0): Pixel Clock : 204.79 MHz
[ 79.457] (WW) NVIDIA(GPU-0): HRes, HSyncStart : 1440, 1510
[ 79.457] (WW) NVIDIA(GPU-0): HSyncEnd, HTotal : 1545, 1590
[ 79.457] (WW) NVIDIA(GPU-0): VRes, VSyncStart : 2560, 2572
[ 79.457] (WW) NVIDIA(GPU-0): VSyncEnd, VTotal : 2574, 2576
[ 79.457] (WW) NVIDIA(GPU-0): H/V Polarity : -/-
[ 79.457] (WW) NVIDIA(GPU-0): Mode is rejected: Only modes from the NVIDIA X driver’s
[ 79.457] (WW) NVIDIA(GPU-0): predefined list and modes from the EDID are allowed
[ 79.457] (WW) NVIDIA(GPU-0): Mode “1440x2560_50” is invalid.

It also throws the following error: [ 79.509] (EE) NVIDIA(0): Failed to allocate NVIDIA Error Handler

I have recently read this related post with the same issue for the jetson nano:
1440x2560-hdmi-display-not-working, where it is sayd that “1440x2560 may be filtered out by the hdmi driver”. Therefore for the jetson nano it is solved by"commenting out below line in “tegra_hdmi_fb_mode_filter” in hdmi2.0.c and rebuild the kernel."

I tried to find the same hdmi2.0.c file in tx2 but it is not.

How can I perform a similar solution on my jetson tx2?

I attach the edid, xorg.conf, Xorg.0.log and the display model jpg description.

edid (786 Bytes)Xorg.0.log (216.8 KB)
xorg.conf (2.2 KB)
model LS055R1SX04

Thanks in advance!


I would like to add the following comments:

If I do:
export DISPLAY=:0

and then
startx – -logverbose 6

the desktop runs and I can visualize it using the mentioned display, but the problem is that the only available resolution is 800x600, so the desktop is repeated 4 times in the display as shows the attached image.

The source code is a separate tarball and we provided that on website for users to download.

Also, we suggest user to use x64 host to build kernel.

Just adding some notes, not really answering: I see you found the verbose mode for the log, which is quite useful. Notice that there are many modes which go through validation, and each individual mode visible is a mode which the EDID basically claims the monitor is capable of working with. Within each mode, at the end of that mode validation block, there is a statement that “Mode …something… is” and then either “invalid” or “valid”. Then, at the end of that list,s a short summary:

[    79.504] (II) NVIDIA(GPU-0): --- Done building ModePool for ZHDISP05504 (DFP-0) ---
[    79.504] (II) NVIDIA(GPU-0): 
[    79.504] (II) NVIDIA(GPU-0): Frequency information for ZHDISP05504 (DFP-0):
[    79.504] (II) NVIDIA(GPU-0):   HorizSync   :  kHz
[    79.504] (II) NVIDIA(GPU-0):   VertRefresh :  Hz
[    79.505] (II) NVIDIA(GPU-0):     (HorizSync from Unknown source)
[    79.505] (II) NVIDIA(GPU-0):     (VertRefresh from Unknown source)
[    79.505] (II) NVIDIA(GPU-0): 
[    79.505] (II) NVIDIA(GPU-0): --- Modes in ModePool for ZHDISP05504 (DFP-0) ---
[    79.505] (II) NVIDIA(GPU-0): "nvidia-auto-select" :  800 x  600 @  60.3 Hz  (from: NVIDIA Predefined)
[    79.505] (II) NVIDIA(GPU-0): "800x600_60"         :  800 x  600 @  60.3 Hz  (from: NVIDIA Predefined)
[    79.505] (II) NVIDIA(GPU-0): --- End of ModePool for ZHDISP05504 (DFP-0): ---

You already know it isn’t using all of the modes you want, but the available valid ModePool is listed as containing only “800x600_60”. So if you do look at the tarball mentioned above (and I don’t know if this can be changed or not since part of this is for the binary GPU driver, and part is for the kernel…you can change the kernel, but you can’t change the GPU driver), then you know you need to find the section on EDID which sees the working “800x600_60”, and examine how the code got there. Possibly (I have not done it before) if one of the previously unaccepted modes can be found, and if that mode is within the hardware capabilities, then perhaps you can get the kernel code to accept that mode (if the GPU binary rejects this, then it won’t matter what the kernel thinks). It would be interesting to know if you succeed.

Hi linuxdev,

1-I reinstalled the OS image using sdkmanager with the latest jetpack 4.6 package.
2-Following this tutorial I downloaded the kernel source code

3-I modify the file hdmi2.0.c as suggested in a previous post.
4-The kernel has been recompiled as explained in the mentioned tutorial for building the kernel.
5-I modify the xorg.conf file.

Section "ServerLayout"
    Identifier     "Default Layout"
    Screen         "Default Screen" 0 0

Section "Module"
    SubSection     "extmod"
        Option         "omit xfree86-dga"
    Load           "glx"
    Disable        "dri"

Section "Device"
# Allow X server to be started even if no display devices are connected.
    Identifier     "Tegra0"
    Driver         "nvidia"

Section "Monitor"
    Identifier "Monitor0"
    Modeline "1440x2560" 204.792 1440 1510 1545 1590 2560 2572 2574 2576 -hsync -vsync

Section "Screen"
        Identifier "Default Screen"
        Device     "Tegra0"
        Monitor    "Monitor0"
        DefaultDepth 24
        Option         "AllowEmptyInitialConfiguration" "true"
        SubSection "Display"
                Depth     24
                Modes "1440x2560"

6-I run: startx – -logverbose 6

The Xorg.0.log says:

[    45.214] (EE) NVIDIA(GPU-0): Failed to initialize the NVIDIA graphics device!
[    45.214] (EE) NVIDIA(0): Failing initialization of X screen 0
[    45.214] (II) UnloadModule: "nvidia"
[    45.214] (II) UnloadSubModule: "glxserver_nvidia"
[    45.214] (II) Unloading glxserver_nvidia
[    45.214] (II) UnloadSubModule: "wfb"
[    45.214] (II) UnloadSubModule: "fb"
[    45.214] (EE) Screen(s) found, but none have a usable configuration.
[    45.214] (EE) 
Fatal server error:
[    45.214] (EE) no screens found(EE) 
[    45.214] (EE) 

Apart from that I also have performed some other tests.

  • First I tried to run “startx” with a standard Asus screen, with which the system worked perfectly before the recompilation, and it also says the same error.

  • Second I changed the xorg.conf file and instead of setting the nvidia driver i set nouveau as the driver. In that case for both screens startx lunched perfectly the desktop GUI and I can see the full screen working as desired.

Stiill need help as I need the system to be working with the “nvidia” driver. I need to run the tx2 with jetson-inference pretrained models running on it.

Xorg.0.log (7.5 KB)

Thanks in advance,

When you created your kernel modification, did you use a module format or did you replace the entire kernel Image? How did you configure the kernel for its base version? I ask because if this is not done correctly, then there will be incompatibilities with various parts of the operating system (e.g., if “uname -r” is not the same in both builds, then 100% of module loading fails). An inability to load the NVIDIA module makes me think any kernel update could be incorrect.

Details on how you configured the kernel build and what the final “uname -r” command output is, along with what you installed (kernel Image versus a module) would be useful information. Do note that if the X server cannot load the GPU binary then there is no chance of success, and that this is actually a step backwards.

Note that the log looked ok, but this is why I wonder:

[    45.214] (EE) NVIDIA(GPU-0): Failed to initialize the NVIDIA graphics device!
[    45.214] (EE) NVIDIA(0): Failing initialization of X screen 0
1 Like

Yes, I think you should firstly check if you really updated the kernel.

Things change fast. The post you are referring to is something from 3 years ago. I believe it is only partially correct now, unless you are really using some old rel-28 software release.

Our official document to build kernel is as below document.



I finally get success on that!!! The reason was that I hadn’t installed the kernel modules, so following the tutorial I have executed the script makeModules.sh. Now the screen works perfectly!!

Thank you very much WayneWWW and linuxdev!!!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.