एक लैपटॉप पर एचडीएमआई को सक्रिय करने का प्रबंधन न करें (जिसमें ऑप्टिमस / भौंरा हो)


17

मैं डेबियन (खिंचाव) के साथ एक पीसी (एचपी जेडबुक) पर एचडीएमआई आउटपुट का उपयोग करने की कोशिश कर रहा हूं। मैंने भौंरा को कॉन्फ़िगर किया है, यह अच्छी तरह से काम करता है (glxinfo और optirun glxinfo अपेक्षित जानकारी की रिपोर्ट करता है, और मैंने जटिल GLSL शेड का परीक्षण किया है जो अपेक्षित रूप से भी काम करता है)।

अब मैं एचडीएमआई पर एक वीडिओप्रोजेक्टर को प्लग करने में सक्षम होना चाहूंगा। मैंने यहां पढ़ा है [1] कि एनवीआईडीआईए बोर्ड पर एचडीएमआई कनेक्ट होने पर इसे कॉन्फ़िगर करने के लिए इंटेल-वर्चुअल-आउटपुट का उपयोग किया जा सकता है (एक्सट्रैंड द्वारा वीरटेल आउटपुट का उपयोग किया जा सकता है)। हालाँकि, इंटेल-वर्चुअल-आउटपुट कहते हैं:

 no VIRTUAL outputs on ":0"

जब मैं करता हूं xrandr -q, कोई वीरटेल आउटपुट सूचीबद्ध नहीं है, मेरे पास केवल:

Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
eDP-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 345mm x 194mm
   1920x1080     60.02*+  59.93  
   1680x1050     59.95    59.88  
   1600x1024     60.17  
   ... other video modes ...
   400x300       60.32    56.34  
   320x240       60.05  
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
HDMI-2 disconnected (normal left inverted right x axis y axis)

Xserver-xorg-video-Intel का मेरा इंस्टॉल किया गया संस्करण है: xserver-xorg-video-Intel -_2_2.9.917 + git20160706-1_amd64.deb

अपडेट (Sat. Dec. 09 2016) मैंने डेबियन को अपडेट किया है, और जब मैं कुछ एप्लिकेशन (उदाहरण के लिए xemacs) शुरू कर रहा हूं तो दूसरा मॉनिटर सक्रिय होने पर एक्स क्रैश हो जाता है। बैठ गया। 17 दिसंबर 2016: हां, पता चला! (जवाब अद्यतन)।

अद्यतन (बुध सितम्बर 27 2017) विधि 99% मामलों में काम करती है, लेकिन पिछले सप्ताह मैंने एक बीमर की कोशिश की जो केवल 50 हर्ट्ज मोड को स्वीकार करता है, और 60 हर्ट्ज के अलावा और कुछ भी नहीं प्राप्त कर सकता है (इसलिए यह काम नहीं किया)। किसी को पता है कि 50 हर्ट्ज मोड को कैसे मजबूर करना है?

अपडेट (Tue 01 अक्टूबर 2019) अर्घ! फिर से टूटी हुई: एक्स और एनवीडिया चालक को अपडेट करने के बाद, ऑप्टिरन अब दुर्घटनाग्रस्त हो जाता है ( /var/log/Xorg.8.logकहते हैं कि एक्सगोर, ओस्लोकुपकलर + 0x139 में दुर्घटना)। अपडेट (07 अक्टूबर 2019) एक अस्थायी फिक्स (अपडेटेड उत्तर) मिला।

[१] https://github.com/Bumblebee-Project/Bumblebee/wiki/Multi-monitor-bupup


1
इसका उत्तर नहीं है क्योंकि यह एनवीडिया जीपीयू का उपयोग नहीं करता है, लेकिन एक एफवाईआई के रूप में - एनवीडिया 960 एम ऑप्टिमस लैपटॉप (2016 डीएल इंस्पिरॉन 15) के साथ फेडोरा 25 चला रहा है, मैं बाहरी एचडीएमआई मॉनिटर का उपयोग कर सकता हूं जिसमें कोई एनआईडीआईए या भौंरा चालक स्थापित नहीं है। इस सेटअप के साथ, बाहरी hdmi मॉनीटर का पता नहीं चलता है अगर मैं बूट के बाद इसे प्लग करता हूं। इस कार्य को करने के लिए, बूट से पहले एचडीएमआई मॉनिटर को प्लग इन करें, और ग्रब मेनू पर मिरर किए हुए मॉनिटर को प्राप्त करने के लिए Fn-F8 मॉनिटर स्विचर का उपयोग करें, एक्सलैंड के साथ एक्स में लॉगिन करें और एक विस्तारित मॉनिटर प्राप्त करें।
carlsborg

जवाबों:


20

हाँ, पता चला! इंटेल ड्राइवर के VIRTUAL आउटपुट को सक्रिय करने के लिए, आपको 20-intel.confXorg कॉन्फ़िगरेशन डायरेक्टरी ( /usr/share/X11/xorg.conf.dडेबियन स्ट्रेक के तहत, पढ़ने से पता चला /var/log/Xorg.0.log) में एक फ़ाइल बनाने की आवश्यकता है

Section "Device"
    Identifier "intelgpu0"
    Driver "intel"
    Option "VirtualHeads" "2"
EndSection

मेरा /etc/bumblebee/xorg.conf.nvidia इस प्रकार है:

Section "ServerLayout"
    Identifier  "Layout0"
    Option      "AutoAddDevices" "true"
    Option      "AutoAddGPU" "false"
EndSection

Section "Device"
    Identifier  "DiscreteNvidia"
    Driver      "nvidia"
    VendorName  "NVIDIA Corporation"
    Option "ProbeAllGpus" "false"
    Option "NoLogo" "true"
    Option "AllowEmptyInitialConfiguration"
EndSection

Section "Screen"
    Identifier "Screen0"
    Device "DiscreteNVidia"
EndSection

कुछ स्पष्टीकरण: इसे "स्क्रीन" अनुभाग की आवश्यकता है, अन्यथा यह 20-Intel.conf में घोषित इंटेल डिवाइस का उपयोग करने की कोशिश करता है (जो कि हमने अभी पहले जोड़ा था, ओह माय ...)। यह भी "AllowEmptyInitialConfiguration" Optirun के साथ शुरू करने में सक्षम रहने के लिए जब कोई बाहरी मॉनिटर संलग्न है की जरूरत है।

इस विन्यास और शुरुआत के साथ intel-virtual-output, मैं अपने एचडीएमआई पोर्ट तक पहुंचने में सक्षम था। येहा !!!

समस्या निवारण: यदि काम नहीं करता है optirunया intel-virtual-outputनहीं, तो एक बार देखें /var/log/Xorg.8.log(भौंरा प्रदर्शन के साथ एक एक्स सर्वर बनाता है: 8 आंतरिक रूप से उपयोग किया जाता है)।

नोट्स मैं कई स्थानों है कि कम से पढ़ KeepUnusedXServerसेट किया जाना चाहिए trueऔर PMMethodकरने के लिए noneमें /etc/bumblebee/bumblebee.conf, मुझे लगता है कि ऐसा नहीं किया और यह ठीक काम करता है। अगर मैं ऐसा करता हूं, तो यह काम करता है, लेकिन तब असतत GPU एक ऑप्टिरुन-एड एप्लिकेशन से बाहर निकलने या इंटेल-वर्चुअल-आउटपुट को मारने के बाद भी बना रहता है, जो मैं नहीं चाहता था।

अधिक नोट्स कुछ और है जिसने मुझे दीवार पर अपना सिर धमाकेदार बना दिया नोव्यू को निष्क्रिय कर दिया और इंटेल एक्स सर्वर शुरू किया: इसे कर्ब को पारित झंडे द्वारा किया जाना चाहिए, जिसे GRUB मापदंडों में निर्दिष्ट किया गया है। में /etc/defaults/grub, मेरी निम्न पंक्ति है:

GRUB_CMDLINE_LINUX_DEFAULT="quiet blacklist.nouveau=1 i915.modeset=1 gfxpayload=640x480 acpi_backlight=vendor acpi_osi=! acpi_osi=\"Windows 2009\""

(उद्धरण चिह्नों से बचकर रहें)।

कुछ स्पष्टीकरण: यह लोडिंग नोव्यू (जो एनवीडिया एक्स सर्वर के साथ असंगत है) से बचा जाता है, और इंटेल ड्राइवर को बूट समय पर ग्राफिक्स मोड में जाने के लिए कहता है। यदि आप ऐसा नहीं करते हैं, तो इंटेल एक्स सर्वर शुरू नहीं हो सकता है, और यह सीपीयू-साइड 3 डी रेंडरिंग के साथ एक सादे पुराने वीईएसए सर्वर पर वापस आ जाता है। acpi_xxxझंडे इस विशिष्ट मशीन एक BIOS बग है कि यह दुर्घटनाग्रस्त जब असतत GPU बंद के साथ ग्राफ़िक्स मोड में जा रहा बनाता काबू पाने के लिए पर आवश्यक हैं। ध्यान दें कि यह इस विशेष नोटबुक (HP ZBook पोर्टेबल वर्कस्टेशन) के लिए विशिष्ट है, यह अन्य लैपटॉप के लिए अनावश्यक या भिन्न हो सकता है।

अद्यतन (6 दिसंबर 2017) नवीनतम डेबियन डिस्ट्रो (बस्टर) के साथ, "915.modeset = 1 gfxpayload = 640x480" अनावश्यक है। Nouveau को निकालने के लिए, मुझे भी "blacklist nouveau" के साथ /etc/modprobe.d में nouveau.conf फ़ाइल बनाने की आवश्यकता है, फिर "अपडेट -ititfs -u" के साथ रैमडिस्क को फिर से बनाएँ। रिबूट और सुनिश्चित करें कि "nouveau" को "lsmod | grep nouveau" के साथ अब लोड नहीं किया गया है।

अद्यतन (१ server दिसंबर २०१६) नवीनतम एक्सगॉर-सर्वर (१.१ ९) के साथ, एक रैंडर फ़ंक्शन में एक समस्या प्रतीत होती है जो गामा का प्रबंधन करती है जब इसका उपयोग किया जाता है intel-virtual-output। यहाँ Xserver को पैच करने और काम करने के लिए इसे प्राप्त करने की प्रक्रिया है:

sudo apt-get build-dep xserver-xorg-core
apt-get source xorg-server

hw / xfree86 / mod / xg86RandR12.c लाइन 1260 को संपादित करें, "रिटर्न" डालें (ताकि फ़ंक्शन xf86RandR12CrtcComputeGamma()कुछ भी न करे)

dpkg-buildpackage -rfakeroot -us -uc
cd ..
sudo dpkg -i xserver-xorg-core_n.nn.n-n_amd64.deb

( n.nn.n-nसही संस्करण के साथ बदलें ), रिबूट और येहा !! फिर से काम करता है! (लेकिन यह एक त्वरित और गंदा फिक्स है)

अद्यतन ने एक बग रिपोर्ट दर्ज की (जो पहले से ही ज्ञात थी, और अभी तय थी): https://bugs.freedesktop.org/show_bug.cgi?id=99129

मुझे कैसे पता चला: ssh के माध्यम से दूसरी मशीन से इंस्टॉल xserver-xorg-core-dbgऔर किया gdb /usr/lib/xorg/Xorg <xorg pid>गया।

अद्यतन (11 जनवरी 17) लगता है कि बग अब नवीनतम डेबियन पैकेज में तय हो गया है।

अद्यतन (24 जनवरी 18) जब आप एक प्रस्तुति करने के लिए एक बीमर को प्लग करना चाहते हैं और शुरू करने से पहले सब कुछ कॉन्फ़िगर करने की आवश्यकता होती है (इंटेल-वर्चुअल-आउटपुट + xrandr), तो यह तनावपूर्ण हो सकता है। यहाँ एक छोटी स्क्रिप्ट है जो काम करती है (अस्वीकरण: सुधार के लिए बहुत जगह, शैली आदि के बारे में ...):

# beamer.sh: sets Linux display for doing a presentation, 
#  for bumblebee configured on a laptop that has the HDMI
#  plugged on the NVidia board.
#
# Bruno Levy, Wed Jan 24 08:45:45 CET 2018
#
# Usage: 
#    beamer.sh widthxheight
#    (default is 1024x768)


# Note: output1 and output2 are hardcoded below,
#  change according to your configuration.
output1=eDP1
output2=VIRTUAL1

# Note: I think that the following command should have done
# the job, but it does not work. 
#    xrandr --output eDP1 --size 1024x768 --output VIRTUAL1 --size 1024x768 --same-as eDP1
# My guess: --size is not implemented with VIRTUAL devices.
# Thus I try to find a --mode that fits my needs in the list of supported modes.

wxh=$1

if [ -z "$wxh" ]; then
  wxh=1024x768
fi

# Test whether intel-virtual-output is running and start it.
ivo_process=`ps axu |grep 'intel-virtual-output' |egrep -v 'grep'`
if [ -z "$ivo_process" ]; then
   intel-virtual-output
   sleep 3
fi

# Mode names on the primary output are simply wxh (at least on
#  my configuration...)
output1_mode=$wxh

echo Using mode for $output1: $output1_mode

# Mode names on the virtual output are like: VIRTUAL1.ID-wxh
# Try to find one in the list that matches what we want.
output2_mode=`xrandr |grep $output2\\\. |grep $wxh |awk '{print $1}'`
# There can be several modes, take the first one.
output2_mode=`echo $output2_mode |awk '{print $1}'` 

echo Using mode for $output2: $output2_mode

# Showtime !
xrandr --output $output1 --mode $output1_mode --output $output2 --mode $output2_mode --same-as $output1

अपडेट (10/07/2019)

नए क्रैश के लिए "फिक्स": एक स्क्रिप्ट में निम्नानुसार लिखें ( bumblebee-startx.shउदाहरण के लिए इसे कॉल करें ):

optirun ls # to load kernel driver
/usr/lib/xorg/Xorg :8 -config /etc/bumblebee/xorg.conf.nvidia \
 -configdir /etc/bumblebee/xorg.conf.d -sharevts \
 -nolisten -verbose 3 -isolateDevice PCI:01:00:0 \
 -modulepath /usr/lib/nvidia/nvidia,/usr/lib/xorg/modules/

(PCI की जगह: nn: nn: n अपने NVidia कार्ड के पते के साथ, lspci के साथ प्राप्त)

इस स्क्रिप्ट को रूट ( sudo bumblebee-startx.sh) के रूप में एक टर्मिनल विंडो से चलाएँ , टर्मिनल को खुला रखें, optirunऔर फिर intel-virtual-outputअपेक्षा के अनुसार काम करें (ध्यान दें: कभी-कभी मुझे xrandrस्क्रीन / वीडियोप्रोजैक्टर का पता लगाने के अलावा चलाने की आवश्यकता होती है)। अब मुझे समझ नहीं आ रहा है कि भौंरा के क्रैश से एक ही कमांड क्यों शुरू हुई, इतने सारे रहस्य यहाँ ... (लेकिन कम से कम यह एक अस्थायी फिक्स देता है)।

मैंने कैसे पता लगाया: xserver को शुरू करने के लिए एक 'रैपर' स्क्रिप्ट लिखी, इसे bumblebee.conf में XorgBinary के रूप में घोषित किया, इसने कमांड लाइन ($ *) को एक फ़ाइल में सहेजा, कुछ सामान की कोशिश की, जिसमें LDPR को शामिल किया गया था। osLookupColor (काम नहीं किया) में दुर्घटना को ठीक करें, लेकिन जब मैंने उसी कमांड लाइन को हाथ से लॉन्च करने की कोशिश की, तो यह काम किया, और यह मेरे पैच के बिना काम करना जारी रखा (लेकिन मुझे अभी भी समझ नहीं आया कि क्यों)।

अद्यतन 11/15/2019 अद्यतन करने के बाद, मैंने बहुत चंचलता का अनुभव किया, जिससे सिस्टम अनुपयोगी हो गया। कर्नेल पैरामीटर i915.enable_psr=0( /etc/defaults/grubफिर, sudo update-grub) जोड़कर तय किया गया । यदि आप अभी चाहते हैं, PSR का अर्थ है 'पैनल सेल्फ रिफ्रेश', जो कि इंटेल जीपीयू की एक बिजली-बचत सुविधा है (जो स्क्रीन फ़्लिकरिंग पैदा कर सकता है)।


3
तुम, मैं तुम्हें पसंद करता हूँ! : D मैं आर्च लाइन पर हूं, मैं शुरू नहीं कर पाया intel-virtual-output। निकास कोड के साथ बाहर निकल रहा था 111। मैं यह भी पता लगाने की कोशिश कर रहा था कि यह क्या कर रहा है strace। आपकी पोस्ट मिली, मैंने आपकी /etc/X11/xorg.conf.d/20-intel.confही तरह बनाया , मेरे BusID "PCI:2:0:0"मामले में भी जोड़ा । इसी तरह की सेटिंग्स /etc/bumblebee/xorg.conf.nvidiaऔर बेम का इस्तेमाल किया , intel-virtual-outputठीक चलता है। xrandrअब मेरे अन्य सभी बंदरगाहों का पता लगा रहा है! : D <3 /var/log/Xorg.8.logवास्तव में मदद करने के बारे में समस्या निवारण भाग
46 पर GabLeRoux

ठीक है, थोड़ा सा परीक्षण करने के बाद, हाँ मैं इसके साथ सूचीबद्ध उपकरणों को देखता हूं xrandr, लेकिन केबल को हुक करने से मुझे माउस दिखाई देता है, लेकिन बाहरी डिस्प्ले पर खिड़कियां नहीं दिखाई दे रही हैं। कभी-कभी यह मेरी मुख्य स्क्रीन की एक प्रति दिखाता है और फिर दोनों स्क्रीन काली हो जाती हैं और कुछ भी नहीं होता है। और प्रणाली के साथ शुरू नहीं हुआ /etc/X11/xorg.conf.d/20-intel.confऔर मैं लॉग में कुछ भी नहीं देखता हूं। वैसे भी, इसे साझा करने के लिए धन्यवाद, मुझे लगता है कि मैं एक समाधान के करीब हूं।
गैबेलरॉक्स

यह उस डेस्कटॉप वातावरण पर निर्भर हो सकता है जिसका आप उपयोग कर रहे हैं। मैं केडीई का उपयोग कर रहा हूं, और वरीयताओं में स्क्रीन कॉन्फ़िगरेशन को थोड़ा मोड़ने की आवश्यकता है।
ब्रूनोलेवी

मुझे लगता है कि मुझे अब यह काम कर रहा है। यह मेरे टीवी के साथ विफल हो रहा था, लेकिन यह मेरे डिस्प्लेपोर्ट के साथ काम कर रहा है :)
GabLeRoux

1
@BrunoLevy यह अंत में काम करता है। मेरे पुराने लैपटॉप को जीवन पर एक नया पट्टा देने के लिए धन्यवाद!
जोसेफ आर।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.