[Intel-gfx] Disabling a second monitor while in frame buffer

Jesse Barnes jbarnes at virtuousgeek.org
Mon Dec 10 23:44:54 CET 2012


On Mon, 10 Dec 2012 17:03:05 -0500
Jonathan Phénix <greaterd at gmail.com> wrote:

> Hi,
> 
> on my machine, I have 2 monitors attached, they are seen as HMDI
> connectors by the software. The 1st monitor is connected using a DVI-D
> cable while the second one uses the HDMI port of the machine and
> connects to the monitor using a DVI-D connector. I want to use the
> frame buffer only on the first monitor while the machine is initially
> booting and then use both monitors while Xorg is running.
> 
> As mentioned near the end of this page:
> 
> http://intellinuxgraphics.org/documentation.html
> 
> it's possible to control this behavior using the kernel command line.
> I want to force the resolution of the first monitor to 1024x768 while
> the second monitor is disabled. I used the following to do it:
> 
> video=HDMI-A-1:1024x768 video=HDMI-A-2:d
> 
> It's almost working, the second monitor goes black as expected and the
> first one switch to 1024x768.
> 
> The first problem with that configuration, is that every 10 seconds,
> the first monitor will go black for 3 seconds. If I remove
> "video=HDMI-A-2:d" or the second monitor is physically not attached, I
> don't have this problem. If I add "drm.debug=0x04" to the kernel
> command line, each time the first monitor goes black, I get the
> following debugging output in 'dmesg':

This sounds like bogus polling.  I think Daniel has fixed this in the
-queued branch, but you can use drm_kms_helper.poll=0 on your boot line
to avoid it.

> Additionally, the second monitor fails to be enabled properly in Xorg
> when it was disabled in frame buffer mode, even if I use:
> 
> Option "Enable"  "true"
> 
> in the right monitor section as documented at:
> 
> http://intellinuxgraphics.org/dualhead.html
> 
> This is the monitor information for in "Xorg.log" when it is working properly:
> 
> ---
> [    76.352] (II) intel(0): Printing probed modes for output HDMI2
> [    76.352] (II) intel(0): Modeline "1360x768"x59.8   84.75  1366
> 1431 1567 1776  768 771 781 798 -hsync +vsync (47.7 kHz UP)
> [    76.352] (II) intel(0): Modeline "1680x1050"x60.0  146.25  1680
> 1960 2136 2240  1050 1053 1059 1089 -hsync +vsync (65.3 kHz eP)
> [    76.352] (II) intel(0): Modeline "1920x1200"x60.0  154.00  1920
> 1968 2000 2080  1200 1203 1209 1235 +hsync -vsync (74.0 kHz e)
> [    76.352] (II) intel(0): Modeline "1600x1200"x60.0  162.00  1600
> 1664 1856 2160  1200 1201 1204 1250 +hsync +vsync (75.0 kHz e)
> [    76.352] (II) intel(0): Modeline "1280x1024"x75.0  135.00  1280
> 1296 1440 1688  1024 1025 1028 1066 +hsync +vsync (80.0 kHz e)
> [    76.352] (II) intel(0): Modeline "1280x1024"x60.0  108.00  1280
> 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
> [    76.352] (II) intel(0): Modeline "1440x900"x59.9  106.50  1440
> 1520 1672 1904  900 903 909 934 -hsync +vsync (55.9 kHz e)
> [    76.352] (II) intel(0): Modeline "1280x960"x60.0  108.00  1280
> 1376 1488 1800  960 961 964 1000 +hsync +vsync (60.0 kHz e)
> [    76.352] (II) intel(0): Modeline "1280x800"x59.8   83.50  1280
> 1352 1480 1680  800 803 809 831 +hsync -vsync (49.7 kHz e)
> [    76.352] (II) intel(0): Modeline "1152x864"x75.0  108.00  1152
> 1216 1344 1600  864 865 868 900 +hsync +vsync (67.5 kHz e)
> [    76.352] (II) intel(0): Modeline "1024x768"x75.1   78.80  1024
> 1040 1136 1312  768 769 772 800 +hsync +vsync (60.1 kHz e)
> [    76.352] (II) intel(0): Modeline "1024x768"x70.1   75.00  1024
> 1048 1184 1328  768 771 777 806 -hsync -vsync (56.5 kHz e)
> [    76.352] (II) intel(0): Modeline "1024x768"x60.0   65.00  1024
> 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
> [    76.352] (II) intel(0): Modeline "1024x768"x87.0   44.90  1024
> 1032 1208 1264  768 768 776 817 interlace +hsync +vsync (35.5 kHz e)
> [    76.352] (II) intel(0): Modeline "800x600"x72.2   50.00  800 856
> 976 1040  600 637 643 666 +hsync +vsync (48.1 kHz e)
> [    76.352] (II) intel(0): Modeline "800x600"x75.0   49.50  800 816
> 896 1056  600 601 604 625 +hsync +vsync (46.9 kHz e)
> [    76.352] (II) intel(0): Modeline "800x600"x60.3   40.00  800 840
> 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
> [    76.352] (II) intel(0): Modeline "800x600"x56.2   36.00  800 824
> 896 1024  600 601 603 625 +hsync +vsync (35.2 kHz e)
> [    76.352] (II) intel(0): Modeline "640x480"x72.8   31.50  640 664
> 704 832  480 489 491 520 -hsync -vsync (37.9 kHz e)
> [    76.352] (II) intel(0): Modeline "640x480"x75.0   31.50  640 656
> 720 840  480 481 484 500 -hsync -vsync (37.5 kHz e)
> [    76.352] (II) intel(0): Modeline "640x480"x66.7   30.24  640 704
> 768 864  480 483 486 525 -hsync -vsync (35.0 kHz e)
> [    76.352] (II) intel(0): Modeline "640x480"x60.0   25.20  640 656
> 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
> [    76.352] (II) intel(0): Modeline "720x400"x70.1   28.32  720 738
> 846 900  400 412 414 449 -hsync +vsync (31.5 kHz e)
> [    76.378] (II) intel(0): EDID for output DP2
> [    76.378] (II) intel(0): Output VGA1 disconnected
> [    76.378] (II) intel(0): Output HDMI1 connected
> [    76.378] (II) intel(0): Output DP1 disconnected
> [    76.378] (II) intel(0): Output HDMI2 enabled by config file
> [    76.378] (II) intel(0): Output DP2 disconnected
> [    76.378] (II) intel(0): Using user preference for initial modes
> [    76.378] (II) intel(0): Output HDMI1 using initial mode 1366x768
> [    76.378] (II) intel(0): Output HDMI2 using initial mode 1360x768
> ---
> 
> And when it's not as a side effect of being disabled in frame buffer mode:
> 
> ---
> [   229.480] (II) intel(0): Printing probed modes for output HDMI2
> [   229.480] (II) intel(0): Modeline "1024x768"x60.0   65.00  1024
> 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz d)
> [   229.480] (II) intel(0): Modeline "800x600"x60.3   40.00  800 840
> 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz d)
> [   229.480] (II) intel(0): Modeline "640x480"x59.9   25.18  640 656
> 752 800  480 490 492 525 -hsync -vsync (31.5 kHz d)
> [   229.505] (II) intel(0): EDID for output DP2
> [   229.505] (II) intel(0): Output VGA1 disconnected
> [   229.505] (II) intel(0): Output HDMI1 connected
> [   229.505] (II) intel(0): Output DP1 disconnected
> [   229.505] (II) intel(0): Output HDMI2 enabled by config file
> [   229.505] (II) intel(0): Output DP2 disconnected
> [   229.505] (II) intel(0): Using user preference for initial modes
> [   229.505] (II) intel(0): Output HDMI1 using initial mode 1366x768
> [   229.505] (II) intel(0): Output HDMI2 using initial mode 1024x768
> ---
> 
> I suspect in this case that the second monitor fails to enumerate all
> the supported modes for a reason I can't identify.
> 
> I am using a software stack that is very close to the one proposed at:
> 
> http://intellinuxgraphics.org/2012.07.html
> 
> built from source for a x86_64 architecture using Sandybridge chipset.
> I also tried with the current stable kernel (3.6.9), same problem. Any
> ideas what could be the problem(s)?

Yeah the video= param will force detection to fail for outputs set as
'd' on the boot line.  Sounds like we might need another option that
will let you disable it just for the fbcon and not generally.

-- 
Jesse Barnes, Intel Open Source Technology Center



More information about the Intel-gfx mailing list