Delirando sobre informática, fotografía, programación, móviles y mucho más desde 2003
Desde hace unos días las aplicaciones Java fallaban al conectarse a internet, mostrando un Network is unreachable al intentar obtener cualquier dato de internet. Tras pelearme con Java y sus preferencias una y otra vez, acabé encontrando este comentario que indica que se trata de la configuración del sistema. Si un cat /proc/sys/net/ipv6/bindv6only devuelve 1 ahí está el problema: las conexiones Java con IPV4 no funcionarán. Para solucionarlo, basta ejecutar este comando:
sudo sysctl net.ipv6.bindv6only=0
Con este ajuste, Java podrá volver a conectarse a internet.
Más de una vez he necesitado modificar un paquete .deb debido a que las dependencias no son las correctas o la versión se detecta mal y se fuerza su actualización. Es el caso de mail-notification-evolution, paquete al que hay que modificarle la dependencia con libcamel para poder hacerlo funcionar con Evolution 2.28. Como los paquetes son simplemente archivos con una cierta informacion y comprimidos, es posible modificarlos utilizando File Roller o similares, pero es una tarea más incómoda.
El script simplemente descomprime el paquete y permite editar el archivo de texto que define la versión y las dependencias. Tras salir del editor actualiza el archivo guardado y borra los archivos temporales:
#!/bin/bash dpkg -e "$1" cd DEBIAN/ vim control tar czvf control.tar.gz * mv control.tar.gz ../ cd .. ar r "$1" control.tar.gz rm -rf DEBIAN rm control.tar.gz
Mientras se edita el archivo, es posible acceder a la carpeta DEBIAN creada en el directorio de trabajo y modificar los archivos del paquete data.tar.gz, que es donde está todos los archivos que se instalarán con el paquete.
Los chicos de Adobe no acostumbran a hacer versiones decentes de sus productos para Linux y menos aún para plataformas de 64bits, por lo que a veces es engorroso hacerlas funcionar.
Tras hartarme de Iceweasel para 64bits y los permanentes errores que daba al funcionar con Adobe Flash Player para 64bits, decidí instalarme Mozilla Firefox para 32bits (ya que Mozilla no proporciona versiones para Linux 64bits) en un directorio aparte y hacer lo mismo con el resto de aplicaciones de Adobe.
Lo primero es instalar las librerías que dan soporte para aplicaciones de 32bits:
sudo apt-get install ia32-libs ia32-libs-gtk
Con esto podremos ejecutar Mozilla Firefox, Adobe Acrobat Reader y Adobe Air sin mayores problemas, exceptuando los estilos de GTK que no se cargarán dando este error:
libclearlooks.so: wrong ELF class: ELFCLASS64
Para solucionar ese detalle es necesario indicar la ruta de los motores de GTK 32bits del siguiente modo:
export GTK_PATH=/usr/lib32/gtk-2.0
Como eso afectará al resto de aplicaciones que se abran, habrá que crear un lanzador para estas aplicaciones con un script bash:
#!/bin/bash export GTK_PATH=/usr/lib32/gtk-2.0 /home/david/Applications/acroread/Adobe/Reader8/bin/acroread "$@"
Deberá usarse el mismo script cambiando la ruta para lanzar Mozilla Firefox o las aplicaciones instaladas para Adobe Air. Para hacer funcionar los plugins Acrobat Reader y Flash Player con Firefox 32bits, bastará con copiar las librerías correspondientes al directorio plugins de Firefox (nppdf.so y libflashplayer.so). El problema está en que al usar esta configuración el plugin Flash Player 10 no detecta correctamente la librería cURL dando este error:
Adobe Flash Player error: could not load cURL library
Será necesario recurrir a la versión 9.0 de Adobe Flash Player para que funcione correctamente, ya que es más que suficiente para el 99% de los caso. Por último, para que el plugin Acrobat Reader se cargue adecuadamente, será necesario enlazar el script creado anteriormente a /usr/bin/acroread.
Por último, para pulir los ciertos detalles con Mozilla Firefox, será necesario enlazar o copiar a /usr/lib32 los archivos que los paquetes libcroco3, libgsf-1-114, librsvg2-2 y librsvg2-common instalan en /usr/lib. Basta con abrir el paquete con File Roller para extraer los archivos. Además, si se utilizan los drivers propietarios de NVIDIA o ATI será necesario instalar las librerías que dan compatibilidad con 32bits(nvidia-glx-ia32 y fglrx-glx-ia32 respectivamente).
Nunca había trasteado con distribuciones de Linux para 64bits y tras hacerme con el procesador Intel Core i7 instalé Debian para 64 bits (amd64). Todo funcionó a la perfección hasta que intenté hacer funcionar algún software sin versón compilada para 64 bits, momento en el que tuve que actualizarme y ver cómo hacerlo funcionar.
El problema es el software propietario (y alguna excepción en el software libre como Wine), porque raramente se encuentran paquetes para 64bits (sorprendentemente un buen ejemplo es Adobe Flash Player) y hay que recurrir a chanchullos para poder ejecutarlo. Es el caso de Adobe Acrobat Reader, Adobe Air o Google Earth.
En Debian existía hasta ayer (sí, ayer mismo, día 4 de agosto de 2009) el paquete ia32-apt-get que permitía instalar paquetes de 32bits mezclados con los de 64bits. Pero desde hoy es posible instalar los paquetes ia32-libs y ia32-libs-gtk que incluye la mayoría de librerías necesarias para 32bits y las ubica en /usr/lib32, de modo que estén separadas de las principales. Existen otras librerías en los repositorios que se identifican por lib32... y pueden ser necesarias puntualmente, y cuando nos encontremos con alguna librería que no está en ningún paquete, basta con descargarse el paquete de instalación para 32bits, extraerlo y copiar las librerías a /usr/lib32.
Por ejemplo, para instalar Skype con el paquete oficial para Debian, los pasos serían:
sudo apt-get install ia32-libs ia32-libs-gtk lib32asound2 sudo dpkg -i --force-architecture skype-debian_2.0.0.72-1_i386
Al arrancarlo, aparecerá el siguiente error:
skype: error while loading shared libraries: libuuid.so.1:cannot open shared object file
Como en los repositorios no hay ningún paquete que se parezca a lib32uuid, no queda más remedio que obtener la librería del repositorio i386 buscándolo en packages.debian.org y extraer los archivos:
wget http://ftp.es.debian.org/debian/pool/main/e/e2fsprogs/libuuid1_1.41.8-2_i386.deb ar x libuuid1_1.41.8-2_i386.deb tar xzvf data.tar.gz sudo cp ./lib/* /usr/lib32
Con estas librerías, Skype arrancará sin problemas. Y de este mismo modo es posible instalar Adobe Acrobat Reader y otras aplicaciones, aunque no lo he conseguido con Google Earth debido a un error con la librería swrast_dri.so.
Moraleja: si no quieres complicaciones, no uses software propietario
Ya está disponible Google Chrome para Linux, y gracias este artículo de Barrapunto llego a este repositorio para Ubuntu con paquetes .deb listos para instalar. Basta descargar e instalar el paquete chromium-browser_[...]~ucd1_i386.deb y listo, sin dependencias ni nada raro.
1/Jun/2009 | 2 comentarios | En Bitacoras.com
Actualmente casi cualquier equipo moderno tiene más de una tarjeta de sonido: una sintonizadora, una webcam, una tarjeta PCI aparte de la integrada en la placa… En mi caso el sistema detecta 4 pero lo hacía en el orden que le daba la gana en cada reinicio. Eso provocaba que la mitad de las veces no hubiera sonido en muchas aplicaciones (como Adobe Flash) o fuera necesario reconfigurar las preferencias de sonido (Gnome, Skype…) para que funcionaran correctamente.
Tras buscar soluciones al problema y probar sin éxito múltiples opciones como las instrucciones oficiales no conseguí nada, así que me puse a probar hasta dar con la causa: el paquete linux-sound-base. Este paquete instala el archivo /lib/linux-sound-base/noOSS.modprobe.conf con una lista de módulos, y crea un enlace simbólico en /etc/modprobe.d/linux-sound-base_noOSS.conf que si se elimina soluciona el problema. Evidentemente también funciona el método de borrar el paquete, pero es necesario para alsa-utils que tiene comandos que se utilizan bastante para controlar el volumen mediante atajos de teclado.
El lanzamiento de Debian GNU/Linux 5.0 ha tenido muy ocupados a los que mantienen los repositorios, por lo que el kernel 2.6.27 no ha estado disponible y desde hace unos días sí lo esta el 2.6.28 pero sin alguna dependencia importante como linux-kbuild-2.6.28, que permite entre otras cosas compilar los drivers propietarios de NVIDIA con este kernel.
Buceando por el foro oficial de Debian me he encontrado con las instrucciones para generar nuestro propio paquete y poder así instalar linux-headers-2.6.28 sin problemas. Lo primero es añadir a nuestro /etc/apt/sources.list lo siguiente:
deb-src http://kernel-archive.buildserver.net/debian-kernel/ trunk main
Luego, los siguientes pasos:
mkdir ~/kbuild && cd ~/kbuild sudo apt-get install apt-src sudo apt-src install linux-kbuild-2.6=2.6.28-1~snapshot.12595 sudo apt-src build linux-kbuild-2.6=2.6.28-1~snapshot.12595 sudo dpkg -i linux-kbuild-2.6.28_2.6.28-1~snapshot.12595_i386.deb sudo apt-get install linux-headers-2.6.28-1-686
Con esto ya tendremos instalado todo lo necesario para poder compilar los controladores como siempre. Pero si tienes la mala suerte de tener una tarjeta que necesita controladores legacy (como mi FX5200, que necesita la versión 173.14.12) tendrás que probar con esta actualización, la 173.14.17, que añade soporte para los nuevos núcleos…
Ayer estrené una estupenda Wacom Bamboo, que me viene de lujo para pequeños retoques fotográficos y otras cosillas (Gimp, Inkscape…), además de como sustituta del ratón (que ha funcionado perfectamente incluso con la doble pantalla).
Su configuración en Debian es muy sencilla: el kernel 2.6.26 integra un controlador para este tipo de tabletas y el módulo para X.org está en los repositorios (xserver-xorg-input-wacom). Únicamente es necesario añadir la siguiente configuración al archivo /etc/X11/xorg.conf:
Section "InputDevice" Driver "wacom" Identifier "stylus" Option "Device" "/dev/input/wacom" Option "Type" "stylus" Option "USB" "on" EndSection Section "InputDevice" Driver "wacom" Identifier "eraser" Option "Device" "/dev/input/wacom" Option "Type" "eraser" Option "USB" "on" EndSection Section "InputDevice" Driver "wacom" Identifier "cursor" Option "Device" "/dev/input/wacom" Option "Type" "cursor" Option "USB" "on" EndSection Section "InputDevice" Driver "wacom" Identifier "pad" Option "Device" "/dev/input/wacom" Option "Type" "pad" Option "USB" "on" EndSection
Y en la sección ServerLayout:
InputDevice "stylus" "SendCoreEvents" InputDevice "cursor" "SendCoreEvents" InputDevice "eraser" "SendCoreEvents" InputDevice "pad" "SendCoreEvents"
Todo esto funcionará a la perfección (las teclas se detectan con su código único programable con XBindKeys) si no tienes instalado mouseemu. De lo contrario te encontrarás con errores en el syslog o Xorg.0.log como:
Error reading wacom device : Device or resource busy
Wacom X driver can't grab event device, errno=1022
Se debe a que los controladores de la Wacom no se llevan bien con mouseemu, que tenía instalado para hacer funcionar las teclas extra de mi Logitech G15. La solución pasa por eliminar mouseemu y cargar el módulo uinput al inicio (bien en la configuración de X.org o en /etc/modules) y las incompatibilidades desaparecerán. Lo curioso es que mouseemu también era el culpable de que los botones extra de los ratones USB no se detectaran (concretamente me ocurre con el Logitech MX310 y el Microsoft Arc Mouse).
En el wiki de Ubuntu describen cómo configurar ciertas cosas, como la sensibilidad y su uso en programas como Gimp o Inkscape…
Rhythmbox es el un sencillo pero bien reproductor de música para Gnome. Tiene muchas características interesantes pero siempre he echado en falta un ecualizador gráfico. Hoy por casualidad dí con un pequeño plugin que añade un ecualizador que permite modificar 10 frecuencias.
La instalación es sencilla: descomprimir en ~/.gnome2/rhythmbox/plugins/ ![]()
La versión de VirtualBox disponible en Debian SID es la 1.6.6, pero es interesante disponer de las mejoras que trae la versión 2.0. Los binarios están disponibles en el repositorio Experimental pero no los módulos, por lo que no es un apt-get y listo:
sudo apt-get install -t experimental virtualbox-ose virtualbox-ose-source module-assistant sudo m-a prepare sudo m-a a-i virtualbox-ose sudo modprobe vborv
Luego, sólo queda añadir a /etc/modules el módulo para que se cargue en el arranque y el usuario al grupo vboxusers para que tenga privilegios suficientes para ejecutar el programa.
Delirios de un Informático :: Gestionado con WordPress :: Alojado en Bitacoras.com :: Licenciado bajo Creative Commons