Compile programas para o PlayStation 3 em PC de 32 bits

Neste documento veremos de forma simples e objetiva, como efetuar uma compilação cruzada gerando um programa HelloWord para o famoso console PlayStation 3. A distribuição utilizada foi o OpenSuSE 10.3 e o equipamento foi um modesto PC de 32 bits.

[ Hits: 46.435 ]

Por: Alessandro de Oliveira Faria (A.K.A. CABELO) em 26/05/2008 | Blog: http://assuntonerd.com.br


PlayStation 3 - Um brinquedo de gente grande...



Um dia terei um PlayStation 3, o CELL que quebrou os paradigmas apresentando a sua nova arquitetura. Diferente da tecnologia multi-núcleo que executam as mesmas tarefas, o CELL é composto de núcleos especializados que dividem a tarefa computacional. GPU integrado a CPU, e o acesso a memória de maneira inédita, apresentam resultados impressionantes.



Agradecimentos:

Agradeço a colaboração do Marcus Fazzi pela ajuda nos testes de execução do programa HelloWord no PlayStation 3. Para quem deseja instalar o Linux em seu PS3, sugiro consultar os procedimentos de instalação do Linux em PlayStation 3, o link Linzzi possui todos os passos para tal tarefa. Para quem desconhece, Linzzi é uma variação do Gentoo para o PlayStation 3 com Kernel 2.6.XX (com patches da Sony), KDE 3.5.5 e outros recursos mencionado na página do projeto.

Já os adoradores do openSUSE podem acessar diretamente a distribuição para o PS3 em:
Arquitetura:

Fonte: http://dcon.com.br/jd.comment/home_full.php

O processador é um dos componentes mais importantes do computador, pois o seu poder é que define a característica do equipamento como um todo. É o processador que determina o desempenho e performance do aparelho, portanto conhecer o que existe por trás de um processador é fundamental e obrigatório a todos o desenvolvedores de aplicações. Pois só conhecendo o equipamento, pode-se escrever códigos com o melhor resultado desejado.

Conforme a lei de Moore, velozes processadores de 64 bits, processadores com multi-núcleo e CPUS integradas são o que temos na vanguarda do mercado. O processador CELL BE (conhecido como o processador de 9 núcleos) chegou para fazer a diferença, pois a sua arquitetura difere-se do modelos convencionais de processadores no mercado.

    Próxima página

Páginas do artigo
   1. PlayStation 3 - Um brinquedo de gente grande...
   2. O que CELL?
   3. HelloWord.c para Playstation 3
Outros artigos deste autor

Tempest for Elisa: Transforme seu monitor em estação de rádio

Leitor de impressão digital Futronic FS80 no Linux

Detectando assalto na multidão com visão computacional

Como instalar Firefox OS junto ao Android com gerenciador de boot

KaiOS: A ressurreição do FirefoxOS e o fim da segregação digital

Leitura recomendada

Diversão e Entretenimento no Linux

Como instalar o Doom1 e 2 no Linux

Jogos PS1 no emulador ePSXe - Sem lags em placas lentas

Alien Arena, um jogo FPS para GNU/Linux

Netpanzer :: batalha de tanques multiplayer

  
Comentários
[1] Comentário enviado por Pianista em 26/05/2008 - 10:34h

Ótimo artigo! xD.. gostei..

[2] Comentário enviado por rafastv em 26/05/2008 - 11:07h

Eu também quero meu PS3!!!
Para quem não sabe a Unicamp usa os bichinhos como um cluster rodando Linux em cima http://g1.globo.com/Noticias/Tecnologia/0,,MUL146410-6174,00-UNICAMP+USA+PLAYSTATION+PARA+REALIZAR+P...
Ótimo artigo, também queria ter um amigo que tivesse o console, ser liso é osso hehehe

[3] Comentário enviado por vodooo em 26/05/2008 - 11:24h

Primeiramente, parabéns pelo artigo!

Bom, enquanto não conseguirem desbloquear o PS3, rodar o Linux nele como usuário doméstico (Desktop) será apenas para "impressionar" os amigos, pois a performance obtida rodando sobre o Hypervisor (espécie de firewall da Sony que "capa" quase todos os recursos, incluindo recursos 3D do console) é equivalente a um Celeron D320 com 256 de ram.

Afirmo isso por experiência própia, pois tenho em casa um PS3 rodando Ubuntu 7.04.

Mas... o desenpenho e "potência" dos processadores Cell é inquestionável.

Abraços

[4] Comentário enviado por tjpp em 26/05/2008 - 11:36h

O problema não é desbloquear o PS3 nem o Hypervisor. O problema é que o forte do Cell são as SPUs, os cores adicionais. O Hypervisor roda em uma das SPU e, portanto, não afeta o desempenho. O que é bloqueado para o Linux é o acesso acelerado à placa gráfica; só isto! Para baratear os custos de fabricação, uma das SPUs é desativada, deixando 6 disponíveis. Uma camada como o hypervisor é o que é usado nos processos de virtualização, como o Xen.

Para usar estes cores adicionais é necessário modificar o fonte dos programas e de maneira radical. Esta é a razão pela qual temos poucos jogos para o PS3, comparado com o Wii. O artigo do Cabelo mostra como fazer a cross-compilation para o Cell, sem tocar nos SPUs (afinal é um "hello, world"). Sem usar as SPUs explicitamente, o Cell é um PowerPC com dois cores.

[5] Comentário enviado por SMarcell em 26/05/2008 - 12:21h

E eu aqui com um Xbox 360! =(

[6] Comentário enviado por marcosmiras em 26/05/2008 - 13:46h

Sempre arregaçando nos artigos...
[]'s

[7] Comentário enviado por anunakin em 26/05/2008 - 15:15h

Valeu CABELO!
1- Só uns comentários essa HelloWorld roda numa das SPUs ... para rodar na PPU (PPC 64/32bits) o gcc normal faz o trabalho...

2- O acesso à placa RSX (8800) com aceleração 2D/3D, não é bloqueado apenas não há drivers, há muita informação sobre isso aqui: http://ps2dev.org/

3- Há um projeto de fazer uma placa virtual rodando em uma das SPUs....

[8] Comentário enviado por asdf2 em 26/05/2008 - 16:25h

Nota 10, mano.

[9] Comentário enviado por tjpp em 26/05/2008 - 16:37h

anunakin,

no site que você postou tem o artigo sobre o bloqueio a RSX, que impede que o pessoal consiga desenvolver o driver 3D: tem http://ps2dev.org/News/Is_Sony_blocking_3D_access%3F

Quem não fez a atualização de firmware, ainda tem acesso.

[10] Comentário enviado por cesar em 26/05/2008 - 17:13h

Show,


Abraço.

[11] Comentário enviado por izavos em 26/05/2008 - 18:31h

Cabelo:

Com base no seu artigo que é de excelente nível técnico, verifiquei que sites publicaram que a Toshiba tem um prototipo de notebook com processador “ Intel Core 2 Duo” + “Cell de 1.5 GHz de 4 elementos” definido versão reduzida!

Esse realizou a seguinte demostração, o notebook converteu um filme de uma hora com resolução de 640×480 pixels em uma versão em alta-definição, a 1920×1080 pixels, aplicando alguns filtros para melhoria da imagem durante o processo. A operação, que levaria mais de 24 horas em um notebook equipado apenas com o chip da Intel, foi realizada em apenas três horas.

Fonte “http://alexandrequevedo.wordpress.com/2008/01/21/toshiba-demonstra-notebook-equipado-com-processador-cell/ “.

Em outro site mostra a cara por assim dizer da tecnologia batizada de “SpursEngine “ que deu esse empurrão no micrinho “http://crave.cnet.com/8301-1_105-9940771-1.html“.

Pegunta que não quer calar, sera que a Apple fez bem em abandonar a IBM com os PowerPc?

Sera que o Cell pode um dia ser uma ameaça para a Nvidia, ATI, AMD ou mesmo a Intel ???

Mistério !

[12] Comentário enviado por Gabriel_Silva em 27/05/2008 - 01:14h

Bela materia aqui no Orkut Linux, haaaaaaaaa.

[13] Comentário enviado por LéoUbuntu em 27/05/2008 - 10:45h

um dia tb terei um Ps3 !

[14] Comentário enviado por anunakin em 28/05/2008 - 13:28h

TJPP,

Há mais alguns artigos no site, aonde uns hacker demostram que não houve bloquei o que houve foi que a sony mudou os ponteiros, constantes e tudo mais no hypervisor, ou seja o que não há é documentação...

Por exemplo... a maioria dos processadores mais novos da linha ARM possuem aceleração 2D/3D (o iPhone é só 2D) mas vocÊ já viu algum rodando um openGL ? mesmo com a documentação ninguém fez um driver ... e isso dá muito trabalho...

A sony parece que soltaria um driver com aceleração 2D... pro Linux na PS3...

[15] Comentário enviado por izavos em 29/05/2008 - 16:27h

Muito bom o artigo de relevância técnica para user do “VOL” !

Mesmo considerando todo o poder do “C” como ferramenta de programação, nada substitui o “Assembly“ para que realmente quer aprender sobre processadores e por fim programação.

A IBM ou Sony já libero alem de esquemas do processador, alguma relação de instruções do “Cell”.

Alguma ferramenta tipo “assemblador” para o mesmo , ou no Linux portado para o PS3.

Alguem sabe como funciona o gerenciamento de memoria do “Cell”, interrupções, apontadores, registradores, relação de subrotinas se tiver alguma.

Alguem já fez um Dump de um seguimento de memoria para ver o resultado ?

Como não poderia deixar passar essa, quero afirmar que gosto da abordagem do autor do artigo. Sem essa de auto promoção de “Sinônimo de qualquer coisa que escrevem por ai” !

[16] Comentário enviado por octopos em 10/03/2009 - 23:05h

ÓTIMO texto, como sempre muita coisa para apreender =].

Vim só ressaltar que na minha distribuição, as lib se encontravam em locais diferentes, em /usr/lib/cell :

spu-gcc -W -Wall -Winline -Wno-main -I. -I /usr/lib/cell/toolchain/lib/gcc/spu/4.1.1/include -include spu_intrinsics.h -O3 -c hello.c

spu-gcc -o hello hello.o -Wl,-N /usr/lib/cell/sysroot/usr/spu/lib/libc.a

Ainda não testei, para saber se usei as lib certas, pois assim como muitos, não tenho PS3 :P

Mas assim que testar volto e reposto.


Boa Cabelo!!

[17] Comentário enviado por XimenesWambach em 04/06/2009 - 15:44h

Mandou bem, testei em meu PS3, e tudo ok...
Estou com Yellow Dog no meu PS3 e funcionou blz

[18] Comentário enviado por PietroPC em 04/02/2010 - 21:10h

XimenesWambach:
Eu estava instalando o YDL 6.2 no PS3, mas a instalação começou ontem dia 3 por volta das 19:00 e agora ainda não acabou.
Tipo o PS3 estava lendo o DVD, dava para ouvir, mas não saia da tela a mensagem:
"Iniciando o processo de instalação. Isso pode demorar vários minutos."
Não é possivel que em 1 dia não tenha copiado todo o conteúdo do DVD.
Eu selecionei a instalação de games, o GNOME, KDE, XFCE, ferramentas de desenvolvimento e desenvolvimento WEB.
Agora eu cancelei a instalação e vo ve se começo de novo!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts