हाँ, पता चला!
इंटेल ड्राइवर के VIRTUAL आउटपुट को सक्रिय करने के लिए, आपको 20-intel.conf
Xorg कॉन्फ़िगरेशन डायरेक्टरी ( /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 का अर्थ है 'पैनल सेल्फ रिफ्रेश', जो कि इंटेल जीपीयू की एक बिजली-बचत सुविधा है (जो स्क्रीन फ़्लिकरिंग पैदा कर सकता है)।