Cómo instalar controladores Nvidia en una computadora portátil Dell Latitude - Ubuntu 16.04

Cómo instalar controladores Nvidia en una computadora portátil Dell Latitude - Ubuntu 16.04

Después de actualizar de Ubuntu 15.10 a 16.04.1, ambos de 64 bits, me quedé atrapado en un bucle de inicio de sesión infinito: cada vez que iniciaba sesión lightdm, después de iniciar sesión, la pantalla se ponía negra y luego volvía a la pantalla de inicio de sesión. Iniciar sesión tty0funcionó bien. Tengo una computadora portátil Del Latitude 3350 con un Core i5 5200U y una Nvidia GeForce 830M. La actualización decidió que necesitaba los nvidia-361controladores, antes de usar nvidia-352. Muchas de las instrucciones que encontré al principio mencionaban el arranque seguro en mi UEFI BIOS, pero ya estaba desactivado (no recuerdo si lo apagué tan pronto como recibí la computadora portátil o si se envió de esa manera desde Dell). . Reinstalar y/o reconfigurar lightdmno ayudó. Al menos me indicaron cómo desinstalar los controladores de Nvidia, pero eso es sólo una solución parcial. Esto no es un duplicado de otras preguntas que he visto en Askubuntu ya que los pasos que funcionaron para otros no funcionaron para mí. Posiblemente la guía más cercana sea¿Cómo instalar controladores de gráficos sensatos para hardware Nvidia Optimus en *Ubuntu 16.04?. Sin embargo, eso no hace que la GPU Nvidia sea utilizable para mí, tuve que instalar Bumblebee. Además, esa guía enlaza con [Bumblebee en un Lenovo T440p [NVidia GT 730M] con XUbuntu/Ubuntu 16.04 LTS]{http://lenovolinux.blogspot.co.za/2016/05/bumblebee-on-lenovo-t440p-nvidia-gt.html?m=1} excepto que seguir esas instrucciones también me dejó sin un Bumblebee que funcionara.

Después de mucho buscar en Google descubrí que la solución parcial era desinstalar los controladores de Nvidia. finalmente encontréestosinstrucciones que me llevaron al punto de poder iniciar sesión.

Una nota importante antes de continuar, parece que necesita instalar los intel-microcodecontroladores usando la pestaña Controladores adicionales en Configuración del sistema. Ya los tenía instalados (probablemente desde los días 15.10 de Ubuntu), así que nunca probé qué sucede si no están instalados.

Utilicé los siguientes comandos para eliminar Bumblebee y los controladores de Nvidia, y luego reinstalé los controladores de Nvidia. Tenga en cuenta que debe agregar el repositorio de controladores de gráficos para obtener los controladores más recientes de Nvidia:

sudo apt-get purge .*nvidia.* bumblebee.* .*primus.*
sudo apt-get --purge autoremove
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt install nvidia-367 nvidia-prime nvidia-settings

Esto resultó en la instalación de los siguientes paquetes:

bbswitch-dkms libcuda1-367 libjansson4 nvidia-367 nvidia-opencl-icd-367 nvidia-prime nvidia-settings screen-resolution-extra

Entonces lo hice rm .nvidia-settings-rc.

En este punto, las instrucciones dicen que ejecute algunos programas que usan la GPU. Si ejecuto clinfo(uso la GPU para el desarrollo de OpenCL), entonces todo funciona bien. Otros programas OpenCL también funcionan bien. Sin embargo, si lo ejecuto glxinfoobtengo el siguiente resultado:

name of display: :0
Error: couldn't find RGB GLX visual or fbconfig

Continué con las instrucciones para poder hacer funcionar Bumblebee. sudo prime-select intelera necesario porque de lo contrario, después de reiniciar, vuelvo al bucle infinito de inicio de sesión. Después de reiniciar, seguí sudo apt install bumblebeeeditando /etc/bumblebee/bumblebee.confpara cambiar todas las instancias de nvidia-currenta nvidia-367. También edité /etc/modprobe.d/bumblebee.confpara incluir la línea blacklist nvidia-367. Como no hay nvidia-367-updatespaquetes nvidia-experimental-367que pueda instalar, no los incluí en la lista negra.

Después de reiniciar, puedo ejecutarlo primusrun clinfoe imprime la plataforma Nvidia. La ejecución de programas OpenCL en la GPU Nvidia también funciona cuando se usa primusrun. Sin embargo, primusrun glxinfome da un error:

primus: fatal: Bumblebee daemon reported: error: [XORG] (EE) Failed to load module "mouse" (module does not exist, 0)

Usar optirunpara cualquier cosa me da un error similar, por ejemplo, optirun clinfoy optirun glxinfoambos dan:

[  462.796690] [ERROR]Cannot access secondary GPU - error: [XORG] (EE) Failed to load module "mouse" (module does not exist, 0)

[  462.796725] [ERROR]Aborting because fallback start is disabled.

Intenté cambiar la línea Bridge=a Bridge=primusy la línea PMMethod=autoa PMMethod=bbswitchin /etc/bumblebee/bumblebee.conf. Eso no ayudó.

¿Cómo hago para que los controladores de Bumblebee y Nvidia funcionen aquí si parece que ningún conjunto de instrucciones funciona? Bonificación: ¿Cómo puedo hacer que los controladores de Nvidia funcionen completamente cuando los uso prime-select nvidiaen lugar de Bumblebee?

Respuesta1

Las soluciones que encontré hasta ahora hacen que Bumblebee funcione (en su mayoría) y proporcionan un medio para apagar manualmente la GPU Nvidia cuando no está en uso. Todavía no me he puesto glxinfoa trabajar cuando uso prime-select nvidiaen lugar de optirun.

comencé a seguirestosinstrucciones. Agregué i915y bbswitcha /etc/modules. Corrí sudo gpasswd -a $USER bumblebeey sudo systemctl enable bumblebeed. Esos dos comandos parecen haber finalizado con éxito. Después de reiniciar, el problema sigue siendo el mismo. Si hago sudo prime-select nvidialo siguiente, glxinfosigo recibiendo el error couldn't find RGB GLS visual or fbconfig.

En este punto decidí instalarlo bumblebee-nvidia; las instrucciones a las que vinculé en mi pregunta decían que no, pero el enlace de arriba sí lo incluía. Sorprendentemente, esto solucionó la mayoría de mis problemas. Ahora, haga optirun glxinfoo primusrun glxinfoimprima la información de la GPU Nvidia. optirun glxgearsy optirun glxheads(y también usar primusrun) funciona bien. Una advertencia: en una iteración anterior al intentar solucionar este problema, se instaló bumblebee-nvidiabreak optirun/ primusrun.

Lo único que no funciona es prime-select nvidiaseguido de glxinfo. Entonces sigo recibiendo el error de no poder cargar el módulo "mouse". Además, si ejecuto cat /proc/acpi/bbswitchsigo recibiendo 0000:04:00.0 ON, lo que creo que indica que mi GPU Nvidia todavía está encendida. La ejecución lspci | grep NVIDIAregresa 04:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 830M] (rev a2)y confirma la dirección PCIe de mi GPU Nvidia.

El problema de energía, según dmesg | grep bbswitch, era que el nvidiamódulo impedía que la GPU se apagara. Es posible apagar manualmente la GPU Nvidia ejecutando sudo rmmod nvidia_drm, sudo rmmod nvidia_uvmy sudo rmmod nvidia_modeset, sudo rmmod nvidiaseguido de sudo tee /proc/acpi/bbswitch <<<OFF. Sin embargo, no es genial, así que busqué un método automático para que esto funcione.

Para solucionar que Bumblebee no apagara mi GPU Nvidia, probé las instruccionesdel proyecto abejorropero sin éxito. Específicamente, mi /etc/modprobe.d/bbswitch.confcontiene options bbswitch load_state=0y lo agregué bbswitch load_state=0al final de /etc/modules. Ejecuté sudo update-initramfs -uy luego reinicié, pero cat /proc/acpi/bbswitchtodavía muestra que la GPU está ENCENDIDA. Por el momento, estoy solucionando este problema utilizando un script con los rmmodcomandos para apagar la GPU Nvidia. Al ejecutar cualquier programa con esos controladores optiruno se recargan automáticamente.primusrun

información relacionada