Beralih antara nvidia-current dan nouveau tanpa reboot?


24

Apakah mungkin untuk beralih antara driver video Nvidia's BLOB dan Nouveau on-the-fly?

Saya pikir saya harus bisa:

  1. [✓] Bongkar nvidia
  2. [✓] Bongkar nouveau
  3. [✕] Kembalikan konsol setelah membongkar nouveau *
  4. [✓] Tukar file xorg.conf
  5. [✓] Berhati-hatilah dalam daftar hitam
  6. [✓] Berurusan dengan libglx.so

*) Setelah sedikit berbicara dengan orang-orang di #nouveau, sepertinya sulit atau bahkan tidak mungkin dengan pengaturan Ubuntu saat ini (builtin vesafb). Saya mencoba membuatnya bekerja dengan uvesafb, tetapi untuk saat ini skrip dalam jawaban melakukan apa yang saya cari.


Kedengarannya seperti kesepakatan yang sangat berisiko Oo, Anda yakin ingin melakukan itu?
RolandiXor

4
Risiko berarti menyenangkan. : P
htorque

Untuk berjaga-jaga, bisakah Anda menambahkan baris berikut dalam skrip Anda: chvt 1 chvt 7 Referensi: hermann-uwe.de/tips-and-tricks/chvt
ericb

Saya hanya ingin menunjukkan pos yang terstruktur dengan baik seperti apa yang Anda miliki. Senang melihat! :)
lindhe

Jawaban:


12

Saya sekarang memiliki dua skrip yang mengganti driver, xorg.conf, mengurus daftar hitam dan libglx, jadi jawabannya adalah: ya, itu mungkin.

Daftar hitam berfungsi dengan satu file /etc/modprobe.d/berisi blacklist nvidiaatau blacklist nouveau. Saya juga diganti /lib/nvidia-current/modprobe.confdengan boneka, kalau tidak driver nvidia akan selalu membuat tautan di /etc/modprobe.d/blacklist nouveau itu.

Beralih ke nouveau:

 #!/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

Setelah mengeksekusi itu, saya telah menjalankan nouveau dan konsol yang berfungsi (nouveaufb).

Beralih ke 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

→ Driver Nvidia berfungsi, satu-satunya masalah: setelah membongkar driver nouveau, konsol tidak dapat digunakan. Saya perlu cara untuk meresetnya atau memuat framebuffer lain, tetapi karena vesafb dikompilasi ke dalam kernel, saya tidak tahu harus berbuat apa.


Tujuan utama telah tercapai, jadi saya menerima ini sampai seseorang dapat menemukan perbaikan untuk masalah terminal.
htorque

Tampaknya ada pertanyaan baru yang menanyakan hal ini: askubuntu.com/questions/855451/... Saya menautkan jawaban Anda di sana, tetapi setelah mengujinya, saya menyadari bahwa itu tidak berfungsi (lagi). Mungkin Anda dapat memperbarui jawaban Anda.
siswa

0

Saya tidak percaya itu mungkin dilakukan, tidak hanya pengaturan mode kernel driver nouvou dan nvidia yang tidak, tetapi driver nvidia menggunakan pustaka xorg yang diretas yang membuat bahkan menggunakan instalasi yang sama pada mesin yang membutuhkan driver intel masalah . (lihat bug dan pertanyaan elemen terbalik)


1
Saya pikir itu sebabnya mereka menambahkan alternatif 'gl_conf'. Menggunakan pembaruan-alternatif memungkinkan untuk dengan mudah beralih antara perpustakaan Nvidia dan yang "normal".
htorque

0

http://nouveau.freedesktop.org/wiki/KernelModeSetting/ menyarankan menjalankan /etc/init.d/consolefont restart setelah rouod-ing nouevau untuk mengembalikan mode teks. Perhatikan bahwa telah diubah namanya menjadi konsol-font pada sistem yang lebih baru dan di Ubuntu 13.10 tidak dapat dipanggil dengan cara ini sama sekali, tetapi seperti ini: service console-font restart

Juga, itu tidak selalu berhasil. Dalam beberapa kasus mulai X ( service lightdm start - atau DM apa pun yang Anda gunakan) akan memulai mode gfx dan juga memberikan mode teks yang berfungsi saat beralih ke vt1 ( ctrl-alt-f1 ).

(Saya menggunakan ini untuk menginstal driver nvidia ke sesi CD langsung)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.