สลับไปมาระหว่าง nvidia-current และ nouveau โดยไม่ต้องรีบูตหรือไม่


24

เป็นไปได้หรือไม่ที่จะสลับไปมาระหว่างไดรเวอร์วิดีโอของ BLOB ของ Nvidia และ Nouveau แบบทันที?

ฉันคิดว่าฉันต้องสามารถ:

  1. [✓] ยกเลิกการโหลด nvidia
  2. [✓] ยกเลิกการโหลดนูโว
  3. [✕] คืนค่าคอนโซลหลังจากยกเลิกการโหลดนูโว *
  4. [✓] สลับไฟล์ xorg.conf
  5. [✓] ดูแลการขึ้นบัญชีดำ
  6. [✓] จัดการกับ libglx.so

*) หลังจากคุยกับพวกที่ #nouveau เล็กน้อยดูเหมือนว่าจะเป็นเรื่องยากหรือเป็นไปไม่ได้เมื่อใช้การตั้งค่า Ubuntu ปัจจุบัน (builtin vesafb) ฉันพยายามที่จะให้มันทำงานร่วมกับ uvesafb แต่ตอนนี้สคริปต์ในคำตอบจะทำสิ่งที่ฉันกำลังมองหา


ฟังดูเป็นข้อตกลงที่เสี่ยงมาก Oo คุณแน่ใจหรือไม่ว่าต้องการทำเช่นนั้น?
RolandiXor

4
ความเสี่ยงหมายถึงความสนุก : P
htorque

ในกรณีที่คุณสามารถเพิ่มบรรทัดต่อไปนี้ในสคริปต์ของคุณ: chvt 1 chvt 7 การอ้างอิง: hermann-uwe.de/tips-and-tricks/chvt
ericb

ฉันแค่รู้สึกอยากบอกว่าคุณมีโพสต์ที่มีโครงสร้างที่ดี ยินดีที่ได้เห็น! :)
lindhe

คำตอบ:


12

ตอนนี้ฉันมีสองสคริปต์ที่เปลี่ยนไดรเวอร์ xorg.conf ดูแลบัญชีดำและ libglx ดังนั้นคำตอบคือ: ใช่มันเป็นไปได้

ขึ้นบัญชีดำการทำงานกับไฟล์/etc/modprobe.d/ที่มีอย่างใดอย่างหนึ่งหรือblacklist nvidia blacklist nouveauฉันยังถูกแทนที่/lib/nvidia-current/modprobe.confด้วยหุ่นจำลองอื่นไดรเวอร์ nvidia จะสร้างลิงค์ใน/etc/modprobe.d/บัญชีดำนั้นนูโว

เปลี่ยนเป็นนูโว:

 #!/bin/bash
 stop gdm

 rmmod nvidia

 sed -i "s/nouveau/nvidia/" /etc/modprobe.d/blacklist-nvidia-nouveau.conf

 update-alternatives --set gl_conf /usr/lib/mesa/ld.so.conf
 ldconfig

 modprobe nouveau

 cp /etc/X11/xorg.conf{.nouveau,}

 start gdm

หลังจากดำเนินการนั้นฉันมีนูโวทำงานและคอนโซลทำงาน (นูโวฟ)

เปลี่ยนเป็น nvidia:

#!/bin/bash
stop gdm

echo 0 > /sys/class/vtconsole/vtcon1/bind
rmmod nouveau
rmmod ttm
rmmod drm_kms_helper
rmmod drm

sed -i "s/nvidia/nouveau/" /etc/modprobe.d/blacklist-nvidia-nouveau.conf

update-alternatives --set gl_conf /usr/lib/nvidia-current/ld.so.conf
ldconfig

modprobe nvidia-current

cp /etc/X11/xorg.conf{.nvidia,}

start gdm

→ไดรเวอร์ Nvidia ทำงานได้เพียงปัญหา: หลังจากยกเลิกการโหลดไดรเวอร์นูโวแล้วคอนโซลไม่สามารถใช้งานได้ ฉันต้องการวิธีในการรีเซ็ตหรือโหลด framebuffer อื่น แต่เนื่องจาก vesafb ถูกคอมไพล์ลงในเคอร์เนลฉันไม่รู้ว่าต้องทำอย่างไร


เป้าหมายหลักสำเร็จลุล่วงดังนั้นฉันจึงยอมรับสิ่งนี้จนกว่าจะมีใครสามารถแก้ไขปัญหาเทอร์มินัลได้
htorque

ดูเหมือนจะมีคำถามใหม่ที่ขอสิ่งนี้: askubuntu.com/questions/855451/ ......ฉันเชื่อมโยงคำตอบของคุณที่นั่น แต่หลังจากการทดสอบฉันรู้ว่ามันไม่ทำงาน (อีกต่อไป) บางทีคุณสามารถอัปเดตคำตอบของคุณ
นักเรียน

0

ฉันไม่เชื่อว่าเป็นไปได้ที่จะทำไม่เพียง แต่เป็นการตั้งค่าโหมดเคอร์เนลไดรเวอร์ nouvou และหนึ่ง nvidia ไม่ได้ แต่ไดรเวอร์ nvidia ใช้ไลบรารี xorg ที่ถูกแฮ็กซึ่งทำให้แม้ใช้การติดตั้งเดียวกันบนเครื่องที่ต้องการไดรเวอร์ intel . (ดูข้อผิดพลาดขององค์ประกอบข้อผิดพลาดและคำถาม)


1
ฉันคิดว่านั่นเป็นเหตุผลที่พวกเขาเพิ่มทางเลือก 'gl_conf' การใช้ตัวเลือกอัปเดตช่วยให้สามารถสลับระหว่างไลบรารี Nvidia และ "ปกติ" ได้อย่างง่ายดาย
htorque

0

http://nouveau.freedesktop.org/wiki/KernelModeSetting/แนะนำให้เรียกใช้/etc/init.d/consolefont รีสตาร์ทหลังจาก rmmod-ing nouevau เพื่อคืนค่าโหมดข้อความ โปรดทราบว่ามันได้รับการเปลี่ยนชื่อเป็น console-font ในระบบที่ใหม่กว่าและใน Ubuntu 13.10 นั้นไม่สามารถเรียกใช้วิธีนี้ได้เลย แต่อย่างนี้: service console-font restart

นอกจากนี้มันไม่ทำงานเสมอ ในบางกรณีการเริ่มต้น X ( service lightdm start - หรือ DM ที่คุณใช้อยู่) จะเริ่มโหมด gfx และให้โหมดข้อความที่ใช้งานได้เมื่อเปลี่ยนเป็น vt1 ( ctrl-alt-f1 )

(ฉันใช้สิ่งนี้เพื่อติดตั้งไดรเวอร์ nvidia ในเซสชันซีดีสด)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.