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 tty0
funcionó 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-361
controladores, 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 lightdm
no 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-microcode
controladores 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 glxinfo
obtengo 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 intel
era 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 bumblebee
editando /etc/bumblebee/bumblebee.conf
para cambiar todas las instancias de nvidia-current
a nvidia-367
. También edité /etc/modprobe.d/bumblebee.conf
para incluir la línea blacklist nvidia-367
. Como no hay nvidia-367-updates
paquetes nvidia-experimental-367
que pueda instalar, no los incluí en la lista negra.
Después de reiniciar, puedo ejecutarlo primusrun clinfo
e imprime la plataforma Nvidia. La ejecución de programas OpenCL en la GPU Nvidia también funciona cuando se usa primusrun
. Sin embargo, primusrun glxinfo
me da un error:
primus: fatal: Bumblebee daemon reported: error: [XORG] (EE) Failed to load module "mouse" (module does not exist, 0)
Usar optirun
para cualquier cosa me da un error similar, por ejemplo, optirun clinfo
y optirun glxinfo
ambos 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=primus
y la línea PMMethod=auto
a PMMethod=bbswitch
in /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 nvidia
en 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 glxinfo
a trabajar cuando uso prime-select nvidia
en lugar de optirun
.
comencé a seguirestosinstrucciones. Agregué i915
y bbswitch
a /etc/modules
. Corrí sudo gpasswd -a $USER bumblebee
y 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 nvidia
lo siguiente, glxinfo
sigo 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 glxinfo
o primusrun glxinfo
imprima la información de la GPU Nvidia. optirun glxgears
y optirun glxheads
(y también usar primusrun
) funciona bien. Una advertencia: en una iteración anterior al intentar solucionar este problema, se instaló bumblebee-nvidia
break optirun
/ primusrun
.
Lo único que no funciona es prime-select nvidia
seguido de glxinfo
. Entonces sigo recibiendo el error de no poder cargar el módulo "mouse". Además, si ejecuto cat /proc/acpi/bbswitch
sigo recibiendo 0000:04:00.0 ON
, lo que creo que indica que mi GPU Nvidia todavía está encendida. La ejecución lspci | grep NVIDIA
regresa 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 nvidia
módulo impedía que la GPU se apagara. Es posible apagar manualmente la GPU Nvidia ejecutando sudo rmmod nvidia_drm
, sudo rmmod nvidia_uvm
y sudo rmmod nvidia_modeset
, sudo rmmod nvidia
seguido 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.conf
contiene options bbswitch load_state=0
y lo agregué bbswitch load_state=0
al final de /etc/modules
. Ejecuté sudo update-initramfs -u
y luego reinicié, pero cat /proc/acpi/bbswitch
todavía muestra que la GPU está ENCENDIDA. Por el momento, estoy solucionando este problema utilizando un script con los rmmod
comandos para apagar la GPU Nvidia. Al ejecutar cualquier programa con esos controladores optirun
o se recargan automáticamente.primusrun