NVIDIA, Nouveau, congelamientos y otras pesadillas.

Para empezar bien este 2024 les voy a platicar una historia sobre nvidia y sus drivers, si señor, otra vez.

Actualizar Manjaro es una cosa rutinaria los lunes, tecleo mi alias actualizador, voy por un café, quizás un reinicio y unos momentos después a trabajar. Y generalmente las cosas van bien y no, no es sarcasmo, es por eso que tengo más de 10 años con esta distribución (y con la misma computadora).

Actualizar Manjaro generalmente trae cosas buenas pero hay días queee ¡Uffff! ¿Tienen tiempo?

En este artículo

Congelamientos y cierres de sesión.

Pues empecé a trabajar y sin decir agua va se congela mi computadora. Okeeeeeey, esto es raro, pero me ha pasado en otras ocasiones.

Después de presionar el botón de reset, continué con mis actividades pero esta vez, en lugar de congelarse mi equipo lo que hizo fue que cerró la sesión de golpe y me pedía nuevamente mi contraseña para ingresar. Y eso amigos lectores, eso nunca me había pasado.

Si hubiera sido un problema ocasional quizás lo hubiera dejado pasar, pero llegó a ser demasiado frecuente y demasiado inoportuno. Las cosas no podían seguir así.

Inicia la investigación.

Siempre siempre siempre hay que ir a los foros de manjaro. En particular, los comentarios sobre la actualización [Stable Update] 2024-01-13 – Kernels, Systemd, Qt5, Mesa, Dbus, Firefox, Thunderbird.

No encontré nada relacionado con mi problemática, así que dejé mi comentario y aventuré una posible solución, pero estaba equivocado. Era necesario un mejor análisis.

Hipótesis de probables culpables.

Como no era un problema conocido de la actualización (Known issues and solutions) toca el turno hacer hipótesis y confirmarlas.

La aceleración gráfica de los navegadores.

Al principio creí que era un problema de Chrome y la aceleración gráfica, porque el crasheo parecía coincidir con la reproducción de videos en Youtube.

Incluso llegué a pensar que en parte era provocado por los nuevos mensajes en la plataforma de videos advirtiendo sobre el uso de bloqueadores de anuncios.

Instalé otros navegadores, comencé con Brave en parte por su sistema integrado de bloqueador de anuncios, pero lo mismo. Y si el problema era Chrome muchos de los navegadores modernos actuales tienen su base en este navegador .

Opción de aceleración en el navegador Brave.
Opción de aceleración en el navegador Brave.

Lo malo es que pasó lo mismo con Firefox así que no importaba que navegador usara con o sin aceleración gráfica el comportamiento era el mismo.

Sospechoso descartado.

El driver libre NOUVEAU.

Es tiempo de ser un poco más formal en la investigación ¡Vamos a los logs!

>journalctl -b -p4

ene 16 11:41:47 plankton kernel: nouveau 0000:01:00.0: Direct firmware load for nouveau/nva8_fuc084 failed with error -2
ene 16 11:41:47 plankton kernel: nouveau 0000:01:00.0: Direct firmware load for nouveau/nva8_fuc084d failed with error -2
ene 16 11:41:47 plankton kernel: nouveau 0000:01:00.0: msvld: unable to load firmware data
ene 16 11:41:47 plankton kernel: nouveau 0000:01:00.0: msvld: init failed, -19
ene 16 11:43:15 plankton systemd-coredump[6898]: [🡕] Process 5915 (Xorg) of user 0 dumped core.
                                                 
                                                 Module linux-vdso.so.1 without build-id.
                                                 Stack trace of thread 5915:
                                                 #0  0x00007f213e25683c n/a (libc.so.6 + 0x8e83c)
                                                 #1  0x00007f213e206668 raise (libc.so.6 + 0x3e668)
                                                 #2  0x00007f213e1ee4b8 abort (libc.so.6 + 0x264b8)
                                                 #3  0x00005585e6deaa40 OsAbort (Xorg + 0x159a40)
                                                 #4  0x00005585e6dead7b FatalError (Xorg + 0x159d7b)
                                                 #5  0x00005585e6de2cf6 n/a (Xorg + 0x151cf6)
                                                 #6  0x00007f213e206710 n/a (libc.so.6 + 0x3e710)
                                                 #7  0x00007f213b970233 n/a (nouveau_dri.so + 0x958233)
                                                 #8  0x00007f213b9a1852 n/a (nouveau_dri.so + 0x989852)
                                                 #9  0x00007f213b9c1557 n/a (nouveau_dri.so + 0x9a9557)
                                                 #10 0x00007f213b9c199d n/a (nouveau_dri.so + 0x9a999d)
                                                 #11 0x00007f213b32be02 n/a (nouveau_dri.so + 0x313e02)
                                                 #12 0x00007f213d3e1398 n/a (libglamoregl.so + 0x19398)
                                                 #13 0x00007f213d3e4241 n/a (libglamoregl.so + 0x1c241)
                                                 #14 0x00005585e6d61490 n/a (Xorg + 0xd0490)
                                                 #15 0x00005585e6d683ba n/a (Xorg + 0xd73ba)
                                                 #16 0x00005585e6ccffee n/a (Xorg + 0x3efee)
                                                 #17 0x00007f213e1efcd0 n/a (libc.so.6 + 0x27cd0)
                                                 #18 0x00007f213e1efd8a __libc_start_main (libc.so.6 + 0x27d8a)
                                                 #19 0x00005585e6cd05a5 _start (Xorg + 0x3f5a5)
                                                 
                                                 Stack trace of thread 5928:
                                                 #0  0x00007f213e2d8bf6 epoll_wait (libc.so.6 + 0x110bf6)
                                                 #1  0x00005585e6ddd847 n/a (Xorg + 0x14c847)
                                                 #2  0x00005585e6de1699 n/a (Xorg + 0x150699)
                                                 #3  0x00007f213e2549eb n/a (libc.so.6 + 0x8c9eb)
                                                 #4  0x00007f213e2d87cc n/a (libc.so.6 + 0x1107cc)
                                                 
                                                 Stack trace of thread 5925:
                                                 #0  0x00007f213e2514ae n/a (libc.so.6 + 0x894ae)
                                                 #1  0x00007f213e253d40 pthread_cond_wait (libc.so.6 + 0x8bd40)
                                                 #2  0x00007f213b12b9dc n/a (nouveau_dri.so + 0x1139dc)
                                                 #3  0x00007f213b122d1c n/a (nouveau_dri.so + 0x10ad1c)
                                                 #4  0x00007f213e2549eb n/a (libc.so.6 + 0x8c9eb)
                                                 #5  0x00007f213e2d87cc n/a (libc.so.6 + 0x1107cc)
                                                 ELF object binary architecture: AMD x86-64
ene 16 11:43:15 plankton pulseaudio[6060]: X11 I/O error handler called
ene 16 11:43:15 plankton pulseaudio[6060]: X11 I/O error exit handler called, preparing to tear down X11 modules
ene 16 11:43:15 plankton systemd[1329]: dbus-:1.11-org.a11y.atspi.Registry@2.service: Failed with result 'exit-code'.
ene 16 11:43:15 plankton systemd[1329]: xfce4-notifyd.service: Failed with result 'exit-code'.
ene 16 11:43:16 plankton systemd-coredump[6939]: [🡕] Process 6918 (xfsettingsd) of user 1000 dumped core.
                                                 
                                                 Module linux-vdso.so.1 without build-id.
                                                 Stack trace of thread 6918:
                                                 #0  0x00007fa3e3b3f5a3 g_log_writer_default (libglib-2.0.so.0 + 0x675a3)
                                                 #1  0x00007fa3e3b39205 g_log_structured_array (libglib-2.0.so.0 + 0x61205)
                                                 #2  0x00007fa3e3b39473 g_log_structured_standard (libglib-2.0.so.0 + 0x61473)
                                                 #3  0x0000564b008c2348 n/a (xfsettingsd + 0x6348)
                                                 #4  0x00007fa3e3917cd0 n/a (libc.so.6 + 0x27cd0)
                                                 #5  0x00007fa3e3917d8a __libc_start_main (libc.so.6 + 0x27d8a)
                                                 #6  0x0000564b008c2785 n/a (xfsettingsd + 0x6785)
                                                 ELF object binary architecture: AMD x86-64
ene 16 11:43:16 plankton pulseaudio[6060]: Error opening PCM device front:0: No existe el fichero o el directorio
ene 16 11:43:18 plankton dbus-broker-launch[6981]: Service file '/usr/share//dbus-1/services/org.xfce.Thunar.FileManager1.service' is not name>
ene 16 11:43:18 plankton dbus-broker-launch[6981]: Service file '/usr/share//dbus-1/services/org.xfce.Tumbler.Cache1.service' is not named aft>
ene 16 11:43:18 plankton dbus-broker-launch[6981]: Service file '/usr/share//dbus-1/services/org.xfce.Tumbler.Manager1.service' is not named a>
ene 16 11:43:18 plankton dbus-broker-launch[6981]: Service file '/usr/share//dbus-1/services/org.xfce.Tumbler.Thumbnailer1.service' is not nam>
ene 16 11:43:18 plankton dbus-broker-launch[6981]: Service file '/usr/share//dbus-1/services/org.xfce.xfce4-notifyd.Notifications.service' is >
ene 16 11:43:18 plankton dbus-broker-launch[6981]: Service file '/usr/share//dbus-1/services/org.xfce.xfce4-notifyd.Notifyd.service' is not na>
ene 16 11:43:31 plankton lightdm[7024]: gkr-pam: unable to locate daemon control file
ene 16 11:43:35 plankton pulseaudio[7084]: GetManagedObjects() failed: org.freedesktop.DBus.Error.NameHasNoOwner: Could not activate remote pe>
ene 16 11:43:35 plankton gnome-keyring-daemon[1341]: asked to register item /org/freedesktop/secrets/collection/login/1, but it's already regi>
ene 16 11:43:35 plankton gnome-keyring-d[1341]: asked to register item /org/freedesktop/secrets/collection/login/1, but it's already registered
ene 16 11:43:35 plankton kernel: nouveau 0000:01:00.0: Direct firmware load for nouveau/nva8_fuc084 failed with error -2
ene 16 11:43:35 plankton kernel: nouveau 0000:01:00.0: Direct firmware load for nouveau/nva8_fuc084d failed with error -2
ene 16 11:43:35 plankton kernel: nouveau 0000:01:00.0: msvld: unable to load firmware data
ene 16 11:43:35 plankton kernel: nouveau 0000:01:00.0: msvld: init failed, -19

Y como pueden apreciar el nombre de nouveau aparece por todas partes.

Una falla en la carga del firmware seguido por un crash de Xorg.

ene 16 11:41:47 plankton kernel: nouveau 0000:01:00.0: Direct firmware load for nouveau/nva8_fuc084 failed with error -2
ene 16 11:41:47 plankton kernel: nouveau 0000:01:00.0: Direct firmware load for nouveau/nva8_fuc084d failed with error -2
ene 16 11:41:47 plankton kernel: nouveau 0000:01:00.0: msvld: unable to load firmware data
ene 16 11:41:47 plankton kernel: nouveau 0000:01:00.0: msvld: init failed, -19
ene 16 11:43:15 plankton systemd-coredump[6898]: [🡕] Process 5915 (Xorg) of user 0 dumped core.

Lo de la falla al cargar el firmware de nouveau era un viejo conocido. Eran esos errores ocasionales que les comentaba al principio del artículo. Lo del truene de Xorg era la novedad.

Centré mi investigación en esos mensajes de error y al final me quedaron dos opciones.

  1. Regresar a los drivers propietarios de nvidia. Para esto aparentemente tenía que compilar mis propios drivers y muy probablemente hacerlo en cada actualización importante léase [HowTo] get legacy 340xx NVIDIA drivers back.
  2. Probar algo nuevo con una tarjeta gráfica integrada AMD Radeon.

Un enfoque nuevo con AMD.

Ya tenía un buen camino recorrido con nvidia y sus drivers. Pero muy poca experiencia con AMD, decidí intentarlo, pero para ellos tenía que hacer el cambio de tarjeta gráfica sobre la marcha y no fue sencillo.

Le di un repaso al wiki de Manjaro Configure Graphics Cards quité la tarjeta nvidia y veamos que pasa.

Tarjeta nvidia 340xx
Tarjeta nvidia 340xx

Ilusamente creí que con quitar la tarjeta nvidia era más que suficiente, pero no, no iba a ser tan fácil.

El siguiente arranque fue con un linux en modo de emergencia.

You are in emergency mode. After loggin in , type "journalctl -xb" to view
system logs, "systemctl reboot" to reboot, or "exit"
to continue bootup.
Contraseña de root para mantenimiento
(o pulse Control-D para continuar):_

Que la verdad no era de mucha utilidad. Digo, puedes hacer algunos cambios pero no hay una conexión a Internet para instalar paquetes así que lo mejor era hacer un chroot.

Problemas con un disco duro. En este punto me gustaría hacer una aclaración. Días después de escribir este artículo volvió a arrancar mi computadora en el modo de emergencia. Todo parece indicar que fue provocado por un disco duro que agoniza. Una mala sincronización de eventos hizo que el cambio de tarjeta gráfica no fuera tan sencillo como debería. Hecha la aclaración continuamos.

Descargué el ISO de instalación e hice una USB de arranque y según yo hice todo lo posible siguiendo el wiki de Manjaro para instalar y configurar mi nueva tarjeta AMD.

Nueva tarjeta AMD RS880 [Radeon HD 4250]
Nueva tarjeta AMD RS880 [Radeon HD 4250]

Pero seguía arrancando en el modo de emergencia. Ya estaba a punto de reinstalar todo el sistema cuando …

En algún lado leí que era necesario instalar el kernel 6.1 ( Switch from Nvidia gpu to Amd gpu ) cuando menos para que el driver Radeon funcionara y así lo hice (en ese momento estaba usando la versión 5.4) y ¡Voalá! arrancó perfectamente.

Se que anteriormente he tenido problemas con el kernel 6 y virtualbox, pero ya buscaré una solución a ese problema a largo plazo.

Conclusiones

Al momento de escribir esta nota no he tenido congelamientos ni cierres abruptos de sesión. Pero estoy consiente que con el tiempo hay un desfasamiento entre mi hardware y las versiones más recientes del software.

Inicia una nueva experiencia con Radeon que para colmo es igual de antigua que la de nvidia, así que supongo que tendrá sus bemoles.

La lección aprendida es que cuando el Jefazo dice que nvidia esta haciendo mal las cosas con Linux es porque es cierto.

2 comentarios en «NVIDIA, Nouveau, congelamientos y otras pesadillas.»

  1. Totalmente de acuerdo! La gente de AMD no está haciendo bien las cosas en Linux. En ese aspecto, Intel y sus gráficas incorporadas nunca me han dado problemas.

    Responder
    • Hola Gerardo,

      Pues veamos como me va ahora con AMD, de entrada noté que al activar la aceleración gráfica en los navegadores aparecen «artefactos» fallas en la matrix a manera de cuadros de color extraños. La solución es simple, quitar la aceleración y eso ha sido todo por el momento.

      Las tareas más exigentes como reproducción de videos, ya sea en el navegador o usando un reproductor funciona bastante bien. Y para mi con eso es más que suficiente.

      Saludos y gracias por comentar.

      Responder

¡Me encantaría saber que opinas!

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Descubre más desde LINUXMANR4

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo