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.395 ]

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

A poderosa nuvem: Intel® DevCloud com GPU Iris Xe Max!

OneAPI: A plataforma da Intel para facilitar o desenvolvimento com chips Intel, AMD, ARM, NVIDIA POWER e FPGA

IPCMSG: Comunicação inter-processos sem magia negra

Hbasic, um forte candidato open source para brigar com o Microsoft Visual Basic

CUDA: Programe a sua NVIDIA

Leitura recomendada

Rodando jogos a partir de uma imagem ISO

Instalando o DOOM III no Linux

Jogos para Linux (parte 3)

Xadrez no Linux - Os melhores programas para jogar e estudar

Battle for Wesnoth

  
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