martes, 21 de junio de 2011

Instalar controlador/driver de tarjeta de video nvidia sin internet

Datos:
Procesador Core 2 duo
2GB RAM
tarjeta de video nvidia GeForce 7300 GT
Ubuntu 11.04

Procedimiento:
Hay muchas referencias al respecto en la web. Particularmente a mi me sirvió de base la siguiente: http://www.ubuntu-es.org/node/143352

Bueno, lo más directo es instalar el driver de nvdia usando "controladores adicionales" de ubuntu. Casi siempre funciona bien siempre y cuando haya conexión a internet.
Cuando no hay internet en la PC donde se desea empiezan los problemas, pero aquí están las soluciones.

1.- Descargar el driver de nvidia desde su página web: (obviamente será desde otra computadora que si tenga el acceso a internet)
http://www.nvidia.com/Download/index.aspx?lang=es

obtendrán un archivo de unos 50MB de un nombre similar a este: NVIDIA-Linux-x86_64-275.09.07.run

2.- Instalar los requisitos previos:
build-essential (ya viene por defecto en el ubuntu 11.04)
linux-headers (ya viene por defecto en el ubuntu 11.04)
ia32-libs (si se desea correr aplicaiones compatibles con 32bits como las de windows por ejemplo)
-Sobre como instalarlos sin internet será motivo de otro post o pregúntenmelo si es que aún no lo he hecho

3.- (En este paso algunos sugieren guardar una copia del archivo xorg.conf. Pero resulta que para versiones recientes de ubuntu este archivo ya está en desuso).

Si no se ha hecho, abrir una consola desde "accesorios" y crear la contraseña del usuario "root":
sudo passwd root


4.- Presionar CTRL+ALT+F1 para entrar en consola de texto (recuerden que pueden regresar a su entorno gráfico normal con CTRL+ALT+F7)
Logearse como root (para eso crearon la contraseña si es que no la tenían)

5.- Editar el archivo "blacklist.conf" con la siguiente linea de comandos:
sudo nano /etc/modprobe.d/blacklist.conf
Agregar en la parte final del archivo las siguientes lineas:
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv

CTRL+O (para guardar), Enter.
CTRL+X para salir.

6.- Detener el modo gráfico:
sudo service gdm stop
saldrá: gdm stop/waiting

7.- Desinstalar alguna posible instalación previa de algún driver de nvidia:
sudo apt-get --purge remove nvidia-*

8.- Ejecutar el instalador del driver que se descargaron de nvidia (en la ruta que lo guardaron claro)
sudo sh NVIDIA-Linux-x86_64-275.09.07.run

Entrarán a un diálogo de instalación en modo texto, hay que darle "si/aceptar" a todo.
El detalle es que en la primera ejecución de esta aplicación siempre me sale algo como que "el driver nouveau se está ejecutando aún pero que el instalador de nvidia intentará desactivarlo agregando un archivo especial". Se le da aceptar. Internamente el archivo será agregado pero saldrá un mensaje en el instalador diciendo "la instalación del driver ha fallado". No hay problema, hasta este punto ha hecho lo correcto, desactivar el "nouveau", ahora solo debemos reiniciar el sistema:
sudo shutdown -r now

9.- De nuevo entrarán al modo gráfico pero esta vez se verá un tanto diferente porque ya está deshabilitado el driver que impedía la instalación.
De nuevo CTRL+ALT+F1 para entrar en texto, se logean como root.
De nuevo detienen el modo gráfico:
sudo service gdm stop
De nuevo ejecutan el instalador de nvidia descargado:
sudo sh NVIDIA-Linux-x86_64-275.09.07.run
Y esta vez ya no motrará ningún inconveniente para proceder con la instalación. Dar "si/aceptar" a todas las pantallas (si instalaron ia32-libs denle también "aceptar" a la compatibilidad con 32bits cuando el instalador se los pregunte)

LISTO, cuando el instalador terminen de nuevo reinician:
sudo shutdown -r now

Y ya tendrán el driver de nvidia instalado junto con el administrador de configuraciones de pantalla "nvidia-settings".

NOTA: No se preocupen si "controladores adicionales" del ubuntu muestra su tarjeta como inactiva. En realidad está activa sino que esta aplicación no se ha enterado de que lo está.
Pueden comprobarlo con el comando:
glxinfo | grep rendering
si el resultado es: direct rendering: Yes
entonces la aceleración 3D de la tarjeta está activada.


otras fuentes:
ftp://download.nvidia.com/XFree86/Linux-x86/169.04/README/chapter-08.html
https://help.ubuntu.com/6.06/ubuntu/desktopguide/C/hardware.html

comando para visualizar las librerias que un ejecutable requiere

ldd ./ejecutable

lunes, 20 de junio de 2011

/usr/bin/install: no se sobreescribirá el fichero «/usr/include/simgear/scene/tgdb/SGOceanTile.hxx» recién creado con «SGOceanTile.hxx»

Datos:
Ubuntu 11.04
instalando mi compilación de Simgear 1.9.1

Error:
Al ejecutar sudo make install sale:

/usr/bin/install: no se sobreescribirá el fichero «/usr/include/simgear/scene/tgdb/SGOceanTile.hxx» recién creado con «SGOceanTile.hxx»
make[4]: *** [install-includeHEADERS] Error 1

Solución:
Editar el archivo /SimGear-1.9.1/simgear/scene/tgdb/Makefile.am
Se puede usar un comando similar a este:
sudo gedit ./SimGear-1.9.1/simgear/scene/tgdb/Makefile.am

podrán comprobar que la línea 13 y la línea 17 llaman al mismo archivo. Borren una de las dos líneas, cualquiera la que menos les guste.

Guardan, cierran. Limpian toda la compilación:
sudo make distclean

Y vuelven a compilar todo desde el principio como si recién hubieran descargado el código fuente (autogen, configure, make...)

Simgear logstream.hxx:192:48: error: ‘EOF’ was not declared in this scope

Datos:
Ubuntu 11.04
compilando Simgear 1.9.1

Error:
Al ejecutar make sale:

In file included from logstream.cxx:25:0:
logstream.hxx: In member function ‘virtual std::basic_streambuf <char, std::char_traits <char>>::int_type logbuf::overflow(int)’:
logstream.hxx:192:48: error: ‘EOF’ was not declared in this scope

Solución:
La publicada en la siguiente dirección:
http://bugs.gentoo.org/attachment.cgi?id=191509&action=diff

La cual detalla que en el archivo /SimGear-1.9.1/simgear/debug/logstream.hxx

-a partir de la linea 30 dice:
#ifdef _MSC_VER
# include
<windows.h>
#endif

-debería decir:
#ifdef _MSC_VER
# include
<windows.h>
#else
# include
<cstdio>
#endif


viernes, 17 de junio de 2011

plib configure: error: could not find working GL library

Antecedente:
Ubuntu 11.04. Con la seguridad de ya haber instalado el OpenGL.


Problema:
Error compilando PLIB (http://plib.sourceforge.net/index.html).
Este error se presenta al momento de dar el ./configure


Causa:
PLIB está buscando el archivo libGL.so en la ruta /usr/lib y no lo encuentra.

En mi caso lo que había era un "enlace roto" con este nombre (es decir, libGL.so estaba en /usr/lib pero no apuntaba hacia ningun lugar válido).


Solución:
Borrar el enlace roto:
sudo rm /usr/lib/libGL.so

Crear de nuevo el enlace pero esta vez hacia un destino de OpenGL válido, en mi caso:
sudo ln -s /usr/lib/libGL.so.1 /usr/lib/libGL.so

Ubuntu 11.04 Natty Narwhal (I)

Antecedente:
Utilizo una computadora core 2 duo, 2GB RAM
Tego una particion independiente "/home" en la que guardo todos mis datos para que cada vez que migre a un nuevo ubuntu no tenga que reubicarlos manualmente.
El soporte para mi ubuntu 9.10 había finalizado, hora de migrar.

Problema:
Corrí el instalador estándar de ubuntu (amd64) y ya casi terminando la instalación sale un mensaje:
"migration-assistant needs to mount a partition, but cannot do so because the following mount point could not be unmounted: /dev/sda8" (/dev/sda8 es mi "/home")

Activando/desactivando la opción de importación de cuentas y corriendo la instalación de nuevo, nada. El mismo mensaje.

Solución:
Felizmente ubuntu siempre tiene un instalador alternativo, para el 11.04 esta en: http://ie.releases.ubuntu.com//11.04/ubuntu-11.04-alternate-amd64.iso

Me lo bajé, lo corrí y perfecto, cero problemas. Estoy editando este blog desde el 11.04.