NVIDIA-SMI falló porque no pudo comunicarse con el controlador NVIDIA解决办法
Enlace de referencia 1
Enlace de referencia 2
Enlace de referencia 3
2023.3.17 actualización
Este problema volvió a aparecer de repente hoy. Al principio, pensé que el kernel se actualizaba automáticamente, así que quería bajar la versión del kernel. Cuando miré la versión anterior del kernel, descubrí que se eliminó automáticamente. Entonces también canceló la actualización automática del kernel antes Entrada El comando dpkg --get-selections | grep linux-image
para imprimir la versión del kernel también muestra hold
que el kernel no ha sido actualizado.
No encontré el problema al principio, así que seguí intentando descargar la versión antigua del kernel para solucionarlo, pero no funcionó. Finalmente, sin darse cuenta, haga clic en la aplicación ubuntunvidia x server settings
Seleccionará nvidia on-demand
y luego reiniciará el sistema (se selecciona la opción original intel 省电模式
, demasiado pit...)
1. Descripción del problema
nvidia-smi
Error de entrada de terminal
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.
Make sure that the latest NVIDIA driver is installed and running.
Estuvo bien, pero la aparición repentina de este problema generalmente se debe a la actualización automática del kernel, lo que resulta en una falta de coincidencia entre la versión del kernel y el controlador de la tarjeta gráfica. La mejor solución es degradar la versión del kernel a la versión anterior.
- Ingrese el comando en la terminal
uname -r
, genere la versión actual del kernel y recuerde la información de la versión actual
2. Cambiar al núcleo original
(1) Si ubuntu tiene una interfaz gráfica, puede cambiar el kernel mediante el siguiente método
- Reinicie el host, ingrese a la interfaz de arranque de grub y seleccione Opciones avanzadas para Ubuntu
- Después de seleccionar Opciones avanzadas para Ubuntu , ingrese a su submenú, como se muestra en la figura a continuación
- Seleccione una versión inferior del kernel para ingresar al sistema y luego
uname -r
verifique la versión actual del kernel a través de la entrada del terminal para confirmar si el cambio es exitoso.Si el cambio es exitoso, ingrese para verificarnvidia-smi
si la configuración de la tarjeta gráfica se puede imprimir
(2) Si ubuntu no tiene una interfaz gráfica (el tipo de servidor de control remoto), puede cambiar el kernel mediante el siguiente método
- Primero, verifique su versión de grub:
grub-install --version
Recuerde si la versión principal posterior a (GRUB) es posterior a la 2.00 o anterior a la 2.00
- Verifique su versión de kernel existente (versión completa)
grep 'menuentry' /boot/grub/grub.cfg
- Encuentre el núcleo al que desea volver a cambiar
例如,这里我想要更换为5.8.0-50,就找到对应的选项,有
menuentry 'Ubuntu,Linux 5.8.0-50-generic' --class ubuntu
--class gnu-linux --class gnu --class os $menuentry_id_option
'gnulinux-5.8.0-50-generic-advanced-237310b8-5d8a-4e13-bcbd-37ef97be8341' {
Tenga en cuenta que esta opción no es (modo de recuperación).
- Copie la cadena entre comillas simples después de la entrada del menú en la información anterior
por ejemplo, yo soyUbuntu,Linux 5.8.0-50-generic
- modificar grub
Escriba en la terminal
sudo nano /etc/default/grub
pon el primero
GRUB_DEFAULT=0
Modifique a lo que acaba de copiar
GRUB_DEFAULT = "Ubuntu,Linux 5.8.0-50-generic"
(nota las comillas dobles)
- Actualizar la configuración de grub
Escriba en la terminal
sudo update-grub
Si ve la siguiente advertencia
Please don't use old title 'Ubuntu,Linux 5.8.0-50-generic' for GRUB_DEFAULT,
use 'Advanced options for Ubuntu>Ubuntu,Linux 5.8.0-50-generic'
(for versions before 2.00) or
'gnulinux-advanced-237310b8-5d8a-4e13-bcbd-37ef97be8341>gnulinux-5.8.0-50-generic-
advanced-237310b8-5d8a-4e13-bcbd-37ef97be8341' (for 2.00 or later)
Según la versión de grub vista anteriormente, si es mayor o igual a 2.00 copia y pega la cadena en la tercera comilla simple de arriba, en caso contrario copia y pega la cadena en la segunda comilla simple, es decir, debe modificarse nuevamente grub una vez
Por ejemplo, si mi versión de grub es superior a la 2.00, la anterior
GRUB_DEFAULT="Ubuntu,Linux 5.8.0-50-generic"
cambie a
GRUB_DEFAULT="gnulinux-advanced-237310b8-5d8a-4e13-bcbd-
37ef97be8341>gnulinux-5.8.0-50-generic-
advanced-237310b8-5d8a-4e13-bcbd-37ef97be8341"`
De lo contrario modificar a
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu,Linux 5.8.0-50-generic"
¡Asegúrese de modificar GRUB_DEFAULT nuevamente! ! ! ¡Presta atención para ver claramente el contenido dentro de la segunda comilla simple y la tercera comilla simple! ! !
- Escriba en el terminal de nuevo
sudo update-grub
Ya no debería ver ningún aviso de advertencia
- Reanudar
sudo reboot
Tenga en cuenta que cuando grub se está iniciando, el cursor debe apuntar a opciones como las opciones avanzadas de Ubuntu de forma predeterminada. No mueva el cursor y deje que elija automáticamente iniciar
- Comprobar el éxito
uname -r
Si se ha convertido en la versión del kernel que desea cambiar, continúe; de lo contrario, verifique si olvidó sudo update-grub o el error de modificación de grub
3. Eliminar el núcleo actualizado
- Ver todos los núcleos instalados actualmente
dpkg --get-selections | grep linux-image
producción
linux-image-5.10.0-1023-oem install
linux-image-5.4.0-42-generic install
linux-image-5.8.0-50-generic install
linux-image-generic-hwe-20.04 install
Encuentre el nombre del kernel actualizado (la información de la versión del kernel se recuerda al principio), elimine el kernel
sudo apt-get remove linux-image-5.10.0-1023-oem
sudo dpkg -P linux-image-5.10.0-1023-oem
Finalmente, no olvide modificar /etc/default/grub的GRUB_DEFAULT为=0
, y sudo update-grub
(si usa el segundo método para cambiar de kernel, no necesita el primero)
4. Deshabilite las actualizaciones automáticas del kernel
- Modificar archivos de configuración basados en la línea de comando
(1) Entrada:
sudo gedit /etc/apt/apt.conf.d/10periodic
Si desea deshabilitar el archivo de configuración de actualización automática, configure de la siguiente manera:
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";
APT::Periodic::Unattended-Upgrade "0";
Si desea activar las actualizaciones automáticas, el archivo de configuración se establece de la siguiente manera:
APT::Periodic::Update-Package-Lists "2";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "0";
APT::Periodic::Unattended-Upgrade "1";
Guardar y Salir.
(2) Entrada:
sudo gedit /etc/apt/apt.conf.d/20auto-upgrades
Si desea deshabilitar el archivo de configuración de actualización automática, configure de la siguiente manera:
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";
APT::Periodic::Unattended-Upgrade "0";
Si desea activar las actualizaciones automáticas, el archivo de configuración se establece de la siguiente manera:
APT::Periodic::Update-Package-Lists "2";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "0";
APT::Periodic::Unattended-Upgrade "1";
Guardar y Salir.
- Abra "Software y actualizaciones"
La pestaña de actualización se modifica para
- De forma predeterminada, ubuntu comienza a actualizar automáticamente el kernel.Para evitar encontrar errores y no poder ingresar al sistema después de reiniciar el sistema, podemos deshabilitar aún más la actualización del kernel y usar el kernel actual.
sudo apt-mark hold linux-image-generic linux-headers-generic
Si desea reiniciar la actualización del kernel de arranque:
sudo apt-mark unhold linux-image-generic linux-headers-generic