Sistem çalışırken takılı ekran bağlantı noktasını algılamıyor (yıldırım konektöründen)


9

Harici ekranım (yıldırım ile dizüstü bilgisayarıma bağlı), önyüklemeden önce bağlanırsa iyi çalışıyor. Bununla birlikte, herhangi bir yöntemle çıkarıldığında veya bağlantısı kesildiğinde, xrandr artık yeniden bağlanan monitörü algılamaz.

Ben koşuyorum Arch Linuxkullanarak, bumblebeeekran kartı kullanımı için. Harici kart şimşek konektörü ile bağlanır. Birisi bana makinede neyin yanlış olduğunu ve hotplugging'i nasıl çalıştırabileceğimi söyleyebilir mi? Teşekkürler.


[Hata ayıklama ayrıntıları]

Birden konuları takip bumblebeeve udevadmben birkaç test yaptım ve Hotplug senaryoyu yaptı. Ancak sorun hala çözülmedi. Sonuç aşağıdaki gibi gönderilir.

Bombus arısı için, çok fazla ayarlama yapmadım, çünkü ikinci monitör çalışırken takılmadığında iyi algılıyor.

Çalışırken takma ile ilgili sorun için. Aşağıdakileri yaptım:

Monitör normal çalışıyorsa, xrandr --querygeri döner

Screen 0: minimum 8 x 8, current 2944 x 1080, maximum 32767 x 32767
eDP1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 382mm x 215mm
   1920x1080     60.02*+

...

DP1 connected 1024x768+1920+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1024x768      60.00* 

...

Monitörü DP2'den açıkken çıkarırken udevadm monitor --environment --udevtoplanan bilgiler:

UDEV  [979.022342] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
ACTION=change
DEVNAME=/dev/dri/card0
DEVPATH=/devices/pci0000:00/0000:00:02.0/drm/card0
DEVTYPE=drm_minor
HOTPLUG=1
ID_FOR_SEAT=drm-pci-0000_00_02_0
ID_PATH=pci-0000:00:02.0
ID_PATH_TAG=pci-0000_00_02_0
MAJOR=226
MINOR=0
SEQNUM=2650
SUBSYSTEM=drm
TAGS=:master-of-seat:uaccess:seat:
USEC_INITIALIZED=3775241

Monitörü takarken:

UDEV  [1111.426386] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
ACTION=change
DEVNAME=/dev/dri/card0
DEVPATH=/devices/pci0000:00/0000:00:02.0/drm/card0
DEVTYPE=drm_minor
HOTPLUG=1
ID_FOR_SEAT=drm-pci-0000_00_02_0
ID_PATH=pci-0000:00:02.0
ID_PATH_TAG=pci-0000_00_02_0
MAJOR=226
MINOR=0
SEQNUM=2651
SUBSYSTEM=drm
TAGS=:seat:uaccess:master-of-seat:
USEC_INITIALIZED=3775241

UDEV  [1111.522857] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
ACTION=change
DEVNAME=/dev/dri/card0
DEVPATH=/devices/pci0000:00/0000:00:02.0/drm/card0
DEVTYPE=drm_minor
HOTPLUG=1
ID_FOR_SEAT=drm-pci-0000_00_02_0
ID_PATH=pci-0000:00:02.0
ID_PATH_TAG=pci-0000_00_02_0
MAJOR=226
MINOR=0
SEQNUM=2652
SUBSYSTEM=drm
TAGS=:seat:uaccess:master-of-seat:
USEC_INITIALIZED=3775241

udevMonitör takılıyken donanımı algılayabiliyor gibi görünüyor , bu yüzden xrandryeni monitörü kullanmanıza yardımcı olmak için bir udev kuralı oluşturdum . İçin betiğim /etc/udev/rules.d/95-monitor-hotplug.rulesşöyledir:

ACTION=="change", SUBSYSTEM=="drm", RUN+="/usr/local/bin/hotplug_monitor.sh"

ve /usr/local/bin/hotplug_monitor.sholduğu

#!/bin/sh
export XAUTHORITY=/home/chong/.Xauthority

function connectDP1(){
    DISPLAY=:0 xrandr --output DP1 --auto --right-of eDP1
}

function disconnectDP1(){
    DISPLAY=:0 xrandr --output DP1 --off
}

function connectDP2(){
    DISPLAY=:0 xrandr --output DP2 --auto --right-of eDP1
}

function disconnectDP2(){
    DISPLAY=:0 xrandr --output DP2 --off
}

xrandr | grep "DP1 connected" &> /dev/null && connectDP1 || disconnectDP1
xrandr | grep "DP2 connected" &> /dev/null && connectDP2 || disconnectDP2

Betik normal olarak çalışır ve kapanır, ancak daha sonra xrandr --queryyine de gösterilir DP1ve DP2bağlantısı kesilir.


Aynı davranışı yaşıyorum. Ayrıca Arch. Ben hiç şanssız nvidia tescilli sürücüleri ile yaban arısı olmadan çalıştı. Nouveau ile denedin mi?
Johnride

@Johnride Grafik kartım Maxwell Architecture. Nouveau henüz işe yaramadı. Şu anda HDMI bağlantı noktası ve doğrudan NVIDIA sürücüsü kullanıyorum. İyi çalışıyor gibi görünüyor.
Chong

bu, sonraki çekirdeklerden birinde giderilecektir bugzilla.kernel.org/show_bug.cgi?id=115121

Başka çözüm bulan var mı? Yukarıda belirtilenlerden daha yeni bir çekirdeğim var ve yine de Chong ile aynı problemim var. Ağlar portunu, web kamerasını ve usb'yi algıladım ve çalışıyorum, ancak ekranı almıyorum.
dvdgc13 14:17

#! / bin / bash (sh değil), aksi takdirde işlev ifadesi
hatalıdır

Yanıtlar:


1

Kodunuzu buldum ve çalışmasını sağlamaya devam ettim. HAYIR koşullarında bir "eğer o zaman" paradigmasıyla çalışmasını sağlayabilirim. "xrandr | grep" DAİMA tetikleyici olarak çalıştırıldığında DAİMA doğru olamadı, ancak manuel olarak çalıştırırsam çalışıyordu. Bunu iki senaryoya bölmek zorunda kaldım.

Cihazım farklı olsa da (StarTech CDPVGDVHDMDP), sürümümü buraya göndereceğim.

İlk olarak, sorun giderme sırasında udev kurallarını yeniden yüklemeyi yararlı buldum:

sudo udevadm control --reload-rules

Cihazım biraz farklıydı ve "hidraw" alt sisteminin tetikleyebileceğim bir şey olduğunu gördüm. Ayrıca, / bin / bash / path / to / script 'i çalıştırmak zorunda kaldım; aksi halde çalışmadı. Bu benim udev kuralı (/etc/udev/rules.d/95-monitor-hotplug.rules):

ACTION=="remove", SUBSYSTEM=="hidraw", RUN+="/bin/bash /home/user/scripts/hotunplug-displayport.sh"
ACTION=="add", SUBSYSTEM=="hidraw", RUN+="/bin/bash /home/user/scripts/hotplug-displayport.sh"

Bu benim hotplug betiğim

#!/bin/bash
export XAUTHORITY=/home/user/.Xauthority
DISPLAY=:0 /usr/bin/xrandr --addmode DP-1 1680x1050
DISPLAY=:0 /usr/bin/xrandr --output DP-1 --right-of  eDP-1 --mode 1680x1050
echo "$(date) : Hotplug Connect DP-1" >> /var/log/hotplug.txt
DISPLAY=:0 /usr/bin/xrandr --addmode DP-2 1680x1050
DISPLAY=:0 /usr/bin/xrandr --output DP-2 --right-of  eDP-1 --mode 1680x1050
echo "$(date) : Hotplug Connect DP-2" >> /var/log/hotplug.txt

Bu benim hot-unplug betiğim

#!/bin/bash
export XAUTHORITY=/home/user/.Xauthority
DISPLAY=:0 /usr/bin/xrandr --output DP-1 --off
echo "$(date) : Hotplug Disconnect DP-1" >> /var/log/hotplug.txt
DISPLAY=:0 /usr/bin/xrandr --output DP-2 --off
echo "$(date) : Hotplug Disconnect DP-2" >> /var/log/hotplug.txt

Bunu gönderdikten sonra, hotUNplug betiğini devre dışı bıraktım, çünkü gerekli değil ve aslında diğer usb aygıtlarını takarken sorunlar ortaya çıktı.
nd34567s32e
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.