จอแสดงผลภายนอกด้วย Bumblebee


14

ฉันกำลังพยายามเชื่อมต่อจอภาพภายนอกของฉัน (ผ่านสายเคเบิล VGA) กับแล็ปท็อปของฉันโดยใช้ Bumblebee และการกำหนดค่า Optimus

ฉันมี Lenovo W520 พร้อม Intel GMA HD 3000 และ Nvidia Quadro 2000M BIOS มีสามตัวเลือกเกี่ยวกับกราฟิกการ์ด - รวมแยกและ Optimus

กรณีใช้ง่ายมาก สำหรับการทำงานฉันแค่ใช้การ์ดในตัวและจอแสดงผลแล็ปท็อป เมื่อฉันดูภาพยนตร์ฉันต้องการใช้โปรเจ็กเตอร์ของฉัน ตอนนี้สิ่งที่ฉันต้องทำในกรณีนี้คือ:

  • รีบูต
  • เริ่ม windows
  • ดูหนัง

ขอบคุณ Bumblebee ตอนนี้ฉันสามารถตั้งค่า Optimus ได้ตลอดเวลา

ก่อน BB ฉันต้องเปลี่ยนการตั้งค่า BIOS ทุกครั้งที่ฉันต้องการชมภาพยนตร์เพราะแม้แต่ใน Windows การใช้กราฟิกในตัวทำให้ระบบไม่สามารถตรวจพบโปรเจ็กเตอร์ได้ (ฉันคิดว่านี่เป็นสิ่งที่พวกเขาหมายถึงโดยทั่วไป) เอาท์พุท "และเอาท์พุท VGA เป็นสายไปที่การ์ดแยก)

ตอนนี้สิ่งที่ฉันต้องการจะทำคือการเชื่อมต่อจอภาพภายนอกโดยไม่ต้องสลับ O / S นั่นคือใช้ใน Ubuntu

เป็นไปได้ไหม?

ตอนนี้ถ้าฉันต้องการใช้จอภาพภายนอกบน Ubuntu ตัวเลือกเดียวคือเปลี่ยน BIOS เพื่อใช้กราฟิกแยกจากนั้นใช้การตั้งค่า nvidia

ถ้าฉันใช้การตั้งค่า Optimus แทนแม้ว่าฉันจะรันด้วยการใช้ "optirun nvidia-settings -c: 8" ฉันจะไม่ได้รับตัวเลือกใด ๆ สำหรับจอภาพภายนอก

มีอะไรที่ฉันสามารถทำได้ไหม

คำตอบ:


8

ฉันมี W520 ไม่ใช่การตั้งค่าเดียวกันกับ T420 - เอาท์พุท VGA เชื่อมต่อกับการ์ด nvidia ดังนั้นลิงก์ "this" จาก Samsagax จะไม่ทำงาน ฉันได้เตรียมโพสต์บล็อกที่นี่โดยสรุปตัวเลือกที่คุณมี ฉันไม่สามารถให้จอมอนิเตอร์ภายนอกทำงานกับ Bumblebee ได้และฉันไม่เชื่อว่าเป็นไปได้กับ W520 อย่างไรก็ตามคุณสามารถใช้มอนิเตอร์ extenal ในโหมด optimus แต่คุณต้องใช้ xinerama หรือเปิดหน้าจอ X แยกต่างหากบน extenal monitor


3
นี่คือโซลูชันใหม่ที่อาจจะดีกว่าสำหรับคนส่วนใหญ่ - คุณไม่จำเป็นต้องออกจากระบบ X เพื่อใช้จอแสดงผลภายนอก / โปรเจคเตอร์: zachstechnotes.blogspot.com/2012/04/post-title.htmlการแสดงผลทั้งหมด จะทำในการ์ด Intel และจากนั้นข้อมูลจะถูกทิ้งไปยังอุปกรณ์ NVIDIA สำหรับการส่งออกไปยังจอแสดงผลภายนอก
ซัค

4

(เปลี่ยนเส้นทางจากรายการ linux-hybrid-graphics)

ฉันมี Thinkpad T420 ซึ่งอาจจะคล้ายกัน (แต่อาจจะไม่ใช่)

ใน T420 ของฉัน VGA เชื่อมต่อกับ Intel และ Display-Port นั้นเชื่อมต่อกับ NVIDIA ดังนั้นสำหรับเอาต์พุต VGA ฉันสามารถใช้xrandrปกติได้

Display-Port เป็นเรื่องราวที่แตกต่าง สำหรับสิ่งที่ฉันต้องเปลี่ยนxorg.confจาก bumblebee ใน/etc/bumblebee/xorg.conf.nvidia :

ตัวเลือกConnectedMonitorจากDFP(ค่าเริ่มต้น) ถึงDP1สำหรับ DisplayPort


1
DP1 ใช้งานได้จริงสำหรับคุณหรือไม่? ตามdownload.nvidia.com/XFree86/Linux-x86_64/290.10/README/...ค่าที่ถูกต้องเพียง แต่มีCRT, DFPและตัวแปรคั่นด้วยเครื่องหมายจุลภาค การเปลี่ยนให้CRTทำงานด้วยหรือไม่
Lekensteyn

3

ไดรเวอร์รุ่นใหม่กว่าของ Intel มีโปรแกรมที่เรียกว่าintel-virtual-outputซึ่งช่วยให้การติดตั้งจอแสดงผลสองและสามอย่างง่ายขึ้นใน W520

intel-virtual-outputคำสั่งให้วิธีสำหรับเซิร์ฟเวอร์ X บนการ์ด Intel ไปยังหน้าจอที่ซ้ำกันไปยังเซิร์ฟเวอร์ X อีก ดูที่หน้าจอที่มีอยู่บนจอแสดงผลระยะไกลและนำเสนอบนเซิร์ฟเวอร์ Intel X เป็น VIRTUAL1, VIRTUAL2 เป็นต้น

สคริปต์ต่อไปนี้ (ทำงานเหมือนรูท) ใช้งานได้สำหรับฉัน แต่ส่วนใหญ่คุณจะต้องปรับแต่งสิ่งต่าง ๆ :

#!/bin/sh

# Power on the nvidia card with bumblebee.
modprobe bbswitch
echo ON > /proc/acpi/bbswitch

# Run X display :8 on the nvidia card.
optirun true

# Tell the intel card to create virtual screens on :0 and
# copy whatever they're displaying to equivalent screens on :8
intel-virtual-output

# Configure my monitors the way I like them.
xrandr --output VIRTUAL3 --auto
xrandr --output VIRTUAL1 --auto --right-of VIRTUAL3
xrandr --output LVDS1 --off

การตั้งค่านี้ทำให้ DisplayPort ของฉันเป็นสาย DVI (VIRTUAL3) ทางด้านซ้ายและ VGA (VIRTUAL1) ทางด้านขวา นอกจากนี้ยังปิดการใช้งานหน้าจอแล็ปท็อป

หมายเหตุว่าตั้งแต่เหล่านี้เป็นเพียงหน้าจอเสมือนจากคนขับรถในทางทฤษฎีเครื่องมือการกำหนดค่าการแสดงผลของ GUI intel-virtual-outputของคุณควรจะสามารถที่จะคิดออกหลังจากที่คุณได้ทำงาน

ในทางปฏิบัติเครื่องมือตั้งค่าการแสดงผลใน xubuntu ไม่ได้ทำสิ่งที่เกี่ยวข้องกันจริงๆ นั่นเป็นเหตุผลที่xrandrคำสั่งเหล่านั้นอยู่ที่นั่น หากคุณใช้ gnome หรือ kde อาจลองใช้เครื่องมือ GUI ก่อนที่จะยุ่งกับxrandrมัน มิฉะนั้นก่อนที่คุณจะรันสิ่งนี้คุณอาจต้องการปรับแต่งบางอย่างสำหรับการตั้งค่าที่คุณใช้งานอยู่ การรันเพียงแค่xrandrบอกคุณว่าหน้าจอใดบ้างที่เชื่อมต่ออยู่ในปัจจุบัน คุณสามารถเชื่อมต่อและยกเลิกการเชื่อมต่อจอภาพของคุณเพื่อดูว่าปลั๊กใดเชื่อมต่อกับจอแสดงผล VIRTUAL [0-9] หน้าจอแล็ปท็อปคือ LVDS1 จากนั้นก็จะเป็นเพียงเรื่องของการทำที่xrandrคำสั่งด้วย--right-of,--left-of ,--belowและอื่น ๆ ที่จะได้รับสิ่งที่อยู่ในสถานที่ที่เหมาะสมของพวกเขา

เมื่อคุณต้องการเคลื่อนที่อีกครั้งคุณสามารถเรียกใช้สิ่งนี้ (อีกครั้งในฐานะ root):

#!/bin/sh

# Turn on the laptop screen.
xrandr --output LVDS1 --auto

# Turn off my the other screens.
xrandr --output VIRTUAL1 --off
xrandr --output VIRTUAL3 --off

# Kill the xorg server running on the nvidia card.
kill $(ps ax | grep Xorg | grep :8 | awk '{print $1}')

# Wait plenty of time for it to die.
sleep 5

# Remove the nvidia kernel module so we can shut down the card.
# If you're running another driver this might be something different.
rmmod nvidia

# Use bumblebee to turn off the nvidia card and save power.
echo OFF > /proc/acpi/bbswitch

ฉันใช้ xubuntu 14.04 โดยใช้ไดรเวอร์ NVIDIA รุ่น 337.25 ที่เป็นกรรมสิทธิ์ ฉันยังมีแพ็คเกจ bumblebee จากhttps://launchpad.net/~bumblebee/+archive/ubuntu/stable https://launchpad.net/~bumblebee/+archive/ubuntu/stable

น่าสนใจว่าการตั้งค่านี้เป็นสิ่งที่ตรงกันข้ามกับการตั้งค่า Optimus ปกติ โดยปกติแล้วคุณจะเลือกใช้โปรแกรมบนการ์ด nvidia และคัดลอกบัฟเฟอร์จากการ์ด nvidia ไปยังการ์ด intel ซึ่งพูดกับจอภาพจริง ในกรณีนี้คุณกำลังใช้งานทุกอย่างบนการ์ด intel และคัดลอกบัฟเฟอร์หน้าจอที่เกี่ยวข้องไปยังการ์ด nvidia

หากคุณสงสัยว่าใช่มันทำให้การเรียกใช้แอปพลิเคชั่นเร่งความเร็ว nvidia ทำได้ยาก ฉันยังไม่ได้คิดวิธีที่จะทำให้เกมทำงานได้ดีและถึงแม้จะเป็นวิดีโอ HD มันก็ช้าลงตามกาลเวลา ดูเหมือนว่าจะไม่ได้รับการบัฟเฟอร์สองครั้งเพราะคุณสามารถมองเห็นการสแกนจากบนลงล่างซ้ายขวาหลังจากเล่นวิดีโอความละเอียดสูงได้สักพัก ที่กล่าวว่าโปรเจ็คเตอร์ส่วนใหญ่อาจจะไม่เป็นไร


โปรดทราบว่าคำตอบของฉันนั้นเหมือนกับ @ Zach's ยกเว้นว่าจะใช้ intel-virtual-output ซึ่งมาพร้อมกับไดรเวอร์เริ่มต้นแทนที่จะใช้ patch ที่กำหนดเองและ hybrid-screenclone กลยุทธ์นี้เหมือนกันทุกประการ แต่นี่เป็นความพยายามที่น้อยลงมากและจากประสบการณ์ของฉันใช้งานได้จริงกับ Ubuntu รุ่นใหม่กว่า ขอบคุณ Zach สำหรับการบันทึกกลยุทธ์ที่ทำให้งานนี้สำเร็จ
ฮันส์

1
เครดิตยังไปที่unixreich.com/blog/2013/…
ฮันส์

การแก้ไขxorg.conf.nvidiaในการอ้างอิงของคุณเป็นสิ่งจำเป็นสำหรับฉันใน Ubuntu 14.10 (โดยเฉพาะฉันต้องแสดงความคิดเห็นUseEDIDและUseDisplayDevice) อย่างไรก็ตามฉันไม่จำเป็นต้องใช้ PPA (Bumblebee จาก Ubuntu ทำงานได้ดี) และฉันไม่ต้องการสคริปต์ใด ๆ เพื่อเริ่มและหยุดการติดตั้งหลายจอภาพ - เพียงแค่เริ่มต้นหรือฆ่าintel-virtual-output เนื่องจากผู้ใช้ทั่วไปทำงานให้ฉัน (ดำเนินการoptirunตามที่จำเป็น) คุณสามารถยืนยันได้หรือไม่
krlmlr

คุณใช้ GUI เพื่อตั้งค่าหน้าจอหรือไม่? บางทีปัญหานั้นเป็นปัญหาของ xubuntu ฉันจะต้องลองสิ่งอื่นเมื่อฉันมีโอกาส
ฮันส์

ใช่ GUI ทำงานเพื่อตั้งค่าหน้าจอ
krlmlr

0

ลองนี่สิ

แต่ขึ้นอยู่กับการเดินสาย


1
ยินดีต้อนรับสู่ถาม Ubuntu! ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรจะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
Michael Martin-Smucker
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.