Alterna entre nvidia-current e nouveau sem reinicializar?

23

É possível alternar entre os drivers de vídeo BLOB e Nouveau da Nvidia on-the-fly?

Acho que preciso ser capaz de:

  1. [✓] Descarregar nvidia
  2. [✓] Descarregar nouveau
  3. [✕] Restaure o console depois de descarregar o nouveau *
  4. [✓] Troque arquivos xorg.conf
  5. [✓] Cuide da lista negra
  6. [✓] Lidar com libglx.so

*) Depois de um pouco de conversa com os caras do #nouveau, parece ser difícil ou mesmo impossível com a configuração atual do Ubuntu (builtin vesafb). Estou tentando fazer com que funcione com o uvesafb, mas por enquanto os scripts na resposta fazem o que eu estava procurando.

    
por htorque 11.12.2010 / 21:09

3 respostas

11

Agora tenho dois scripts que mudam de driver, xorg.conf, cuido da lista negra e libglx, então a resposta é: sim, é possível.

A lista negra funciona com um arquivo em /etc/modprobe.d/ contendo blacklist nvidia ou blacklist nouveau . Eu também substitui /lib/nvidia-current/modprobe.conf por um dummy, senão o driver nvidia sempre criaria um link em /etc/modprobe.d/ que colocaria noutro lugar o blacklist.

Mude para 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

Depois de executar isso, eu tenho nouveau em execução e um console de trabalho (nouveaufb).

Mude para a 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 driver está funcionando, só problema: depois de descarregar o driver nouveau, o console está inutilizável. Eu preciso de uma maneira de redefini-la ou carregar outro framebuffer, mas como o vesafb é compilado no kernel eu não sei o que fazer.

    
por htorque 12.12.2010 / 11:33
0

Eu não acredito que seja possível fazer, não apenas a configuração do modo kernel do driver nouvou e a da nvidia não, mas o driver nvidia usa uma biblioteca xorg hackeada que faz uso da mesma instalação em uma máquina que requer a intel motorista um problema. (veja bugs e perguntas de cabeça para baixo)

    
por Martin Owens -doctormo- 12.12.2010 / 04:59
0
O link sugere a execução de /etc/init.d/consolefont restart após rmmod- nouevau para restaurar o modo de texto. Note que ele foi renomeado para console-font em sistemas mais recentes e no Ubuntu 13.10 ele não pode ser chamado assim, mas assim: console de serviço-font restart

Além disso, não funciona sempre. Em alguns casos, iniciar o X ( serviço lightdm start - ou qualquer DM que você estiver usando) iniciará o modo gfx e também dará um modo de texto de trabalho ao alternar para vt1 ( ctrl-alt-f1 ).

(eu uso isso para instalar o driver nvidia em uma sessão de CD ao vivo)

    
por David Balažic 24.11.2013 / 20:06