Ya, tahu!
Untuk mengaktifkan output VIRTUAL dari driver intel, Anda perlu membuat 20-intel.conf
file di direktori konfigurasi Xorg (di /usr/share/X11/xorg.conf.d
bawah Debian stretch, ditemukan dengan membaca /var/log/Xorg.0.log
)
Section "Device"
Identifier "intelgpu0"
Driver "intel"
Option "VirtualHeads" "2"
EndSection
/Etc/bumblebee/xorg.conf.nvidia saya adalah sebagai berikut:
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
Beberapa penjelasan: ia memerlukan bagian "Layar", jika tidak ia mencoba menggunakan perangkat Intel yang dideklarasikan dalam 20-intel.conf (yang baru saja kami tambahkan sebelumnya, oh my ...). Ini juga membutuhkan "AllowEmptyInitialConfiguration" untuk tetap dapat memulai dengan optirun ketika tidak ada monitor eksternal yang terpasang.
Dengan konfigurasi dan permulaan ini intel-virtual-output
, saya dapat mengakses port HDMI saya. Yeehaa !!!
Pemecahan masalah: jika optirun
atau intel-virtual-output
tidak bekerja, lihatlah /var/log/Xorg.8.log
(bumblebee membuat server X dengan tampilan: 8 digunakan secara internal).
Catatan Saya membaca di beberapa tempat yang KeepUnusedXServer
harus ditetapkan untuk true
dan PMMethod
untuk none
di /etc/bumblebee/bumblebee.conf
, saya tidak melakukan itu dan itu bekerja dengan baik. Jika saya melakukan itu, itu berfungsi, tetapi kemudian GPU diskrit tetap menyala bahkan setelah keluar dari aplikasi optirun-ed atau membunuh intel-virtual-output, yang tidak saya inginkan.
Lebih banyak catatan Sesuatu yang lain yang membuat saya membenturkan kepala saya ke dinding adalah menonaktifkan Nouveau dan memulai server Intel X: perlu dilakukan oleh flag yang diteruskan ke kernel, ditentukan dalam parameter GRUB. Di /etc/defaults/grub
, saya memiliki baris berikut:
GRUB_CMDLINE_LINUX_DEFAULT="quiet blacklist.nouveau=1 i915.modeset=1 gfxpayload=640x480 acpi_backlight=vendor acpi_osi=! acpi_osi=\"Windows 2009\""
(waspadalah dengan kutipan dan lolos dari penawaran).
Beberapa penjelasan: ia menghindari memuat nouveau (yang tidak kompatibel dengan server Nvidia X), dan memberi tahu driver Intel untuk masuk ke mode grafis tepat saat boot. Jika Anda tidak melakukan itu, maka server Intel X tidak dapat memulai, dan jatuh kembali ke server VESA biasa dengan rendering 3D sisi-CPU. The acpi_xxx
bendera yang diperlukan pada mesin tertentu untuk mengatasi bug BIOS yang membuatnya menabrak ketika akan dalam mode grafis dengan GPU diskrit off. Perhatikan bahwa ini khusus untuk notebook khusus ini (HP ZBook portable workstation), mungkin tidak perlu atau berbeda untuk laptop lain.
Pembaruan (6 Des 2017) Dengan distro (Buster) Debian terbaru, "915.modeset = 1 gfxpayload = 640x480" tidak diperlukan. Untuk menghapus nouveau, saya juga perlu membuat file nouveau.conf di /etc/modprobe.d dengan "blacklist nouveau" di dalamnya, lalu buat ulang ramdisk dengan "update-initramfs -u". Nyalakan kembali dan pastikan "nouveau" tidak dimuat lagi dengan "lsmod | grep nouveau".
Pembaruan (17 Des 2016) Dengan xorg-server terbaru (1,19), tampaknya ada masalah dalam fungsi RandR yang mengelola Gamma saat digunakan bersama intel-virtual-output
. Berikut adalah prosedur untuk menambal Xserver dan membuatnya berfungsi:
sudo apt-get build-dep xserver-xorg-core
apt-get source xorg-server
edit hw / xfree86 / mode / xg86RandR12.c Baris 1260, masukkan "kembali" (sehingga fungsi xf86RandR12CrtcComputeGamma()
tidak melakukan apa-apa)
dpkg-buildpackage -rfakeroot -us -uc
cd ..
sudo dpkg -i xserver-xorg-core_n.nn.n-n_amd64.deb
(ganti n.nn.n-n
dengan versi yang benar), reboot dan Yehaa !! bekerja lagi! (tapi ini perbaikan cepat dan kotor)
Pembaruan mengajukan laporan bug (sudah diketahui, dan baru saja diperbaiki):
https://bugs.freedesktop.org/show_bug.cgi?id=99129
Bagaimana saya menemukan:
Dipasang xserver-xorg-core-dbg
dan lakukan gdb /usr/lib/xorg/Xorg <xorg pid>
dari komputer lain melalui ssh.
Pembaruan (11 Jan 17) Tampaknya bug sekarang diperbaiki dalam paket Debian terbaru.
Pembaruan (24 Jan 18) Ketika Anda ingin memasang beamer untuk melakukan presentasi dan perlu mengkonfigurasi semuanya sebelum memulai (intel-virtual-output + xrandr), itu bisa membuat stres. Berikut adalah skrip kecil yang melakukan pekerjaan (penafian: banyak ruang untuk perbaikan, mengenai gaya dll ...):
# 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
pembaruan (10/07/2019)
"Perbaikan" untuk crash baru: tulis apa yang mengikuti di skrip (sebut saja bumblebee-startx.sh
misalnya):
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/
(ganti PCI: nn: nn: n dengan alamat kartu NVidia Anda, diperoleh dengan lspci)
Jalankan skrip ini dari jendela terminal sebagai root ( sudo bumblebee-startx.sh
), biarkan terminal terbuka, lalu optirun
dan intel-virtual-output
bekerja seperti yang diharapkan (catatan: kadang-kadang saya perlu menjalankan xrandr
selain membuat layar / videoprojector terdeteksi). Sekarang saya tidak mengerti mengapa perintah yang sama dimulai dari crash bumblebee, begitu banyak misteri di sini ... (tapi setidaknya itu memberikan perbaikan sementara).
Bagaimana saya menemukan: menulis skrip 'wrapper' untuk memulai xserver, mendeklarasikannya sebagai XorgBinary di bumblebee.conf, membuatnya menyimpan baris perintah ($ *) ke file, mencoba beberapa hal yang melibatkan LD_PRELOADing patch ke XServer untuk perbaiki crash di osLookupColor (tidak berfungsi), tetapi ketika saya mencoba untuk meluncurkan baris perintah yang sama dengan tangan, itu berhasil, dan itu terus bekerja tanpa tambalan saya (tapi saya masih tidak mengerti mengapa).
Pembaruan 11/15/2019
Setelah memperbarui, saya mengalami banyak kedipan, membuat sistem tidak dapat digunakan. Diperbaiki dengan menambahkan parameter kernel i915.enable_psr=0
(dalam /etc/defaults/grub
, lalu sudo update-grub
). Jika Anda mau sekarang, PSR berarti 'penyegaran diri panel', fitur hemat daya dari intel GPU (yang dapat menyebabkan layar berkedip).