¿Cambiar entre nvidia-current y nouveau sin reiniciar?

24

¿Es posible cambiar entre los controladores de video BLOB y Nouveau de Nvidia sobre la marcha?

Creo que necesito poder:

  1. [✓] Descargar nvidia
  2. [✓] Descargar nouveau
  3. [✕] Restaurar la consola después de descargar nouveau *
  4. [✓] Intercambiar archivos xorg.conf
  5. [✓] Cuida de las listas negras
  6. [✓] Tratar con libglx.so

*) Después de hablar un poco con los chicos de #nouveau, parece ser difícil o incluso imposible con la configuración actual de Ubuntu (incorporado vesafb). Estoy tratando de que funcione con uvesafb, pero por ahora los scripts en la respuesta hacen lo que estaba buscando.

htorque
fuente
suena como un trato realmente arriesgado Oo, ¿estás seguro de que quieres hacer eso?
RolandiXor
44
Riesgo significa diversión. : P
htorque
Por si acaso, ¿puede agregar las siguientes líneas en su secuencia de comandos: chvt 1 chvt 7 Referencia: hermann-uwe.de/tips-and-tricks/chvt
ericb
Simplemente tuve ganas de señalar qué publicación bien estructurada tienes. ¡Encantado de ver! :)
lindhe

Respuestas:

12

Ahora tengo dos scripts que cambian los controladores, xorg.conf, se encargan de las listas negras y el libglx, por lo que la respuesta es: sí, es posible.

La lista negra funciona con un archivo que /etc/modprobe.d/contiene blacklist nvidiao blacklist nouveau. También lo reemplacé /lib/nvidia-current/modprobe.confcon un ficticio, de lo contrario, el controlador de nvidia siempre crearía un enlace en /etc/modprobe.d/esa lista negra nouveau.

Cambiar a 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

Después de ejecutar eso, tengo nouveau ejecutándose y una consola de trabajo (nouveaufb).

Cambiar 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

→ El controlador de Nvidia funciona, único problema: después de descargar el controlador nouveau, la consola no se puede usar. Necesito una forma de restablecerlo o cargar otro framebuffer, pero como vesafb está compilado en el kernel, no sé qué hacer.

htorque
fuente
El objetivo principal se ha logrado, así que lo acepto hasta que alguien pueda encontrar una solución para el problema del terminal.
htorque
Parece que hay una nueva pregunta que pregunta por esto: askubuntu.com/questions/855451/... He vinculado su respuesta allí, pero después de probarla, me di cuenta de que ya no funciona. Quizás puedas actualizar tu respuesta.
estudiante
0

No creo que sea posible hacerlo, no solo la configuración del modo kernel del controlador nouvou y la nvidia no lo son, sino que el controlador nvidia usa una biblioteca xorg pirateada que hace que incluso usar la misma instalación en una máquina que requiera un controlador Intel sea un problema . (ver errores y preguntas de elementos al revés)

Martin Owens -doctormo-
fuente
1
Creo que es por eso que agregaron la alternativa 'gl_conf'. El uso de alternativas de actualización permite cambiar fácilmente entre la biblioteca de Nvidia y la "normal".
htorque
0

http://nouveau.freedesktop.org/wiki/KernelModeSetting/ sugiere ejecutar /etc/init.d/consolefont reiniciar después de rmmod-ing nouevau para restaurar el modo de texto. Tenga en cuenta que se ha cambiado el nombre a font-console en sistemas más recientes y en Ubuntu 13.10 no se puede llamar de esta manera, pero de esta manera: service console-font restart

Además, no funciona siempre. En algunos casos, el inicio de X ( service lightdm start , o cualquier DM que esté utilizando) iniciará el modo gfx y también dará un modo de texto de trabajo al cambiar a vt1 ( ctrl-alt-f1 ).

(Lo uso para instalar el controlador nvidia en una sesión de CD en vivo)

David Balažic
fuente