সিস্টেম হট-প্লাগড ডিসপ্লে পোর্ট সনাক্ত করে না (বজ্র সংযোগকারী মাধ্যমে)


9

আমার বাহ্যিক প্রদর্শন (বজ্রপাতে আমার ল্যাপটপের সাথে সংযুক্ত) বুট-আপের আগে সংযুক্ত থাকলে ভাল কাজ করে। যাইহোক, একবার এটি কোনও উপায়ে প্লাগড বা সংযোগ বিচ্ছিন্ন হয়ে গেলে, 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সংযোগ বিচ্ছিন্ন হয়ে যায়।


আমি ঠিক একই আচরণ অনুভব করছি। আর্কেও আমি ভোদাবিহীন পাশাপাশি এনভিডিয়া মালিকানাধীন ড্রাইভারদের সাথে ভাগ্য ছাড়াই চেষ্টা করেছি। আপনি কি নভো দিয়ে চেষ্টা করেছেন?
জনরাইড

@ জনরাইড আমার গ্রাফিক কার্ডটি ম্যাক্সওয়েল আর্কিটেকচার। নুভা এটি এখনও কাজ করেন নি। বর্তমানে আমি এইচডিএমআই বন্দর এবং সরাসরি এনভিআইডিএ ড্রাইভার ব্যবহার করছি। দেখে মনে হচ্ছে তারা ঠিকঠাক কাজ করছে।
চঙ

এটি পরবর্তী কার্নেলগুলির মধ্যে একটি ঠিক করা হবে bugzilla.kernel.org/show_bug.cgi?id=115121

কেউ একটি সমাধান পাওয়া গেছে? আমার উপরে উল্লিখিতটির চেয়ে একটি নতুন কার্নেল পেয়েছে এবং আমার এখনও চংয়ের মতো একই সমস্যা রয়েছে। আমি নেটওয়ার্কগুলি বন্দর, ওয়েবক্যাম এবং ইউএসবি সনাক্ত এবং কার্যকারী পেয়েছি, তবে প্রদর্শনটি নয়।
ডিভিডিজিসি

#! / বিন / বাশ (sh নয়) অন্যথায় ফাংশন বিবৃতিটি ভুলভ্রান্তিতে রয়েছে
nd34567s32e

উত্তর:


1

আমি আপনার কোডটি পেয়েছি এবং এটি কার্যকর করার চেষ্টা করার জন্য অবিচল। কোনও শর্তে আমি এটি "যদি তবে" দৃষ্টান্ত দিয়ে কাজ করতে পারি? "xrandr | গ্রেপ" সর্বদা সত্য হতে ব্যর্থ হয়েছে যখন ইউদেব ট্রিগার হিসাবে চালিত হয়, তবে আমি যদি নিজে এটি চালাতাম তবে কাজ করে। আমি এটিকে দুটি স্ক্রিপ্টে ভাঙ্গতে বাধ্য করেছিলাম।

যদিও আমার ডিভাইসটি আলাদা (স্টারটেক সিডিপিভিজিডিভিএইচডিএমডিপি), আমি আমার সংস্করণটি এখানে পোস্ট করব।

সমস্যা সমাধানের সময় প্রথমে আমি ইউদেব বিধিগুলি পুনরায় লোড করা সহায়ক বলে মনে করেছি:

sudo udevadm control --reload-rules

আমার ডিভাইসটি কিছুটা আলাদা ছিল এবং আমি দেখতে পেলাম যে সাবডিজম "হিড্রা" এমন একটি জিনিস যা আমি ট্রিগার করতে পারি। এছাড়াও, আমাকে "বিন / বাশ / পাথ / টু / স্ক্রিপ্ট" চালাতে বাধ্য করা হয়েছিল; অন্যথায় এটি চলেনি। এটি আমার উদেব নিয়ম (/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"

এটি আমার হটপ্লাগ স্ক্রিপ্ট

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

এটি আমার হট-আনপ্লাগ স্ক্রিপ্ট

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

এটি পোস্ট করার পরে, আমি হট ইউএনপ্লাইগ স্ক্রিপ্টটি অক্ষম করেছি, কারণ এটি প্রয়োজনীয় নয় এবং প্রকৃতপক্ষে অন্যান্য ইউএসবি ডিভাইস প্লাগ করার সময় সমস্যাগুলি কেস করে।
nd34567s32e
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.