Iniciar Conteúdo Principal
  
Ginga-NCL

Procurar · Indice

How to - Set-top Box Virtual Ginga-NCL

Este guia se destina a detalhar alguns casos de uso, configurações ­e solução de problemas acerca da máquina virtual ubuntu-server10.10-ginga-i386, também conhecida como Set-top Box Virtual Ginga-NCL.

Os procedimentos descritos a seguir são recomendados a diferentes tipos de usuários do STB Virtual. Assim, este guia se divide em quatro seções, da seguinte forma:

  1. Considerações iniciais
    1.1. Detalhando o Set-top Box Virtual Ginga-NCL
    1.2. Requisitos para o funcionamento do Set-top Box Virtual Ginga-NCL
     
  2. Dicas para usuários iniciantes
    2.1. Ligando seu Set-top Box Virtual
    2.2. Executando um exemplo já presente no disco do Set-top Box Virtual
    2.3. Colocando suas próprias aplicações NCL no disco do Set-top Box Virtual
    2.4. Resolvendo problemas: Como encerrar explicitamente uma aplicação que não termina
    2.5. Reiniciando ou desligando corretamente seu Set-top Box Virtual  

1. Considerações iniciais

 
1.1. Detalhando o Set-top Box Virtual Ginga-NCL

O Set-top Box Virtual Ginga-NCL é uma máquina virtual construída para facilitar o processo de distribuição e implantação do Ginga-NCL versão C++, a versão do player NCL que conta com os mais avançados recursos de apresentação de aplicações declarativas, melhor desempenho e maior proximidade de uma implementação embarcada em set-top boxes reais.

Analisando os reportes dos membros da comunidade Ginga, nota-se a dificuldade enfrentada por usuários não-avançados para colocar essa versão do Ginga-NCL em funcionamento em seus computadores. Mas, ao mesmo tempo, vê-se que a demanda pelo uso da versão C++ vem crescendo, provavelmente motivada pela maior fidelidade de apresentação dos documentos NCL, se comparada à versão escrita em Java do Ginga-NCL.

Uma máquina virtual é a implementação em software de um computador que executa programas tal qual uma máquina real. Ela pode ser vista como uma duplicata isolada de uma máquina real. Cabe ao software de virtualização multiplexar o hardware real gerenciado por um sistema operacional hospedeiro (host) entre diversas instâncias virtuais desse hardware, gerenciadas por sistemas operacionais convidados (guests). Os sistemas operacionais convidados não precisam ser o mesmo que o hospedeiro, e nem precisam ser os mesmos entre si. Isso quer dizer que em um sistema hospedeiro pode-se ter diferentes sistemas operacionais (e suas aplicações) executando ao mesmo tempo, concorrentemente, disputando o compartilhamento do hardware real.

Criar uma máquina virtual envolve a seleção de quais dispositivos de hardware estarão disponíveis para o sistema operacional convidado, qual a quantidade de memória, e outras configurações. Tal seleção é guiada por uma avaliação  dos objetivos finais da máquina virtual. Uma vez configurada, a máquina virtual deve receber a instalação de um sistema operacional convidado, dos pacotes de sua distribuição e de softwares de terceiros.

Assim, a virtualização se torna um atrativo veículo para distribuição de software, principalmente daqueles que possuem alta complexidade de compilação, instalação ou personalização junto ao hardware e serviços. E essas mesmas  características são encontradas no Ginga-NCL.

A máquina virtual ubuntu-server10.10-ginga-i386 foi criada e configurada pela equipe do Laboratório TeleMídia da PUC-Rio utilizando o software VMWare Workstation 7 (trial)

O sistema operacional instalado é Linux, distribuição Ubuntu Server 10.10. A instalação foi otimizada para incluir apenas os pacotes de software essenciais para o desenvolvimento do Middleware Ginga e para a execução do Ginga-NCL versão C++ (Implementação de Referência). Dessa forma, foram excluídos programas populares como todo ambiente gráfico X/GNOME/KDE, e suas ferramentas. O objetivo é  gerar um ambiente muito próximo a um set-top box de desenvolvimento real. A maior diferença é que nosso set-top box virtual é capaz de recompilar os programas que executa e possui a mesma plataforma de hardware de um PC. E, infelizmente, não vem com controle remoto...

Os principais pacotes de software instalados são:

  • gingancl-cpp 0.12.1
  • lua 5.1 / luasocket 2.0.2
  • kernel 2.6.35
  • GNU toolchain (gcc 4.4.4, glibc 2.12-1)
  • directfb 1.4.11 (extra 1.2.0 & examples 1.2.0)
  • fusionsound 1.1.1
  • xine-lib 1.1.17

Com tudo isso, a máquina virtual apresenta como principais vantagens:

  • Instalação descomplicada, pois tudo está pronto, não há configurações de kernel ou boot a serem feitas
  • Portabilidade entre diferentes sistemas operacionais
  • Ótimo ambiente de testes de aplicações NCL / NCLua.
  • Ambiente completo para os desenvolvedores do próprio middleware
  • Novo! Escolha da resolução de tela mais adequada aos testes e à estação hospedeira, entre 6 alternativas pré-configuradas. Requer VMware Player maior que 3.1.

    
1.2. Requisitos para o funcionamento do Set-top Box Virtual Ginga-NCL

Requisitos de Hardware:

  • Arquitetura Intel. 
  • Pentium 4 3.0GHz ou melhor. HyperThreading recomendado. Duplo núcleo ideal.
  • Memória RAM de 1 Gb ou maior. 2 Gb recomendado.
  • Placa Aceleradora de Vídeo com 64Mb ou maior. Chipsets nVidia e ATI recomendados.
  • Disco rígido com 5Gb livres.
  • Placa de som

Requisitos de Software:

Os requisitos de hardware podem ser relaxados se o usuário se limitar a aplicações NCL mais simples, que incluem mídias de baixa resolução e que evitam a renderização em paralelo de diversos vídeos e áudios.

Obs.: Novo! O Virtual STB oferece agora a opção de escolha da resolução de tela entre 6 alternativas pré-configuradas. A escolha da resolução é feita no momento do boot da máquina virtual e deve ser decidida em compromisso com a capacidade de processamento da CPU da estação hospedeira. 

A distribuição de uma máquina virtual baeada no VMWare é feita, normalmente, por meio de arquivos .zip que incluem o arquivo de configuração da máquina virtual e as inagens dos discos virtuais criados. Por isso, seu sistema precisa de uma ferramenta para descompactação de arquivos .zip. (unzip, Winzip, WinRAR,...)

Finalmente, o último requisito é, obviamente:

  • obter a máquina virtual em si. Se você ainda não possui o Set-top Box Virtual Ginga-NCL, baixe-o agora, clicando aqui

 
2. Dicas para usuários iniciantes

Esta seção se dedica a descrever como usuários iniciantes devem proceder para realizar tarefas comuns no STB Virtual. A descrição introduz esses usuários ao uso de consoles e transferencia de arquivos remotos.

 
2.1. Ligando seu Set-top Box Virtual

Após o download da máquina virtual ubuntu-server10.10-ginga-i386.zip, descompacte o arquivo em um diretório de seu disco rígido. Abra o VMWare Player, clique em "open" e selecione o arquivo ubuntu-server10.10-ginga-i386.vmx no diretório onde você descompactou sua máquina virtual. Veja a figura abaixo.

Atualização Pendente

Ao abrir a máquina virtual, um processo de boot é iniciado. Escolha a opção com a resolução de tela mais adequada aos seus testes e seu ambiente de hardware. Assim, o kernel e toda a configuração gráfica do set-top box serão carregados. A seleção default é alterada para a última escolhida pelo usuário.

Atualização Pendente

Aguarde alguns segundos... Até que a interface gráfica tenha o seguinte aspecto:

Atualização Pendente

Pronto. Seu set-top box está ligado e pronto para ser usado. A tela acima traz informações importantes a serem observadas, principalmente:

  • Qual é o mapeamento usado pelo Ginga-NCL para as teclas do controle remoto sobre o teclado do PC;
  • Qual é o endereço IP automaticamente associado ao set-top box virtual (no canto inferior esquerdo).

 
2.2. Executando um exemplo já presente no disco do Set-top Box Virtual

Dica acidental: se o ponteiro do mouse sumiu, isso quer dizer que a máquina virtual está com o foco, e receberá toda a entrada de dados pelo teclado. Para você tirar o foco da máquina virtual pressione as teclas <Ctrl>+<Alt>.

Todo o acionamento de comandos do set-top box virtual deve ser feito por meio de uma aplicação de console remoto. Somente as ações de interatividade serão feitas diretamente através da janela da máquina virtual. Isso reproduz fielmente um ambiente real de desenvolvimento de aplicações Ginga-NCL, no qual o set-top box deve ser controlado remotamente.

Aplicações de console remoto permitem que o usuário dispare um login em uma máquina remota e daí por diante controlá-la por meio de um ambiente textual de entrada de linhas de comando. O Set-top Box Virtual está preparado para receber conexões de console remoto por meio do protocolo seguro SSH (Secure Shell). Várias ferramentas gratuitas oferecem soluções SSH para a comunidade. Em sistemas operacionais Linux, a ferramenta SSH mais popular é oferecida pelos pacotes OpneSSH. Em sistemas Windows, as ferramentas mais populares são WinSCP e SSH Secure Shell Client. Pela facilidade de uso, este tutorial adota o SSH Secure Shell Client (licença não-comercial). Faça já o download e a instalação.

Execute a ferramenta SSH Secure Shell Client, e selecione o botão "Quick Connect". Será solicitada a entrada do endereço da máquina a ser conectada, nome do usuário para login, número da porta TCP e método de autenticação. Preencha os campos da seguinte forma:

  • Host Name: x.x.x.x (sim, coloque aqui o endereço IP impresso na interface gráfica do Set-top Box Virtual)
  • User Name: root
  • Port Number: 22 (é a porta default)
  • Authentication Method: <Profile Settings> (deixe também a configuração default)

Após clicar em "Connect", aguarde alguns segundos até que uma pequena janela se abra para a entrada da senha. Preencha da seguinte forma:

  • Password: telemidia

Agora você possui um console remoto pronto para a entrada de comandos. Um rápido tutorial em português sobre comandos Linux pode ser encontrado aqui.

Dica acidental: Tome cuidado, você está operando como root, o administrador de sistemas Unix, e toda modificação no sistema de arquivos será aceita. Aproveite mais uma vantagem do uso de máquinas virtuais, que é a facilidade para backup. Mantenha sempre uma cópia da máquina virtual (todo o diretório onde você a armazenou) atualizada e em local seguro.

O Set-top Box Virtual é distribuído com uma aplicação NCL de exemplo. Ela está localizada no diretório /misc/ncl30. Aliás, esse é o diretório onde você armazenará suas próprias aplicações NCL. Para executar a aplicação NCL sample03, digite o seguinte comando:

[root@gingavm ~]# /misc/launcher.sh /misc/ncl30/sample03/sample03.ncl

O script launcher.sh dispara o Ginga-NCL. Ele é necessário para manter a interface gráfica em um estado consistente entre as execuções do Ginga-NCL. O resultado do comando acima é a apresentação do documento, conforme a figura abaixo. Para interagir com a aplicação, você deve deixar a janela do console e clicar sobre a janela da máquina virtual. A partir de agora, toda a entrada pelo teclado é direcionada ao Ginga-NCL. Quando a aplicação NCL terminar, você pode tirar o foco da máquina virtual pressionando a combinação de teclas <Ctrl>+<Alt>, assim o ponteiro do mouse será liberado para o sistema operacional hospedeiro.

 
2.3. Colocando suas próprias aplicações NCL no disco do Set-top Box Virtual

Para levar suas próprias aplicações para o disco do seu Set-top Box Virtual, você deve usar uma aplicação de transferência remota de arquivos. O mesmo servidor SSH presente em seu Set-top Box Virtual é capaz de receber arquivos baseando-se no protocolo SFTP. E a mesma aplicação SSH Secure Shell também é capaz de atuar como cliente SFTP.

Uma vez já conectado com o set-top box pelo SSH Secure Shell, você pode solicitar a abertura de uma janela SFTP sobre a mesma conexão. Para isso, clique no botão "New File Transfer Window" do SSH Secure Shell.

Assim, uma janela de transferência de arquivos similar a janelas do Windows Explorer se abrirá. Veja a figura logo abaixo. O lado esquerdo da janela é a visualização dos arquivos em seu computador real. Navegue entre as pastas de seu computador para encontrar a pasta de sua aplicação NCL. O lado direito da janela é a visualização dos arquivos presentes no disco do Set-top Box Virtual. Preferencialmente, armazene suas aplicações abaixo do diretório /misc/ncl30. Navegue entre os diretórios até encontrá-lo. Daí, basta arrastar a pasta de sua aplicação NCL visualizada no lado esquerdo para dentro do diretório /misc/ncl30 visulizado no lado direito.

Na figura acima, a aplicação "matrix" será copiada para o diretório /misc/ncl30. Depois de copiada, a janela SFTP pode ser fechada. Volte para a janela do SSH, para que então seja disparada a apresentação de sua nova aplicação, utilizando comando análogo ao apresentado no item 2.2:

[root@gingavm ~]# /misc/launcher.sh /misc/ncl30/matrix/matrix30.ncl

 
2.4. Resolvendo problemas: Como encerrar explicitamente uma aplicação que não termina

Se sua nova aplicação não tem o comportamento esperado e não se encerra como projetado, você pode tentar encerrá-la explicitamente.

O Ginga-NCL possui uma tecla de emergência para esses casos. Ela atua como um "abort" que encerra todos os players de mídia e, em seguida, o próprio formatador. Assim, com o foco na máquina virtual, pressione a tecla <F11> para forçar o encerramento de sua apresentação. Isso deve lhe retornar à interface gráfica padrão do Set-top Box Virtual.

Porém, isso pode não funcionar, devido ao mau comportamento de um player ou mesmo do documento NCL com erros. Para esses casos, você pode fazer uso de alguns comandos especiais do Linux para forçar o encerramento do Ginga-NCL. Lembre-se que o foco provavelmente estava sobre a máquina virtual, por isso você deve pressionar <Ctrl>+<Alt> para liberar o foco e então poder usar o SSH.

Você pode usar os comandos abaixo listados abrindo um novo console remoto, ou simplesmente usando o mesmo console que disparou a aplicação NCL. Só que neste caso você precisa pressionar <Ctrl>+<z> no console, assim você interrompe explicitamente o Ginga-NCL e ganha novamente o prompt de comando. Mas note que o processo ginga não é encerrado, ele entra em estado stopped.

O primeiro comando a ser tentado para encerrá-lo é:

[root@gingavm ~]# killall ginga; fg 1

O comando "fg 1" somente é necessário se você utilizou <Ctrl>+<z> para interromper o ginga.

Se agora a interface gráfica voltou à tela padrão do Set-top Box Virtual, ótimo, o ginga foi encerrado pela sinalização TERM disparada pelo killall. Mas nem sempre isso é o bastante.

Se sua interface gráfica continua "congelada", use o comando abaixo:

­[root@gingavm ~]# killall -KILL ginga; fg 1

O comando "fg 1" somente é necessário se você utilizou <Ctrl>+<z> para interromper o ginga.

Se ainda assim sua interface gráfica não retornar ao estado padrão, reinicie seu Set-top Box Vurtual. Instruções para isso encontram-se descritas logo abaixo.
­

 
2.5. Reiniciando ou desligando corretamente seu Set-top Box Virtual?

A partir de um console SSH conectado ao Set-top Box Virtual, digite um dos seguintes comandos para reiniciar seu Set-top Box:

[root@gingavm ~]# reboot; exit
ou
[root@gingavm ~]# shutdown -r now; exit

Para desligar, use apenas o seguinte comando:

[root@gingavm ~]# shutdown -h now; exit