Hệ thống không phát hiện cổng hiển thị cắm nóng (thông qua đầu nối sấm sét)


9

Màn hình ngoài của tôi (được kết nối với máy tính xách tay của tôi thông qua tiếng sét) hoạt động tốt nếu được kết nối trước khi khởi động. Tuy nhiên, một khi đã rút phích cắm hoặc ngắt kết nối bằng bất kỳ phương tiện nào, xrandr sẽ không phát hiện ra màn hình được kết nối lại nữa.

Tôi đang chạy Arch Linux, sử dụng bumblebeeđể xử lý card đồ họa. Thẻ ngoài được kết nối thông qua đầu nối sấm sét. Ai đó có thể cho tôi biết những gì đã xảy ra với máy và làm thế nào tôi có thể làm cho công việc cắm nóng? Cảm ơn.


[Chi tiết gỡ lỗi]

Theo nhiều chủ đề trên bumblebeeudevadm, tôi đã thực hiện một số thử nghiệm và tạo một kịch bản hotplug. Tuy nhiên, vấn đề vẫn chưa được giải quyết. Kết quả được đăng như dưới đây.

Đối với ong nghệ, tôi không chỉnh nhiều, vì màn hình thứ hai được phát hiện tốt khi không cắm nóng.

Đối với vấn đề nóng cắm liên quan. Tôi đã làm như sau:

Khi màn hình hoạt động bình thường, xrandr --querytrở về

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* 

...

Khi rút phích cắm màn hình khỏi DP2 khi udevadm monitor --environment --udevmở, thông tin được thu thập là:

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

Và khi cắm màn hình vào:

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

Dường như udevcó thể phát hiện phần cứng khi màn hình được cắm, vì vậy tôi đã giải quyết một quy tắc udev để giúp xrandrsử dụng màn hình mới. Kịch bản của tôi /etc/udev/rules.d/95-monitor-hotplug.ruleslà như sau:

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

/usr/local/bin/hotplug_monitor.sh

#!/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

Kịch bản chạy và thoát bình thường, nhưng sau đó xrandr --queryvẫn hiển thị DP1DP2ngắt kết nối.


Tôi đang trải nghiệm chính xác hành vi tương tự. Ngoài ra trên Arch. Tôi đã thử mà không có ong nghệ cũng như các trình điều khiển độc quyền của nvidia không có may mắn. Bạn đã thử với nouveau?
Johnride

@ John John Card đồ họa của tôi là Maxwell Architecture. Nouveau chưa làm cho nó hoạt động được. Hiện tại tôi đang sử dụng cổng HDMI và trình điều khiển NVIDIA trực tiếp. Có vẻ như họ đang làm việc tốt.
Chong

điều này sẽ được sửa trong một trong các kernel tiếp theo bugzilla.kernel.org/show_orms.cgi?id=115121

Có ai tìm ra giải pháp không? Tôi đã có một kernel mới hơn kernel đã đề cập ở trên và tôi vẫn gặp vấn đề tương tự Chong. Tôi nhận được cổng mạng, webcam và usb được phát hiện và hoạt động, nhưng không hiển thị.
dvdgc13

#! / bin / bash (không phải sh) nếu không thì câu lệnh hàm bị lỗi
nd34567s32e

Câu trả lời:


1

Tôi tìm thấy mã của bạn và kiên trì cố gắng làm cho nó hoạt động. Trong điều kiện KHÔNG, tôi có thể làm cho nó hoạt động với mô hình "nếu vậy". "xrandr | grep" LUÔN LUÔN không thành sự thật khi chạy dưới dạng kích hoạt udev, nhưng hoạt động nếu tôi chạy thủ công. Tôi đã bị buộc phải chia nó thành hai kịch bản.

Mặc dù thiết bị của tôi khác (StarTech CDPVGDVHDMDP), tôi sẽ đăng phiên bản của mình tại đây.

Đầu tiên, tôi thấy hữu ích khi tải lại các quy tắc udev khi khắc phục sự cố:

sudo udevadm control --reload-rules

Thiết bị của tôi hơi khác một chút và tôi thấy rằng hệ thống con "hidraw" là thứ tôi có thể kích hoạt. Ngoài ra, tôi đã buộc phải chạy / bin / bash / path / to / script "; nếu không thì nó không chạy. Đây là quy tắc udev của tôi (/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"

Đây là kịch bản hotplug của tôi

#!/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

Đây là kịch bản rút phích cắm nóng của tôi

#!/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

Kể từ khi đăng bài này, tôi đã vô hiệu hóa tập lệnh hotUNplug, vì nó không cần thiết và thực sự gặp phải vấn đề khi cắm các thiết bị usb khác.
nd34567s32e
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.