span.fullpost {display:none;}

miércoles, 8 de abril de 2009

Montar una red Ad-Hoc en Hardy

Desde hace mas de dos años tengo un pocket PC con WiFi incluido que me gusta utilizar de vez en cuando, mayormente para navegar, escribir notas y poco más. Cuando la adquirí no tenía ningún punto de acceso inalámbrico, ni nada que se le pareciera, así que cada vez que necesitaba conectarme a Internet me veía obligado a tener que allanar conexiones ajenas pertenecientes a vecinos incautos que no tomaban -ni siguen tomando- la precaución de poner una contraseña para protegerse de intrusos como yo. La situación cambió cuando hice un plan renove a mi ordenador y me agencié uno nuevo que, entre otras características, posee una tarjeta wireless Conceptronic C54Ri, con chipset RaLink RT2561/RT61, la cual instalé con la sana intención de usarla como router WiFi para crear mi propio espacio inalámbrico, y no tener que andar robando anchos de banda ajenos.
Como no andaba muy puesto en materia de conectividad inalámbrica bajo Linux, me puse a buscar información al respecto, y la primera conclusión a la que llegué fue que necesitaba poner la tarjeta en modo Master, conclusión tan errónea como inviable, ya que solo unos pocos modelos son capaces de soportar este modo, y mi Conceptronic no se encuentra entre ellos. Y errónea, porque después supe que no es necesario soportar dicho modo para poder compartir la conexión a Internet, ya que existe otro modo, llamado Ad-Hoc, que permite interconectar dos ordenadores directamente y compartir dicha conexión. Así que me puse a buscar toda la información necesaria para:
  1. instalar los controladores del chipset de la tarjeta Wifi para que pueda ser reconocida por Ubuntu
  2. configurar dicha tarjeta para ponerla en modo Ad-Hoc y que actúe como punto de acceso a la red
  3. ... y modificar las iptables para redireccionar el acceso a Internet
En aquellos momentos utilizaba la versión 7.10 de Ubuntu (Gutsy) y, tras mucho buscar y leer en manuales, tutoriales y foros de todo tipo, llegué a deducir que con dicha versión me iba a resultar del todo punto imposible pasar siquiera del primer punto, debido a cierto bug residente en Gutsy. Así que decidí dejarlo por imposible y posponer la tarea para más adelante, cuando llegara la siguiente versión, hecho que se produciría a los pocos meses con el lanzamiento de la 8.04 (Hardy). Tras instalarla volví a ponerme en faena, rescatando los conocimientos adquiridos durante los meses anteriores y poniéndolos de nuevo en práctica. Y tras varios intentos conseguí, ahora sí, hilvanar los pasos necesarios para lograr esta receta, gracias a la cual puedo conectarme y navegar mediante la PDA sin tener que perder tiempo en infructuosos intentos de conexión a las redes de los vecinos. Ni que decir tengo que la primera parte de este howto solo es válida con tarjetas inalámbricas que posean algún chipset del fabricante RaLink. Si este no es tu caso, tendrás que averiguar cuales son los controladores mas apropiados para el chipset de tu tarjeta, donde encontrarlos y como instalarlos. No obstante, si es un modelo de Ralink distinto al rt61, puede que no se ejecuten correctamente algunas de las instrucciones que doy a continuación.

Dicho lo cual, me dispongo a exponer a continuación la secuencia ordenada de pasos que seguí:

PRIMERA PARTE
  • Ubuntu trae un driver instalado por defecto pero no funciona bien, cuelga el ordenador a veces sí a veces no. Para deshabilitarlo lo metemos en la lista negra, añadiéndo la siguiente línea al fichero /etc/modprobe.d/blacklist, de manera que dicho módulo no será cargado al arrancar:
    $ sudo echo blacklist rt61pci >> /etc/modprobe.d/blacklist
    si lo desea, puede desinstalar antes dicho módulo mediante:
    $ sudo rmmod rt61
  • Bajarse los drivers que ofrece el fabricante RaLink desde su página web. Buscamos el enlace de descarga que corresponda a nuestro modelo, en mi caso rt61. En el momento de escribir esta entrada, la última versión disponible para el modelo rt61 data del 23 de enero de 2009. Tenemos que compilar el módulo a partir del código fuente, para lo cual necesitaremos tener instalados los paquetes build-essential y linux-headers-[version-nuestro-kernel], asimismo habrá que desinstalar el paquete network-manager:
    $ sudo aptitude purge network-manager network-manager-gnome
    $ sudo aptitude install build-essential linux-headers-$(uname -r)
  • Para compilar ejecutar en un terminal los siguientes comandos, dentro del mismo directorio donde hayamos descargado el archivo comprimido del controlador:
    $ tar -xjvf 2009_0123_RT61_Linux_STA_v1.1.2.3.tar.bz2
    $ cd 2009_0123_RT61_Linux_STA_v1.1.2.3.tar.bz2/Module
    $ make all
    Esperamos un ratito mientras se compilan los módulos.
  • La compilación genera una serie de ficheros que habrá que copiar en el directorio /etc/Wireless/RT61STA. Pero antes debemos crear dicho directorio.
    $ sudo mkdir /etc/Wireless
    $ sudo mkdir /etc/Wireless/RT61STA
    $ sudo cp *.bin rt61sta.dat /etc/Wireless/RT61STA
    $ sudo cp rt61.ko /lib/modules/$(uname -r)/kernel/drivers/net
  • Pues ya está instalado, el resto del trabajo es pura configuración. Levantamos el driver y terminamos de configurar:
    $ sudo depmod
    $ sudo modprobe rt61
  • Para que levante el módulo al arrancar el sistema, añadimos la línea rt61 al archivo /etc/modules:
    $ sudo echo rt61 >> /etc/modules
    y reiniciamos el sistema para que los cambios hagan efecto.
SEGUNDA PARTE
  • Para comprobar que la tarjeta es reconocida por el sistema ejecutamos en un terminal la orden iwconfig, nos debería de salir algo parecido a esto:
    $ iwconfig
    lo no wireless extensions.

    eth0 no wireless extensions.

    eth1 no wireless extensions.

    ra0 RT61 Wireless ESSID:"" Nickname:""
    Mode:Ad-Hoc Frequency:2.412 GHz Cell: C2:66:04:EF:65:EF
    Bit Rate=11 Mb/s
    RTS thr:off Fragment thr:off
    Link Quality=0/100 Signal level:-121 dBm Noise level:-107 dBm
    Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
    Tx excessive retries:0 Invalid misc:0 Missed beacon:0
    Al tener dos tarjetas ethernet me aparecen dos dispositivos (eth0 y eth1). La tarjeta wireless adopta el nombre simbólico ra0, aunque puede cambiar de un modelo a otro.
  • Ahora vamos a configurar la tarjeta para crear una red Ad-Hoc, para ello empezaremos por modificar el fichero /etc/network/interfaces. Voy a suponer que nos conectamos a Internet mediante una tarjeta ethernet llamada eth0:
    $ cat /etc/network/interfaces
    auto lo
    iface lo inet loopback

    ## tarjeta "alambrica" de conexion a internet ##
    auto eth0
    iface eth0 inet dhcp

    ## tarjeta inalámbrica de red ad-hoc ##
    auto ra0
    iface ra0 inet static
    address 192.168.25.1
    netmask 255.255.255.0
    network 192.168.25.0
    wireless_mode ad-hoc
    wireless_essid nombre-de-red
    Las direcciones pueden ser cualesquiera que sigan este patrón: 192.168.xxx.yyy. El valor que asignemos a xxx deberá ser el mismo en el campo address y en network, no así el valor que le asignemos a yyy.
  • Ahora procedemos al enmascaramiento de la red, se pretende que todos los ordenadores "clientes" a los que queramos darle acceso utilicen nuestro ordenador como pasarela o puerta de enlace para conectar a Internet. Para ello vamos a crear el fichero /etc/init.d/iptablesconf con el script que crea las reglas de iptables necesarias:
    #### Script que configura iptables ####
    #!/bin/bash
    echo "Aplicando reglas de redireccionamiento....."
    iptables -F
    iptables -X
    iptables -Z
    iptables -t nat -F
    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING -s 192.168.25.0/25 -d 0.0.0.0/0 -j MASQUERADE
    iptables -A INPUT -p TCP -m state --state RELATED -j ACCEPT
    echo "....hecho"
  • Guardamos el fichero, le damos permisos de ejecución al script y lo añadimos a los servicios de inicio del sistema, después se reinicia el nuevo servicio creado y el de red:
    $ sudo chmod -v 755 /etc/init.d/iptablesconf
    $ sudo update-rc.d iptablesconf start 20 2 .
    $ sudo /etc/init.d/iptablesconf start
    $ sudo /etc/init.d/networking restart
  • En el ordenador cliente (en mi caso el pocket PC), será necesario configurar los siguientes parámetros de conexión:
    IP: 192.168.25.10 (se puede sustituir el 10 por cualquier número entre 2 y 25)
    Mascara de subred: 255.255.255.0
    Puerta de enlace: 192.168.25.1
    Y como servidores DNS se pueden especificar los dos que se desee. Por ejemplo, los mismos que tengamos en el fichero /etc/resolv.conf. En cualquier caso reiniciar el sistema del ordenador cliente para que se hagan efectivo los cambios.
Y eso es todo, comprobaremos que hay acceso a Internet en el sistema cliente, y si no lo hay es que algo has hecho mal. En otra ocasión explicaré como instalar un servidor DNS propio que resuelva nombres de dominio en todos los sistemas conectados entre sí. Para cualquier sugerencia o duda que quieras exponer puedes dejarme un comentario más abajo.

Seguir leyendo ...

martes, 7 de abril de 2009

¿Feliz cumpleaños?

Hoy, 7 de Abril de 2009, se cumplen 40 años del nacimiento simbólico de la red de redes, Internet. Aunque no hay un consenso generalizado sobre la fecha en la cual se considera que comenzó a funcionar Internet, algunos aceptan que este hecho se produjo con la publicación del primer RFC (Request For Comments - petición de comentarios) por parte de Steve Crocker desde la Universidad de California, Los Ángeles, el cual fue enviado a todos los investigadores que colaboraban en la creación de ARPANET.

Sea como fuere, el caso es que el nacimiento de Internet ha contribuido de manera decisiva -y sigue haciéndolo- al desarrollo y difusión del sistema operativo gnu/Linux, en sus distintas versiones y "sabores". Gracias a la red de redes ha sido posible lanzar las distintas versiones de las variopintas distros existentes, descargarlas y, tras ser instaladas, mantener actualizado su software de una manera sencilla y relativamente barata, sin tener que depender de otros canales de distribución bastantes mas lentos y menos inmediatos, como el socorrido CD (cada vez más obsoleto, dicho sea de paso).

Por todo ello, merece la pena congratularse por este hecho pues, sea ésta u otra (2 de septiembre, 29 de octubre, ...) la fecha del cumpleaños de nuestra red de redes, gracias a ella somos cada vez mas los usuarios que podemos utilizar software libre, y la expansión de nuestro querido Ubuntu en estos últimos años no ha sido ajena al fenómeno del crecimiento constante e imparable de Internet.

Seguir leyendo ...

lunes, 23 de marzo de 2009

Java y firma digital en 64 bits

Hoy en dia, y desde hace mucho tiempo, se hace imprescindible disponer en cualquier sistema informático de un entorno de ejecución Java, tanto más desde que Internet se popularizó y, con él, la World Wide Web, pues cada vez más páginas incluyen aplicaciones escritas en lenguaje Java, desarrollado por Sun MicroSystem, lo cual obliga no solo a disponer de un JRE apropiado, sino también un plugin que permita al navegador ejecutar dichas aplicaciones. Una utilidad algo reciente de Java es la posibilidad de implementar la firma electrónica, que nos permite realizar ciertas gestiones telemáticas con la Administración Pública o con entidades financieras.

Afortunadamente, Sun lleva tiempo dando soporte para sistemas gnu/Linux, incluyendo a los de 64 bits. Una de las mejores cualidades de Java es el hecho de ser una tecnología multiplataforma, de tal modo que cualquier aplicación escrita en dicho lenguaje se puede ejecutar en cualquier plataforma que tenga instalada una máquina virtual (JVM). Para poder disfrutar de toda la potencialidad de Java en nuestro sistema Ubuntu, es necesario seguir una serie de pasos que voy a exponer a continuación. Estas instrucciones son válidas para un sistema 8.04 (Hardy) de 64 bits, por tanto habrá que realizar ciertas modificaciones si se desea aplicar a otros sistemas distintos
  1. En primer lugar creamos el directorio java en /opt, y una vez allí descargamos desde la web de Sun el paquete binario necesario para instalar el entorno de ejecución JRE:
    $ cd /opt
    /opt/$ sudo mkdir java
    /opt/$ cd java
    /opt/java/$ wget http://www.java.net/download/jdk6/6u12/promoted/b03/binaries/jre-6u12-ea-bin-b03-linux-amd64-22_dec_2008.bin
  2. A continuación procedemos a instalarlo, tras lo cual se configura como aplicación por defecto:
    /opt/java/$ sudo bash jre-6u12-ea-bin-b03-linux-amd64-22_dec_2008.bin
    /opt/java/$ sudo update-alternatives --install "/usr/bin/java" "java" "/opt/java/jre1.6.0_12/bin/java" 1
    /opt/java/$ sudo update-alternatives --set java /opt/java/jre1.6.0_12/bin/java
  3. Creamos los enlaces necesarios al plugin de Java para que Firefox reconozca al JRE, para ello creamos el directorio ~/.mozilla/plugins, si aún no existe.
    $ mkdir ~/.mozilla/plugins
    $ sudo ln -s /opt/java/jre1.6.0_12/lib/amd64/libnpjp2.so ~/.mozilla/plugins/

    $ sudo ln -s /opt/java/jre1.6.0_12/lib/amd64/libjavaplugin_jni.so $HOME/.mozilla/plugins/libjavaplugin_oji.so
    $ sudo ln -s /opt/java/jre1.6.0_12/lib/amd64/libjavaplugin_jni.so /usr/lib/mozilla/plugins/libjavaplugin_oji.so
    $ sudo ln -s /opt/java/jre1.6.0_12/lib/amd64/libjavaplugin_jni.so /usr/lib/firefox/plugins/libjavaplugin_oji.so

  4. Se reinicia Firefox, y entramos a continucación en esta web para comprobar que está bien instalado. En caso afirmativo nos aparecerá en el navegador algo así:


Hasta aquí los pasos necesarios para la instalación de Java. Sin embargo, es posible que hayamos obtenido el certificado digital, que nos habilita para realizar trámites burocráticos con alguna Administración Pública, y queramos utilizarlo con nuestro sistema Ubuntu. En tal caso necesitaremos obtener un par de ficheros que contienen las librerías necesarias para implementar la firma electrónica, tales ficheros suelen facilitarse en la web oficial de la Administración correspondiente, en mi caso los descargué a traves del portal de la Junta de Andalucía. Una vez hecho, les cambiamos los permisos y los copiaremos en dos directorios distintos:
$ wget --no-check-certificate https://ws022.juntadeandalucia.es/firmadigital/servicio/paginas/jss33.jar
$ wget --no-check-certificate https://ws022.juntadeandalucia.es/firmadigital/servicio/paginas/libjss3.so
$ chmod 644 jss33.jar
$ chmod 755 libjss3.so
$ sudo cp jss33.jar /opt/java/jre1.6.0_12/lib/ext/
$ sudo cp libjss3.so /opt/java/jre1.6.0_12/lib/amd64/
Reiniciamos de nuevo el navegador para que haga efecto la instalación de estas librerías, y comprobamos su funcionalidad en alguna web con soporte para firma digital. Ni que decir tengo que previamente a todo este proceso deberíamos haber importado en Firefox la clave del certificado digital, facilitado por la FNMT en un fichero con extensión .p12 (Menú Editar - Preferencias - Avanzado - Cifrado - Ver certificados - Sus certificados - Importar).

Tal como indiqué anteriormente, la URL del paquete binario y las rutas de los directorios serán distintos en caso de utilizarse Ubuntu de 32 bits, u otro sistema gnu/Linux cualquiera. Y esto es todo, espero que os funcione. ;-)

Seguir leyendo ...

domingo, 15 de marzo de 2009

Flash para Ubuntu 64, por fin

Tras unos meses de inactividad retomo este blog, esta vez con su propio dominio (gratuito eso sí, que no está el horno para bollos) y con ganas de seguir escribiendo sobre los temas que más me gustan, y que -espero- que sean de vuestro interés.

Parece que los chicos de Adobe, tras las "sugerencias" recibidas por parte de los usuarios de gnu/Linux, han decidido apostar en esta ocasión no solo por el software libre, sino también por las arquitecturas de 64 bits, liberando la última versión (aún en fase Alpha) de su plugin flash para distribuciones de 64 bits de gnu/Linux. Los usuarios de Ubuntu estamos, pues, de enhorabuena, pues esto debe interpretarse como un reconocimiento implícito de la creciente influencia que está adquiriendo el software libre para las grandes empresas de software.

Lo he instalado en mi sistema Hardy-64, y la experiencia de navegar por páginas web que usan y abusan del flash (que son cada vez más) ha sido plenamente satisfactoria. Desde que poseo un ordenador de 64 bits había tenido que recurrir a la emulación mediante nspluginwrapper para poder usar plugins de 32 bits, lo cual era un engorro que acarreaba muchos problemas, como el de los cuadros grises, del que hablé en otra entrada. Pero en esta ocasión, tras instalar la versión 10 del reproductor, la cosa ha cambiado radicalmente y, aparte no tener ningún impedimento para ver imágenes flash de cualquier tipo (banners, vídeos, juegos, etc...) la calidad de las mismas ha mejorado notablemente.

A continuación voy a explicar detalladamente el proceso que he seguido para instalar dicho plugin en el navegador Firefox 3.0.x, teniendo en cuenta que anteriormente utilizaba la versión de 32 bits mediante emulación.
  • En primer lugar desinstalar los paquetes necesarios para hacer funcionar Flash Player de 32 bits:
    $ sudo aptitude purge nspluginwrapper flashplugin-nonfree
  • Borrar los ficheros libflash-mozplugin.so antiguos:
    $ sudo rm /usr/lib/mozilla-firefox/plugins/libflash-mozplugin.so /usr/lib/mozilla/plugins/libflash-mozplugin.so
  • Descargar el plugin flash 10 de la web de Adobe y descomprimir el fichero.

  • Copiar el plugin descargado en el directorio /usr/lib/mozilla/plugins/:
    $ sudo cp libflashplayer.so /usr/lib/mozilla/plugins/
  • Crear enlaces simbólicos en los demás directorios de FF:
    $ sudo ln -s /usr/lib/mozilla/plugins/libflashplayer.so /usr/lib/mozilla-firefox/plugins/
    $ sudo ln -s /usr/lib/mozilla/plugins/libflashplayer.so /usr/lib/firefox/plugins/
    $ sudo ln -s /usr/lib/mozilla/plugins/libflashplayer.so ~/.mozilla/plugins/
  • Reiniciar Firefox y listo.
Espero que en sucesivas versiones de Flash, Adobe siga apostando por el SL y no deje tirados al cada vez mayor número de usuarios de Ubuntu y demás distros de gnu/Linux. Aunque lo suyo es que el proyecto Gnash madure lo suficiente como para poder dejar de depender del software privativo, pero me temo que esa opción aún está muy lejana.

Seguir leyendo ...

viernes, 7 de noviembre de 2008

Emulando al pasado con Spectemu

Hoy vengo en plan nostálgico ya que mientras revisaba mis marcadores de Firefox he vuelto a visitar varias páginas dedicadas a uno de los ordenadores pioneros de la informática de consumo, me refiero, como no, al famoso ZX Spectrum, un "micro" (como así se denominaba entonces) que marcó una época allá por la primera mitad de la década de los 80. Aunque nunca tuve la suerte de poseer uno (me quedó ese trauma), el ZX Spectrum fue un precursor de los ordenadores personales, e introdujo a muchos jóvenes -y no tan jóvenes- de aquella época en el apasionante mundo de la programación y la informática en general, haciendo posible que se familiarizaran con términos abstractos como bit, byte, ROM, procesador, algoritmo o chip, que a la inmensa mayoría de la gente le sonaba a chino.

La evocación de aquel "micro" hizo plantearme la duda de si existen emuladores del ZX para gnu/Linux Así que me puse a buscar raudo y veloz, y en la Guía Ubuntu pude confirmar que, efectivamente, mis sospechas eran reales. Encontré que existe varios emuladores de Spectrum y que uno de ellos, el Spectemu, se encuentra disponible en los repositorios oficiales de Ubuntu. Por lo cual decidí instalar todos los paquetes necesarios para hacerlo funcionar:

$ sudo aptitude install spectemu-x11 spectemu-common spectrum-roms

Tras la instalación de los paquetes me faltaba tener algo con lo que poder empezar a probarlo, así que siguiendo los pasos de la Guía entré en una web donde se ofrecen muchos de aquellos juegos para Spectrum que
durante los años 80 se vendían en cintas magnéticas (aún conservo una que regalaba la revista Microhobby por suscribirte), y ahora se distribuyen en ficheros con formato tap, tzx o z80, entre otros. El modo de cargar y ejecutar los juegos mediante Spectemu no me ha terminado de quedar muy claro, pues lo he hecho de dos maneras distintas y en ambos casos ha funcionado. En la Guía Ubuntu se indica que la forma correcta es la siguiente:

$ aoss xspect -sound-device /dev/dsp1 -tap fichero.tap

aunque esta sintaxis no es válida cuando solo se dispone de "cintas" en formato tzx u otros; en tal caso lo ejecuto de esta otra manera:

$ aoss xspect -sound-device /dev/dsp1 fichero.tzx

que también es válida para ficheros en formato tap.



Una vez que aparece la ventana del emulador habrá que cargar el juego mediante la orden:

LOAD ""

Lo cual se consigue pulsando la tecla j, Alt-2 (dos veces, una para cada comilla), Enter y, por último, Ctrol-o (para despausar la "cinta").













Un asunto que me ha llamado la atención es que el proceso de carga y ejecución de los juegos es un poco lenta, parece como si también se quisiera emular aquella proverbial lentitud que caracterizaba al Spectrum a la hora de cargar juegos y aplicaciones desde la cinta magnética, algo que tanto desesperaba a los usuarios.

El aspecto problemático de todo esto es la cuestión del sonido. He probado a poner en el parámetro -sound-device los dispositivos /dev/dsp y /dev/dsp1, ya que Spectemu solo funciona con OSS y, como dije en un post anterior, tengo dos tarjetas de sonido en mi sistema, pero tan solo cuando especifico el primero de los dispositivos consigo oir una serie de ruidos bastante rudimentarios (algo así como una bip-bip) durante el proceso de carga, después de comenzar el juego desaparece cualquier sonido. No sé si los juegos que me he bajado carecen de audio, o es que éstos no se oyen por el tema del OSS.

Sea lo que fuere, el caso es que, por lo demás, Spectemu funciona correctamente. No lo he probado mucho porque no soy demasiado jugón y mi torpeza en este terreno es claramente manifiesta, a duras penas consigo jugar durante unos pocos minutos (y eso cuando logro averiguar como se arranca el juego). Aún así he podido disfrutar imaginando como debió ser la experiencia de utilizar aquel añorado ZX Spectrum que nunca tuve en mis manos. Tras más de 20 años de ostracismo voy a poder sacarle partido a los artículos y trucos sobre juegos que llenan las páginas de aquellas revistas que aún conservo.

Más vale tarde que nunca ... ¿no?


Seguir leyendo ...

domingo, 2 de noviembre de 2008

Convertir APE+CUE en MP3 con Ubuntu 64

Hay ocasiones en las que alguien se baja de la red ficheros de música en formato APE/CUE y no sabe o no puede oirlos ni, lo que es peor, como convertirlos a otro formato más convencional para poder disfrutar de la música en su reproductor portátil o en el mismo ordenador. APE es un formato utilizado por Monkey's Audio (MAC), un codec que permite realizar conversiones sin pérdida de calidad. Se suele utilizar para almacenar álbumes completos de música, por lo que, normalmente, suele venir acompañado por otro fichero de poco tamaño que lleva extensión CUE, y que no es más que un fichero de texto plano donde se almacena información sobre el inicio y final de cada pista de audio.

Desgraciadamente no existe un soporte oficial de dicho codec para gnu/Linux. Hasta hace poco tiempo había un proyecto en SourceForge para ofrecer un codec MAC con licencia libre, aunque solo para arquitecturas de 32 bits; de cualquier modo, por alguna razón que desconozco, tal proyecto se ha abandonado, dejando un poco huérfanos a los usuarios de gnu/Linux con plataformas de 32 bits. Pero, ¿y los que usamos versiones de 64 bits... ?.

Afortunadamente, los usuarios de Ubuntu 64 tenemos las herramientas necesarias para trabajar con ficheros de ese formato y extraer de ellos las pistas de audio convertidas en MP3 (u OGG, si se desea), utilizando, única y exclusivamente, software libre disponible en los repositorios oficiales de Ubuntu. Voy a explicar como se hace mediante un ejemplo que expongo a través de capturas de pantalla.

En primer lugar abrimos el terminal de comandos para instalar -si no lo están ya- estos tres paquetes: libjmac-java, mp3splt y lame:

$ sudo aptitude install libjmac-java mp3splt lame

El paquete libjmac-java es una implementación en Java del codec Monkey's Audio, y lo vamos a usar para convertir el fichero APE en WAV.

$ java -jar /usr/share/java/jmac.jar d fichero.ape fichero.wav


Una vez conseguido lo más difícil vamos a convertir el fichero WAV resultante en OGG o MP3. Para el primer caso se puede usar, por ejemplo, la aplicación gráfica SoundConverter (también podría servir ffmpeg), aunque yo solo he probado la conversión a MP3, y para esto se debe ejecutar lame de esta manera:

$ lame -h fichero.wav fichero.mp3


Ya solo queda trocear el fichero MP3 resultante en los fragmentos correspondientes a cada pista de audio del fichero original, para hacerlo de manera automática mediante el fichero CUE ejecuta el siguiente comando:

$ mp3splt -f -c fichero.cue -o @n+-+@t fichero.mp3


el cual va creando los distintos ficheros MP3 de cada canción con su nombre correspondiente y ordenados con un prefijo numérico.

Y eso es todo, espero que esta receta os haya sido de utilidad. ;-)

Seguir leyendo ...

viernes, 31 de octubre de 2008

Esos molestos flash fantasmas

La verdad es que Adobe (y antes Macromedia) nunca se han preocupado demasiado por el software libre, o al menos no tanto como lo hacen por el software propietario (sobre todo Windows). Un ejemplo de ello (y no es el único) es su plugin flash para Firefox. Sin entrar a discutir si es una buena práctica de accesibilidad crear contenido con tecnología flash (en mi opinión no lo es) lo cierto es que su uso en la WWW se está extendiendo cada vez más, bien por cuestiones estéticas, por comodidad o por normalizar el aspecto de un sitio web en cualquier navegador de cualquier plataforma.

Desde que utilizo gnu/Linux, con cualquiera de las distribuciones que he conocido (Linex, Guadalinex y Ubuntu) he tenido problemas para acceder a páginas web con ese tipo de contenido, y de hecho los sigo teniendo aunque en menor medida. Pero durante los últimos años he sufrido todo tipo de incomodidades a la hora de instalar y utilizar el plugin flash de Adobe, a saber: cierres inesperados de Firefox, formularios flash inoperantes, incompatibilidad con controladores gráficos de NVidia y con SwiftFox, falta de soporte para sistemas de 64 bits, errores en la reproducción de audio y, por último, flashs fantasmas de color gris, algo que aún sigo sufriendo en la actualidad.

La cuestión es que cuando navego por páginas que contienen imágenes flash, al actualizar dicha página o al pinchar sobre algún enlace, desaparecen tales imágenes, y los huecos que dejan son ocupados por espacios de color gris. Como botón de muestra expongo a continuación dos capturas de pantalla.







Se trata de un problema que no suele producirse por igual en todas las páginas web que visito, hay algunas que, por alguna razón que desconozco, son más propensas a provocar este error; la web de Marca es un claro ejemplo de ello, aunque no es la única. No sé si el origen del problema se encuentra en el diseño de la imagen, o en la versión de flash usada o en cualquier otro factor que ignoro, el caso es que de vez en cuando me veo obligado a reiniciar Firefox para poder visualizar de nuevo ese tipo de imágenes (o vídeos).

Navegando por la web, solo he podido encontrar una "solución", la cual consiste en reinstalar todos los paquetes necesarios para hacer funcionar el plugin flash en Firefox, ello supone ejecutar esta secuencia de instrucciones en un terminal:


$ sudo aptitude purge nspluginwrapper gnash flashplugin-nonfree
$ sudo rm -rfd /usr/lib/nspluginwrapper
$ sudo rm -f /usr/lib/firefox-addons/plugins/libflashplayer.so
$ sudo aptitude install nspluginwrapper flashplugin-nonfree lib32nss-mdns
$ sudo ln -sf /usr/lib/nspluginwrapper/plugins/npwrapper.libflashplayer.so /usr/lib/firefox-addons/plugins/
$ sudo ln -sf /usr/lib/nspluginwrapper/plugins/npwrapper.libflashplayer.so /usr/lib/firefox-3.0.1/plugins/


Lo que se hace basicamente es desinstalar todos los plugins de flash que haya en el sistema y volver a instalar el de Adobe, borrando y creando después los enlaces simbólicos necesarios. Esta supuesta solución la he puesto en práctica con Ubuntu Hardy 64, que es la versión que uso actualmente, y he de reconocer que no aprecié apenas ninguna mejoría, de vez en cuando compruebo como las imágenes flash de ciertas páginas se siguen poniendo de color gris. Dicho defecto se suele contagiar a las páginas web de las demás pestañas de Firefox, obligándome, al final, a tener que reiniciarlo.

Cuando usaba Gutsy estuve durante un tiempo utilizando el plugin Gnash, que tiene licencia libre y no depende de Adobe, aunque hay que reconocer que es un proyecto aún muy verde, pues no es capaz de visualizar muchos de los flash existentes, sobre todo los de versiones más recientes. Espero y deseo que Gnash madure lo suficiente para convertirse en un serio competidor de Adobe Flash, pues entonces habremos conseguido desmarcarnos un poco mas del software privativo.

Mientras tanto, tendré que seguir conformándome con sobrellevar las molestias que supone cerrar y lanzar Firefox cada vez que vuelven a salirme esos molestos rectángulos grises.



Seguir leyendo ...

miércoles, 29 de octubre de 2008

Audacity se queda mudo

Hace pocos dias tuve la imperiosa necesidad de editar una serie de ficheros de audio y recurrí -como no podía ser menos- al Audacity, que no sé si es el único programa de edición de sonido o el mejor, pero seguro que es el más utilizado.
Pues bien, a lo que voy, el caso es que no suelo usar esa aplicación con demasiada frecuencia así que cuando llega el momento de echarle mano tengo que reciclarme y ponerme al dia en cuanto a su manejo. La cuestión es que cuando cargo el fichero .wav y le doy al botón de reproducir no se oye absolutamente nada. Ni por los auriculares ni por los altavoces.

Acotación: tengo conectados los auriculares a una tarjeta de sonido NVidia MCP61 integrada, y los altavoces a una tarjeta SB Live!.

Compruebo en las preferencias (Editar->Preferencias->Audio E/S) que dispongo de varios dispositivos de reproducción (OSS: /dev/dsp, ALSA: SB Live 5.1: ADC Capture/Standard..., ALSA: SB Live 5.1: Multichannel Capture/PT..., ALSA: SB Live 5.1: Multichannel Playback..., ALSA: HDA NVidia: ALC883 Analog, ALSA: HDA NVidia: ALC883 Digital,... y otros genéricos), aunque con ninguno de ellos Audacity suena, incluso con algunos de tales dispositivos aparece el mensaje "Error al abrir dispositivo de sonido bla, bla, bla...".

Decido por tanto buscar por la red, donde me encuentro varias posibles explicaciones a tal cuestión y sus correspondientes soluciones. Desde la existencia de una versión de Audacity que contiene un bug que impide reproducir audio, y que casualmente es la misma que uso en mi sistema (la 1.3.4-beta), hasta alguien que propone ejecutar Audacity mediante aoss, un cargador de programas que ofrece compatibilidad con ALSA a las aplicaciones escritas para funcionar con el obsoleto OSS. Por supuesto ninguna de tales soluciones me funcionan.

Hasta que por fin encuentro un foro donde alguien expone la idea de que Audacity podría no funcionar por un determinado canal de audio si el mismo se encuentra ocupado por otra aplicación en ese momento. Así que me dispongo a realizar una prueba y cierro todas las aplicaciones que hacen uso de los dispositivos de sonido (audacious, gmplayer, etc...), tras lo cual reinicio Audacity, y entonces sí. Al abrir las preferencias veo como se encuentra disponible el dispositivo /dev/dsp1, (además del /dev/dsp que ya lo estaba) en la lista de dispositivos de reproducción.


Así pues, ya puedo oir por auriculares los ficheros de audio abiertos con Audacity, siempre y cuando no exista otra aplicación usando la tarjeta NVidia en el momento de lanzarlo. Si quiero conmutar entre una salida u otra solo he de seleccionar en Preferencias el dispositivo de reproducción adecuado. En este caso, /dev/dsp para la SB, o bien /dev/dsp1 para la NVidia.

Y eso es todo, espero que esta receta os sea de utilidad.



Seguir leyendo ...

domingo, 26 de octubre de 2008

Mi primera entrada

Hola a tod@s..

Bienvenidos a todos aquellos que se hayan topado con este blog durante su interminable camino en búsqueda de la sabiduría. Es posible que aquí encontréis lo que estáis buscando. O es posible que no. Que hayéis más dudas que añadan incertidumbre a vuestro camino.

Soy un eterno aprendiz de todo lo relativo al software libre en general y gnu/Linux en particular que tan solo pretende aportar su granito de arena a la comunidad del software libre, compartiendo los escasos conocimientos adquiridos durante mi corta experiencia en la utilización de las distintas distros de gnu/Linux, pero también las muchas dudas que me han ido surgiendo en el dia a dia. Dudas y problemas e inquietudes que, en ocasiones, he conseguido resolver, y en otras tantas no.

Así pues .. comenzamos a rellenar cada página de este cuaderno e iniciamos nuestra andadura, que espero que sea larga y fructífera. Por supuesto he reservado una parte de este cuaderno para aquellos que me honren con su visita, y deseen realizar alguna aportación que sirva para enriquecer y complementar lo que aquí se exponga.

Seguir leyendo ...