lunes, agosto 22, 2016

(Linux) Ubuntu 16.04: Agregando soporte para nuevo hardware

Hace poco adquirí un portátil (MSI GL62 6QF) que para lo que es hoy --22/08/2016-- está casi a la última (Intel Core i7-6700HQ, 4 cores, 8 GB Ram, SSD 256 GB, etc), y como siempre, lo primero que hice fue instalarle Linux (Ubuntu 16.04) como Sistema Operativo principal, ya que venía sin ninguno instalado, y por eso salió algo más barato.


El problema que me encontré es que la última versión de Ubuntu Linux usa el kernel 4.4 que no soporta completamente todas las características del último hardware disponible, en este caso no tiene soporte completo de las características de la plataforma Skylake-H de Intel, y esto implica que, o bien tenía que desactivar desde el BIOS algunas cosas, como el soporte de hyperthreading, C-States y alguna cosa más, o bien podía actualizar el kernel de Linux a la última versión estable (cuando lo bajé era la 4.7.1) para la que ya hay bastante mejor soporte de características, que fue lo que finalmente hice.

En esta nota, y por si a alguien le pudiera servir, voy a comentar cómo hice esa actualización y algunas otras para poder aprovechar este hardware lo mejor posible y no tener que desactivar esas características.



1) Arranque e Instalación inicial

Al arrancar desde un pendrive USB que había preparado con la versión 16.04 de Ubuntu Mate, me salieron algunos errores que impedían terminar la carga del Live USB, por lo que tuve que agregar temporalmente unos parámetros en el arranque. Para ello, cuando muestra la opción de cargar Ubuntu, se depe pulsar "e" para editar la línea de comando de carga, y en la línea donde termina con esto:

(...) splash quiet --

Agregar lo siguiente:

(...) splash quiet nomodeset acpi=off --

Lo que permite arrancar sin problemas y realizar la instalación.



2) Actualización del kernel

Luego de buscar un buen rato cómo actualizar el kernel de la forma más simple posible, y sin necesidad de compilarlo manualmente, encontré un link a una página de Ubuntu que no encuentro por ningún sitio navegando desde la ventana principal, y que es este:

http://kernel.ubuntu.com/~kernel-ppa/mainline/


Dentro del directorio v4.7.1 se puede ver, entre otros varios archivos, los que corresponden a esta máquina, que es de 64 bits:


Una vez elegida la sección correspondiente a la arquitectura correspondiente, se descargan los archivos .deb correspondientes a "all" y a "generic" (son 3), y se instalan desde la terminal:

sudo dpkg -i *.deb
sudo update-grub

luego se reinicia el sistema, y se verifica la versión del kernel:

uname -r
4.7.1-040701-generic



3) Drivers de video más actualizados

Como necesitaba drivers más actualizados que los que vienen por defecto (nVidia 361), agregué estos dos repositorios (puede que uno de los dos solo sirva, pero como estaba probando no sé cuál es el bueno realmente):

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo add-apt-repository ppa:oibaf/graphics-drivers

Con esto ya pude instalar la versión 367 de los drivers de nVidia, junto a los paquetes nvidia-prime y nvidia-settings

Al volver a reiniciar, ya muestra un icono para poder seleccionar entre el video Intel HD y la nVidia GTX-960M, cuyo cambio requiere cerrar sesión y volver a entrar (no reiniciar).

Decir que para la mayoría de las tareas que no requieran la potencia de la GTX, con la Intel va sobrada en cuanto a velocidad para video, trabajo y algunos juegos, además de que consume bastante menos, lo que hace que la batería dure más.



Bueno, esto es lo principal, luego el software al gusto de cada uno.


Hasta la próxima! :D



4 comentarios:

  1. Buenas tardes Fernando
    Y cuando instalaste los Drivers de Vídeo de Nvidia no se te queda suspendida cuando mandas a Reiniciar o Apaagar...?
    Te pregunto porque tengo una configuración muy parecida y me ha costado un mundo actualizar el Driver de Vídeo, he tenido que montar una versión mas vieja...
    Saludos

    ResponderEliminar
    Respuestas
    1. Hola, realmente los problemas los tuve al principio, cuando instalé el driver nVidia pir defecto, que no me iba bien, por lo que lo tuve que desinstalar completamente, reiniciar e instalar los que puse.
      Hasta poder entrar sin problemas, tuve que agregar los parámetros del punto 1, pero una vez instalado el driver, ya no tuve problemas.
      Lo que si es muy importante es verificar el log de Xorg.log.0, que dice exactamente lo que pasa.

      Eliminar
  2. Para que hace falta actualizar el kernel ?

    ResponderEliminar
    Respuestas
    1. El Kernel es el que tiene los drivers para el soporte de los dispositivos y de los procesadores y sus características más específicas. El Kernel por defecto de Ubuntu 16.04 (Kernel de la rama 4.4) solo soporta algunas capacidades de los procesadores y plataformas más nuevo, pero hay otras que no, como indico al inicio de la nota, entonces en ese caso es necesario actualizar el Kernel a una versión más nueva para conseguir el soporte de esas características. En el LOG de cambios del Kernel se puede ver qué cosas nuevas arregla y soporta, te dejo el link para que veas:
      https://kernelnewbies.org/LinuxChanges

      Eliminar