Disabling a second monitor while in frame buffer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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':

---
[   61.335798] [drm:intel_ironlake_crt_detect_hotplug], ironlake
hotplug adpa=0xf40000, result 0
[   61.335805] [drm:intel_crt_detect], CRT not detected via hotplug
[   61.335819] [drm:output_poll_execute], [CONNECTOR:7:VGA-1] status
updated from 2 to 2
[   61.374359] [drm:output_poll_execute], [CONNECTOR:10:HDMI-A-1]
status updated from 1 to 1
[   61.376914] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x5143003f
[   61.381256] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x5143003f
[   61.385252] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x5143003f
[   61.386696] [drm:intel_dp_detect], DPCD: 0000000000000000
[   61.386702] [drm:output_poll_execute], [CONNECTOR:13:DP-1] status
updated from 2 to 2
[   61.425164] [drm:output_poll_execute], [CONNECTOR:16:HDMI-A-2]
status updated from 2 to 1
[   61.427715] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x5143003f
[   61.432170] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x5143003f
[   61.436156] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x5143003f
[   61.437600] [drm:intel_dp_detect], DPCD: 0000000000000000
[   61.437606] [drm:output_poll_execute], [CONNECTOR:17:DP-2] status
updated from 2 to 2
[   61.437653] [drm:drm_fb_helper_hotplug_event],
[   61.437656] [drm:drm_helper_probe_single_connector_modes],
[CONNECTOR:7:VGA-1]
[   61.437660] [drm:intel_ironlake_crt_detect_hotplug], ironlake
hotplug adpa=0xf40000, result 0
[   61.437663] [drm:intel_crt_detect], CRT not detected via hotplug
[   61.437667] [drm:drm_helper_probe_single_connector_modes],
[CONNECTOR:7:VGA-1] disconnected
[   61.437670] [drm:drm_helper_probe_single_connector_modes],
[CONNECTOR:10:HDMI-A-1]
[   61.514713] [drm:drm_edid_to_eld], ELD: no CEA Extension found
[   61.514727] [drm:drm_mode_debug_printmodeline], Modeline
31:"1280x960" 0 108000 1280 1376 1488 1800 960 961 964 1000 0x40 0x5
[   61.514734] [drm:drm_mode_prune_invalid], Not using 1280x960 mode 12
[   61.514737] [drm:drm_mode_debug_printmodeline], Modeline
26:"1600x1200" 0 162000 1600 1664 1856 2160 1200 1201 1204 1250 0x40
0x5
[   61.514741] [drm:drm_mode_prune_invalid], Not using 1600x1200 mode 12
[   61.514743] [drm:drm_mode_debug_printmodeline], Modeline
25:"1280x1024" 0 108000 1280 1328 1440 1688 1024 1025 1028 1066 0x40
0x5
[   61.514747] [drm:drm_mode_prune_invalid], Not using 1280x1024 mode 12
[   61.514749] [drm:drm_mode_debug_printmodeline], Modeline
24:"1280x800" 0 83500 1280 1352 1480 1680 800 803 809 831 0x40 0x6
[   61.514753] [drm:drm_mode_prune_invalid], Not using 1280x800 mode 12
[   61.514755] [drm:drm_mode_debug_printmodeline], Modeline
23:"1680x1050" 0 119000 1680 1728 1760 1840 1050 1053 1059 1080 0x40
0x9
[   61.514758] [drm:drm_mode_prune_invalid], Not using 1680x1050 mode 12
[   61.514761] [drm:drm_mode_debug_printmodeline], Modeline
22:"1440x900" 0 106000 1440 1520 1672 1904 900 903 909 934 0x40 0x6
[   61.514764] [drm:drm_mode_prune_invalid], Not using 1440x900 mode 12
[   61.514767] [drm:drm_mode_debug_printmodeline], Modeline
21:"1366x768" 0 85500 1366 1436 1579 1792 768 771 774 798 0x48 0x5
[   61.514770] [drm:drm_mode_prune_invalid], Not using 1366x768 mode 11
[   61.514774] [drm:drm_helper_probe_single_connector_modes],
[CONNECTOR:10:HDMI-A-1] probed modes :
[   61.514777] [drm:drm_mode_debug_printmodeline], Modeline
30:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
[   61.514780] [drm:drm_mode_debug_printmodeline], Modeline
27:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5
[   61.514784] [drm:drm_mode_debug_printmodeline], Modeline
28:"800x600" 56 36000 800 824 896 1024 600 601 603 625 0x40 0x5
[   61.514788] [drm:drm_mode_debug_printmodeline], Modeline
29:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa
[   61.514792] [drm:drm_helper_probe_single_connector_modes],
[CONNECTOR:13:DP-1]
[   61.517410] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x5143003f
[   61.521005] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x5143003f
[   61.524980] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x5143003f
[   61.526435] [drm:intel_dp_detect], DPCD: 0000000000000000
[   61.526442] [drm:drm_helper_probe_single_connector_modes],
[CONNECTOR:13:DP-1] disconnected
[   61.526455] [drm:drm_helper_probe_single_connector_modes],
[CONNECTOR:16:HDMI-A-2]
[   61.526460] [drm:drm_helper_probe_single_connector_modes],
[CONNECTOR:16:HDMI-A-2] disconnected
[   61.526466] [drm:drm_helper_probe_single_connector_modes],
[CONNECTOR:17:DP-2]
[   61.529075] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x5143003f
[   61.532982] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x5143003f
[   61.536964] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x5143003f
[   61.538412] [drm:intel_dp_detect], DPCD: 0000000000000000
[   61.538418] [drm:drm_helper_probe_single_connector_modes],
[CONNECTOR:17:DP-2] disconnected
[   61.538422] [drm:drm_setup_crtcs],
[   61.538437] [drm:drm_enable_connectors], connector 7 enabled? no
[   61.538443] [drm:drm_enable_connectors], connector 10 enabled? yes
[   61.538447] [drm:drm_enable_connectors], connector 13 enabled? no
[   61.538457] [drm:drm_enable_connectors], connector 16 enabled? no
[   61.538460] [drm:drm_enable_connectors], connector 17 enabled? no
[   61.538462] [drm:drm_target_preferred], looking for cmdline mode on
connector 10
[   61.538464] [drm:drm_target_preferred], found mode 1024x768
[   61.538466] [drm:drm_setup_crtcs], picking CRTCs for 8192x8192 config
[   61.538470] [drm:drm_setup_crtcs], desired mode 1024x768 set on crtc 3
[   61.538475] [drm:drm_crtc_helper_set_config],
[   61.538477] [drm:drm_crtc_helper_set_config], [CRTC:3] [FB:32]
#connectors=1 (x y) (0 0)
[   61.538487] [drm:drm_crtc_helper_set_config], crtc changed, full mode switch
[   61.538489] [drm:drm_crtc_helper_set_config],
[CONNECTOR:10:HDMI-A-1] to [CRTC:3]
[   61.538492] [drm:drm_crtc_helper_set_config], attempting to set
mode from userspace
[   61.538494] [drm:drm_mode_debug_printmodeline], Modeline
20:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
[   61.538499] [drm:drm_crtc_helper_set_mode], [CRTC:3]
[   61.590314] [drm:intel_wait_for_vblank], vblank wait timed out
[   61.622665] [drm:sandybridge_update_wm], FIFO watermarks For pipe A
- plane 5, cursor: 6
[   61.622669] [drm:ironlake_check_srwm], watermark 1: display plane
9, fbc lines 3, cursor 6
[   61.622672] [drm:ironlake_check_srwm], watermark 2: display plane
11, fbc lines 3, cursor 6
[   61.622675] [drm:ironlake_check_srwm], watermark 3: display plane
47, fbc lines 3, cursor 6
[   61.622678] [drm:intel_update_fbc],
[   61.622921] [drm:intel_choose_pipe_bpp_dither], forcing bpc to 8 for HDMI
[   61.622924] [drm:intel_choose_pipe_bpp_dither], setting pipe bpc to
8 (max display bpc 8)
[   61.622926] [drm:ironlake_crtc_mode_set], Mode for pipe 0:
[   61.622929] [drm:drm_mode_debug_printmodeline], Modeline
20:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
[   61.675156] [drm:intel_wait_for_vblank], vblank wait timed out
[   61.675162] [drm:ironlake_update_plane], Writing base 00064000
00000000 0 0 4096
[   61.675180] [drm:intel_update_fbc],
[   61.727055] [drm:intel_wait_for_vblank], vblank wait timed out
[   61.727060] [drm:sandybridge_update_wm], FIFO watermarks For pipe A
- plane 5, cursor: 6
[   61.727065] [drm:ironlake_check_srwm], watermark 1: display plane
9, fbc lines 3, cursor 6
[   61.727078] [drm:ironlake_check_srwm], watermark 2: display plane
11, fbc lines 3, cursor 6
[   61.727084] [drm:ironlake_check_srwm], watermark 3: display plane
47, fbc lines 3, cursor 6
[   61.727091] [drm:drm_crtc_helper_set_mode], [ENCODER:9:TMDS-9] set
[MODE:20:1024x768]
[   61.727105] [drm:sandybridge_update_wm], FIFO watermarks For pipe A
- plane 5, cursor: 6
[   61.727108] [drm:ironlake_check_srwm], watermark 1: display plane
9, fbc lines 3, cursor 6
[   61.727111] [drm:ironlake_check_srwm], watermark 2: display plane
11, fbc lines 3, cursor 6
[   61.727113] [drm:ironlake_check_srwm], watermark 3: display plane
47, fbc lines 3, cursor 6
[   61.778958] [drm:intel_wait_for_vblank], vblank wait timed out
[   61.830860] [drm:intel_wait_for_vblank], vblank wait timed out
[   61.831674] [drm:gen6_fdi_link_train], FDI_RX_IIR 0x100
[   61.831677] [drm:gen6_fdi_link_train], FDI train 1 done.
[   61.832332] [drm:gen6_fdi_link_train], FDI_RX_IIR 0x600
[   61.832336] [drm:gen6_fdi_link_train], FDI train 2 done.
[   61.832338] [drm:gen6_fdi_link_train], FDI train done.
[   61.833557] [drm:intel_update_fbc],
[   61.834067] [drm:drm_crtc_helper_set_config], Setting connector
DPMS state to on
[   61.834070] [drm:drm_crtc_helper_set_config],
[CONNECTOR:10:HDMI-A-1] set DPMS on
[   61.834084] [drm:drm_crtc_helper_set_config],
[   61.834086] [drm:drm_crtc_helper_set_config], [CRTC:5] [NOFB]
[   66.713024] [drm:drm_crtc_helper_set_config],
[   66.713027] [drm:drm_crtc_helper_set_config], [CRTC:3] [FB:32]
#connectors=1 (x y) (0 0)
[   66.713035] [drm:drm_crtc_helper_set_config],
[CONNECTOR:10:HDMI-A-1] to [CRTC:3]
[   66.713039] [drm:drm_crtc_helper_set_config],
[   66.713056] [drm:drm_crtc_helper_set_config], [CRTC:5] [NOFB]
[   66.713069] [drm:drm_crtc_helper_set_config],
[   66.713070] [drm:drm_crtc_helper_set_config], [CRTC:3] [FB:32]
#connectors=1 (x y) (0 0)
[   66.713074] [drm:drm_crtc_helper_set_config],
[CONNECTOR:10:HDMI-A-1] to [CRTC:3]
[   66.713085] [drm:drm_crtc_helper_set_config],
[   66.713086] [drm:drm_crtc_helper_set_config], [CRTC:3] [FB:32]
#connectors=1 (x y) (0 0)
[   66.713090] [drm:drm_crtc_helper_set_config],
[CONNECTOR:10:HDMI-A-1] to [CRTC:3]
---

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)?

Regards,

- Jonathan Ph?nix


[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux