Instalar GNU/Linux+Cell SDK 2.1 en PlayStation 3

Esta receta tiene como objetivo proporcionar una guía para la instalación de una distribución GNU/Linux junto con el SDK para el procesador Cell en PlayStation 3.

Introducción

PlayStation 3 tiene como corazón el procesador Cell. Esta revolución tecnológica fue desarrollada inicialmente para PlayStation 3 por Sony Computer Entertainment, Toshiba e IBM. Sin embargo, el verdadero objetivo de este proyecto es la obtención de un procesador con una gran potencia de cálculo a un bajo coste.

Arquitectura del Cell

Cell es una arquitectura orientada a la computación distribuida de alto rendimiento. De acuerdo con IBM, la potencia ofrecida por este procesador es de un orden de magnitud mayor que la ofrecida por los procesadores actuales. En comparación con las unidades de procesamiento gráfico (GPUs), Cell supone una importante ventaja al tratarse de una herramienta de propósito general que se puede utilizar para una gran variedad de tareas.

Una de las principales características de la arquitectura Cell es el escalado a nivel de procesador. Sin embargo, un único chip proporciona una gran cantidad de cálculo por sí mismo (256 GFLOPS a 4 GHz).

La arquitectura está formada por los siguientes elementos:

  • 1 PPE (Power Processor Element).
  • 8 SPEs (Synergistic Processor Elements).
  • EIB (bus de interconexión).
  • DMAC (controlador de acceso a memoria).
  • 2 Rambus XDR memory controllers (controladores de memoria).
  • Rambus FlexIO interface (interfaz de entrada/salida).

El corazón del procesador es el PPE, un microprocesador convencional cuya principal tarea (aunque puede utilizarse con otros propósitos) es la de distribuir el trabajo entre los SPEs, encargados de efectuar la mayor parte de los cálculos de una aplicación. A pesar de que puede funcionar a una velocidad mayor, el chip Cell utilizado en PlayStation 3 corre a 3,2 GHz y tiene 7 SPEs disponibles.

El PPE es un procesador de 64 bits con una Power Architecture. Este tipo de procesador no se utiliza en los computadores personales y es capaz de ejecutar binarios de POWER y PowerPC.

El SPE se puede considerar como un procesador vectorial independiente de 128 bits. Cada SPE es capaz de ejecutar 4 operaciones de 32 bits por ciclo. Para obtener ventajas en el desarrollo de aplicaciones en el Cell, los programas necesitan ser vectorizados.

Existen muchas más decisiones de diseño en la arquitectura Cell que la hacen muy diferente a las arquitecturas convencionales utilizadas en los computadores personales, proporcionando una revolución y no un simple paso más en la evolución [Blachford_Cell_v2].

Ingredientes

  • 1 PlayStation 3 con una versión del firmware igual o superior a la 1.6.
  • 1 CD o DVD vírgenes para grabar el sistema operativo a instalar.
  • 1 CD vírgen.
  • 1 pendrive.
  • 1 teclado y un ratón con conexión USB.
  • 1 conexión cableada a Internet.

Actualmente, existen distintas distribuciones que pueden instalarse en PlayStation3, como por ejemplo Yellow Dog Linux, Helios Linux, Fedora Core 6, Ubuntu, Gentoo, o Debian, entre otras.

La distribución en cuestión a instalar se deja a gusto del lector, pero es imprescindible descargar una ISO para una arquitectura PowerPC. En mi caso, elegí la distribución Fedora Core 6, y descargué una ISO para grabar en un DVD. También es necesario obtener la ISO relativa al Linux add-on CD, descargando el archivo CELL-Linux-CL-20061110-ADDON.iso. Por último la herramienta más importante, el entorno de desarrollo para el Cell: SDK 2.1.

El cargador de arranque

El siguiente paso es hacerse con un gestor de arranque. La opción más directa es obtenerlo desde el Linux add-on CD. Éste se encuentra en el directorio kboot y su nombre es otheros.bld.

En el pendrive hay que crear un directorio llamado PS3, y dentro de éste otro llamado otheros, en el cual hay que copiar el cargador de arranque (otheros.bld)

Llegados a este punto, se ha de disponer de los siguientes elementos:

  • 1 CD o DVD con la distribución a instalar.
  • 1 Linux add-on CD.
  • 1 dispositivo de arranque (pendrive) con el cargador de arranque.
  • 1 CD con la ISO del SDK.
  • 1 PlayStation 3 con una versión del firmware igual o superior a la 1.6 y una conexión cableada a Internet.

Instalación

En este momento, es importante resaltar que es necesario formatear el disco duro de PlayStation 3, por lo que se recomienda hacer una copia de seguridad. Sin embargo, los ajustes personales no se perderán.

Para formatear al sistema hay que acceder al menú de PlayStation 3 Ajustes -> Ajustes del sistema -> Herramienta de formateo -> Formatear disco duro. La herramienta de particionado ofrece distintas opciones. En mi caso, me dio la opción de hacer dos particiones: una de 10 GB y otra de 50 GB. Yo elegí asignar 10 GB al sistema operativo a instalar y 50 GB al sistema operativo de PlayStation 3 (GameOS).

Para instalar el gestor de arranque, es necesario conectar el pendrive y acceder al menú Ajustes -> Ajustes del sistema -> Instalar otro sistema operativo. El propio sistema localizará el archivo otheros.bld.

Una vez seguidas estas indicaciones, el siguiente paso es cambiar el sistema operativo por defecto y reiniciar. Para ello, se ha de acceder al menú Ajustes -> Ajustes del sistema -> Sistema predeterminado, y elegir la opción Otro sistema operativo. En este punto, el proceso de instalación diverge en función del sistema operativo elegido. En caso de instalar Fedora Core 6, y después de la aparición de la orden kboot, el comando a introducir es install-fc sda. Posteriormente, el sistema pide el DVD de instalación y, eventualmente, el Linux add-on CD para la instalación del sistema operativo. Una vez instalado el sistema operativo, el comando boot-game-os permite arrancar PlayStation 3 con el sistema operativo de los juegos.

En caso de utilizar una televisión con certificación HD Ready o FullHD se puede llevar a cabo el proceso de instalación a través de la televisión sin dañarnos la vista. Sin embargo, si se utiliza una televisión con definición estándar, resulta muy aconsejable continuar con el proceso de instalación de manera remota a través de ssh (en caso de seguir el proceso desde la TV, reducir el contraste puede ayudar).

La instalación es una instalación tradicional, aunque algo diferente en lo relativo al ajuste del modo de vídeo. En el caso de Fedora Core 6, el comando ps3videomode permite ajustar la resolución y el escaneado de la salida de vídeo para un ajuste óptimo en la televisión (o monitor).

Instalación del SDK 2.1

En este paso se asume la instalación de todas aquellas herramientas necesarias para la instalación/construcción de las bibliotecas de desarrollo del SDK 2.1. En caso de instalar Fedora Core 6, se puede utilizar la herramienta yum para la instalación de todas estas herramientas [PS3_FedoraCore6]. El proceso es sencillo:

# cd path_to_iso_sdk_directory
# mkdir -p /mnt/cellsdk
# mount -o loop SDK21.iso /mnt/cellsdk
# cd /mnt/cellsdk/software

La instalación del SDK se puede efectuar con o sin simulador:

# ./cellsdk install [--nosim]

Este proceso implica la descarga de ciertos archivos. En caso de que haya algún problema en esta descarga, la solución consiste en volver a ejecutar este último comando.

Las bibliotecas de desarrollo no vienen como archivos ejecutables, por lo que es necesario generarlos a partir del compilador xlc o del compilador gcc (opción por defecto):

# cd /opt/ibm/cell-sdk/prototype
# ./cellsdk build --gcc

Este proceso involucra algo de tiempo. Una vez finalizado se desmontará la imagen:

# umount /mnt/cellsdk

¿Y ahora...?

En caso de adentrarse en el desarrollo de aplicaciones para el procesador Cell, es posible sentirse abrumado por la cantidad de documentación e información existente, además del cambio que supone el tratar con una arquitectura tan distinta con la que la mayoría no solemos trabajar. Una buena referencia es el portal PS3coderz, en el cual se indexa la documentación asociada al Cell en varias secciones.

Conclusiones

Si has llegado a este punto, tienes en tu poder un sistema GNU/Linux+Cell SDK 2.1. El siguiente paso y el más importante, en caso de que te pique el gusanillo, consiste en que te familiarices con la arquitectura Cell y con sus herramientas y bibliotecas de desarrollo.

Referencias

[Blachford_Cell_v2]
Análisis y explicación de la arquitectura Cell.
http://www.blachford.info/computer/Cell/Cell0_v2.html

[Cell_Developer's_Corner]
Rincón de desarrollo para el Cell.
http://www.power.org/resources/devcorner/cellcorner

[PS3_Coderz]
Portal de desarrollo para el procesador Cell.
http://www.ps3coderz.com/

[PS3_FedoraCore6]
Guía de instalación detallada de Fedora Core 6 en PlayStation 3.
http://www.ps3coderz.com/index.php?option=com_content&task=view&id=73&It...

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de int-0

Genial!

Gracias por la receta... ya casi tengo todos los ingredientes para llevarla a cabo... sólo me falta una PS3 Sticking out tongue
------------------------------------------
For Happy Lusers! Try this as root!
dd if=/dev/zero of=/dev/hda bs=1G count=10
------------------------------------------

------------------------------------------------------------
$ python -c "print 'VG9udG8gZWwgcXVlIGxvIGxlYSA6KQ==\n'.decode('base64')"
------------------------------------------------------------

Imagen de brue

yo iba ...

.. a decir exactamente lo mismo.

--
·brue

brue