Przełączać się między nvidia-current a nouveau bez restartu?


24

Czy można przełączać się między sterownikami BLOB Nvidii i sterownikami Nouveau w locie?

Myślę, że muszę umieć:

  1. [✓] Zwolnij NVIDIA
  2. [✓] Unload nouveau
  3. [✕] Przywróć konsolę po zwolnieniu secesji *
  4. [✓] Zamień pliki xorg.conf
  5. [✓] Zadbaj o czarną listę
  6. [✓] Zajmij się libglx.so

*) Po krótkiej rozmowie z chłopakami z #nouveau wydaje się to trudne, a nawet niemożliwe przy obecnej konfiguracji Ubuntu (wbudowany vesafb). Próbuję zmusić go do współpracy z uvesafb, ale na razie skrypty w odpowiedzi robią to, czego szukałem.


brzmi jak bardzo ryzykowna umowa Oo, na pewno chcesz to zrobić?
RolandiXor

4
Ryzyko oznacza zabawę. : P
htorque,

Tylko w przypadku, można dodać następujące wiersze w skrypcie: chvt 1 chvt 7 referencyjny: hermann-uwe.de/tips-and-tricks/chvt
ericb

Chciałem tylko wskazać, jaki masz dobrze skonstruowany post. Miło widzieć! :)
Lindhe

Odpowiedzi:


12

Mam teraz dwa skrypty, które zmieniają sterowniki, xorg.conf, zajmują się czarną listą i libglx, więc odpowiedź brzmi: tak, jest to możliwe.

Czarna lista działa z jednym plikiem /etc/modprobe.d/zawierającym jeden blacklist nvidialub blacklist nouveau. Zastąpiłem również /lib/nvidia-current/modprobe.confmanekina, w przeciwnym razie sterownik nvidia zawsze tworzyłby link w /etc/modprobe.d/tej czarnej liście.

Przełącz na 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

Po wykonaniu tego mam uruchomioną nouveau i działającą konsolę (nouveaufb).

Przełącz na 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

→ Sterownik Nvidia działa, jedyny problem: po rozładowaniu sterownika w wersji nouveau konsola jest bezużyteczna. Potrzebuję sposobu, aby go zresetować lub załadować inny bufor ramki, ale ponieważ vesafb jest wkompilowany w jądro, nie wiem, co robić.


Główny cel został osiągnięty, więc akceptuję to, dopóki ktoś nie wymyśli rozwiązania problemu z terminalem.
htorque

Wydaje się, że pojawiło się nowe pytanie: askubuntu.com/questions/855451 /... Tam umieściłem twoją odpowiedź, ale po przetestowaniu zdałem sobie sprawę, że to już nie działa. Może możesz zaktualizować swoją odpowiedź.
student

0

Nie sądzę, że można to zrobić, nie tylko ustawienie trybu jądra sterownika nouvou i nvidia nie, ale sterownik nvidia używa zhakowanej biblioteki xorg, która sprawia, że ​​nawet używanie tej samej instalacji na komputerze wymagającym sterownika Intel jest problemem . (zobacz błędy i pytania dotyczące elementów odwróconych)


1
Myślę, że dlatego dodali alternatywę „gl_conf”. Korzystanie z aktualizacji alternatyw umożliwia łatwe przełączanie się między biblioteką Nvidia a biblioteką „normalną”.
htorque,

0

http://nouveau.freedesktop.org/wiki/KernelModeSetting/ sugeruje uruchomienie /etc/init.d/consolefont restartu po rmmod-ing nouevau w celu przywrócenia trybu tekstowego. Zauważ, że zmieniono jej nazwę na czcionkę konsoli w nowszych systemach, aw Ubuntu 13.10 nie można jej w ogóle tak nazwać, ale w ten sposób: usługa restart czcionki konsoli

Ponadto nie zawsze działa. W niektórych przypadkach uruchomienie X ( service lightdm start - lub dowolny DM, którego używasz) uruchomi tryb gfx, a także da działający tryb tekstowy po przełączeniu na vt1 ( ctrl-alt-f1 ).

(Używam tego, aby zainstalować sterownik NVIDIA w sesji Live CD)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.