domingo, 28 de octubre de 2012

Como desinstalar los drivers privativos Catalyst/fglrx en Ubuntu 11.10 y derivados


A pesar de que la situación actual ha mejorado considerablemente en los últimos años no se puede negar que la mayoría de fabricantes siguen dejando de lado a GNU/Linux a la hora de hacer el hardware compatible, sobretodo para programar nuevos controladores. Y para colmo los que actualmente ofrecen soporte lo hacen a medias o de mala manera. En este caso vamos a hablar de los controladores gráficos.
Nvidia tiene una filosofía muy cerrada y nunca publica las especificaciones de su hardware por tanto las comunidades no pueden programar controladores siguiendo un esquema de funcionamiento, tienen que hacerlo con ingeniería inversa y es muy complicado, el resultado es un controlador que funciona a duras penas y que por supuesto ni saca ni nunca sacara toda la potencia y eficiencia del hardware. Un caso seria Nouveauque es el controlador libre disponible para Nvidia, y en estos momentos se puede considerar poco mas que experimental, sin embargo tampoco es un problema muy grave por la razón de que Nvidia si algo sabe hacer bien es el software y controladores para sus productos, en GNU/Linux tiene muy buen soporte, y el resultado de usar el controlador privativo de Nvidia sera una aceleración completa 3D, funciones de ahorro de energía y una eficiencia perfecta, el único punto negativo lo tenemos cuando nuestro hardware se vuelve algo antiguo, Nvidia no suele actualizar los controladores para productos sin soporte y nos quedamos con el problema que teníamos al principio, el controlador libre es un completo desastre por lo que nos hace replantear la compra de una tarjeta gráfica mas moderna.
En el caso de AMD/ATI es a la inversa, AMD fabrica un hardware excelente sin embargo donde mas cojea es en el software y sus controladores. Normalmente suelen tardar unos meses hasta sacar un controlador que aproveche bien un modelo de tarjeta gráfica que acaba de salir al mercado sin embargo la filosofía de AMD es la de publicar las especificaciones de la arquitectura del hardware, por tanto hacer controladores libres es infinitamente mas sencillo que en el caso de Nvidia. Los controladores libres actuales disponibles para GNU/Linux son una maravilla en algunos casos mejores que los privativos de AMD así que mucha gente suele optar por el controlador libre.
El problema principal es que AMD hace controladores mas o menos buenos para Windows, pero en las versiones de GNU/Linux no les presta la misma atención que en su versión de Windows. Por tanto es habitual que intentemos instalar el controlador en Linux y nos de fallos constantes, incluso que ni arranque el servidor gráfico y nos quedemos delante del ordenador sin saber que hacer. Así que vamos a explicar como desinstalar por completo el controlador privativo y volver a instalar el controlador libre que viene por defecto en Ubuntu 11.10 y sus derivados. Este tutorial también se puede seguir si utilizamos una versión de Ubuntu mas antigua.
Es muy probable que si necesitas leer este tutorial desde otro ordenador por que el tuyo se ha quedado sin poder iniciar el servidor gráfico después de instalar el controlador privativo evidentemente no podrás utilizar la terminal dentro del escritorio gráfico, así que para ejecutar la terminal en el modo de recuperación, arrancamos el ordenador con la opción de recovery en el menú de arranque GRUB.
Una vez que haya arrancado nos saldrá un menú en modo texto parecido a este dependiendo de la versión de Ubuntu o algún derivado que estemos utilizando.
Como necesitamos acceso a Internet, seleccionamos la opción de terminal con acceso a Internet, en este caso seria netroot. Ahora una vez que ya estamos en la terminal escribimos los siguiente comandos:
sudo sh /usr/share/ati/fglrx-uninstall.sh
Con esto desinstalamos la suite completa Catalyst, si te dice que el archivo no existe es posible que sea por que solo tienes instalado el controlador o lo hayas hecho con la opción de instalar controladores en las preferencias de Ubuntu, si este es tu caso continua con el siguiente paso.
sudo apt-get remove --purge fglrx fglrx_* fglrx-amdcccle* fglrx-dev* xorg-driver-fglrx
Con este comando borramos completamente cualquier rastro que pueda quedar del controlador privativo y limpiamos su configuración del registro. Así que técnicamente el problema ya esta resuelto, ahora solo queda reinstalar el controlador libre, si no no podremos iniciar el servidor gráfico.
sudo apt-get remove --purge xserver-xorg-video-ati xserver-xorg-video-radeon
Con esto eliminamos cualquier rastro del controlador libre que pueda haberse quedado entre los archivos de configuración del sistema.
sudo apt-get install xserver-xorg-video-ati
sudo apt-get install --reinstall libgl1-mesa-glx libgl1-mesa-dri xserver-xorg-core
 Después de esto borrar el archivo xorg.conf

sudo rm /etc/X11/xorg.conf                                                                                                                                                          

Y con estos dos últimos comandos reinstalamos por completo el controlador libre creando un nuevo archivo de configuración para evitar conflictos. Ahora solo nos queda reiniciar y tener mas cuidado la próxima vez con el controlador privativo de AMD. Para reiniciar directamente desde la terminal lo podemos hacer ejecutando el siguiente comando:
sudo reboot