আমার বাহ্যিক প্রদর্শন (বজ্রপাতে আমার ল্যাপটপের সাথে সংযুক্ত) বুট-আপের আগে সংযুক্ত থাকলে ভাল কাজ করে। যাইহোক, একবার এটি কোনও উপায়ে প্লাগড বা সংযোগ বিচ্ছিন্ন হয়ে গেলে, xrandr পুনরায় সংযুক্ত মনিটরটি সনাক্ত করতে পারে না।
আমি চালাচ্ছি Arch Linux
, bumblebee
গ্রাফিক কার্ড হ্যান্ডলিংয়ের জন্য ব্যবহার করছি। বাহ্যিক কার্ড বজ্র সংযোগকারী মাধ্যমে সংযুক্ত করা হয়। কেউ আমাকে বলতে পারেন যে মেশিনটিতে কী সমস্যা আছে এবং আমি কীভাবে হটপ্লাগিংয়ের কাজটি করতে পারি? ধন্যবাদ।
[ডিবাগিং বিশদ]
bumblebee
এবং একাধিক থ্রেড অনুসরণ করে udevadm
, আমি বেশ কয়েকটি পরীক্ষা করেছিলাম এবং হটপ্লাগ স্ক্রিপ্ট তৈরি করি। তবুও সমস্যার সমাধান হয় না এখনও। ফলাফল নীচে পোস্ট করা হয়।
বাম্বলির জন্য, আমি খুব বেশি টুইট করতে পারি নি, যেহেতু হটপ্লাগ না করা হলে দ্বিতীয় মনিটরের জরিমানা শোধ করা হয়।
হট-প্লাগিং সম্পর্কিত সমস্যার জন্য। আমি নিম্নলিখিতগুলি করেছেন:
মনিটর যখন স্বাভাবিকভাবে কাজ করে তখন xrandr --query
ফিরে আসে
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*
...
udevadm monitor --environment --udev
খোলার সাথে ডিপি 2 থেকে মনিটরটি আনপ্লাগ করার সময় , সংগৃহীত তথ্য হ'ল:
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
এবং মনিটরের প্লাগ ইন করার সময়:
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
মনে হচ্ছে যে udev
মনিটরটি প্লাগ ইন করা অবস্থায় হার্ডওয়্যার সনাক্ত করতে সক্ষম, তাই xrandr
নতুন মনিটরের ব্যবহারের জন্য আমি একটি ওদেব নিয়ম সেট আপ করেছি । আমার স্ক্রিপ্ট /etc/udev/rules.d/95-monitor-hotplug.rules
নিম্নলিখিত হিসাবে রয়েছে:
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
স্ক্রিপ্টটি চলতে থাকে এবং সাধারনত প্রস্থান করে তবে এরপরে xrandr --query
এখনও দেখায় DP1
এবং DP2
সংযোগ বিচ্ছিন্ন হয়ে যায়।