31 diciembre 2013

Reinstalar drivers nVidia en Linux Mint 13

Desde hace ya algún tiempo que tengo un Dell Vostro 1310 equipado con una tarjeta gráfica NVIDIA GeForce 8400M GS y al que le instalé Linux Mint 13 MATE 64-bit.

El caso es que, en las últimas fechas, el portátil se calentaba en exceso hasta el punto de llegar a quedarse "colgado" por sobrecalentamiento. El problema estaba en que, aparte de perder todo el trabajo no guardado, también se perdía la configuración de los drivers de la tarjeta gráfica y, en consecuencia, no arrancaba el servidor gráfico.

En este tutorial contaré la forma en que solucioné el problema.

1. Resolver el sobrecalentamiento de la CPU
Aunque, por importancia, este era el primer problema que había que solventar, no es el objeto de este tutorial. Lo que hice para solucionarlo fue restituir la capa de pasta térmica entre la CPU y el radiador.


2. Reinstalar (la última versión de) los drivers de la tarjeta gráfica
Hay que recordar que en el caso que nos ocupa no disponemos de servidor gráfico. Por lo tanto, todas las instrucciones se ejecutarán desde la consola del sistema.

Previamente, desde otro equipo, accederemos a la zona de descargas de la web de NVIDIA y descargaremos los drivers adecuados al sistema: en nuestro caso, GeForce 8400M GS para Linux de 64-bit.


Una vez realizada la descarga, copiamos el archivo (en nuestro caso, NVIDIA-Linux-x86_64-331.20.run) en el equipo donde haya que reinstalar los drivers.

Antes de proceder, actualizaremos del sistema
$ sudo apt-get update && sudo apt-get upgrade
A continuación, si no están instalados ya, instalamos los siguientes paquetes:
$ sudo apt-get install build-essential linux-headers-$(uname -r)
Nos situamos en el directorio donde hayamos copiado el archivo de los drivers y le asignamos permisos de ejecución
$ chmod +x NVIDIA-Linux-x86_64-331.20.run
Si ya habíamos instalado los drivers a mano anteriormente, los desinstalamos
$ sudo sh NVIDIA-Linux-x86_64-331.20.run --uninstall
Eliminamos los paquetes anteriores de nvidia y, también, el driver libre "nouveau"
$ sudo apt-get remove --purge nvidia*
$ sudo apt-get remove --purge xserver-xorg-video-nouveau
Editamos la lista negra que indica qué módulos no deben cargarse mediante modprobe y, al final del archivo, le añadimos los siguientes módulos:
$ sudo vim /etc/modprobe.d/blacklist.conf
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv
Nos aseguramos de detener el servicio Mint Display Manager (mdm), ejecutamos el script que nos instalará los nuevos drivers (privativos) de NVIDIA y volvemos a arrancar el servicio mdm
$ sudo service mdm stop
$ sudo sh NVIDIA-Linux-x86_64-331.20.run
$ sudo service mdm stop
Si arranca la interfaz gráfica es señal de que ya tenemos instalado los drivers. En este punto sería recomendable reiniciar el sistema.
$ sudo reboot
Al arrancar de nuevo, para comprobar que ya están instalados vamos al menú y en el buscador escribimos "nvidia". Debería salir el "NVIDIA X Server Settings".

También se pueden buscar desde la consola:
$ glxinfo | grep direct 
direct rendering: Yes
    GL_EXT_Cg_shader, GL_EXT_depth_bounds_test, [...]
Si devuelve "Yes" quiere decir que están instalados.

A TENER EN CUENTA: La solución tomada en este tutorial es eliminar el driver libre nouveau para NVIDIA y proceder a la instalación de los respectivos drivers propietarios del fabricante.

Concatenar ficheros PDF en Ubuntu

En Ubuntu existen varias formas de unir varios archivos PDF (file1.pdf, file2.pdf) en un único archivo de salida (mergedfile.pdf). En este tutorial veremos 3 formas de hacerlo:

1. GhostScript
Si es preciso, instalamos el paquete ghostscript.
$ sudo apt-get install ghostscript
Para concatenar los archivos, ejecutamos el siguiente comando:
$ gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sDEVICE=pdfwrite \
  -sOutputFile=mergedfile.pdf file1.pdf file2.pdf
Esta es una breve explicación del comando
gs         llamada al programa Ghostscript.
-dBATCH    una vez Ghostscript ha procesado los archivos PDF,
           finaliza la ejecución. Si no se incluye esta opción,
           Ghostscript se mantendrá en ejecución.
-dNOPAUSE  fuerza a Ghostscript a procesar cada página sin pausa para 
           interacción del usuario.
-q         evita que Ghostscript muestre mensajes mientras trabaja
-sDEVICE=pdfwrite 
           indica a Ghostscript que procese los archivos con su 
           escritor de PDF interno.
-sOutputFile=finished.pdf
           indica a Ghostscript que guarde el archivo PDF combinado 
           con el nombre especificado.

2. PDF Toolkit
Si es preciso, instalamos el paquete pdftk.
$ sudo apt-get install pdftk
Para concatenar los archivos, ejecutamos el siguiente comando:
$ pdftk file1.pdf file2.pdf cat output mergedfile.pdf
Para concatenar, en orden alfabético, todos los archivos PDF de un directorio se puede hacer lo siguiente:
$ pdftk *.pdf cat output mergedfile.pdf
Más información y ejemplos de uso de pdftk disponibles aquí.


3. PDF Shuffler
A diferencia de las dos soluciones anteriores que se basaban en aplicaciones que se ejecutaban desde la línea de comandos, PDF Shuffler es una aplicación con un GUI muy básico y sencillo de manejar. Basta con ir añadiendo los archivos que se quieren concatenar y salvar el PDF resultante.

El paquete se puede instalar desde la línea de comandos:
$ sudo apt-get install pdfshuffler