jueves, 10 de septiembre de 2009

Bluetooth y Linux se llama BlueProximity

Antes de empezar nos aseguraremos de que tenemos el material necesario, que no es más que un dispositivo Bluetooth (por ejemplo uno USB), un teléfono móvil, y nuestra distribución Linux preferida, en este caso Ubuntu 9.04.

El primer paso será comprobar que nuestro adaptador Bluetooth funciona correctamente, tan fácil como conectarlo y ver que en la barra de tareas de nuestro Ubuntu aparece el logo del Bluetooth.

Instalación

Como es la primera vez que oimos hablar de BlueProximity, lo más probable es que no tengamos instalados ni la aplicación ni los paquetes que se necesitan para que funcione. Para instalar abriremos el gestor de Paquetes Synaptic que nos facilitará el trabajo, de paso que resolverá las dependencias con otros paquetes que se necesiten.

Tan sólo buscando por blueproximity nos aparecerá la aplicación a instalar y el sistema se encargará de instalar también todo lo necesario para que funcione al 100%.

Configuración

Después de instalar ejecutaremos BlueProximity, lo que nos mostrará otro icono de Bluetooth en la barra de tareas, pero este con una llave, que en principio será de color rojo.

Abrimos la aplicación y nos encontramos con una ventana como ésta.



Para emparejar el adaptador USB con nuestro móvil exploraremos en busca de dispositivos con el Bluetooth conectado y seleccionaremos el que se corresponda con el nuestro.



Ahora que tenemos seleccionado el móvil con el que queremos relacionar nuestro equipo, lo seleccionamos y pulsamos Usar el dispositivo seleccionado.

Si en el móvil no notamos ningún tipo de reacción, podemos buscar canales en el dispositivo, lo que irá por cada uno de los puertos del móvil para encontrar un canal disponible. En este paso seleccionaremos un canal y tendremos que configurar una clave de paso para emparejar los dispositivos. Ahora si, nuestro móvil nos preguntará por esa clave, y al confirmarla ya podremos utilizar BlueProximity con normalidad.

Ahora tenemos que configurar las distancias, tanto para el bloqueo como para el desbloqueo. Esto se llama así por la finalidad inical de BlueProximity que os contaba antes, que era la de bloquear/desbloquear el PC. Como es normal, podemos decidir estos parámetros, aquí tenemos la pantalla para hacerlo:



Todavía más importante que las distancias en las que reaccionará nuestro HTPC a la presencia de nuestro móvil, es que hará cuando lo detecte o deje de detectar. Podremos configurar un comando que queramos para cada una de las acciones.



Para hacer una prueba rápida podemos escribir firefox www.todohtpc.com en el comando de desbloqueo, y ver como se abre un navegador con nuestra página preferida al acercarnos al adaptador Bluetooth. Ya tenemos BlueProximity funcionando al 100% !!

Descomprimir video por hardware en Linux: VDPAU

Una de las finalidades de nuestro HTPC Linux será la de poder ver videos en alta definición. Hace tiempo que oimos que las tarjetas gráficas pueden descomprimir el video liberando al procesador de tanta carga. Si tenemos un procesador lo suficientemente potente como para hacer el trabajo él sólo, tal vez no nos hayamos parado a pensar en utilizar esta característica de la tarjeta gráfica. Si lo que tenemos es un equipo con una gráfica capaz de descomprimir el vídeo y un procesador no tan potente, el hecho de utilizar la descompresión por hardware puede ser la diferencia entre poder y no poder ver una película en alta definición. Sea cual sea el caso, vamos a ver como se hace.

Lo primero que tenemos que saber es que tenemos entre manos, y se trata de VDPAU (Video Decode and Presentation API for Unix), un API desarrollada por Nvidia para decodificar el video en las tarjetas de la marca. En este enlace se pueden ver las características de VDPAU y las tarjetas gráficas y aplicaciones compatibles.

Entorno de pruebas

Para hacer las pruebas hemos utilizado una instalación básica de Ubuntu 9.04 en un equipo con un procesador de doble núcleo 5200+ de AMD, 2GB de RAM y una tarjeta gráfica 8600GT de Nvidia. La película elegida es Transformers en una resolución 1080p en formato H.264 (.mkv).

Instalación

Como vamos a trabajar sobre una versión recien instalada de Ubuntu en principio no estaremos utilizando los drivers de la tarjeta gráfica, ya que no son software libre, por lo que tendremos que autorizar al sitema a ello. En la sección de Administración podemos activar los controladores. Tendremos que reiniciar para que se apliquen los cambios. Tras el reinicio podremos ver en Administración como han cambiado los drivers de video y son ahora de Nvidia. Probablemente tengamos disponible también el panel de control de Nvidia.

Ahora pasamos a instalar el API de VDPAU, dirigiéndonos al gestor de paquetes (Administración/Gestor de paquetes Synaptic) y buscando en el campo de texto por VDPAU. Obtendremos resultados del estilo nvidia-180-libvdpau-dev. Instalamos el paquete y pasamos a la instalación de un reproductor compatible con VDPAU: Mplayer.

Para instalar Mplayer de forma más sencilla abriremos una consola e iremos ejecutando los siguientes comandos de uno en uno. Cada uno de ellos puede tardar algo de tiempo en terminar, por lo que tendremos que tener algo de paciencia. El último de los comandos tendremos que ejecutarlo como root, por lo que nos pedirá la contraseña de superusuario del sistema.

$sudo apt-get install build-essential subversion
$sudo apt-get build-dep mplayer
$svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer
$ cd $HOME/mplayer
$ ./configure
$ make
$ sudo make install

En el momento en que tengamos instalado Mplayer ya podremos utilizar VDPAU en la visualización a través del reproductor. Calculamos que todo el proceso de instalación puede tardar entre 20-30 minutos, por lo que además de fácil es bastante rápido empezar a ver videos en alta definición en nuestro Linux. Pero ¿Habrá valido la pena tanto esfuerzo? Vamos a ver los resultados.

Pruebas realizadas

Las dos primera imágenes muestran la llamada a Mplayer sin utilizar VDPAU en dos escenas diferentes de la película. Podemos observar en el rendimiento del procesador que siempre almenos uno de los dos núcleos sobrepasa el 50% en el mejor de los casos. Vemos ahora las ventajas que nos ofrece VDPAU.





En estas dos capturas de las mismas escenas que las anteriores, podemos ver que el rendimiento necesario para reproducir el archivo es muy inferior. Salvo algunos picos en la carga, ambos núcleos del procesador se mantienen siempre por debajo del 50%, incluso llegando a quedarse en algún momento en el 0% uno de ellos.





Las ventajas son muy importantes utilizando VDPAU, por lo que es muy recomendable si disponemos de una gráfica compatible.

Xbmc y VDPAU

Como nuestro equipo es un HTPC, no podemos pasar por alto que los archivos de video no se ejecutarán directamente a través del reproductor, sino de un mediacenter. Dado que Xbmc es compatible con VDPAU, vamos a ver como configurarlo para que haga uso del API y la mejora en el rendimiento también a través de este famoso mediacenter.

Para utilizar VDPAU tan sólo tenemos que dirigirnos a la sección de ajustes de reproductor de Xbmc (Settings/Video/Player) y seleccionar Render method como VDPAU. Así de fácil.



Las mejoras siguen siendo notables reproduciendo desde Xbmc.

Sin VDPAU:



Con VDPAU:



Conclusión

Para terminar decir simplemente que, teniendo en cuenta lo que ganamos y que no hace falta entrar en configuraciones complejas para obtener resultados... ¿Que haces que no aceleras el video por hardware?.

jueves, 9 de julio de 2009

Lirc y el control a distancia

Esta entrada tiene algo de especial por varias razones, una es que hacía algún tiempo que no escribía en el blog, y la otra es que (por fin!) me he puesto en serio con la configuración del mando a distancia en mi Linux. Culpa de esto la tiene DuKKon, ya que en su blog leí un post sobre Moovida en la que se hacía referencia a la configuración del mando, lo que me animó a retomar esta deuda pendiente que tenía.

Primero explicaremos cómo funciona el mapeo de teclas para el mando, suponiendo que tenemos a nuestra disposición un mando compatible y que el sistema haya reconocido. Sinceramente no creo que haya problemas con esto, ya que para las pruebas tengo el mando de la Avermedia Studio 203 que configuramos allá por febrero para ver la tele en Linux.

Las aplicaciones en las que nos basaremos para utilizar el mando serán, básicamente, irexec e irxevent. La primera de ellas ejecutará comandos asociados a botones en el mando, y la seguna ejecutará eventos, como por ejemplo cualquiera de las teclas o combinaciones de teclas del teclado.

Para este ejemplo hemos utilizado Ubuntu 9.04 con un mando y receptor que el sistema ya había detectado, concretamente la Avermedia AverTv Studio que utilizamos para ver la tele en Linux.

Utilizaremos Lirc (Linux Infrared Remote Control) el cual podemos instalar desde el gestor de paquetes, o visitanto el sitio web Oficial www.lirc.org.

Para ver las señales que nuestro mando está enviando al sistema podemos utilizar el comando irw, que nos mostrará en la consola las teclas que vayamos pulsando.

Código:

juanma@juanma:~$irw
193 0 KEY_CHANNELDOWN event6
174 0 KEY_ZOOM event6
192 0 KEY_CHANNELUP event6
73 0 KEY_VOLUMEUP event6
72 0 KEY_VOLUMEDOWN event6


Ahora que sabemos que el mando envía señales a nuestro sistema, trataremos que el sistema responda a estas señales de la forma que nosotros queramos, para ello editaremos el archivo .lircrc que se encuentra oculto en nuestro directorio home. Si el archivo no existe, lo crearemos con nuestro editor de textos favorito.

Lirc buscará en este archivo los comandos a realizar para cada tecla que tengamos mapeada del mando. Para convertir las pulsaciones del mando en comandos o en órdenes para nuestro HTPC podemos hacerlo de dos formas diferentes y compatibles, a través de irexec o de irxevent.

Irexec ejecutará el comando que configuremos como si lo hicieramos desde la consola, por el contrario irxevent ejecutará una acción concreto, como por ejemplo pulsaciones en el teclado, que nos serán muy útiles para configurar el comportamiento de nuestro mando en cada programa que vayamos a utilizar. Ambos buscarán en el archivo .lircrc de nuestro directorio home las acciones para cada tecla.

El ejemplo que presentamos está configurado para arrancar y manejar XBMC con el mando, tal vez necesiteis configurar otro programa, pero creo este caso servirá para ver cómo funciona. Y a partir de ahí ajustar la configuración a las necesidades de cada uno.

Para arrancar XBMC con el mando en cualquier momento, utiizaremos una orden para irexec.

Código:

begin
prog = irexec
button = KEY_POWER
config = exec xbmc --fullscreen
end



Como veis el formato del archivo no tiene mucho secreto, sólo tendremos que saber el botón al que queremos relacionar la acción (utilizando irw de nuevo) y el comando a ejecutar. Tendremos en cuenta que cada vez que pulsemos esta tecla estaremos ejecutando el comando, incluso cuando estemos utilizando XBMC, por lo que dejaremos esta tecla sólo para arrancar el programa.

Ahora vamos con un ejemplo para emular las teclas con las que navegaremos por XBMC.

Código:

begin
prog = irxevent
button = KEY_CHANNELUP
config = Key Up CurrentWindow
end

begin
prog = irxevent
button = KEY_CHANNELDOWN
config = Key Down CurrentWindow
end



De esta forma cuando pulsemos las teclas de canal arriba/canal abajo estaremos mandando las teclas de arriba/abajo del teclado, para el programa que estemos utilizando en ese momento. Tendremos en cuenta que estamos mandando estas pulsaciones a irxevent, por lo que esta configuración nos valdrá para otros programas, no sólo para XBMC. Además podemos programar acciones diferentes cuando la pulsación de la tecla se repite, muy útil si queremos que se ejecute una acción diferente cuando detectamos una pulsación larga. Además las pulsaciones pueden enviar acciones diferentes dependiendo del programa que estemos ejecutando.

Para completar la configuración podremos definir las teclas para seleccionar un punto de menú, ir atrás, izquierda, derecha, etc... Podemos ver las teclas que podemos mandar a irxevent en irxevents.keys. Incluso podemos mandar combinaciones de teclas.

Si vamos a configurar más de un programa con irxevent podemos crear un directorio .lirc en nuestro /home donde guardar el archivo de configuración de cada programa e incluir los archivos en .lircrc de esta forma:

Código:

include /home/juanma/.lirc/xmbc


Conclusión

Como pasa siempre en Linux, las opciones de configuración son casi infinitas, por lo que la calidad de nuestra configuración dependerá de cuanto afinemos las acciones del mando. Pero tenemos la posibilidad de controlar al completo nuestro sistema desde el mando a distancia, así como cualquier programa que vayamos a utilizar.

miércoles, 10 de diciembre de 2008

Televisión y Linux

Si tienes un Linux y una tarjeta sintonizadora de televisión, probablemente estarás pensando en cómo ver la tele igual que lo harías en Windows.

Aunque en la mayoría de los casos los drivers y apliaciones necesarias para usar nuestro hardware vienen pensados para que los utilicemos en Windows, vamos a ver lo fácil que es instalar y utilizar nuestra sintonizadora en Linux, concretamente una Avermedia AverTV 203 en KUbuntu.

Detección de la tarjeta

El hecho de que nuestra capturadora utilice el chip Bt878 nos facilitará el proceso, ya que es un chip bastante usual en las sintonizadoras de hace algún tiempo. En nuestro caso el sistema reconoce nuestra capturadora automáticamente, aunque sea con otro nombre. Utilizaremos el comando $ lspci para listar los dispositivos conectados por PCI a nuestra placa. Y el sistema nos devolverá entradas de este tipo:

02:08.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 11)
02:08.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture (rev 11)

Lo que más nos interesa de estos datos es que el sistema reconozca el chip (Bt878) de nuestra tarjeta. En caso de que tengamos un chip diferente y el sistema no reconozca nuestra tarjeta, tenemos problemas, pero no sin solución.


Posibles problemas

Si el sistema no ha reconocido automáticamente tu tarjeta, puedes utilizar modconf para configurar los módulos que se utilizarán para la tarjeta. Si no lo tienes instalado puedes hacerlo con $ sudo apt-get install modconf.

En primer lugar eliminaremos los módulos asociados a la tarjeta para luego añadir los que nos interesen.

$ sudo rmmod -f bt878
$ sudo rmmod -f bttv


Si nos devuelve un error porque los módulos no existen, no pasa nada.
Ahora ejecutamos $modconf para entrar en la configuración de los módulos y buscamos el módulo Bt878, que se encontrará más o menos en kernel/drivers/media/dvb/bt8xx. Se nos preguntará si queremos instalar el módulo y aceptamos, pasando como argumentos una línea del siguiente tipo:

card=xx tuner=xx radio=x remote=x

Donde deberemos especificar la tarjeta (card) que tenemos y su sintonizador (tuner). Para las opciones radio, remote y pll dependerá de si tenemos o no (0/1) mando a distacia, opción de radio, etc... Para saber cuales son los códigos de nuestra tarjeta y del sintonizador lo podemos ver aqui.

Instalación y configuración

Como tenemos disponible nuestra tarjeta ahora sólo tenemos que emplear un software que nos permita ver la TV a través de ella. En este caso utilizaremos un programa llamado TvTime.

Para instalar podemos utilizar el comando $ apt-get install tvtime o instalar tvtime desde el gestor de paquetes.

Abrimos TvTime y lo primero que haremos será ir a la gestión de canales y establecer la tabla de frecuencias a la zona donde nos encontremos, por ejemplo Europa.

Para sintonizar bien los canales activaremos todos los canales y empezaremos a escanear canales. En nuestro caso hemos desactivado la detección de señal para evitar que TvTime descarte los canales con poca señal y asegurarnos de que rastrea todas las frecuencias. Puede ser que tengamos que jugar un poco con los parámetros de TvTime dependiendo de la zona en la que estemos sintonizando.

Cuando tengamos todas las frecuencias rastreadas tendremos canales que no se ven mezclados con los canales que nos interesan. Para organizar la lista de canales editaremos el archivo stationlist.xml que encontraremos en el directorio oculto .tvtime de nuestro directorio personal. Este archivo tendrá un formato parecido a este:

station name="La primera" active="1" position="1" band="VHF E2-E12" channel="E10" finetune="0" norm="PAL" audio="auto"

Donde cada linea con la etiqueta station es un canal de la lista. Para identificar los canales que nos interesan desde la pantalla de TvTime iremos desactivando los canales que queramos mantener, para luego eliminar del archivo stationlist.xml las entradas que tengan la etiqueta active=1, de forma que nos quedaremos con los canales que antes hemos desactivado, que realmente son los que queremos tener en la lista. Por supuesto cuando tengamos estos canales los volveremos a activar.

Ahora, con nuestra lista definida podremos organizar nuestros canales de la forma que más nos guste con la etiqueta position, e incluso ponerles un nombre para identificarlos mejor en la eiqueta name. A partir de aquí sólo tendremos que disfrutar de nuestra tarjeta sintonizadora.


martes, 9 de diciembre de 2008

No diga música, diga Amarok

La mayoría de los usuarios tenemos nuestra (pequeña o grande) biblioteca de música. Pero lo que realmente marca la diferencia a la hora de escucharla no es el que, sino el cómo reproducimos nuestra música.

Mucha gente conoce Amarok por ser una gran reproductor de música, pero muchos menos lo conocen por haberlo utilizado, dado que hasta hace no mucho era para usuarios exclusivamente de Linux. Hoy en día es uno de los mejores, sino el mejor, de los reproductores que puedes instalar en tu ordenador.

Con Amarok puedes reproducir la música que tienes en el disco duro, pero además puedes configurar tu reproductor mp3, o escuchar música desde last.fm, emisoras de radio on-line, podcasts, etc...

La verdad es que si no conoces Amarok, probablemente no conozcas Linux, dado que viene en la instalación de KDE. En cualquier caso, ser usuario de Windows ya no es impedimento para no disfrutar del gran Amarok, ya que si tienes un Windows también puedes ejecutar aplicaciones de KDE gracias al KDE Windows Project. Sin duda una gran noticia para los usuarios potenciales de Linux.

Yo de momento siento que nos han robado algo... para mí Amarok era uno de los argumentos básicos para convencer a alguien de que se pasara a Linux.


miércoles, 3 de diciembre de 2008

Expediente Ubuntu: Capítulo 1

Hace algún tiempo que probé la versión 8.04 de Ubuntu y me dejó una buena impresión. Por casualidades del destino y el buen hacer de Windows he vuelto instalar Linux en mi ordenador, esta vez la la 8.10 Intrepid Ibex.

La primera vez que lo probé me dió alguna sorpresa, como por ejemplo el hecho de que funcionaran las teclas de volumen de mi teclado Microsoft. Aparte de esto tiene la ventaja de que instalar cualquier cosa es todavía más fácil. Un claro ejemplo es el soporte para mp3 y los codecs de video, que en distribuciones como OpenSuse pueden dar al usuario algún que otro dolor de cabeza, en Ubuntu tan sólo hay que permitir que el sistema descargue e instale los paquetes necesarios.

Además de todo esto, una de las razones para instalar Ubuntu era la de probar MythBuntu, una distribución orientada al uso en HTPC.
Y de nuevo otra grata sorpresa por parte de MythBuntu al comprobar que el mando de la sintonizadora controla el volumen (+/-), y la reproducción de video (play/pause) sin ningún tipo de configuración extraña ni mapeo de teclas.

Recomendaría Ubuntu a aquellos usuarios que se quieran pasar a Linux sin complicarse demasiado. De momento Ubuntu se lleva una muy buena nota, así como MythBuntu, lo único que no me acaba de convencer es el entorno de escritorio Gnome, aunque es más una cuestión de gustos y supongo que estoy demasiado acostumbrado a KDE en OpenSuse xD. En cualquier caso se puede instalar KDE desde Ubuntu, o directamente instalar KUbuntu, pero eso será en el próximo capítulo...


martes, 25 de noviembre de 2008

XP SP3, el nuevo virus de Microsoft

Al leer en foros comentarios sobre lo bien que va el SP3 empecé a pensar que mis problemas con este paquete de actualizaciones eran algo puntual. Pero me he puesto a buscar un poco por la red y resulta que hay mucha gente que ha tenido problemas, y serios, con el SP3 de XP.

He podido leer comentarios de gente a la que misteriosamente le dejan de funcionar los puertos USB, dejan de reconocerse algunos dispositivos de la noche a la mañana, o incluso el sistema se reinicia de forma automática indefinidamente. Estos problemas han aparecido con procesadores AMD y sobre placas ASUS, curiosamente la configuración de mi equipo.

Aparte de los problemas que he podido leer, a mi el SP3 también me ha dado algún palo inexplicable. Por ejemplo, hace poco formatee y reinstalé el XP en el equipo de un amigo (Asus+Intel), y como acababa de salir el SP3 lo instalé desde las actualizaciones automáticas. El siguiente paso fue instalar el Msn Messenger, última versión, desde el sitio oficial.

La sorpresa vino cuando, al tratar de instalar, el instalador del Msn me dice que no puede hacerlo porque el equipo no tiene el Windows installer 3.1, por lo que se cierra. Así que descargo el paquete del Windows installer 3.1 desde el sitio de Microsoft, y cuando trato de instalarlo me dice que no puede instalar porque la versión del instalador es más reciente que la 3.1 (¿?). Un error que calificaría de grave, ya que queda claro que las diferentes versiones del instalador no son compatibles entre sí.

Al final, para poder instalar el messenger, tuve que eliminar el SP3 del ordenador, instalar y volver a poner el SP3. Muy a lo chapuzas, pero así es como Microsoft lo ha hecho.

Yo recomiendo, y mucho, el paso a un SO linux, el cual tiene distribuciones para todo tipo de usuarios, incluidos los más inexpertos.