Multiple monitors for imx6dl

cancel
Showing results for 
Search instead for 
Did you mean: 

Multiple monitors for imx6dl

161 Views
Contributor IV

Hi everyone

I want to use LVDS and HDMI to display at the same time on imx6dl ( kernel 4.1.15 with Xserver (X11))

First the i2c for HDMI address is

root@imx6qsabresd:~# i2cdetect -y -r 2
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: 30 -- -- -- -- -- -- -- -- -- 3a -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

The setting on device tree

#imx6qdl-sabresd.dtsi

&i2c3 {
    clock-frequency = <100000>;
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_i2c3>;
    status = "okay";

    hdmi: edid@50 {
        compatible = "fsl,imx6-hdmi-i2c";
        reg = <0x50>;
        status = "okay";
    };
};

xorg.conf

Section "Device"
Identifier "i.MX Accelerated Framebuffer Device"
Driver "vivante"
Option "fbdev" "/dev/fb0"
Option "vivante_fbdev" "/dev/fb0"
Option "HWcursor" "true"

EndSection

Section "ServerFlags" 

Option "BlankTime" "0"

Option "StandbyTime" "0"

Option "SuspendTime" "0"

Option "OffTime" "0"

EndSection

But first I find the "lspci" doesn't work

root@imx6qsabresd:/dev# lspci

pcilib: Cannot open /proc/bus/pci
lspci: Cannot find any working access method.

But I can use HDMI or LVDS independently by set u-boot

#only hdmi

mmc read 0x12000000 0x800 0x5000;mmc read 0x18000000 0x5000 0x800;setenv bootargs console=ttymxc0,115200 root=/dev/mmcblk3p2 rootwait rw video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24,bpp=32 video=mxcfb1:off;bootz 0x12000000 - 0x18000000

#only lvds

mmc read 0x12000000 0x800 0x5000;mmc read 0x18000000 0x5000 0x800;setenv bootargs console=ttymxc0,115200 root=/dev/mmcblk3p2 rootwait rw video=mxcfb0:dev=ldb,1024x768M@60,if=RGB24,bpp=32 video=mxcfb1:off;bootz 0x12000000 - 0x18000000

It seems to work if uses them at the same time.

mmc read 0x12000000 0x800 0x5000;mmc read 0x18000000 0x5000 0x800;setenv bootargs console=ttymxc0,115200 root=/dev/mmcblk3p2 rootwait rw video=mxcfb0:dev=ldb,1024x768M@60,if=RGB24,bpp=32 video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24,bpp=32;bootz 0x12000000 - 0x18000000

# then I set the fb2 on ?

echo 0 >/sys/class/graphics/fb2/blank

But I don't know how to run my program on the second screen. Also I can not to check the second screen by Qt function:

qApp->desktop()->screenCount(); //just only 1 screen it returns.

It doesn't seem to work that setting the option in "xorg.conf".

What should I do?

Regards

Mihan

Labels (2)
0 Kudos
3 Replies

83 Views
Contributor IV

Hi all

Now I can use two screens at the same time by setting `xorg.conf` following iMX6-Dual Display with vivante and X11(xserver) only one is possible with acceleration, How to use a....

But now my touchscreen can not only use on the first screen.

And I found the screen just only screen 0 (name: DISP3 BG)

root@imx6qsabresd:/etc# xrandr
Screen 0: minimum 240 x 240, current 1024 x 768, maximum 8192 x 8192
DISP3 BG connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
U:1024x768p-59 59.91*+

The xdpyinfo output:

name of display: :0.0
version number: 11.0
vendor string: The X.Org Foundation
vendor release number: 11800000
X.Org version: 1.18.0
maximum request size: 16777212 bytes
motion buffer size: 256
bitmap unit, bit order, padding: 32, LSBFirst, 32
image byte order: LSBFirst
number of supported pixmap formats: 7
supported pixmap formats:
depth 1, bits_per_pixel 1, scanline_pad 32
depth 4, bits_per_pixel 8, scanline_pad 32
depth 8, bits_per_pixel 8, scanline_pad 32
depth 15, bits_per_pixel 16, scanline_pad 32
depth 16, bits_per_pixel 16, scanline_pad 32
depth 24, bits_per_pixel 32, scanline_pad 32
depth 32, bits_per_pixel 32, scanline_pad 32
keycode range: minimum 8, maximum 255
focus: PointerRoot
number of extensions: 27
BIG-REQUESTS
Composite
DAMAGE
DOUBLE-BUFFER
DPMS
DRI2
GLX
Generic Event Extension
MIT-SCREEN-SAVER
MIT-SHM
Present
RANDR
RENDER
SGI-GLX
SHAPE
SYNC
X-Resource
XC-MISC
XFIXES
XFree86-DGA
XFree86-DRI
XFree86-VidModeExtension
XInputExtension
XKEYBOARD
XTEST
XVideo
vivext
default screen number: 0
number of screens: 2

screen #0:
dimensions: 1024x768 pixels (270x203 millimeters)
resolution: 96x96 dots per inch
depths (7): 24, 1, 4, 8, 15, 16, 32
root window id: 0x1a8
depth of root window: 24 planes
number of colormaps: minimum 1, maximum 1
default colormap: 0x20
default number of colormap cells: 256
preallocated pixels: black 0, white 16777215
options: backing-store WHEN MAPPED, save-unders NO
largest cursor: 1024x768
current input event mask: 0x5a0000
StructureNotifyMask SubstructureNotifyMask SubstructureRedirectMask
PropertyChangeMask
number of visuals: 64
default visual id: 0x21

...

screen #1:
dimensions: 1920x1080 pixels (508x285 millimeters)
resolution: 96x96 dots per inch
depths (7): 24, 1, 4, 8, 15, 16, 32
root window id: 0x1aa
depth of root window: 24 planes
number of colormaps: minimum 1, maximum 1
default colormap: 0x41
default number of colormap cells: 256
preallocated pixels: black 0, white 16777215
options: backing-store WHEN MAPPED, save-unders NO
largest cursor: 1920x1080
current input event mask: 0x20000
StructureNotifyMask
number of visuals: 64
default visual id: 0x42

...

I know how to set the "map-to-output" Using a touchscreen in a multi-head setup

But there is only one screen (xrandr shown).

What should I do?

0 Kudos

83 Views
NXP TechSupport
NXP TechSupport

what do you mean “But now my touchscreen can not only use on the first screen”, do you mean your touchscreen can only use on the first screen? so now you can enable dual display, but only one display can use touchscreen, you want to enable touchscreen on your second display?

0 Kudos

83 Views
Contributor IV

Sorry my description is unclear.

Here is my configure file "/etc/X11/xorg.conf".

Now both monitors can be used (hdmi and lvds), but the touchscreen can control the pointer between different display screens.

I want this touchscreen is just matched with lvds, but not affected other input devices.

PS: the touchscreen configuration may be the default.

Maybe these picture can explain what I want

now.pngI want.png

0 Kudos