Desenvolvimento de Linux no PlayStation 3, Parte 1: Mais que um Brinquedo

O Sony PlayStation 3 (PS3) executa Linux®, mas fazê-lo executar bem requer algum ajuste. Neste artigo, o primeiro em uma série de , Peter Seebach apresenta os recursos e benefícios do PS3 Linux e explica alguns dos problemas que podem se beneficiar a partir de um pouco de ajuste.

Peter Seebach, Author, Freelance

Peter SeebachPeter Seebach coleciona dispositivos pequenos que executam em Linux. Ele está cansado de ouvir piadas sobre criar um cluster Beowulf a partir deles.



18/Mar/2008

Quando a Sony anunciou pela primeira vez que a PlayStation 3 poderia executar Linux originalmente, seguiu-se muita agitação. Inicialmente, era um certo desafio obter Linux instalado originalmente. O instalador suportado executava um script customizado que alterava manualmente um DVD de instalação do Fedora Core 5 ou 6 em um sistema executável com um kernel do PS3 especial. As pessoas colocavam horas e horas de esforço para conseguir que outros sistemas, como Ubuntu, funcionassem. O Yellow Dog Linux da Terrasoft, com um instalador gráfico que era executado no PS3, era o rei do pedaço.

O tempo passou e muita coisa mudou. O Fedora 7 é instalado na instalação padrão do PS3, com as peças mais desafiantes sendo a seleção do driver de armazenamento do PS3, de forma que ele possa localizar o DVD de instalação e lembrar de especificar um modo de vídeo na linha de comando de instalação inicial de forma que seja possível ver o instalador.

Portanto, é possível executar Linux no PS3. É fácil. O problema é que ele não é necessariamente executado bem. Se você selecionou o PS3 como um sistema de desenvolvimento do Cell barato, é um pouco frustrante descobrir que, tendo seguido o procedimento de instalação padrão, possui um sistema que é fornecido com uma centena de megas ou mais de troca em uso no momento em que obtém um prompt de shell.

Sobre essa Série

Essa série de três artigos examina o PS3 Linux como um ambiente de desenvolvimento esperado.

Esse primeiro artigo, Parte 1, apresenta os botões giratórios de configuração básica e widgets específicos para o PS3; mostra como utilizá-los efetivamente e sugere o tipo de artifício que pode melhorar o desempenho ou uma exibição mais utilizável.

Parte 2 e Parte 3 então aprofundam-se em um alguns dos problemas de desempenho e de ajuste que, enquanto podem se aplicar a qualquer sistema, são especialmente úteis para transformar seu PS3 de uma demo de prova de conceito em um sistema de trabalho.

Introdução

Obtenha o Fedora 7. (O Fedora 8 provavelmente funciona também, mas eu tinha o Fedora 7 ao meu alcance quando comecei a digitar.) Obviamente, é possível obter melhores resultados de algum modo a partir de uma das distribuições mais sintonizadas de forma natural ou uma das distribuições construídas por perto que são pequenas e eficientes, mas o Fedora 7 tem uma enorme vantagem: ele é suportado pelo SDK de Cell/B.E. (Assim é o RHEL 5.1, mas o Fedora 7 é melhor.)

Eu sou um grande fã de utilizar o Bittorrent para downloads, porque ele ajuda a propagar o carregamento. Isso significa que deve-se deixar seu cliente em execução até ter transferido por upload pelo menos o que transferiu por download; o software livre consiste em cooperação e cooperar com custos de largura da banda é um grande ponto de partida. Levará um tempo para transferir por download a imagem do DVD inteira (consulte Recursos); portanto, enquanto estiver aguardando, aqui está algum plano de fundo sobre o PS3 Linux.

O PlayStation 2 executava Linux também, mas era um pouco difícil. A Sony liberou um kit especial para isso, o que foi executado apenas nos PS2s mais antigos e pesados e foi necessária uma unidade de disco rígido opcional. Não havia nenhum suporte para as últimas unidades (mais comum) "enxutas" de PS2 e o kit rapidamente desapareceu. Mas, fundamentalmente, ele desapareceu porque era na maior parte uma prova de conceito; o sistema não tinha tanta memória e sem ferramentas de compilador especiais, a CPU era apenas um núcleo de MIPS bastante padrão. As unidades de vetor não eram amplamente suportadas ou documentadas fora das ferramentas de proprietário.

Em contrapartida, o PS3 teve suporte para executar Linux desde antes de ser liberado e a Sony disponibilizou amplamente o código e os pacotes de suporte. O CD de "Complementos do Cell" liberado aproximadamente na ativação do sistema incluiu suporte direto para o Fedora 5 e 6, mas também forneceu todos os arquivos necessários para outras distribuições a fim de desenvolver portas do PS3. Como resultado, o Fedora 7 simplesmente funciona no PS3 sem a necessidade de um CD separado, embora ainda seja necessário utilizar os downloads da Sony para instalar o carregador de boot. O CD de software de complemento (consulte Recursos) continua a obter atualizações com as novas versões do kernel.

Entendendo o Hypervisor

As especificações de base do PS3 são 256 MB de memória principal, um processador Cell/B.E., com fio ethernet (e 802,11 b/g wireless, em alguns modelos), uma unidade gráfica chamada RSX (com 256 MB de sua própria memória) e uma unidade de disco SATA. Existem também algumas conexões periféricas disponíveis, incluindo portas USB, um leitor de placa em alguns modelos e Bluetooth. No entanto, essa não é a máquina na qual o PS3 Linux é executado.

Onde Está o Outro SPE?

O Cell Broadband Engine possui 8 SPEs. O PS3 Linux possui 6. Um é reservado pelo hypervisor. Onde está o outro?

A resposta é que o PS3 é fornecido com um SPE desativado. Isso permite o uso de chips onde um único SPE estava com defeito, melhorando rendimentos de chip e reduzindo custos. Portanto, embora o design teórico do Cell/B.E. tenha 8 núcleos de SPE, existem apenas 7 disponíveis no hardware do PS3. Um deles executa apenas tarefas de segurança designadas a ele pelo hypervisor, deixando 6 disponíveis para Linux ou para jogos.

No PS3, o Linux é executado sob um hypervisor—em essência, o PS3 Linux está sendo executado em uma máquina virtualizada, semelhante a uma máquina virtualizada Xen. O hypervisor fornece acesso controlado e filtrado ao hardware do PS3. Por exemplo, o código Linux não possui nenhum acesso direto ao processador gráfico RSX. Antes, um dispositivo especial é fornecido que permite acesso limitado a ele, possibilitando um buffer de quadro de 2D razoavelmente eficiente.

O hypervisor fornece uma série de traduções. Por exemplo, conforme mencionado, o hypervisor fornece ao Linux um dispositivo de buffer de quadro virtual, o qual o hypervisor então implementa utilizando o núcleo de gráfico RSX. De forma semelhante, o Linux não possui nenhum acesso à unidade de disco rígido SATA. Em vez disso, ele tem acesso a uma unidade SCSI, a qual mapeia somente a região da unidade interna que foi alocada para a partição "Other OS". É simplesmente fisicamente impossível acessar a parte do disco que está sendo utilizada pelo software de jogo PS3.

O hardware de rede é talvez o mais interessante. O PS3 Linux pode acessar a ethernet com fio de gigabit ou 802,11g wireless, mas não ambas ao mesmo tempo. Quando você configura a interface de rede, se especificá-la como uma interface wireless com um SSID. O hypervisor utiliza a wireless; caso contrário, ele utiliza a interface com fio.

Entendendo os Modos de Vídeo Eletroeletrônico do Consumidor

Se você estiver lendo isso com um plano de fundo do hardware do PC, os modos de vídeo irão parecer estranhos. Ao invés de descrevê-los em termos de resolução total ("1024x768") ou nomes crípticos especificados ("XGA", "SXGA" e assim por diante), a maioria dos modos de vídeo utilizados é descrita exclusivamente em termos de linhas verticais de resolução. Nos EUA, utilizando o padrão NTSC, a resolução usual de uma Standard-definition Television (SDTV) é de 480 linhas de resolução—mas espere!

Atualmente, não existe largura da banda suficiente no sinal para desenhar 480 linhas por quadro; assim, de fato, obtem-se dois quadros alternados de 240 linhas, que são então exibidos simultaneamente, entrelaçados com linhas ímpares vindo de um quadro e linhas pares de outro. Isso é chamado de "480i," com o i indicando uma resolução entrelaçada. (Alguns sistemas não executam 480i, executando como alternativa apenas o total de 240 linhas.)

Muitos reprodutores de DVD bem como alguns consoles de jogo (como Xbox, alguns GameCubes e PS2 de última geração), também suportam uma opção adicional, disponível apenas ao utilizar cabos de vídeo de componente, chamada "480p." O "p" significa progressivo e indica que o quadro inteiro de 480 linhas é todo desenhado ao mesmo tempo. Alguns fornecedores de TV se referem ao suporte a 480p como Enhanced Definition TV (EDTV), em contraste com High Definition TV (HDTV).

As resoluções mais altas são 720p (720 linhas, varredura progressiva), 1080i (1080 linhas entrelaçadas, que são dois campos alternados de 540) e 1080p (1080 linhas, varredura progressiva). A competição entre esses e desenvolvedores de hardware cientes do orçamento significa que alguns dispositivos suportam apenas alguns desses.

Nenhuma dessas resoluções inerentemente especificam uma resolução horizontal, mas no PS3 geralmente é possível assumir com segurança que a saída será escalada para um vídeo 16x9 por padrão.

Finalmente, todas essas resoluções incluem overscan—em uma televisão padrão, a imagem é normalmente exibida um pouco além das bordas do vídeo, para assegurar que não existam barras pretas ao redor da imagem, o que muitos usuários acham perturbador. Assim, a manipulação do Linux padrão é utilizar apenas parte do vídeo, em vez da resolução teórica integral. Para cada um desses modos de vídeo, existe um modo de vídeo "tela inteira" correspondente que realmente utiliza todo o espaço. A Terra Soft possui uma excelente página sobre modos de vídeo (consulte Recursos).

Portanto, vamos discutir as especificações aditadas. O PS3 Linux é executado em uma máquina virtual que possui um processador Cell/B.E. com 6 SPEs, cerca de 212 MB de memória principal, uma única interface de rede, um disco SCSI (mais diversos outros discos SCSI se você tiver um leitor de placa), um dispositivo SCSI que pode ser um DVD-ROM, CD-ROM ou possivelmente um leitor Blu-ray e portas USB e Bluetooth funcionais. Gráficos são fornecidos por um dispositivo de buffer de quadro especial, que suporta uma ampla matriz de modos de vídeo (consulte Entendendo os Modos de Vídeo Eletroeletrônico do Consumidor).

Planeje seu Ambiente de Desenvolvimento

Para fazer bom uso de um PS3 para desenvolvimento, primeiro decida o que é preciso como resultado do ambiente de desenvolvimento. Se você estiver confortável abandonando o X inteiramente, isso economizará uma imensa quantidade de memória (o padrão Fedora de executar Gnome não é, talvez, uma das estratégias mais conservadoras de memória). Grande parte dos utilitários de configuração são mais acessíveis através do X, mas podem levar um longo tempo de execução. Eu executei o atualizador de pacotes gráficos sob Gnome e ele levou várias horas. Isso provavelmente ocorre porque o processo tinha uma área de cobertura de memória total de 375 MB, substancialmente mais que a memória física disponível. Ele gastou a maior parte do seu tempo aguardando o disco de troca, trabalhando como o Emacs em um VAX.

A lição aqui é que a memória disponível será nossa maior fraqueza no PS3. Desligue os serviços dos quais não precisa o mais depressa possível. Execute xterm ao invés do gnome-terminal. Se forem necessárias múltiplas janelas, considere executar screen ao invés de múltiplos xterms.

Opções de Exibição

Se você for executar descentralizado, não se preocupe demais com isso. Mas se você deseja executar com um vídeo no qual irá olhar, precisa considerar as opções de exibição. A melhor qualidade se origina da saída HDMI do PS3. Se você tiver um monitor de computador, cabos HDMI a DVI podem ser bem baratos, mas assegure-se de que o seu monitor suporta High-bandwidth Digital Content Protection (HDCP). Caso não suporte, aparecerá uma tela preta ou possivelmente estática em cor chamativa. Se você estiver utilizando um comutador KVM, observe que o comutador também, não apenas o vídeo, deve suportar HDCP! Infelizmente, parece não haver nenhuma maneira de desligar esse "recurso"; simplesmente não é possível obter um sinal não criptografado. Embora isso tenha algum sentido econômico para um dispositivo que reproduz filmes de alta definição, pode ser um pouco frustrante precisar de permissão especial para visualizar seu desktop do X. HDMI/DVI suporta muito bem cada modo de vídeo que o PS3 tem a oferecer, ambos os modos eletroeletrônicos do consumidor, como 720p e os modos do PC, como WXGA.

Se não for possível executar HDCP ou não possui um monitor apto para DVI, sua melhor opção é o vídeo componente. O vídeo componente, mais aceito pelas TVs, mas também por alguns monitores de computador, é muito semelhante ao antigo VGA simples, apenas sai como três conectores RCA, um vermelho, um verde e um azul. O cabo do vídeo componente é um complemento de preço adicional—mas é o mesmo que o cabo do vídeo componente para o PS2, se você tiver um daqueles. O vídeo componente pode suportar, com segurança, vídeos de 720p e 1080i, mas não pode funcionar para 1080p (consulte Entendendo os Modos de Vídeo Eletroeletrônico do Consumidor se você não tiver certeza do que é isso). O vídeo componente oferece a resolução mais alta e melhor claridade que as próximas duas opções.

Se não for possível executar o componente, é possível ter um dispositivo que suporta S-video. S-video suporta 480i, mas divide o sinal em dois canais separados, luminosidade e chroma (isso é "brilho" e "cor"), fornecendo melhor nitidez do que sua opção final, vídeo composto. O vídeo composto é a antiga tomada RCA simples, geralmente de cor amarela, que é compatível com quase tudo. Se for possível evitar o composto, faça isso.

Observe que o instalador Fedora 7 é basicamente inutilizável com qualquer coisa sob 720p, a não ser que você o force no modo de texto. Realmente, se você planeja utilizar o PS3 como um sistema de desenvolvimento, torna-se necessário favorecer modos de resolução mais altos. Sistemas Linux desenvolveram uma afinidade para vídeos maiores e o ambiente de janela do Fedora é simplesmente horrível em um vídeo de baixa resolução. Além disso, os vídeos de resolução mais baixa, especialmente sobre cabos compostos, são muito difíceis de ler, com desfoque horrível.

Meu sistema foi configurado para WXGA (1280x768) sobre DVI e esse é bem aproveitável. São propriedades de desktop suficientes para duas janelas sem sobreposição.


Instalar Fedora

A esta altura o seu DVD do Fedora deve ter sido transferido por download; portanto, a próxima etapa é instalá-lo. Siga as instruções usuais do PS3 para ter seu disco particionado (você perde todos os seus dados se fizer isso, portanto, faça backups!) e o loader de boot Other OS carregado. Quando chegar a hora de introduzir o DVD do Fedora e efetuar boot a partir dele, digite linux64 text ou linux64 video=720p no prompt kboot . 720p é o tamanho mínimo do vídeo de instalação utilizável; se você não tiver o componente ou a saída de DVI funcionando, utilize texto. Inicializar com as opções padrão resultou no instalador aparentemente congelado com um logotipo Fedora na tela; de fato, a janela do instalador era maior que a área de exibição padrão, deixando-me sem nenhuma opção a não ser desligar a máquina e tentar novamente.

Após isso, vá em frente e obtenha todas as atualizações atuais a partir dos servidores de atualização do Fedora e as instale. Isso levará um bom tempo, assim como a instalação inicial levará. Em ambos os casos, logo que ele é iniciado, vá fazer alguma outra coisa por umas duas horas.


Próximo: Instalando Complementos do PS3

Parte 2 dessa série discute a obtenção dos complementos do PS3 mais recentes instalados e atualizados em seu sistema e algumas das alterações na configuração que é possível fazer para reduzir a área de cobertura da memória básica até você ter um pouco de espaço para respirar.

Recursos

Aprender

Obter produtos e tecnologias

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Linux, Software livre
ArticleID=382609
ArticleTitle=Desenvolvimento de Linux no PlayStation 3, Parte 1: Mais que um Brinquedo
publish-date=03182008