Monitör otomatik yapılandırması nasıl devre dışı bırakılır?


14

Masaüstü ortamı olarak Ubuntu 16.04 (dev şube), XFCE çalıştırıyorum.

Bilgisayarım iki monitöre bağlı. Biri normal VGA kablosu ile diğeri bir HDMI Switcher'a bağlanır. Bu kurulum iyi çalışıyor, ancak HDMI Switcher'ı geçici olarak başka bir HDMI bağlantısına her değiştirdiğimde Xorg, monitörün bağlantısının kesildiğini algılıyor ve Xorg'u tek bir monitör kullanacak şekilde yeniden yapılandırıyor, HDMI Switcher'ı bilgisayarıma geri döndürmek çift monitörü yeniden etkinleştirmiyor ikisini de kullanın, bunu manuel olarak tetiklemeliyimxrandr

Bu tür otomatik monitör algılama ve yeniden yapılandırmanın olmasını nasıl önleyebilirim? HDMI Switcher'ı bilgisayar bir şey yapmadan değiştirebilmek istiyorum.

Çoklu monitör kurulumunu geri yüklemek için kullanılan komut:

xrandr \
 --output HDMI-1 \
   --mode "1920x1080" \
   --panning "1920x1080+1280+0/0x0+0+0" \
 --output DVI-1-I \
   --mode "1280x1024" \
   --panning "1280x1024/0x0+0+0"

düzenli kullanımda xrandr çıkışı:

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  

HDMI switcher farklı bir bağlantıya değiştirildiğinde xrandr çıkışı:

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  

Denediğim bazı şeyler:

Monitör bağlıyken modelini bulun:

$ xvidtune -show 
"1920x1080"   148.50   1920 2008 2052 2200   1080 1084 1089 1125 -hsync +vsync

Ardından monitör bağlı değilken:

$ 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

Bu, bağlantı kesildiğinde ekranı etkinleştirmeme izin verir, aksi takdirde varolmayan 1920x1080 modu nedeniyle başarısız olur. Bununla birlikte, HDMI Switcher'ı değiştirirsem ekran özel bir moda ayarlasam bile devre dışı kalır.

Bu, HDMI Switcher ile ekranın bağlantısını keserken udev olaylarıdır:

$ 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

HDMI Switcher ile ekranı yeniden etkinleştirirken udev olayları şunlardır:

$ 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

Monitörün xrandryeniden bağlandığında listelendiğini varsayıyorum ? xrandrKurulumun ne zaman olduğu gibi çıktısını gönderebilir misiniz ? daha sonra yeniden bağlandığında kolayca otomatik olarak geri yüklenmesini sağlayabiliriz. Ayrıca, xrandr" manuel olarak tetikleme " komutunuz nedir ?
Jacob Vlijm

Gönderi güncellendi. Ancak yapılandırmayı otomatik olarak geri yüklemek istemiyorum, ilk etapta dağılmamasını istiyorum.
Grumbel

Bunu düzelten bir grafik sürücüsü bulamazsanız, büyük olasılıkla erişilemez. Sorun, sürücü ile ekranınız arasındaki iletişimin bağlantıda başarısız olmasından kaynaklanır ve varsayılanlara atlar. Bir kısayol tuşuyla veya otomatik olarak bir tür işlem yapmanız gerekir.
Seçiminizi

@Grumbel, sen çıktısını eklemek Could sudo lshw -c displaysoruya. Nvidia'nız
user.dz

Yanıtlar:


2

Bu son bir cevap değil, sadece doğru yönde bir işaretçi. XFCE üzerinde xfsettingsdprogram RRScreenChangeNotifyolayın idare edilmesinden ve mod anahtarının tetiklenmesinden sorumludur xfce4-settings-4.12.0/xfsettingsd/displays.c, fonksiyonun tamamı satır 77'de bulunabilir , fonksiyon çağrılır xfce_displays_helper_screen_on_event. Yeni bir monitör bağlandığında, işlev devre dışı bırakıldığında mod artık değişmez.

Hata ayıklama bilgileri şu yollarla elde edilebilir:

DISPLAY=:0 XFSETTINGSD_DEBUG=512 xfsettingsd --replace --no-daemon

1
Önerin için teşekkürler. RRScreenChangeNotify'ın işlenmesini devre dışı bıraktım ve monitörlerin askıya alındıktan hemen sonra uyanacağı sorunlar da dahil olmak üzere kurulumumdaki birçok sorunu düzeltti.
Jim Paris

0

Diğer Tarçın ve Gnome için burada bir çözüm bulunabilir :

Tarçın:

gsettings set org.cinnamon.settings-daemon.plugins.xrandr active false

Gnome:

gsettings set org.gnome.settings-daemon.plugins.xrandr active false
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.