Jun 26 2010

Media Server desde GNU/Linux para PS3

En este post explicaré cómo montar un media server para poder ver las películas, imágenes y reproducir los contenidos multimedia que tengamos en nuestro PC con GNU/Linux desde un PS3. Esto es particularmente útil para reproducir archivos .avi que tengan subtítulos aparte (.sub, .srt) ya que el PS3 es capaz de reproducir videos .avi pero no cargar los subtítulos, así que ahora sí se podrá usar el PS3 para ver las películas y series con subtítulos

Gracias a un programa llamado ps3mediaserver (Un media server escrito en Java, lo que hace que sea multiplataforma) es muy sencillo llevar a cabo este procedimiento que describiré en estos pasos:

1. Establecer conectividad entre el PS3 y el PC
Esto se puede lograr bien sea con un router (preferiblemente con cable de red dado que por wifi es lenta la transferencia de datos) o conectando el PS3 directamente al PC con una cable de red cruzado y estableciendo IP’s estáticas para ambos dispositivos. El último es mi caso por eso tengo un script adicional al momento de ejecutar PMS para que el proceso de establecer la IP sea automático. Este script se los mostraré con más detalle al final del post.

2. Activar la búsqueda de servidores multimedia en el PS3
En Ajustes-»Ajustes de red»Conexión al servidor multimedia seleccionar la opción activar

3. Preparar el sistema para el uso de PMS
Debemos instalar el JRE, mencoder y ffmpeg lo cual logramos con un

sudo apt-get install ffmpeg mencoder sun-java6-jre

si nuestra distribución es Ubuntu

4. Descargar PMS
Vamos a la página de PMS y en la parte de la derecha vemos el enlace para descargar la versión para GNU/Linux (tgz), lo descargamos y descomprimimos en una carpeta desde la que lo deseemos ejecutar

5. Ejecución PMS
Para ejecutar PMS sólo necesitamos correr un script que encontraremos en la carpeta que nos creó al descomprimir

sh RUTA_PMS/PMS.sh

NOTA: Si la ruta donde tenemos el script tiene espacios (por ej /media/CRIS/Mi/ música/Juegos/PS3/pms-linux-1.10.5), la ejecución nos sacará un error como este:

cd: 24: can't cd to /media/CRIS/Mi/ música/Juegos/PS3/pms-linux-1.10.5
Unable to access jarfile /home/cristianpark/pms.jar

Debemos editar el script PMS.sh de forma que la línea 3 quede así:
#DIRNAME=`dirname $0`

Y la línea 24 quede con la ruta donde va a estar el script, en mi caso:
PMS_HOME=`cd "/media/CRIS/Mi música/Juegos/PS3/pms-linux-1.10.5"; pwd`

Nota: /media/CRIS/Mi\ música/Juegos/PS3/pms-linux-1.10.5/ en mi script es la ruta donde tengo PMS.sh, cada quien debe adaptar esto a su ruta

Hay un link para descargar el script PMS.sh modificado al final del post

6. Configuración carga subtítulos
Para configurar la carga automática de subtítulos .srt y .sub en los videos, debemos seguir los pasos que se muestran en la imagen.

En ajustes de transcodificación-»Motores de Video-»Mencoder seleccionar la opción Autocargar subtítulos *.srt/*.srt con el mismo nombre de archivo

7. Acceder a los archivos desde el PS3
Desde el PS3 por el menú video podremos acceder al Servidor Multimedia y navegar en el sistema de archivos de nuestra distribución. Por ej: / » /media » /CRIS » » /CRIS/Series

OPCIONAL

Automatizar proceso de establecer IP estática en el PC
Como les había mencionado anteriormente, el PS3 lo tengo conectado directamente al PC con un cable cruzado por lo que antes de lanzar PMS debo establecer la IP manualmente (10.0.0.2 para el equipo y tengo configurado el PS3 con 10.0.0.3) por eso creé este sencillo script que establece la IP como root y ejecuta PMS como el usuario que llega como parámetro (para no ejecutarlo como root). Ubicamos este script en la misma carpeta donde está PMS.sh

Este es el contenido del script (Daré un link para descargarlo posteriormente)

#!/bin/sh
# @author Cristian Gómez Alvarez
# @fecha Junio 26 de 2010
#
# @params $1: Nombre del usuario estandard del sistema (para no ejecutar psm como root)
#

## Se establece la dirección IP estática para el PC (El PS3 tiene IP 10.0.0.3)
ifconfig eth0 10.0.0.2 netmask 255.255.255.0 up

# Se ejecuta PMS como usuario estandard
su - $1 -c "sh /media/CRIS/Mi\ música/Juegos/PS3/pms-linux-1.10.5/PMS.sh"

Nota:/media/CRIS/Mi\ música/Juegos/PS3/pms-linux-1.10.5/ en mi script es la ruta donde tengo PMS.sh, cada quien debe adaptar esto a su ruta

Agregar lanzador en el menú (Gnome)
Esta opción es para los que nos gusta hacer las cosas más fáciles cuando se puede y ejecutar PMS desde el menú en Gnome. Para esto:
- Click derecho en el menú y seleccionamos la opción Editar los menús.
- Seleccionar el menú en el que se quiere crear el lanzador (en mi caso Sonido y Video)
- Seleccionar Elemento Nuevo (parte superior derecha) y en la parte donde dice comando ponemos

gksudo sh "/media/CRIS/Mi música/Juegos/PS3/pms-linux-1.10.5/lanzar_pms.sh" nombre_usuario
si necesitamos asignar la IP estática
o
gksudo sh "/media/CRIS/Mi música/Juegos/PS3/pms-linux-1.10.5/PMS.sh" nombre_usuario
si nos conectamos a través de un router

Donde nombre_usuario es el nombre del usuario sin privilegios de root del sistema (con el que se va a ejecutar PMS). En otras palabras el mismo con el que iniciamos sesión regularmente

Nota:/media/CRIS/Mi\ música/Juegos/PS3/pms-linux-1.10.5/ en el lanzador es la ruta donde tengo PMS.sh, cada quien debe adaptar esto a su ruta

El comando de una forma más ortodoxa es

gksudo sh "/media/CRIS/Mi música/Juegos/PS3/pms-linux-1.10.5/lanzar_pms.sh" `whoami`
pero no sé por qué no me funcionó el `whoami`en el lanzador, por lo que decidí poner el nombre del usuario para no crear otro script adicional o complicar más las cosas.

Esta imagen pretende aclarar un poco el proceso de creación del lanzador

Como les había prometido aquí están los scripts que se necesitan en determinados casos:
- PMS.sh modificado: Si la ruta desde la que ejecutamos PMS tiene espacios
- lanzar_pms.sh: Si conectamos el PC directamente al PS3 con un cable cruzado y deseamos automatizar el proceso de asignar IP estática (10.0.0.2 en este caso)

Ahora sólo nos queda disfrutar de una buena película o de nuestra serie favorita desde nuestro PS3 cargando los subtítulos adecuados!!!

Don’t Worry………Be Linux!!!!!


Nov 14 2009

Flashear el OpenMoko

Buenas noches, después de lograr conectar el OpenMoko al PC y acceder a él por SSH (recordamos lo visto en Conectar OpenMoko al PC), lo primero que se debe hacer es actualizar los programas que vienen instalados en OM 2008-08 (el sistema operativo que viene por defecto en el OpenMoko), ésto se hace con un comando similar al usado en distribuciones basadas en debian:

opkg update && opkg upgrade

Esto no es todo lo que podemos hacer ahora que tenemos acceso a internet desde nuestro OpenMoko, podremos navegar usando Midori, usar el GPS con TangoGPS y lo mejor de todo, instalar los programas que deseemos, incluyendo distribuciones, lo que cubriremos en este post.

En posts anteriores nombré algunas distribuciones que tenemos como opciones para instalar en nuestro OpenMoko, particularmente me he interesado por SHR porque parece ser la más prominente y con mejores programas que las otras. La primera vez que la instalé, lo hice en la memoria microSD y después de ensayarla por un tiempo, estaba preparado para instalarla como SO base y probar otras distros (como Debian en la MicroSD). Para comenzar con los pasos para la instalación de una distribución en el OpenMoko vale la pena decir que ésta consta de un archivo que es el kernel (.bin) y un archivo con el sistema de archivos o root file system (.tar.gz si se instala en la microSD o jffs2 si se instala en la memoria NAND).

A continuación los pasos para efectuar la instalación en la memoria NAND:

1. Instalar dfu-util en la distro: dfu-util es el paquete que nos servirá para ‘quemar’ o escribir el Kernel y el Root FileSystem en la memoria NAND. Instalar dfu-util en distribuciones como ubuntu será tan sencillo cómo un apt-get install dfu-util. En Arch Linux, podemos recurrir al AUR e instalarlo como se vio en un post anterior con Chromium.

2. Descargar el kernel y el rootfs: Como había mencionado, éstos son los componentes esenciales de una distribución. Para SHR, se deben descargar desde http://build.shr-project.org/shr-unstable/images/om-gta02/

Los archivos que debemos descargar son (a fecha Noviembre 13 de 2009)

- Kernel: uImage-2.6.29-oe11+gitr119844+a3587e4ed77974adfb057af261aaeea4022018e8-r3.5-om-gta02.bin

- Rootfs: full-om-gta02.jffs2

3. Bootear el OpenMoko en el menú NOR-Boot: El OpenMoko tiene diversos modos de booteo, el normal es llamado NAND y existe otro que se llama NOR, en el cual podemos escribir el kernel y el sistema de archivos. Como habrán adivinado, ese es el modo en el que tendremos que bootear el OpenMoko para flashearlo. Para entrar en ese modo basta con apagar el OpenMoko y para encenderlo, presionar el botón AUX por algunos segundos y luego presionar el botón de encendido, veremos un menú como éste:

NO seleccionamos ninguna opción del menú, sino que presionamos repetidamente el botón AUX para evitar que el OpenMoko arranque antes de tiempo. Ahora proseguimos con el siguiente paso

4. Conectar el OpenMoko al PC: En este paso no establecemos una conexión vía SSH con el OpenMoko, simplemente conectamos el Smartphone al PC a través del cable USB.

5. Probar conectividad: Debemos comprobar que dfu-util reconoce el OpenMoko, para lo que escribimos en la consola del PC

dfu-util –list

Con lo que tendremos una salida como:

dfu-util – (C) 2007 by OpenMoko Inc.

This program is Free Software and has ABSOLUTELY NO WARRANTY

Found Runtime: [0x1d50:0x5119] devnum=9, cfg=0, intf=2, alt=0, name=”USB Device Firmware Upgrade”

Esto indica que todo está bien y el PC reconoció el OpenMoko

En este paso debemos estar presionando constantemente AUX para que el OpenMoko no bootee antes de escribir el sistema de archivos y el Kernel.

6. Escribir el kernel y el sistema de archivos: Si hemos llegado a este paso sin ningún problema, procedemos a ‘quemar’ la imagen del kernel y el rootfs en la memoria NAND del OpenMoko con los siguientes comandos:

dfu-util -a rootfs -R -D full-om-gta02.jffs2

En el OpenMoko veremos algo como:

Starting DFU DOWNLOAD to partition…

[...]

DFU: Switching to DFU mode

[...]

Y en la consola del PC:

dfu-util – (C) 2007 by OpenMoko Inc.
This program is Free Software and has ABSOLUTELY NO WARRANTY

Opening USB Device 0×0000:0×0000…
Claiming USB DFU Runtime Interface…
Determining device status: state = appIDLE, status = 0
Device really in Runtime Mode, send DFU detach request…
Resetting USB…
Opening USB Device…
Found Runtime: [0x1d50:0x5119] devnum=10, cfg=0, intf=0, alt=6, name=”rootfs”
Claiming USB DFU Interface…
Setting Alternate Setting …
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
Transfer Size = 0×1000
bytes_per_hash=1431306
Starting download: [#####

Al finalizar el proceso, en el PC debe aparecer

Starting download: [##################################################] finished!
state(2) = dfuIDLE, status(0) = No error condition is present
Done!

Resetting USB to switch back to runtime mode

Y el OpenMoko dirá:

DFU: Switching back to Runtime mode

Por último escribimos el Kernel con el siguiente comando:

dfu-util -a kernel -R -D uImage-2.6.29-oe11+gitr119844+a3587e4ed77974adfb057af261aaeea4022018e8-r3.5-om-gta02.bin

Este proceso demorará mucho menos que el anterior y cuando finalice podremos

7. Seleccionar la opción para arrancar y presionar POWER: Al hacer esto, veremos cómo bootea en nuestro OpenMoko la distribución SHR que acabamos de instalar.

Como pueden ver es sencillo el proceso de flashear el OpenMoko y es aún más sencillo cuando la distribución se instala en la memoria microSD, proceso que trataré de explicar en un nuevo post.

Don’t Worry……….Be Linux!!!!!


Sep 15 2009

Conectar OpenMoko al PC

En este post les describiré cómo conectar el OpenMoko a un computador para acceder a los archivos del OpenMoko transferir archivos en ambas vías y gestionar los paquetes del FreeRunner. Además es posible conectarse a internet en el FreeRunner utilizando el computador y probar por ejemplo las aplicaciones que hagan uso del GPS como TangoGPS (instalada por defecto en la mayoría de distros del OpenMoko).

Para leer un tutorial completo con los aspectos técnicos de la conexión y cómo hacerla de la manera fácil o avanzada, pueden verlo en esta página del wiki de OpenMoko.

Sin más preámbulos, voy a describir los pasos para tener un Neo FreeRunner conectado a nuestro PC de la manera más sencilla:

1. Aunque suene lógico, conectar el cable del PC al OpenMoko

En la terminal del computador digitamos estos comandos (como root o empleando sudo):

2. sudo ifconfig usb0/eth1 (en SHR) 192.168.0.200 netmask 255.255.255.0 up

En este paso, si tenemos OM instalado, la interfaz será usb0 (cero) y si tenemos por ej SHR, la interfaz será eth1
3. sudo iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24
4. sudo sysctl -w net.ipv4.ip_forward=1

5. Ya podremos iniciar sesión remotamente en el OpenMoko usando ssh así:

ssh root@192.168.0.202

La primera vez que nos conectemos, el PC guardará una configuración para saber que nos estamos conectando a un host seguro; la contraseña del usuario root en el OpenMoko por defecto es vacía.

6. Hasta el paso anterior podremos hacer la mayoría de lo que necesitamos para actualizar/flashear el OpenMoko, y con los comandos adicionales que introdujimos en los pasos 3 y4, ya tendremos internet en nuestro FreeRunner con lo que podremos hacer las actualizaciones desde la consola de éste o simplemente disfrutar de las aplicaciones que hacen uso de internet (TangoGPS, Pidgin, etc)

Para probar conectividad a internet, el clásico:

ping www.google.com

Desde la terminal del PC (donde iniciamos la sesión ssh en el OpenMoko) bastará para saber si tenemos o no internet

Configuraciones Adicionales

Como siempre para las personas que desean ir más allá, GNU/Linux ofrece una o más alternativas de hacerlo.

* Es molesto tener que ejecutar siempre estos comandos que describí arriba cada vez que se conecta el OpenMoko al PC y aunque esta no es probablemente la forma más ortodoxa de solucionar ésto, cree un script que reúne estos comandos para ejecutarlos de una manera más sencilla. Vale la pena aclarar que está hecho para conectar con un OpenMoko que tenga SHR como distribución, para que funcione con OM, simplemente se cambia eth1 por usb0 (cero) como dije anteriormente.

La ejecución del script se tendría que hacer como usuario root (o con sudo) de la siguiente forma (si el archivo está en el escritorio):

sudo sh ~/Desktop/usb_networking.sh

* Si esto de recordar IP’s no va con ustedes, pueden agregar un nombre para el OpenMoko para que todo sea más fácil:

Se edita el archivo /etc/hosts (Por ej: sudo gedit /etc/hosts)

Y se añade una línea como ésta:

192.168.0.202   FreeRunner

Donde FreeRunner es el nombre que se le da al OpenMoko

Así, podríamos conectarnos con ssh digitando:

ssh root@FreeRunner

*Si la terminal no les parece suficientemente agradable para copiar archivos desde y hacía el OpenMoko, existe una forma para que los usuarios de Gnome accedan al sistema de archivos del OpenMoko a través de nautilus. Es muy sencillo, se abre una instancia de nautilus y en la ruta se introduce:

sftp://root@FreeRunner/

FreeRunner es el nombre que es estableció para el OpenMoko en el paso anterior

Aquí un pantallazo de ésta última parte que resume todo lo tratado en el post:

OpenMoko desde Nautilus

OpenMoko desde Nautilus

Eso es todo por ahora, esperen más adelante Por primera vez en el OpenMoko a través de ssh y Cómo instalar una distribución en el OpenMoko.

Don’t Worry…………Be Linux!!!!!!!!!!!!!


Sep 12 2009

Distribuciones en el OpenMoko

Buenas noches, este post es para reportar mis avances con el OpenMoko.

Hasta el momento he probado dos distribuciones:

- OM2008  (la distro instalada por defecto) la cual es rápida pero no presenta muchas oportunidades para cacharrearle y se veía inestable, se demoraba demasiado al suspender/reanudar. Esta distribución es desarrollada por OpenMoko Inc y actualmente el desarrollo de la versión OM 2009 está congelada.

- SHR: sus siglas significan Stable Hibrid Release y es una distribución creada por la comunidad que pretende ser una distribución minimalista que brinde las opciones necesarias para la utilización del OpenMoko (y no sólo se limita a él) como teléfono diario. Hasta ahora me ha gustado mucho, es bastante intuitiva, es Finger-Friendly (manejable fácilmente con los dedos) y a pesar de estar etiquetada como [Unstable] la he notado muy estable, se suspende/reanuda muy rápido y su administración de paquetes es sencilla a través de opkg.

Screenshot de SHR

Screenshot de SHR

Las distribuciones se pueden instalar tanto en la memoria NAND del OpenMoko como en una micro-SD lo que se puede traducir en que se puede tener un dual boot teniendo dos distribuciones diferentes instaladas, una en la memoria NAND y otra en la micro-SD o incluso varias distros en la micro-SD.

Entre las dos distribuciones que he probado, me quedo con SHR porque su desarrolllo es más activo, se hace más estable cada día y ofrece lo que se espera en un SmartPhone.

Don’t Worry…………Be Linux!!!!!!!!!!


May 9 2009

Network Manager no cargaba por defecto en mi cuenta de usuario

Como había comentado anteriormente, había configurado la tarj inalámbrica de mi portátil, pero en mi usuario normal (no sé porque) no me cargaba por defecto el NetworkManager (nm-applet) y aún si lo corría en la terminal como usuario normal, tampoco aparecía, sólo utilizando sudo funcionaba (sudo nm-applet). Por lo que me habían dicho para el audio, traté de buscar un grupo al que hubiera que agregar el usuario , pero no lo encontré.

Acudí de nuevo a el IRC de debian-es y me recomendaron instalar un paquete llamado wicd para la administración de las redes (inalámbricas y cableadas) y después de instalarlo me llevé una grata sorpresa porque me gustó mucho el modo de gestionar las contraseñas, así que recomendado wicd 100% y un problema menos en debian :D

Don’t Worry, Be Linux!!!


May 9 2009

GNU/Linux Debian…….el principio

Bueno señores, en mi vida con GNU/Linux he probado pocas distribuciones, tal vez porque me gusta mucho acostumbrarme a una y/o porque me ha ido bien con las que he tenido. Hace algún tiempo probé Fedora Core 6 y aunque me gustó mucho, me desanimó la dificultad para configurar mi modem; luego, hasta hace poco utilicé Ubuntu como mi sistema operativo base. Hace algún tiempo tuve la curiosidad de instalar Debian pero la verdad no creía que me diera algo que ubuntu no me diera y que tal vez me complicaría más la vida, pero últimamente el arranque del ubuntu era un poco lento y quería probar “el papá” a ver si era más rápido y le sacaba más provecho a mi laptop.
Fue entonces, cuando el lunes pasado me dispuse a descargar el CD-1 de Debian Lenny (versión testing de Debian) para instalarlo en mi portátil. En cuanto quemé el CD me preparé para la instalación por primera vez de Debian. Me encontré con una instalación más amigable de lo que esperaba (la esperaba demasiado hostil a decir verdad…) y me pareció sencilla (no como la de ubuntu, pero sencilla), reutilicé la swap y me /home de la instalación de ubuntu así que en DD no me costó tanto la instalación….después de unos minutos, vi por primera vez Debian arrancando en mi PC, me sorprendió la rapidez con que arrancó, me gustó.
Inicié sesión como el usuario que había creado en la instalación y ya tenía sonido, no había reconocido la tarj inalámbrica pero como en ubuntu la había instalado con madwifi, esperaba hacer lo mismo en debian. Pensaba que lo primero que debía instalar sería sudo y synaptic, pero me llevé otra sorpresa (agradable para mí) cuando ví que sudo ya estaba instalado (después les explico por qué me gusta sudo…) y que sólo era añadir mi usuario a /etc/sudoers para empezar a usar este útil comando en una distro linux, después instalé synaptic y ya tenía un sistema más fácil de administrar. Abrí una carpeta y no me gustó que abriera una ventana cada que hacía click en un elemento, entonces me dispuse a buscar la forma de cambiar eso, busqué en las preferencias de nautilus (versión más antigüa que la de ubuntu), no tiene pestañas, cosa que extraño :S, no encontré la opción en las preferencias así que después de una búsqueda en internet, vi que había que editar el registro (Aplicaciones->Herramientas del Sistema->Editor de configuracion) y buscar la entrada de nautilus (apps-nautilus-preferences) y en la clave use_always_browser puse chulito e igualmente en la clave side_pane_background_set y así obtuve los resultados que esperaba, las unidades a la izquierda del menú y al hacer click en los elementos, seguía en la misma ventana (de pestañas nada, a actualizar nautilus, no se cómo hacerlo aún, vamos a investigar…).
Primer programa que instalo: vlc. Me encuentro con que la versión disponible en los repos es algo vieja y no tiene ni siquiera la opción para activar subtítulos en los videos….me desilusionó un poco esto, pero pensé que no puede ser tan difícil llegar a instalar la última versión.
Ya que mi tarj inalámbrica no funcionaba, probé la conexión cableada y funcionó después de activar la interfaz de red, no hubo problemas, cuando empecé a navegar, ephifany (no se ni como se escribe :P ) no me gustó para nada y iceweasel se parecía mucho a firefox así que bien :D …..
Para no extender más este post (como si fuera posible), voy a tratar los problemas que tuve en esa instalación de debian, de forma separada para que el blog quede lo más organizado posible.

Don’t worry, Be Linux!