ฉันจะตั้งค่าเทคโนโลยี nvidia-optimus บน Ubuntu ได้อย่างถูกต้องได้อย่างไร
ฉันจะตั้งค่าเทคโนโลยี nvidia-optimus บน Ubuntu ได้อย่างถูกต้องได้อย่างไร
คำตอบ:
หมายเหตุ: โพสต์นี้เป็นผลมาจากการใช้เวลาหลายวันในการอ่านเนื้อหาต่าง ๆ บนเว็บดังนั้นจงยอมรับความเสี่ยงของคุณเอง มันถูกทดสอบบน Ubuntu 12.04 / 12.10 / 13.04 / 13.10 / 14.04 (64 บิตทั้งหมด) ด้วยการ์ดกราฟิก nVidia GT650M อย่าลังเลที่จะเพิ่มความคิดเห็นและข้อเสนอแนะ
1. ก่อนอื่นเราต้องลบไดรเวอร์วิดีโอทั้งหมดในคอมพิวเตอร์:
sudo apt-get remove --purge nvidia*
จากนั้น bumblebee ในกรณีที่คุณติดตั้งไว้ก่อนหน้านี้:
sudo apt-get remove --purge bumblebee*
เราต้องลบไดรเวอร์นูโวทั้งหมดด้วย:
sudo apt-get --purge remove xserver-xorg-video-nouveau
เพื่อให้แน่ใจว่าลบเนื้อหาทั้งหมดแล้วให้ลองพิมพ์dpkg -l | grep nvidia
และdpkg -l | grep bumblebee
: ไม่ควรส่งคืนสิ่งใด เพราะdpkg -l | grep nouveau
มีโอกาสที่มันจะส่งกลับบางบรรทัดพูดlibdrm-nouveauXXXXX
; สำหรับตอนนี้เพียงแค่ละเว้นพวกเขา
2. จากนั้นเราต้องให้แน่ใจว่าได้พิมพ์ส่วนหัวทั้งหมด:
sudo apt-get install linux-source && sudo apt-get install linux-headers-$(uname -r)
3. สิ่งต่อไปที่ต้องทำคือการขึ้นบัญชีดำไดรเวอร์นูโวที่เหลือและแพ็คเกจอื่น ๆ ที่อาจทำให้เกิดปัญหา:
sudo cp /etc/modprobe.d/blacklist.conf /etc/modprobe.d/blacklist.conf.bak
sudo gedit /etc/modprobe.d/blacklist.conf
การเพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์:
# Necessary to install nvidia drivers
blacklist nouveau
blacklist lbm-nouveau
blacklist nvidia-173
blacklist nvidia-96
blacklist nvidia-current
blacklist nvidia-173-updates
blacklist nvidia-96-updates
alias nvidia nvidia_current_updates
alias nouveau off
alias lbm-nouveau off
options nouveau modeset=0
เพียงบันทึกและออก
4. ตอนนี้ให้รันคำสั่งที่ดีที่สุดสำหรับ Ubuntu
sudo apt-get update && sudo apt-get dist-upgrade -y
5. จากนี้เราทำงานบน tty เปิดคอนโซล tty1 ด้วย CTRL + ALT + F1 และล็อกอินด้วยชื่อผู้ใช้และรหัสผ่านของคุณ จากนั้นดำเนินการ:
sudo service lightdm stop
ตอนนี้เราจะติดตั้งไดรเวอร์ ดำเนินการ:
sudo apt-get install nvidia-XXX-updates nvidia-settings
โดยที่ XXX คือไดรเวอร์ที่เสถียรล่าสุด ฉันใช้ไดร์เวอร์ 331 แต่ฉันได้อ่านที่ไหนสักแห่งว่ามี 343 ให้ดาวน์โหลด (ไม่รู้ว่ามันเสถียรหรือไม่)
หมายเหตุ:ด้วยไดร์เวอร์เวอร์ชั่นล่าสุดมันจะติดตั้งnvidia-prime
ตามค่าเริ่มต้น เทคโนโลยีนี้มีวัตถุประสงค์เพื่อสลับระหว่างการ์ดกราฟิก Intel และ nVidia โดยอัตโนมัติโดยผู้ใช้ไม่ต้องดำเนินการใด ๆ เมื่อต้องการทำเช่นนี้การ์ดจะเปิดทิ้งทั้งการ์ด ในทางกลับกัน Optimus จะเปิดใช้การ์ดกราฟิก nVidia เฉพาะเมื่อมีคำขอของผู้ใช้อย่างชัดเจน มันแปลในการใช้พลังงานน้อยลงอย่างมีนัยสำคัญต่อนายก
ฉันชอบออพติมัสมากกว่าไพรม์ แต่ถ้าคุณไม่ใส่ใจกับการสิ้นเปลืองพลังงานมหาศาลให้หยุดที่นี่ มิฉะนั้นคุณมีสองตัวเลือก:
ลบ prime ทั้งหมด ( sudo apt-get remove --purge nvidia-prime
);
ออกจากนายก; ในส่วน "Prime with optimus" เราจะดูวิธีทำให้ Optirun ทำงานด้วยการติดตั้ง Prime
6. ตอนนี้เราต้องติดตั้ง bumblebee และแพ็คเกจ virtualgl ด้วย
sudo apt-get install bumblebee bumblebee-nvidia virtualgl virtualgl-libs virtualgl-libs-ia32:i386 virtualgl-libs:i386
จากนั้นเราต้องเพิ่มผู้ใช้ของเราในกลุ่มภมรด้วย:
sudo usermod -a -G bumblebee $USER
จากนั้นรีบูทพีซี
7. เข้าสู่ระบบในบัญชีผู้ใช้ของคุณเปิดหน้าต่างเทอร์มินัลใหม่และพิมพ์:
cd /etc/bumblebee
ls -Al
ในบรรดาไฟล์ต่าง ๆ ที่ระบุควรมีสองไฟล์: bumblebee.conf
และxorg.nvidia.conf
. มาทำสำเนาสำรองของทั้งคู่ด้วย:
sudo cp FILE_NAME FILE_NAME.bak
คุณควรแทนที่ FILE_NAME ด้วยชื่อจริงของไฟล์ จากนั้นเราจะไปแก้ไขไฟล์แรกด้วยsudo gedit bumblebee.conf
เพิ่ม (ทั้งหมดโดยไม่มีเครื่องหมายอัญประกาศ)
ตรวจสอบให้แน่ใจว่า "XorgConfFile" ภายใต้ [nvidia-driver] เท่ากับ "/etc/bumblebee/xorg.conf.nvidia" (อีกครั้งโดยไม่มีเครื่องหมายอัญประกาศ) จากนั้นให้บันทึกและปิด gedit
ตอนนี้เราต้องแก้ไขไฟล์อื่นด้วยsudo gedit xorg.conf.nvidia
(ในกรณีนี้เราต้องใส่เครื่องหมายคำพูดด้วย !!) แทนที่
Option "ConnectedMonitor" "DFP"
ด้วย Option "UseDisplayDevice" "none"
บันทึกและออก
8. เรียกใช้gedit /etc/modprobe.d/bumblebee.conf
และตรวจสอบให้แน่ใจว่าทุกบรรทัดที่มีblacklist <something>
อยู่ไม่ได้ถูกคอมเม้นต์ (เช่นพวกเขาไม่ได้ขึ้นต้นด้วย#
)
9. ณ จุดนี้ให้เรียกใช้คำสั่งต่อไปนี้
sudo service bumblebeed start
หากมีข้อผิดพลาดให้ลองเรียกใช้คำสั่งอีกครั้งด้วยการรีสตาร์ทแทนที่จะเริ่มต้น หากคุณยังคงมีข้อผิดพลาดบางอย่างเช่น:
restart: Unknown job: bumblebeed
อาจเป็นสิ่งผิดปกติในไฟล์ bumblebee.conf ดังนั้นให้ตรวจสอบขั้นตอนที่ 7 อีกครั้ง
หากผลลัพธ์นั้นคล้ายกับ:
bumblebeed start/running, process XXXXX
คุณกำลังตั้งค่า bumblebee ในไม่ช้า!
10. ตอนนี้เราสามารถทำงานได้เพียงหรือoptirun glxspheres
optirun glxspheres64
หากทำงานได้ตามที่คาดหวังคุณจะได้ผลลัพธ์ดังนี้:
$ optirun glxspheres64
Polygons in scene: 62464
Visual ID of window: 0x20
Context is Direct
OpenGL Renderer: GeForce GT 650M/PCIe/SSE2
182.253407 frames/sec - 203.394802 Mpixels/sec
182.940725 frames/sec - 204.161849 Mpixels/sec
....
เพื่อตรวจสอบว่าเราเป็นจริงโดยใช้ nvidia-ไดรเวอร์เปิดอื่นในขณะที่ขั้วกำลังทำงานจากนั้นพิมพ์optirun <application>
sudo lshw -c display | grep driver
ผลลัพธ์ควรเป็นอย่างนั้น
configuration: driver=nvidia latency=0
configuration: driver=i915 latency=0
ในทางกลับกันถ้าคุณปิดแอปพลิเคชันทั้งหมดที่เริ่มต้นด้วยoptirun
ควรแสดงเฉพาะไดรเวอร์ Intel แค่นั้นแหละ!!
ขอบคุณคำตอบนี้จาก Pavak Paul นี่คือคำแนะนำในการเพิ่มส่วนต่อประสานผู้ใช้ bumblebee บน Ubuntu 14.04 เพื่อจัดการแอพที่จะเปิดโดยใช้ nVidia
1. ติดตั้ง Python App Indicator:
sudo apt-get install python-appindicator
2. ติดตั้ง Git:
sudo apt-get install git
3. สร้างไดเรกทอรีสำหรับ git:
mkdir git && cd git
4. ตรวจสอบที่เก็บ:
git clone https://github.com/Bumblebee-Project/bumblebee-ui.git
cd bumblebee-ui
sudo ./INSTALL
5. ไปที่แอปพลิเคชั่นเริ่มต้นและเพิ่มตัวบ่งชี้ bumblebee [คลิกที่เพิ่มจากนั้นใส่ชื่อและความคิดเห็นที่คุณต้องการ ใส่bumblebee-indicator
ในกล่องคำสั่งและคลิกที่เพิ่ม)
6. รีบูต
หากคุณต้องการให้ตัวเลือกใช้งานnvidia-prime
บางครั้งให้ลองทำตามคำแนะนำด้านล่าง
1. เพื่อป้องกันการbumblebeed
เริ่มต้นในเวลาบูตให้ดำเนินการ:
echo "manual" | sudo tee /etc/init/bumblebeed.override
2. ประเด็นนี้เป็นปัญหามากที่สุด มันป้องกันไม่ให้ bumblebee ทำการขึ้นบัญชีดำไดร์เวอร์ nVidia และควรส่งผลให้เซสชั่นกราฟิกหยุดทำงาน ลองด้วยความเสี่ยงของคุณเอง! วิ่ง:
sudo gedit /etc/modprobe.d/bumblebee.conf
และแสดงความคิดเห็นในบรรทัดที่มีไดรเวอร์ XXX ของ nVidia ของคุณ มันควรส่งผลให้บางอย่างเช่นนั้น
# XXX
#blacklist nvidia-XXX
#blacklist nvidia-XXX-updates
blacklist nvidia-experimental-XXX
3. nvidia-settings
รีบูตระบบและการเปิดตัว สถานการณ์สุดท้ายคือ:
หากคุณเลือก "Intel (ประหยัดพลังงาน)" ในการตั้งค่า nvidia คุณจะเปิดใช้งานเฉพาะการ์ดกราฟิก Intel เท่านั้น คุณยังต้องเรียกใช้แอปพลิเคชันด้วยoptirun
เพื่อใช้การ์ดกราฟิก nVidia
sudo service bumblebeed start
optirun <application>
หากคุณต้องการใช้โปรไฟล์ "Nvidia (ประสิทธิภาพ)" ให้เลือกจากการตั้งค่า nvidia จากนั้นเข้าสู่ระบบ / ออกจากระบบและทุกอย่างจะทำงานโดยอัตโนมัติ สิ่งเดียวคือคุณไม่ต้องเปิดbumblebeed
daemon ด้วยโปรไฟล์นี้ที่เลือกเพราะอาจทำให้เกิดปัญหา
1. ถ้าคุณต้องการใช้เท่านั้นnvidia-prime
:
sudo apt-get --purge remove bumblebee*
จากนั้นรีบูท
2. หากคุณต้องการใช้เฉพาะ optimus โดยไม่ลบ nvidia-prime ให้แก้ไขไฟล์ก่อนหน้าอีกครั้ง:
sudo gedit /etc/modprobe.d/bumblebee.conf
Uncommenting (ลบอักขระ #) ออกจากบรรทัดที่แก้ไขก่อนหน้านี้:
# XXX
blacklist nvidia-XXX
blacklist nvidia-XXX-updates
blacklist nvidia-experimental-XXX
และการรีบูท ในกรณีนี้คุณสามารถปล่อยให้ bumblebeed ทำงานในเวลาบูตได้:
sudo rm /etc/init/bumbebeed.override
vblank_mode=0 primusrun ./glxgears
vblank_mode=0 optirun -b primus ./glxgears
ขอบคุณ :)