ฉันกำลังใช้ Ubuntu 16.04 (สาขา dev), XFCE เป็นสภาพแวดล้อมเดสก์ทอป
คอมพิวเตอร์ของฉันเชื่อมต่อกับจอภาพสองจอแล้ว สายหนึ่งผ่านสาย VGA ปกติและอีกสายหนึ่งเชื่อมต่อกับ HDMI Switcher การตั้งค่านั้นใช้งานได้ดี แต่ทุกครั้งที่ฉันเปลี่ยน HDMI Switcher เป็นการเชื่อมต่อ HDMI อื่นชั่วคราว Xorg ตรวจพบว่าจอภาพได้ถูกตัดการเชื่อมต่อและตั้งค่า Xorg ใหม่ให้ใช้จอภาพเดียวเท่านั้นการสลับ HDMI Switcher กลับไปที่คอมพิวเตอร์ของฉัน ใช้อย่างใดอย่างหนึ่งฉันต้องเรียกด้วยตนเองว่าด้วยxrandr
ฉันจะป้องกันไม่ให้การตรวจจับอัตโนมัติของจอภาพชนิดนี้และกำหนดค่าใหม่เกิดขึ้นได้อย่างไร ฉันต้องการสลับ HDMI Switcher โดยไม่ต้องใช้คอมพิวเตอร์ทำอะไร
คำสั่งที่ใช้เพื่อกู้คืนการตั้งค่าหลายจอภาพ:
xrandr \
--output HDMI-1 \
--mode "1920x1080" \
--panning "1920x1080+1280+0/0x0+0+0" \
--output DVI-1-I \
--mode "1280x1024" \
--panning "1280x1024/0x0+0+0"
เอาต์พุต xrandr สำหรับการใช้งานปกติ:
Screen 0: minimum 320 x 200, current 3200 x 1080, maximum 8192 x 8192
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 connected 1920x1080+1280+0 (normal left inverted right x axis y axis) 443mm x 249mm panning 1920x1080+1280+0
1920x1080 60.00*+ 60.00 50.00 59.94 59.93
1920x1080i 60.00 50.00 59.94
1680x1050 59.95 59.88
1600x1024 60.17
1400x1050 74.76 70.00 59.98
1280x1024 75.02 60.02
1440x900 59.89 59.90
1280x960 60.00
1360x768 59.80 59.96
1280x800 59.91
1152x864 75.00 75.00 70.00 60.00
1280x720 60.00 50.00 59.94
1024x768 60.04 75.03 70.07 60.00
960x720 75.00 60.00
928x696 75.00 60.05
896x672 75.05 60.01
960x600 60.00
832x624 74.55
960x540 59.99
800x600 75.00 70.00 65.00 60.00 72.19 75.00 60.32 56.25
840x525 74.96 69.88 60.01 59.88
720x576 50.00
800x512 60.17
700x525 74.76 70.06 59.98
720x480 60.00 59.94
640x512 75.02 60.02
720x450 59.89
640x480 60.00 72.81 75.00 66.67 60.00 59.94
720x400 70.08
680x384 59.80 59.96
576x432 75.00 75.00 70.00 60.06
512x384 75.03 70.07 60.00
416x312 74.66
400x300 72.19 75.12 60.32 56.34
320x240 72.81 75.00 60.05
DVI-I-1 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 359mm x 287mm
1280x1024 60.02*+ 75.02
1280x960 60.00
1280x800 74.93 59.81
1152x864 75.00
1280x768 74.89 59.87
1280x720 60.00
1024x768 75.08 75.03 70.07 60.00
1024x576 59.97
832x624 74.55
800x600 72.19 75.00 70.01 60.32 56.25
848x480 60.00
640x480 75.00 72.81 66.67 60.00
720x400 70.08
xrandr เอาท์พุทเมื่อ HDMI switcher ถูกสลับเป็นการเชื่อมต่ออื่น:
Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 8192 x 8192
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 disconnected (normal left inverted right x axis y axis)
DVI-I-1 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 359mm x 287mm
1280x1024 60.02*+ 75.02
1280x960 60.00
1280x800 74.93 59.81
1152x864 75.00
1280x768 74.89 59.87
1280x720 60.00
1024x768 75.08 75.03 70.07 60.00
1024x576 59.97
832x624 74.55
800x600 72.19 75.00 70.01 60.32 56.25
848x480 60.00
640x480 75.00 72.81 66.67 60.00
720x400 70.08
อีกหลายสิ่งที่ฉันลอง:
เมื่อเชื่อมต่อจอภาพแล้วให้ค้นหาแบบจำลอง:
$ xvidtune -show
"1920x1080" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 -hsync +vsync
จากนั้นด้วยการยกเลิกการเชื่อมต่อจอภาพ:
$ xrandr --newmode "1920x1080-new" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 -hsync +vsync
$ xrandr --addmode HDMI-1 1920x1080-new
$ xrandr --output HDMI-1 --mode 1920x1080-new
สิ่งนี้ทำให้ฉันสามารถเปิดใช้งานการแสดงผลเมื่อถูกตัดการเชื่อมต่อซึ่งจะล้มเหลวเนื่องจากโหมดไม่มีอยู่ 1920x1080 อย่างไรก็ตามปัญหายังคงอยู่หากฉันสลับ HDMI Switcher จอแสดงผลจะปิดการใช้งานแม้ว่าฉันจะตั้งเป็นโหมดที่กำหนดเองก็ตาม
นี่เป็นเหตุการณ์ที่เกิดขึ้นเมื่อถอดการเชื่อมต่อจอแสดงผลด้วย HDMI Switcher:
$ udevadm monitor --property
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent
KERNEL[41678.571099] change /devices/pci0000:00/0000:00:02.0/0000:01:00.0/drm/card0 (drm)
ACTION=change
DEVNAME=/dev/dri/card0
DEVPATH=/devices/pci0000:00/0000:00:02.0/0000:01:00.0/drm/card0
DEVTYPE=drm_minor
HOTPLUG=1
MAJOR=226
MINOR=0
SEQNUM=3248
SUBSYSTEM=drm
UDEV [41678.573432] change /devices/pci0000:00/0000:00:02.0/0000:01:00.0/drm/card0 (drm)
ACTION=change
DEVNAME=/dev/dri/card0
DEVPATH=/devices/pci0000:00/0000:00:02.0/0000:01:00.0/drm/card0
DEVTYPE=drm_minor
HOTPLUG=1
ID_FOR_SEAT=drm-pci-0000_01_00_0
ID_PATH=pci-0000:01:00.0
ID_PATH_TAG=pci-0000_01_00_0
MAJOR=226
MINOR=0
SEQNUM=3248
SUBSYSTEM=drm
TAGS=:uaccess:master-of-seat:seat:
USEC_INITIALIZED=31279519
นี่คือเหตุการณ์ udev เมื่อเปิดใช้งานการแสดงผลอีกครั้งด้วย HDMI Switcher:
$ udevadm monitor --property
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent
KERNEL[41696.104481] change /devices/pci0000:00/0000:00:02.0/0000:01:00.0/drm/card0 (drm)
ACTION=change
DEVNAME=/dev/dri/card0
DEVPATH=/devices/pci0000:00/0000:00:02.0/0000:01:00.0/drm/card0
DEVTYPE=drm_minor
HOTPLUG=1
MAJOR=226
MINOR=0
SEQNUM=3249
SUBSYSTEM=drm
UDEV [41696.105685] change /devices/pci0000:00/0000:00:02.0/0000:01:00.0/drm/card0 (drm)
ACTION=change
DEVNAME=/dev/dri/card0
DEVPATH=/devices/pci0000:00/0000:00:02.0/0000:01:00.0/drm/card0
DEVTYPE=drm_minor
HOTPLUG=1
ID_FOR_SEAT=drm-pci-0000_01_00_0
ID_PATH=pci-0000:01:00.0
ID_PATH_TAG=pci-0000_01_00_0
MAJOR=226
MINOR=0
SEQNUM=3249
SUBSYSTEM=drm
TAGS=:seat:master-of-seat:uaccess:
USEC_INITIALIZED=31279519
.
$ sudo lshw -c display
*-display
description: VGA compatible controller
product: Redwood XT [Radeon HD 5670/5690/5730]
vendor: Advanced Micro Devices, Inc. [AMD/ATI]
physical id: 0
bus info: pci@0000:01:00.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: pm pciexpress msi vga_controller bus_master cap_list rom
configuration: driver=radeon latency=0
resources: irq:55 memory:c0000000-cfffffff memory:fea20000-fea3ffff ioport:e000(size=256) memory:c0000-dffff
sudo lshw -c display
คำถามได้ไหม หากคุณมี nvidia ลองคำตอบในaskubuntu.com/q/858798/26246
xrandr
เมื่อทำการเชื่อมต่อใหม่? คุณสามารถโพสต์ผลลัพธ์ของxrandr
การตั้งค่าได้ตามที่คุณต้องการหรือไม่? จากนั้นเราสามารถทำการกู้คืนโดยอัตโนมัติเมื่อทำการเชื่อมต่อใหม่ นอกจากนี้xrandr
คำสั่งของคุณที่จะ " เรียกใช้ด้วยตนเอง " คืออะไร