The X-Server allows graphical user interfaces on a Linux system. Typically a desktop environment like Gnome, KDE, or LXDE runs on top of this X-Server which allows starting other programs. If such a program is an X enabled graphical application it will connect to the X-Server directly to draw itself on the screen. Our default images ship with LXDE (a lightweight desktop environment, see the LXDE Page).
There is a related article that covers the topic of Display Output, Resolution and Timings.
From our BSP 5 onward, Wayland/Weston is being used by default. XWayland provides a compatibility layer for X-based applications. You can learn more about it on the following resources:
Nowadays the X-Server comes with reasonable auto-configuration functions. Nevertheless, we ship our modules with a default configuration file (located under /etc/X11/xorg.conf). The xorg.conf mainly chooses which Device Dependent X (DDX) driver to load. Our default configuration files select the following driver:
Module SoC | DDX driver |
---|---|
i.MX 6 | vivante |
i.MX 7 | fbdev |
Tegra 2 and 3 | tegra (binary only) |
Vybrid | fbdev (Linux <= 4.1) |
Vybrid | modesetting (Linux >= 4.4) |
Otherwise, the default configuration does not alter a lot but uncommented examples show how to override automatically configured options.
If X-Server configuration is needed using the command line utility xrandr is the easiest way to do this. However, this configuration is not persistent. Either one should add those commands to the LXDE auto-start settings (/etc/xdg/lxsession/LXDE/autostart) or try to create a static configuration using xorg.conf.
i.MX6 based modules support EDID on DVI-D (aka HDMI) and makes use of it allowing the user to configure resolutions supported by the monitor.
The supported resolutions and required timings are fetched through EDID, see below the xrandr command output:
root@apalis-imx6:~# xrandrScreen 0: minimum 240 x 240, current 1920 x 1080, maximum 8192 x 8192DISP3 BG connected 1920x1080+0+0 (normal left inverted right x axis y axis) 0mm x 0mmS:1920x1080p-60 60.00*+S:1920x1080p-50 50.00S:1920x1080p-30 30.00S:1920x1080p-25 25.00S:1920x1080p-24 24.00S:1280x720p-60 60.00S:1280x720p-50 50.00S:720x576p-50 50.00S:720x480p-60 59.94V:640x480p-60 60.00
Set one of the available resolutions:
Colibri i.MX6:
root@colibri-imx6:~# xrandr --output DISP3\ BG\ -\ DI1 --mode U:1280x720p-120[ 39.880412] mxc_sdc_fb fb@0: 1280x720 h_sync,r,l: 40,110,220 v_sync,l,u: 5,5,20 pixclock=148500000 Hz
Apalis i.MX6:
root@apalis-imx6:~# xrandr --output DISP3\ BG --mode S:1920x1080p-60[ 566.499079] mxc_sdc_fb fb@0: 1920x1080 h_sync,r,l: 44,88,148 v_sync,l,u: 5,4,36 pixclock=148500000 Hz
Note: The character "\" must be used since the output name has spaces.
An available resolution can be configured as "preferable" in the "/etc/X11/xorg.conf" as well:
Section "Monitor"Identifier "DISP3 BG"Option "PreferredMode" "S:1280x720p-60"EndSection
Note: If the connected monitor does not provide the preferred resolution, the X-Server will automatically choose the next closest resolution.
There is a possibility that your monitors' correct resolution may not be detected. If this happens, you can create a new resolution mode.
The cvt utility is used to get a correct modeline for XRandR, the correct syntax is cvt width height refreshrate, see below:
root@colibri-imx6:~# cvt 1920 1080 30# 1920x1080 29.95 Hz (CVT) hsync: 33.01 kHz; pclk: 79.75 MHzModeline "1920x1080_30.00" 79.75 1920 1976 2168 2416 1080 1083 1088 1102 -hsync +vsync
Create a new mode using the above modeline:
xrandr --newmode "1920x1080_30.00" 79.75 1920 1976 2168 2416 1080 1083 1088 1102 -hsync +vsync
Add the mode to the current display output:
xrandr --addmode DISP3\ BG 1920x1080_30.00
Set the new resolution:
xrandr --output DISP3\ BG --mode 1920x1080_30.00
The changes are lost after reboot, to set up the resolution persistently, create the file ~/.xprofile with the content:
#!/bin/shxrandr --newmode "1920x1080_30.00" 79.75 1920 1976 2168 2416 1080 1083 1088 1102 -hsync +vsyncxrandr --addmode DISP3\ BG\ -\ DI1 1920x1080_30.00
It is not possible to change resolution timings from X-Server directly. However, the mode is inherited from the framebuffer device (mxcfb). Refer to the Display Output, Resolution and Timings (Linux) documentation to change default settings.
It is not possible to change resolution timings from X-Server directly, however, the mode is inherited from the framebuffer device (mxsfb). Refer to the Display Output, Resolution and Timings (Linux) documentation to change default settings.
The Tegra driver uses XRandR extensions and those do not support the old style (Xinerama) multi head configuration. Instead, only one Screen section has to be active and the Monitors are linked by using Option "Monitor-$connector" "$monitor-section" in the Device section. Refer to our sample configuration on the module or http://www.thinkwiki.org/wiki/Xorg_RandR_1.2 for more information.
On some connectors the hardware supports EDID. Our BSP makes use of that and allows the user to configure resolutions supported by the monitor.
Description | Output 1 | Output 2 |
---|---|---|
Framebuffer boot name | tegrafb0 | tegrafb1 |
Framebuffer device | /dev/fb0 | /dev/fb1 |
X-Server name | LVDS-1 | HDMI-1 |
Connector on Evalboard | LVDS/RGB/VGA | DVI-D |
Connector on Iris | DVI-A | DVI-D |
Supports EDID (Software) | No | Yes |
The supported resolutions and required timings are fetched through EDID on this output. One can check the currently used resolution and list the available resolutions:
root@colibri:~# xrandrScreen 0: minimum 256 x 128, current 640 x 480, maximum 2048 x 2048LVDS-1 connected 640x480+0+0 (normal left inverted right x axis y axis) 0mm x 0mm640x480 0.0*+HDMI-1 connected 640x480+0+0 (normal left inverted right x axis y axis) 510mm x 287mm1920x1080 60.0 + 50.01680x1050 59.91280x1024 75.0 60.01440x900 59.91280x960 60.01280x800 59.91152x864 75.01280x720 60.0 50.01024x768 75.0 70.1 60.0832x624 74.6800x600 72.2 75.0 60.3 56.2720x576 50.0720x480 59.9640x480 75.0 72.8 66.7 59.9*720x400 70.1
Set one of the available resolutions:
root@colibri:~# xrandr --output HDMI-1 --mode 1920x1080[ 237.924744] tegradc tegradc.1: Using mode 1920x1080 pclk=148500000 href=1 vref=1
Note: Display modes are solely negotiated through DDC/EDID, "xrandr --newmode" does not work.
An available resolution can be configured as "preferable" in the xorg.conf as well:
Section "Monitor"Identifier "HDMI-1"Option "PreferredMode" "720x400"...EndSection
Note: If the connected monitor does not provide the preferred resolution, the X-Server will automatically choose the next closest resolution.
Note: There exists some NVIDIA proprietary dependency on the primary LVDS resolution having to be equal or higher than the secondary HDMI one. Alternatively one can directly put a manual xrandr configuration of the form 'xrandr --output HDMI-1 --mode 1280x720' into a graphical auto start file as explained here.
It is not possible to change resolution timings from X-Server directly. However, the mode is inherited from the framebuffer device (fbdev). Refer to the Display Output, Resolution and Timings (Linux) documentation to change default settings.
Please note that the vertical and horizontal resolution is limited to 2048 pixels by hardware:
root@colibri_t20:~# xrandr --output HDMI-1 --mode 1920x1080root@colibri_t20:~# xrandr --output LVDS-1 --mode 1920x1080root@colibri_t20:~# xrandr --output LVDS-1 --right-of HDMI-1xrandr: screen cannot be larger than 2048x2048 (desired size 3840x1080)
The xorg.conf configuration files allow to configure the Dual Screen Layout using the Monitor section as well. This sample shows a clone with an X-Axis offset of 80 pixels:
Section "Monitor"Identifier "HDMI-1"...Option "AboveOf" "LVDS-1"Option "Position" "80 0"EndSection
The keywords RightOf/LeftOf can be used as well, however LXDE seems to override those settings on start up. We therefore recommend to use the xrandr command and add that to the LXDE Session auto start entries.
Section "Monitor"Identifier "HDMI-1"...Option "RightOf" "LVDS-1"EndSection
Turning an output completely off can be archived by using the Option "Ignore":
Section "Monitor"Identifier "HDMI-1"Option "Ignore" "true"...EndSection
By default, our X-Server configuration uses 16-Bit colour depth to save memory bandwidth (since the CPU and GPU share the memory, this leads to more bandwidth for the CPU). Lots of TFT displays can only show 18-Bit colours anyway.
In order to enable 24-Bit colour depth, use the "DefaultDepth" option in the screen section:
Section "Screen"...DefaultDepth 16EndSection
root@colibri:~# xrandr --output HDMI-1 --mode 1680x1050 --rotation inverted[ 493.075971] tegradc tegradc.1: switching framebuffer to 1680x1050[ 493.076002] tegradc tegradc.1: using mode 1680x1050 pclk=119005000 href=1 vref=1
root@colibri:~# xrandr --output LVDS-1 --rotate inverted
Extend the monitor section with the Rotate option:
Section "Monitor"...Option "Rotate" "inverted"
Possible options are: normal, left, right and inverted.
Note: Due to a limitation of the Tegra binary driver, this is only possible for the HDMI-1 output. However, the LVDS-1 output supports rotation through xrandr (see above). We recommend to use the xdg auto start method to call xrandr immediately on LXDE session initialisation.
Under certain circumstances the mouse coordinates might get swapped. When using the touchscreen calibration, this will be inverted automatically. However, one can swap this using X-Input:
root@colibri_t20:~# export DISPLAY=:0.0root@colibri_t20:~# xinput list⎡ Virtual core pointer id=2 [master pointer (3)]⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]⎜ ↳ wm97xx touchscreen id=6 [slave pointer (2)]⎜ ↳ MosArt Optical Mouse id=8 [slave pointer (2)]⎣ Virtual core keyboard id=3 [master keyboard (2)]↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]↳ SCISSORS Keyboard id=7 [slave keyboard (3)]
List the X-Input properties:
root@colibri_t20:~# xinput list-props 8Device 'MosArt Optical Mouse':Device Enabled (115): 1Coordinate Transformation Matrix (116): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000Device Accel Profile (236): 0Device Accel Constant Deceleration (237): 1.000000Device Accel Adaptive Deceleration (238): 1.000000Device Accel Velocity Scaling (239): 10.000000Evdev Axis Inversion (72): 0, 0Evdev Axes Swap (71): 1Axis Labels (241): "Rel X" (125), "Rel Y" (126)Button Labels (242): "Button Left" (118), "Button Middle" (119), "Button Right" (120), "Button Wheel Up" (121), "Button Wheel Down" (122), "Button Horiz Wheel Left" (123), "Button Horiz Wheel Right" (124)Evdev Middle Button Emulation (243): 0Evdev Middle Button Timeout (244): 50Evdev Wheel Emulation (245): 0Evdev Wheel Emulation Axes (246): 0, 0, 4, 5Evdev Wheel Emulation Inertia (247): 10Evdev Wheel Emulation Timeout (248): 200Evdev Wheel Emulation Button (249): 4Evdev Drag Lock Buttons (250): 0
Configure a property accordingly:
root@colibri_t20:~# xinput set-prop 8 "Evdev Axes Swap" 0
To have this set automatically upon boot proceed as follows:
System - Preferences - Startup ApplicationsAddName: Mouse Coordinate FixCommand: xinput set-prop 8 "Evdev Axes Swap" 0AddCloseReboot
The X keyboard map can manually be set as follows (where ch is the layout and de the variant):
root@apalis-t30:~# setxkbmap ch de
To apply this setting over re-boots one can append the following to /etc/X11/xorg.conf:
Section "InputClass"Identifier "Keyboard0"MatchIsKeyboard "on"Option "XkbRules" "xorg"Option "XkbModel" "pc105"Option "XkbLayout" "ch"Option "XkbVariant" "de"EndSection
Plus one has to remove the /etc/X11/Xinit.d/12keymap file as it otherwise interferes.
Apalis TK1 supports EDID on DVI-D (aka HDMI) and makes use of it allowing the user to configure resolutions supported by the monitor.
The supported resolutions and required timings are fetched through EDID, see below the xrandr command output:
root@apalis-tk1:~# xrandrScreen 0: minimum 8 x 8, current 2560 x 1080, maximum 16384 x 16384LVDS-0 connected 640x480+1920+0 (normal left inverted right x axis y axis) 0mm x 0mm640x480 60.99*+HDMI-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 0mm x 0mm1920x1080 60.00*+ 50.00 30.63 30.03 25.521680x1050 60.001600x900 59.991440x900 59.981400x1050 59.991280x1024 75.03 60.021280x800 60.031280x720 60.00 59.67 50.001152x864 75.001024x768 60.01800x600 75.00720x400 70.04640x480 75.00 61.05 60.00
Set one of the available resolutions:
root@apalis-tk1:~# xrandr --output HDMI-0 --mode 1920x1080[ 2171.783136] tegradc tegradc.1: using mode 1920x1080 pclk=148500000 href=1 vref=1
The Vybrid's display controller (DCU, Display Control Unit) supports only one output. Depending on the BSP version the Linux kernel and X-Server use a different driver for the display controller:
The lightweight desktop manager can temporarily be stopped as follows:
systemctl stop lxdm
Or permanently be disabled as follows:
systemctl disable lxdm.servicesystemctl disable xinput-calibrator.service
By default the display manager (/usr/lib/libnvodm_disp.so) now only supports 640x480 @ 60 Hz on the TFT/LCD aka VGA interface. To change it back to support all modes proceed as follows:
root@colibri_t20:~# ln -fs /usr/lib/libnvodm_disp.so.allmodes /usr/lib/libnvodm_disp.so
And reboot.
Unfortunately due to some interoperability issue with the GNOME monitor preferences application (e.g. System - Preferences - Monitors) and NVIDIA's Tegra 2 X driver the only way to get a dual screen setup to work reliably is by manual configuration.
Just add an exit 0 towards the top of /etc/init.d/gdm as follows:
root@colibri_t20:~# vi /etc/init.d/gdm#! /bin/shexit 0...
Now after rebooting the NVIDIA daemon and X server have to be manually started as follows:
root@colibri_t20:~# nvrm_daemon --daemon&[ 135.698108] tegra-i2c tegra-i2c.0: no acknowledgeroot@colibri_t20:~# X -ac -dumbSched -nolisten inet6&X.Org X Server 1.9.4Release Date: 2011-02-04X Protocol Version 11, Revision 0Build Operating System: Linux 2.6.37-00004-g3462985 x86_64Current Operating System: Linux colibri_t20 2.6.36.2-g590b97a-dirty #5 SMP PREEMPT Sat Sep 24 01:48:04 CEST 2011 armv7lKernel command line: mem=384M@0M nvmem=128M@192M vmalloc=248M video=tegrafb envsector=2d00 nvsku=000-00000-0000-000 root=/dev/mtdblock0 ip=off rw rootfstype=yaffs2 mtdparts=tegra_nand:1018368K@28160K(userspace) console=ttyS0,115200n8Build Date: 08 May 2011 05:38:34PMCurrent version of pixman: 0.22.0Before reporting problems, check http://wiki.x.orgto make sure that you have the latest version.Markers: (--) probed, (**) from config file, (==) default setting,(++) from command line, (!!) notice, (II) informational,(WW) warning, (EE) error, (NI) not implemented, (??) unknown.(==) Log file: "/var/log/Xorg.0.log", Time: Mon Feb 24 16:49:22 2014(==) Using config file: "/etc/X11/xorg.conf"(==) Using system config directory "/usr/share/X11/xorg.conf.d"NvRmModuleResetWithHold deassert MOD[32] INST[0]root@colibri_t20:~# export DISPLAY=:0.0
Please note that the total resolution is currently limited by 2 K:
root@colibri_t20:~# xrandr --output HDMI --mode 1920x1080root@colibri_t20:~# xrandr --output TFTLCD --mode 1920x1080root@colibri_t20:~# xrandr --output TFTLCD --right-of HDMIxrandr: screen cannot be larger than 2048x2048 (desired size 3840x1080)
root@colibri_t20:~# xrandr --output HDMI --mode 720x576root@colibri_t20:~# xrandr --output TFTLCD --mode 720x576root@colibri_t20:~# xrandr --output TFTLCD --right-of HDMI
As there is currently no window manager active, applications can manually be positioned as explained here
Unfortunately Firefox does not accept generic geometry parameters but accepts width and height:
root@colibri_t20:~# firefox -height 576 -width 720&
root@colibri_t20:~# opkg install xtermInstalling xterm (266-r5.0.9) to root...Downloading http://www.angstrom-distribution.org/feeds/next/ipk/eglibc/armv7a-vfp/base/xterm_266-r5.0.9_armv7a-vfp.ipk.Configuring xterm.root@colibri_t20:~# xterm -geometry 720x576+720+0&
NVIDIA's display manager /usr/lib/libnvodm_disp.so can be setup to do software EDID. Software EDID will always take precedence if present. Customers requiring custom display timings can now proceed as follows to load their custom software EDID:
./EDIDUpdate.pl --load --EDID=output.edid --display=lvds --module=./libnvodm_disp.so
If you do not have a binary EDID handy our latest Linux packages also contain an EDID generator tool:
./generate_edid
As follows an explanation of the required timing values:
Pixel Clk (in 10KHz)H ActiveH Blank (Horizontal sync width plus back porch plus front porch)V ActiveV Blank (Vertical sync width plus back porch plus front porch)H Offset (Horizontal front porch)H Pulse (Horizontal sync width)V Offset (Vertical front porch)V Pulse (Vertical sync width)
Example for 1024x768@70Hz timings for a CRT MonitorPixel Clk 7500 (7500 * 10kHz)H Active 1024 (Pixel)H Blank 304 (Pixel)V Active 768 (Lines)V Blank 38 (Lines)H Offset 24 (Pixel)H Pulse 136 (Pixel)V Offset 3 (Lines)V Pulse 6 (Lines)
The tools 'EDIDUpdate.pl' and 'generate_edid' can be found in the T20 Image tarball download. They are executed on your Linux host. The best practice is to mark the software EDID library with an explanatory ending and create a symbolic link to the one to be used. e.g.
/usr/lib/libnvodm_disp.so -> libnvodm_disp.so.fullhdonly/usr/lib/libnvodm_disp.so.fullhdonly
To allow for remote X clients to connect to the X server running on the Colibri T20 one has to adjust either /etc/gdm/gdm.conf or /etc/gdm/custom.conf as follows:
[security]DisallowTCP=false
After restarting GDM or rebooting one further has to explicitly disable access control as follows:
root@colibri_t20:~# export DISPLAY=:0root@colibri_t20:~# xhost +access control disabled, clients can connect from any host
Now any X client can connect (note 192.168.10.2 is my module's IP address):
sumo@sumo-PORTEGE-R700:~$ export DISPLAY=192.168.10.2:0sumo@sumo-PORTEGE-R700:~$ xclockWarning: Missing charsets in String to FontSet conversionWarning: Unable to load any usable fontset^Csumo@sumo-PORTEGE-R700:~$ xdpyinfoname of display: 192.168.10.2:0.0version number: 11.0vendor string: The X.Org Foundationvendor release number: 10904000X.Org version: 1.9.4maximum request size: 16777212 bytesmotion buffer size: 256bitmap unit, bit order, padding: 32, LSBFirst, 32image byte order: LSBFirstnumber of supported pixmap formats: 7supported pixmap formats:depth 1, bits_per_pixel 1, scanline_pad 32depth 4, bits_per_pixel 8, scanline_pad 32depth 8, bits_per_pixel 8, scanline_pad 32depth 15, bits_per_pixel 16, scanline_pad 32depth 16, bits_per_pixel 16, scanline_pad 32depth 24, bits_per_pixel 32, scanline_pad 32depth 32, bits_per_pixel 32, scanline_pad 32keycode range: minimum 8, maximum 255focus: window 0x120001f, revert to Parentnumber of extensions: 23BIG-REQUESTSCompositeDAMAGEDOUBLE-BUFFERDPMSGeneric Event ExtensionMIT-SCREEN-SAVERMIT-SHMRANDRRECORDRENDERSHAPESYNCTEGRA-EGLX-ResourceXC-MISCXFIXESXFree86-VidModeExtensionXInputExtensionXKEYBOARDXTESTXVideoXVideo-MotionCompensationdefault screen number: 0number of screens: 1screen #0:dimensions: 1920x1080 pixels (508x285 millimeters)resolution: 96x96 dots per inchdepths (7): 24, 1, 4, 8, 15, 16, 32root window id: 0x5fdepth of root window: 24 planesnumber of colormaps: minimum 1, maximum 1default colormap: 0x20default number of colormap cells: 256preallocated pixels: black 0, white 16777215options: backing-store NO, save-unders NOlargest cursor: 64x64current input event mask: 0xfa8033KeyPressMask KeyReleaseMask EnterWindowMaskLeaveWindowMask ExposureMask StructureNotifyMaskSubstructureNotifyMask SubstructureRedirectMask FocusChangeMaskPropertyChangeMask ColormapChangeMasknumber of visuals: 2default visual id: 0x21visual:visual id: 0x21class: TrueColordepth: 24 planesavailable colormap entries: 256 per subfieldred, green, blue masks: 0xff0000, 0xff00, 0xffsignificant bits in color specification: 8 bitsvisual:visual id: 0x5dclass: TrueColordepth: 32 planesavailable colormap entries: 256 per subfieldred, green, blue masks: 0xff0000, 0xff00, 0xffsignificant bits in color specification: 8 bits
As follows an example configuration file for an 800 by 480 touch TFT panel:
root@colibri_t20:~# cat /etc/X11/xorg.conf.tfttouch# This is the minimal configuration necessary to use the Tegra driver.# Please refer to the xorg.conf man page for more configuration# options provided by the X server, including display-related options# provided by RandR 1.2 and higher.# Disable extensions not useful on Tegra.Section "Module"Disable "dri"Disable "dri2"Disable "glx"SubSection "extmod"Option "omit xfree86-dga"EndSubSectionEndSectionSection "Device"Identifier "Tegra"Driver "tegra"# VirtualDesktop indicates which virtual desktops should be used by X.# X will use the specified virtual desktop *and* the next one. In# order for an external app to share a display with the X server, it# needs to use the same virtual desktop. Valid values are integers 0# (default) or 1.# Option "VirtualDesktop" "1"# OverlayDepth is a 32-bit integer which is used to control overlay# stacking order. The overlay with the lowest depth is in front of# all others. This value has meaning only when multiple overlays are# present on a display.# Option "OverlayDepth" "255"# OverlayCombineMode determines how the X overlay is combined with the# overlay behind it during scanout. Available modes are: Opaque# (default), SourceAlphaBlend, and PremultSourceAlphaBlend. This# value has meaning only when an external process has created a# display which is behind the X server.# Option "OverlayCombineMode" "PremultSourceAlphaBlend"# ARGBHWCursor controls whether the X driver uses an overlay to# display 32-bit "true-color" cursors, or whether such cursors are# emulated in software. Valid values are "true" (default) to enable# hardware cursors, and "false" to disable them.Option "ARGBHWCursor" "false"EndSectionSection "ServerFlags"# Set the basic blanking screen saver timeout in minutes. 0 to disable.Option "blank time" "0"# Set the DPMS timeouts. These are set here because they are global# rather than screen-specific. These settings alone don't enable DPMS.# It is enabled per-screen (or per-monitor), and even then only when# the driver supports it.Option "standby time" "0"Option "suspend time" "0"Option "off time" "0"EndSectionSection "Monitor"Identifier "TFTLCD"EndSectionSection "Screen"Identifier "Screen TFTLCD"Device "Tegra"Monitor "TFTLCD"DefaultDepth 16SubSection "Display"Depth 16Modes "800x480"ViewPort 0 0Virtual 800 480EndSubsectionEndSectionSection "ServerLayout"Identifier "TouchView"Screen "Screen TFTLCD"EndSection
To use this configuration just rename /etc/X11/xorg.conf.tfttouch to /etc/X11/xorg.conf and reboot.
Note: Depth can be either 16 or 24 but the later requires a kernel change. See Display Output, Resolution and Timings (Linux) and adjust the colour depth (bits_per_pixel to 32) in the *[hdmi]_fb_data struct accordingly.
root@colibri_t20:~# export DISPLAY=:0root@colibri_t20:~# xrandrScreen 0: minimum 256 x 128, current 1920 x 1080, maximum 2048 x 2048TFTLCD connected 1920x1080+0+0 (normal left inverted right x axis y axis) 0mm x 0mm1920x1200 64.91920x1080 72.1*1600x1200 77.91680x1050 84.81400x1050 101.71280x1024 114.01440x900 115.31280x960 121.61366x768 142.41360x768 143.01152x864 150.11280x768 152.01280x720 162.11024x768 189.91024x600 242.9800x600 310.7720x576 359.4848x480 366.1800x480 388.0720x480 431.0640x480 484.7480x272 1135.8320x240 1925.0CRT disconnected (normal left inverted right x axis y axis)HDMI connected 1920x1080+0+0 (normal left inverted right x axis y axis) 0mm x 0mm1920x1080 72.1*+1280x720 162.1720x576 359.4720x480 431.0root@colibri_t20:~# xrandr --output TFTLCD --mode 1280x720root@colibri_t20:~# xrandr --output HDMI --mode 1280x720NvRmModuleResetWithHold deassert MOD[32] INST[0]root@colibri_t20:~# xrandrScreen 0: minimum 256 x 128, current 1280 x 720, maximum 2048 x 2048TFTLCD connected 1280x720+0+0 (normal left inverted right x axis y axis) 0mm x 0mm1920x1200 64.91920x1080 72.11600x1200 77.91680x1050 84.81400x1050 101.71280x1024 114.01440x900 115.31280x960 121.61366x768 142.41360x768 143.01152x864 150.11280x768 152.01280x720 162.1*1024x768 189.91024x600 242.9800x600 310.7720x576 359.4848x480 366.1800x480 388.0720x480 431.0640x480 484.7480x272 1135.8320x240 1925.0CRT disconnected (normal left inverted right x axis y axis)HDMI connected 1280x720+0+0 (normal left inverted right x axis y axis) 0mm x 0mm1920x1080 72.1 +1280x720 162.1*720x576 359.4720x480 431.0
Note: DVI-D resp. HDMI display modes are solely negotiated through DDC/EDID while the parallel RGB resp. LVDS display mode has to be defined within the kernel, "xrandr --newmode" does not work.