Hey all!
I am integrating jetson nano into my dashboard project. As a display I am using 2560x720 60fps screen with touchscreen. The screen is connected to jetson via HDMI.
The problem is that after connecting the screen to jetson only a default 1280x720 resolution is displayed.
I have modified my xorg.conf to include Modeline "2560x720_60" 149.25 2560 2680 2944 3328 720 723 733 748 -hsync +vsync
in monitor section and Option "MetaModes" "2560x720_60, 2560x720_60"
in screen section together with Modes "2560x720_60"
in display section.
However, X only allows 1280x720 resolution selection.
In xorg log file with ModeDebug enabled all of my defined resolutions get rejected with a message Mode is rejected: Only modes from the NVIDIA X driver's predefined list and modes from the EDID are allowed
It seems to me, that there exists some list of “available modes” hardcoded into the tegra driver that does not include my screen’s resolution stopping the X server from using it.
I have exhausted the suggestions on the internet that may target this issue. Please let me know how I could use this specific resolution with jetson nano.
P.S. I attach the xorg log file with ModeDebug enabled. Xorg.0.log (216.2 KB)
EDID is the only method a Jetson can use for configuration. Other methods tend to be ignored. One thing I suggest is that you set your X up for verbose logging so that the log can tell you exactly what it thinks of every mode the EDID has (remove the false for UseEDID).
In “/etc/X11/xorg.conf”, find Section "Device", and edit like this:
Section "Device"
Option "ModeDebug"
Then reboot. If, within the GUI you see “:0” in “echo $DISPLAY”, the log will be “/var/log/Xorg.0.log”. Most of the time it is “Xorg.0.log”, but it could be some other number. Look at the log (you might want to post a copy here). Within that will be information on the mode pool, and information on every EDID mode the monitor reports it is compatible with.
Other information which might be useful is the output of xrandr. You could log that with: xrandr 2>&1 | tee log_xrandr.txt
Hi, thanks for your input.
Yup, as mentioned in my previous post the ModeDebug is enabled, and it states Mode is rejected: Only modes from the NVIDIA X driver's predefined list and modes from the EDID are allowed
after every mode that was deemed “invalid”.
echo $DISPLAY does indeed give :0 result.
You may have missed the attached Xorg.0.log in my initial message. Everything is there.
Sorry, it was good to have that at the start (and unusual for anyone to have this at the start!).
This GPU is an integrated GPU (iGPU) directly wired to the memory controller. Unlike the drivers for the discrete GPUs (dGPU) that exist on a PCI bus other methods of configuration are generally not coded into the driver itself. If the EDID says the mode is not valid, then I don’t think there is anything you can do.
There is a possibility that if you code a default mode to that mode in the kernel itself it might attempt that mode, but my thought is that the driver will still reject it (a default mode is still a mode, and if not in EDID, probably still gets rejected; if not rejected, then there will likely be other problems with the mode).
Yeah, I read many posts trying to figure this out on my own, and most responses start with enabling logging and ploping the log file, so I figured I’ll jump ahead.
How would one go about modifying the default kernel mode? I have the boot logo reflashed so messing with the “bios” would not be something too crazy for me. Although kernel runs after the bios so maybe it’s possible to simply modify a line in a linux file?
I’d really like to use jetson for this project, but if it doesn’t support the display that would be a real deal breaker.
Keep in mind that a mode which is out of the range of the GPU can still be refused even if you set that fallback mode.
Mostly this one line from that post is the best detail you will get: You can enable the use_fallback in edid.c and rebuild the kernel image.
Your L4T release can be found with “head -n 1 /etc/nv_tegra_release”. The software specific to your release (including kernel source) can be found here: https://developer.nvidia.com/linux-tegra