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!!!!!


Jan 3 2010

Open Ports on Router to Play Online (PS3 – Xbox 360)

Buenas tardes, FELIZ AÑO!!!!
Se preguntarán por qué el título del post está en inglés (además que no tiene que ver nada con SL o Linux, pero tiene que ver con tecnología), pues he decidido hacer este post en inglés para que llegue a más personas dado que quienes tienen el problema buscan/encuentran información en este idioma y aprovecho para ensayarme a ver si es entendible mi inglés :P .

After a little explanation on why this post is written in english, I start with the issue that motivates me to write it.
I bought a PlayStation 3 gaming console and I want to play online using my wireless internet connection, the configuration on the PS3 was really easy and everything looks good but when I tried to play PES 2010 online, I have an error that says that UDP 3658 port wasn’t open so I can’t connect to PSN, it says that I had to put the PS3 on DMZ on the router or do port forwarding in order to access to PSN and play online.

I have a Netgear WGT624 v3 Router that go out to internet through a Thomson Modem (my ISP is Une from Colombia) and the method to connect to internet is PPPoE, if you have a different one, this post won’t help you, but just for you to check, the key in the configuration is having a public IP address on the internet port of your router.

When I tried to configure port forwarding or DMZ I have no success, the PS3 was saying that NAT Type was 3 (Type 3 means that you can’t access completely or without restrinctions to internet) and the type that you need (if you use a router) is Type 2. I tried resetting the router and leave the default configurations but it doesn’t work either. I was about to give up with the router and bought a new one but I think that maybe I can have same problems too.

So I decided to read everything I could about this subject and finally in Netgear Forums I have a light and I tried what I was told there. Basically, the Modem has to be in “bridge mode” in order to avoid double NAT (Router and Modem), you have to take away routing functions from Modem and leave them to the router, as well as PPPoE authentication.

This post is being quite long, so, lets get to the point: I make this PDF for you to complete the configuration you need.

I hope this can help you out.

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