はい、わかりました!
IntelドライバーのVIRTUAL出力をアクティブにするに20-intel.conf
は、Xorg構成ディレクトリにファイルを作成する必要があります(/usr/share/X11/xorg.conf.d
Debianストレッチの下で、読むことでわかります/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で宣言されたIntelデバイスを使用しようとします(前に追加したばかりです、ああ...)。また、外部モニターが接続されていないときにoptirunで起動できるようにするには、「AllowEmptyInitialConfiguration」が必要です。
この構成で開始するとintel-virtual-output
、HDMIポートにアクセスできました。イェーハー!!!
トラブルシューティング:動作する場合、optirun
または動作intel-virtual-output
しない場合は、見てください/var/log/Xorg.8.log
(bumblebeeは内部で使用されるdisplay:8でXサーバーを作成します)。
注意私はいくつかの場所で読み取らKeepUnusedXServer
に設定する必要がありますtrue
とPMMethod
するnone
には/etc/bumblebee/bumblebee.conf
、私はそれをしなかったし、それが正常に動作します。私がそれを行うと動作しますが、optirun-edアプリケーションを終了したり、intel-virtual-outputを削除した後でも、個別のGPUはオンのままです。
その他の注意私が壁にぶつかったのは、Nouveauを無効にしてIntel Xサーバーを起動することでした。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\""
(引用符とエスケープされた引用符に注意してください)。
いくつかの説明:nouveau(Nvidia Xサーバーと互換性がない)の読み込みを回避し、起動時にグラフィックスモードに移行するようIntelドライバーに指示します。そうしないと、Intel Xサーバーは起動できず、CPU側の3Dレンダリングを備えた単純な古いVESAサーバーにフォールバックします。acpi_xxx
フラグは離散GPUのオフとグラフィックモードで行くとき、それはクラッシュになりBIOSのバグを克服するために、この特定のマシン上で必要とされています。これはこの特定のノートブック(HP ZBookポータブルワークステーション)に固有のものであり、他のラップトップでは不要な場合や異なる場合があることに注意してください。
更新(2017年12月6日)最新のDebianディストリビューション(Buster)では、「915.modeset = 1 gfxpayload = 640x480」は不要です。nouveauを削除するには、「blacklist nouveau」を含む/etc/modprobe.dにnouveau.confファイルを作成し、「update-initramfs -u」を使用してramdiskを再作成する必要がありました。再起動し、「lsmod | grep nouveau」で「nouveau」がロードされていないことを確認します。
更新(2016年12月17日)最新のxorg-server(1.19)では、で使用されintel-virtual-output
たときにガンマを管理するRandR関数に問題があるようです。Xserverにパッチを適用して動作させる手順は次のとおりです。
sudo apt-get build-dep xserver-xorg-core
apt-get source xorg-server
hw / xfree86 / modes / xg86RandR12.c行1260を編集し、「return」を挿入します(関数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>
。
更新(1月11日17)バグは最新のDebianパッケージで修正されたようです。
更新(1月24日18)プレゼンテーションを行うためにビーマーをプラグインし、開始する直前にすべてを構成する必要がある場合(intel-virtual-output + 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を、lspciで取得したNVidiaカードのアドレスに置き換えてください)
(rootとしてターミナルウィンドウからこのスクリプトを実行しますsudo bumblebee-startx.sh
)、そして、ターミナルのオープンを維持optirun
し、intel-virtual-output
(:時々私は実行する必要がノート作業期待通りにxrandr
画面/ videoprojectorを検出するために加えて)。今、私はなぜ同じコマンドがバンブルビーのクラッシュから始まったのか理解していないので、多くの謎がここにあります...(しかし、少なくとも一時的な修正を提供します)。
私が考え出した方法: xserverを起動する 'ラッパー'スクリプトを作成し、bumblebee.confでXorgBinaryとして宣言し、コマンドライン($ *)をファイルに保存し、LD_PRELOADを使用してXServerにパッチを適用しましたosLookupColorのクラッシュを修正しました(動作しませんでした)が、同じコマンドラインを手動で起動しようとすると動作し、パッチなしで動作し続けました(しかし、それでも理由はわかりません)。
アップデート11/15/2019
更新後、私は多くのちらつきを経験し、システムが使用できなくなりました。カーネルパラメータを追加することで修正しましたi915.enable_psr=0
(in /etc/defaults/grub
、then sudo update-grub
)。必要に応じて、PSRは「パネルセルフリフレッシュ」を意味します。これは、Intel GPUの省電力機能です(画面のちらつきを引き起こす可能性があります)。