SlideShare una empresa de Scribd logo
1 de 16
UNIOESTE - Universidade Estadual do Oeste do Paraná
  Curso de Bacharelado em Ciência da Computação




            Tutorial BeagleBoard




         Cascavel, 01 de Fevereiro de 2012
Sumário

1 Começando do zero: Instalando a distribuição Linux................................................................3
   1.1 Download de uma imagem pré-configurada......................................................................3
   1.2 Instalando via Netinstall.....................................................................................................4
3 Instalando pacotes no cartão SD via qemu................................................................................7
4 Instalando a interface gráfica:...................................................................................................8
5 Atualizando o Kernel do Linux:..................................................................................................9
6 Atualizar X-loader e U-boot.....................................................................................................10
7 Instalação do DSP-bridge.........................................................................................................11
   7.1 No Linux PC:......................................................................................................................11
   7.2 Na BeagleBoard:...............................................................................................................11
8 H.264 na BeagleBoard.............................................................................................................13
   8.1 Codificação do vídeo para o perfil Baseline......................................................................13
   8.2 Execução:..........................................................................................................................15
Referências.................................................................................................................................16




                                                                                                                                            2
1 Começando do zero: Instalando a distribuição Linux

Estão catalogadas duas formas de se instalar uma distribuição Linux na
BeagleBoard:

1.1 Download de uma imagem pré-configurada

Requerido um cartão SD 1GB/2GB.

Step 1: Baixe a imagem:

      wget http://rcn-ee.net/deb/rootfs/oneiric/ubuntu-11.10-r5-minimal-armel.tar.xz

Step 2: Verificar a consistência do arquivo

      md5sum ubuntu-11.10-r5-minimal-armel.tar.xz

      Caso esteja ok, o comando resultará:

       dc38df885797c2db3a8fc8265463a43b ubuntu-11.10-r5-minimal-
armel.tar.xz

      Descompacte a imagem, em seguida entre no diretório:

      tar xJf ubuntu-11.10-r5-minimal-armel.tar.xz
      cd ubuntu-11.10-r5-minimal-armel

Step 3: Execute o script com base na localização do cartão SD ( /dev/ )

      Ex: sudo ./setup_sdcard.sh --mmc /dev/sdX --uboot beagle_cx

      Caso não saiba a localização do SD
      sudo ./setup_sdcard.sh --probe-mmc

      gerará uma lista com os dispositivos:

      Are you sure? I Don't see [/dev/idontknow], here is what I do see...
      fdisk -l:
      Disk /dev/sda: 500.1 GB, 500107862016 bytes <- x86 Root Drive
      Disk /dev/mmcblk0: 3957 MB, 3957325824 bytes <- MMC/SD card

       mount:
       /dev/sda1 on / type ext4 (rw,errors=remount-ro,commit=0) <- x86 Root
Partition

      Neste caso, /dev/mmcblk0 é o cartão SD que deve ser usado. Então, para

                                                                                       3
executar o script, use:

       sudo ./setup_sdcard.sh --mmc /dev/mmcblk0 --uboot beagle_cx

      Remova o SD da unidade, e insira na BeagleBoard. Ao reiniciar terá o
Ubuntu Maverick instalado (modo texto). User: ubuntu password: temppwd

      Para instalar a gui (graphical user interface), deve-se primeiro configurar a
rede na BeagleBoard. Será explicado mais adiante.


1.2 Instalando via Netinstall

Requerido um cartão SD 1GB/2GB.

Este método utiliza de uma conexão com a internet para baixar a imagem e
instalar no momento em que der o boot na beagleboard.

- Ubuntu 11.10 (Oneiric): No terminal Linux PC, digite:

       git clone git://github.com/RobertCNelson/netinstall.git
       cd netinstall

       Instale o script: em "board" > substituir por beagle_cx

       Obs: Esse script precisa de mkimage.

       sudo apt-get install u-boot mkimage

       Executar Script:

       sudo ./mk_mmc.sh --mmc /dev/sdX --uboot "board" --distro oneiric

       Options:


   •   --uboot: beagle_bx, beagle, panda
   •   --distro: maverick, oneiric
   •   --firmware: installs firmware
   •   --serial-mode: debian-installer       uses Serial Port
   •   --addon ulcd: (ulcd from:
               http://search.digikey.com/scripts/DkSearch/dksus.dll?
       vendor=0&keywords=ULCD7-ND)


       Insira o cartão SD na Beagle e inicie-a:
               Escolha o idioma, teclado..
       Configure a rede. Então o instalador baixará os pacotes necessários.
       User: ubuntu password: temppwd


                                                                                 4
2 Provendo Internet à BeagleBoard via usb através de
um Linux PC:
Requerido: um adaptador usb ethernet

Step 1: Configurando o PC:
      Primeiramente, certifique-se que ambos estão conectados pelo usb (pode
ser necessário rodar o comando ifconfig usb0 na BeagleBoard para que o PC
reconheça o dispositivo).

       ifconfig

       Se estiver conectado via usb com a BB, aparecerá na tela algo do tipo:

usb0     Link encap:Ethernet HWaddr 45:d1:a3:05:28:d3

        Nem sempre o dispositivo aparece como usb0. Para este exemplo, será
usado usb0, mas, nos próximos comandos, substitua pelo nome que seu linux
reconhecer (usb1, …).
Então, é necessário ativar a interface usb, setando um IP e uma máscara de rede
à interface:

       sudo ifconfig usb0 [ip address] netmask [ netmask ] up

Ex:    sudo ifconfig usb0 192.168.0.1 netmask 255.255.255.0 up

       É necessário também configurar as IPTables do Linux PC para que os
pacotes possam ser repassados à interface usb0. Assumindo que o Linux PC
esteja conectado à internet via eth0 ou wlan0, rode os seguintes comandos:

-Removendo prévias configurações:

       sudo iptables --flush
       sudo iptables --table nat --flush
       sudo iptables --delete-chain
       sudo iptables --table nat --delete-chain

- Liberando a repassagem dos pacotes entre as interfaces:

    sudo iptables --table nat --append POSTROUTING --out-interface eth0 -j
MASQUERADE
    sudo iptables --append FORWARD --in-interface usb0 -j ACCEPT
    sudo vi /etc/sysctl.conf

- Retire o “#” da linha: “#net.ipv4.ip_forward=1” para ativar a repassagem

       sudo sysctl -p       (opcional, mostra se a repassagem está ativada)

Obs: Em eth0, pode ser substituído por wlan0 (caso esteja na rede sem fio).


                                                                                5
Step 2: Configurando a BeagleBoard

      Deve-se ativar a interface usb0, da mesma forma como foi feito no Linux
PC, mas com diferentes parâmetros:

      sudo ifconfig usb0 192.168.0.69 netmask 255.255.255.0 up

Obs: Certifique-se que o ip pertença à rede do Linux PC (192.168.0.X)

        Em seguida, deve-se adicionar o endereço do gateway para a
BeagleBoard, endereço no qual todo o tráfego de rede da BeagleBoard consiga
atingir a internet. Para isso, basta adicionar o endereço do host (Linux PC) como
gateway, com o seguinte comando:

      sudo route add default gw 192.168.0.1 (IP do Linux PC)

Agora, é necessário editar o arquivo que contém os endereços DNS que a
BeagleBoard utilizará. Geralmente, basta adicionar o endereço do gateway
(roteador da rede que permite a conexão do Linux PC com a internet) que a
resolução de nomes será responsabilidade deste, mas, caso não funcionar, pode-
se adicionar outros servidores DNS, como o OpenDNS (208.67.222.222 ).

      sudo vi /etc/resolv.conf

Adicione: nameserver 208.67.222.222

ou o DNS que lhe convier.

Agora está tudo configurado! Pode-se testar a conexão com a internet com o
comando
ping www.google.com, recebendo resposta, está tudo certo.




                                                                               6
3 Instalando pacotes no cartão SD via qemu

É possível instalar pacotes diretamente no cartão SD (com o ubuntu para a
beagleboard instalado) através do shell do Linux PC.

Por exemplo, a interface gráfica pode ser instalada através do Linux PC, com o
uso do software qemu.

Step 1: Instale o pacote qemu-user-static no Linux PC

      sudo apt-get install qemu-user-static

Step 2: Insira o cartão SD no Linux PC, e monte a partição rootfs (caso não tenha
sido montada automaticamente):

      Ex: mount -o remount,dev /media/rootfs

      *Obs: Nesse caso, assumimos que o local da montagem foi: /media/rootfs.

Step 3: Copie o arquivo qemu-arm-static para o diretório /media/rootfs/usr/bin

      Ex: cp /usr/bin/qemu-arm-static /media/rootfs/usr/bin

Step 4: Use o chroot para que o shell possa emular e funcionar como o shell da
própria beagleboard, porém com os recursos do PC (CPU, memória, rede, etc).

      chroot /media/rootfs

Agora, pode-se realizar a instalação de diversos pacotes, que serão instalados no
SD da beagleboard:

      export http_proxy=http://proxy.unioeste.br:8080 (se necessário)
      apt-get update
      apt-get install gdm xubuntu-desktop




                                                                                    7
4 Instalando a interface gráfica:

Após configurar a rede, bastam dois comandos para a instalação completa da GUI.

      sudo apt-get update
      sudo apt-get install gdm xubuntu-desktop

Geralmente, é um processo demorado, são vários pacotes que são baixados.




                                                                              8
5 Atualizando o Kernel do Linux:

Step 1: No terminal da BB, digite os seguintes comandos, para criar os seguintes
parâmetros da atualização:

       export DIST=oneiric (oneiric pode ser substituída por outra distribuição);
       export ARCH=armel
       export BOARD=omap

Step 2: Baixe o mais recente script de atualização do kernel (estável), com os
seguintes comandos:

      wget http://rcn-ee.net/deb/${DIST}-${ARCH}/LATEST-${BOARD} (pode ser
necessário obter permissão: sudo …)

       wget $(cat ./LATEST-${BOARD} | grep STABLE | awk '{print $3}')

Step 3: Dessa forma, basta executar o script de atualização, e reiniciar o sistema.

       /bin/bash install-me.sh

A atualização pode ser verificada então com o comando (uname -a), que resultará
na versão do novo kernel.




                                                                                      9
6 Atualizar X-loader e U-boot

Nesta seção será mostrada passo-a-passo a atualização do X-loader e U-boot.
1.1 Atualização

Step 1: Em algumas situações, é necessário zerar as variáveis do ambiente u-boot
para o script funcionar. Isso pode ser feito com o seguinte comando:

       nand erase 260000 20000

Step 2: A seguir, deve-se baixar via git clone os arquivos da atualização:

       git clone git://github.com/RobertCNelson/flash-omap.git
       cd flash-omap

       Entrando no diretório flash-omap, pode-se executar o script de atualização,
e então siga as instruções a seguir:

       sudo ./mk_mmc.sh --mmc /dev/sdX --uboot beagle_cx

       1: Plug Serial Cable in and Start Serial terminal program
       2: Place MMC card in Beagle
       3: Push and Hold User Button
       4: Plug-in Power
       5: Wait for U-boot countdown to finish, Let Off User Button
       6: Wait for Flashing/script to end
       7: Power down, remove and reformat MMC card to final OS

       *Obs: caso não saiba a localização do SD card:

       sudo ./mk_mmc.sh --probe-mmc
       *resultará em algo do tipo:

       Are you sure? I Don't see [/dev/idontknow], here is what I do see...
       fdisk -l:
       Disk /dev/sda: 500.1 GB, 500107862016 bytes <- x86 Root Drive
       Disk /dev/mmcblk0: 3957 MB, 3957325824 bytes <- MMC/SD card
       mount:
       /dev/sda1 on / type ext4 (rw,errors=remount-ro,commit=0) <- x86 Root
Partition

      Nesse exemplo, pode-se notar via mount, que /dev/sda1 é o rootfs, e /dev/
mmcblk0 é o outro drive no sistema (MMC/SD) que deve ser usado pelo script
./mk_mmc.sh.




                                                                               10
7 Instalação do DSP-bridge

Nesta seção será mostrada passo-a-passo a instalação do DSP-bridge, para a
utilização do DSP da BeagleBoard.

7.1 No Linux PC:


Step 1: Baixe a última versão do script de instalação dos binários DSP, com o
comando:

      wget https://github.com/RobertCNelson/stable-kernel/
raw/master/create_dsp_package.sh

     Torne-o executável, com o seguinte comando (vale ressaltar que esse script
somente funcionará em uma arquitetura x86):

          chmod a+x ./create_dsp_package.sh

Step 2: Execute o script, que criará (e irá compilar) o diretório contendo as
bibliotecas do DSP:

          ./create_dsp_package.sh

        Após isso, copie o arquivo DSP_Install_libs.tar.gz para a BeagleBoard.
Certifique-se que a conexão com a Internet esteja configurada.


7.2 Na BeagleBoard:


Step 1: Extrair os arquivos com o comando:

          tar xf DSP_Install_libs.tar.gz

Step 2: Execute o script de instalação do DSP

          ./install-DSP.sh

          É necessário também compilar as bibliotecas do Gstreamer. Ao executar o
script:

          ./install-gst-dsp.sh

      Termina o processo de instalação do DSP-bridge. Reiniciando,
automaticamente a bridge é iniciada, mas é possível iniciá-la manualmente com o
comando:

                                                                                 11
sudo /etc/init.d/dsp start

      É possível testá-la com o comando:

      sudo dsp-test

      Para reproduzir um arquivo multimídia (avi por exemplo), use o Gstreamer
com o comando:

        sudo gst-launch playbin2
uri=file:///home/USER/big_buck_bunny_480p_surround-fix.avi




                                                                             12
8 H.264 na BeagleBoard


A BeagleBoard tem suporte para a decodificação de vídeos H.264. Uma das
formas de se fazer isso é utilizando o gst-dsp [2], que se utiliza do GSTreamer
para reprodução de arquivos multimídia. No caso, o gst-dsp utiliza, na
decodificação H.264 pelo processador DSP, o codec proprietário da Texas
Instruments.

Entretanto, no DSP, é necessário que o vídeo seja codificado previamente no perfil
Baseline, pois apenas este perfil do H.264 é suportado.

Para isso, pode ser utilizado o FFmpeg em conjunto com a libx264, e os
procedimentos para o processo da codificação do vídeo para baseline pode ser
visualizada a seguir:



8.1 Codificação do vídeo para o perfil Baseline



Step 1: Processo de instalação do FFmpeg com libx264

- Install X264

Os pacotes do source do x264 podem ser instalados usando o git:

       git clone git://git.videolan.org/x264
       cd x264/
       ./configure –enable-shared
       make
       sudo make install

Obs: Pode ser que um erro ocorra:

“No suitable assembler found. Install ‘yasm’ to get MMX/SSE optimized code.”

Ou instale-o (sudo apt-get install yasm) ou desabilite-o (./configure –disable yasm
–enable-shared).

- Install ffmpeg

Mesmo processo para o FFmpeg:

git clone git://git.videolan.org/ffmpeg
cd ffmpeg/
./configure –enable-libopencore-amrnb –enable-libopencore-amrwb –enable-

                                                                                  13
libfaac –enable-libmp3lame –enable-libtheora –enable-libvorbis –enable-libx264 –
enable-libxvid –disable-ffplay –enable-shared –enable-gpl –enable-postproc –
enable-version3 –enable-nonfree –enable-avfilter –enable-pthreads
make
sudo make install

Obs: pacotes como o libopencore, theora e libxvid podem ser removidos da
configuração, ficando a critério de escolha.

Configure a variável global a seguir e edite o arquivo:

export LD_LIBRARY_PATH=/usr/local/lib
sudo gedit /etc/ld.so.conf


Adicionando ‘/usr/local/lib’ no final do arquivo.

sudo ldconfig
hash x264 ffmpeg ffprobe



Step 2: Codificando
Agora, para executar um video h264 no DSP, o mesmo deve ter perfil BASELINE.
Os parâmetros desse perfil podem ser adicionados em um arquivo, para o ffmpeg
fazer a leitura dos mesmos, no momento da codificação.


          mkdir -p ~/.ffmpeg
          nano ~/.ffmpeg/libx264-baseline.ffpreset


digite:


          coder=0
          bf=0
          flags2=-wpred-dct8x8+mbtree
          wpredp=0


Pronto, com isso o arquivo com esses parâmetros do perfil baseline para o ffmpeg
foi criado. Agora, pode-se codificar um video com o comando (neste caso, foi feito
o download do vídeo já codificado - http://www.bigbuckbunny.org/index.php/download/
- e então o vídeo foi re-codificado):

./ffmpeg -i /media/P39GB/h264/big_buck_bunny_480p_h264.mov -vcodec libx264
-vpre baseline -level 3 -vframes 300 /media/P39GB/h264/baseline/big_buck_
baseline3.mov


                                                                                 14
-i : infile.mov (o contêiner pode variar, ex: mkv)
-vcodec : libx264, especifica para o ffmpeg codificar com essa biblioteca
-vpre : perfil a ser utilizado: baseline, main, high...
-vframes : quantidade de frames a serem codificados.




8.2 Execução:



Requisitos: gst-dsp instalado (capítulo 7), e ainda:

- sudo apt-get install gstreamer0.10-ffmpeg
- e talvez: sudo apt-get install gstreamer0.10-plugins-good


- Para executar o vídeo no ARM (decodificador h264 do ffmpeg para arm)


Executando:

gst-launch-0.10 filesrc location=arquivo.mov ! qtdemux name=d  d. !
queue ! ffdec_h264 ! ffmpegcolorspace ! ximagesink  d.

- No DSP (decoder proprietário da Texas Instruments)

gst-launch-0.10 filesrc location=arquivo.mov ! qtdemux name=d  d. !
queue ! dspvdec ! ffmpegcolorspace ! ximagesink  d.




                                                                            15
Referências

[1] eLinux.org/BeagleBoard - Guia para utilização da plataforma OMAP
BeagleBoard. http://elinux.org/BeagleBoardUbuntu#Advanced

[2] Gst-dsp. GStreamer elements to use DSP algorithms. http://code.google.com/p/gst-
dsp/




                                                                                  16

Más contenido relacionado

La actualidad más candente

Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...Marlon Willrich
 
Instalação de um servidor debian
Instalação de um servidor debianInstalação de um servidor debian
Instalação de um servidor debianEduardo Mendes
 
37064834 curso-back-track
37064834 curso-back-track37064834 curso-back-track
37064834 curso-back-trackMarcio Pereira
 
Administração de servidores Linux
Administração de servidores LinuxAdministração de servidores Linux
Administração de servidores LinuxJoão Sá
 
Mini-curso de linux básico
Mini-curso de linux básicoMini-curso de linux básico
Mini-curso de linux básicoAdriano Melo
 
Primeiros passos com Openstack
Primeiros passos com OpenstackPrimeiros passos com Openstack
Primeiros passos com OpenstackDalton Valadares
 
Apresentação OpenSUSE 11.3 para Desenvolvedores - Portuguese
Apresentação OpenSUSE 11.3 para Desenvolvedores - PortugueseApresentação OpenSUSE 11.3 para Desenvolvedores - Portuguese
Apresentação OpenSUSE 11.3 para Desenvolvedores - PortugueseKomputer
 
Noções básicas do Raspberry pi 2/3 na prática
Noções básicas do Raspberry pi 2/3 na práticaNoções básicas do Raspberry pi 2/3 na prática
Noções básicas do Raspberry pi 2/3 na práticaFlavio Ribeiro de Lira
 
Apresentação PGDAY - instalação e configuração - PostgreSQL
Apresentação PGDAY - instalação e configuração - PostgreSQLApresentação PGDAY - instalação e configuração - PostgreSQL
Apresentação PGDAY - instalação e configuração - PostgreSQLJohnes Castro
 
Kubuntu filipe simao n11 12 l
Kubuntu filipe simao n11 12 lKubuntu filipe simao n11 12 l
Kubuntu filipe simao n11 12 lginho17
 

La actualidad más candente (20)

Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
 
Squid
SquidSquid
Squid
 
Instalação de um servidor debian
Instalação de um servidor debianInstalação de um servidor debian
Instalação de um servidor debian
 
Hacking Linux
Hacking LinuxHacking Linux
Hacking Linux
 
37064834 curso-back-track
37064834 curso-back-track37064834 curso-back-track
37064834 curso-back-track
 
Administração de servidores Linux
Administração de servidores LinuxAdministração de servidores Linux
Administração de servidores Linux
 
Mini-curso de linux básico
Mini-curso de linux básicoMini-curso de linux básico
Mini-curso de linux básico
 
Primeiros passos com Openstack
Primeiros passos com OpenstackPrimeiros passos com Openstack
Primeiros passos com Openstack
 
Servidores linux
Servidores linuxServidores linux
Servidores linux
 
Apresentação OpenSUSE 11.3 para Desenvolvedores - Portuguese
Apresentação OpenSUSE 11.3 para Desenvolvedores - PortugueseApresentação OpenSUSE 11.3 para Desenvolvedores - Portuguese
Apresentação OpenSUSE 11.3 para Desenvolvedores - Portuguese
 
Noções básicas do Raspberry pi 2/3 na prática
Noções básicas do Raspberry pi 2/3 na práticaNoções básicas do Raspberry pi 2/3 na prática
Noções básicas do Raspberry pi 2/3 na prática
 
Unidade5 roteiro
Unidade5 roteiroUnidade5 roteiro
Unidade5 roteiro
 
Administração de Redes Linux - II
Administração de Redes Linux - IIAdministração de Redes Linux - II
Administração de Redes Linux - II
 
Apresentação PGDAY - instalação e configuração - PostgreSQL
Apresentação PGDAY - instalação e configuração - PostgreSQLApresentação PGDAY - instalação e configuração - PostgreSQL
Apresentação PGDAY - instalação e configuração - PostgreSQL
 
Kubuntu filipe simao n11 12 l
Kubuntu filipe simao n11 12 lKubuntu filipe simao n11 12 l
Kubuntu filipe simao n11 12 l
 
Certificação LPI
Certificação LPICertificação LPI
Certificação LPI
 
Unidade5 roteiro
Unidade5 roteiroUnidade5 roteiro
Unidade5 roteiro
 
1
 1 1
1
 
Squid proxy
Squid proxySquid proxy
Squid proxy
 
Linux instalação
Linux instalaçãoLinux instalação
Linux instalação
 

Similar a Tutorial beagleboard

Linux Ubuntu Server - Configurar dhcp
Linux Ubuntu Server - Configurar dhcpLinux Ubuntu Server - Configurar dhcp
Linux Ubuntu Server - Configurar dhcpRui Lopes
 
Impressoes apos 2 dias utilizando o ubuntu io t com raspberry pi
Impressoes apos 2 dias utilizando o ubuntu io t com raspberry piImpressoes apos 2 dias utilizando o ubuntu io t com raspberry pi
Impressoes apos 2 dias utilizando o ubuntu io t com raspberry piMarcos Aurelio Barranco
 
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceHackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceRicardo Rufino
 
Configurando uma rede local com acesso internet
Configurando uma rede local com acesso  internetConfigurando uma rede local com acesso  internet
Configurando uma rede local com acesso internetTiago
 
PLATAFORMA: VIRTUAL BOX
PLATAFORMA: VIRTUAL BOXPLATAFORMA: VIRTUAL BOX
PLATAFORMA: VIRTUAL BOXelliando dias
 
Instalação do asterisk
Instalação do asteriskInstalação do asterisk
Instalação do asteriskVicente Nobre
 
37064834 curso-back-track
37064834 curso-back-track37064834 curso-back-track
37064834 curso-back-trackMarcio Pereira
 

Similar a Tutorial beagleboard (9)

Linux Ubuntu Server - Configurar dhcp
Linux Ubuntu Server - Configurar dhcpLinux Ubuntu Server - Configurar dhcp
Linux Ubuntu Server - Configurar dhcp
 
Tutorialclonehdg01
Tutorialclonehdg01Tutorialclonehdg01
Tutorialclonehdg01
 
Impressoes apos 2 dias utilizando o ubuntu io t com raspberry pi
Impressoes apos 2 dias utilizando o ubuntu io t com raspberry piImpressoes apos 2 dias utilizando o ubuntu io t com raspberry pi
Impressoes apos 2 dias utilizando o ubuntu io t com raspberry pi
 
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceHackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
 
Configurando uma rede local com acesso internet
Configurando uma rede local com acesso  internetConfigurando uma rede local com acesso  internet
Configurando uma rede local com acesso internet
 
PLATAFORMA: VIRTUAL BOX
PLATAFORMA: VIRTUAL BOXPLATAFORMA: VIRTUAL BOX
PLATAFORMA: VIRTUAL BOX
 
Instalação do asterisk
Instalação do asteriskInstalação do asterisk
Instalação do asterisk
 
37064834 curso-back-track
37064834 curso-back-track37064834 curso-back-track
37064834 curso-back-track
 
Dhcp com controle_ip_compartilhamento
Dhcp com controle_ip_compartilhamentoDhcp com controle_ip_compartilhamento
Dhcp com controle_ip_compartilhamento
 

Más de Alexandre Augusto Giron

Más de Alexandre Augusto Giron (6)

Introduction - Lattice-based Cryptography
Introduction - Lattice-based CryptographyIntroduction - Lattice-based Cryptography
Introduction - Lattice-based Cryptography
 
Minicurso - Introdução ao Blender
Minicurso - Introdução ao BlenderMinicurso - Introdução ao Blender
Minicurso - Introdução ao Blender
 
Minicurso Linux
Minicurso Linux Minicurso Linux
Minicurso Linux
 
Validação de Transformações e Model-Driven Engineering (MDE)
Validação de Transformações e Model-Driven Engineering (MDE)Validação de Transformações e Model-Driven Engineering (MDE)
Validação de Transformações e Model-Driven Engineering (MDE)
 
Desenvolvimento de sistemas embarcados
Desenvolvimento de sistemas embarcadosDesenvolvimento de sistemas embarcados
Desenvolvimento de sistemas embarcados
 
Palestra omap
Palestra omapPalestra omap
Palestra omap
 

Tutorial beagleboard

  • 1. UNIOESTE - Universidade Estadual do Oeste do Paraná Curso de Bacharelado em Ciência da Computação Tutorial BeagleBoard Cascavel, 01 de Fevereiro de 2012
  • 2. Sumário 1 Começando do zero: Instalando a distribuição Linux................................................................3 1.1 Download de uma imagem pré-configurada......................................................................3 1.2 Instalando via Netinstall.....................................................................................................4 3 Instalando pacotes no cartão SD via qemu................................................................................7 4 Instalando a interface gráfica:...................................................................................................8 5 Atualizando o Kernel do Linux:..................................................................................................9 6 Atualizar X-loader e U-boot.....................................................................................................10 7 Instalação do DSP-bridge.........................................................................................................11 7.1 No Linux PC:......................................................................................................................11 7.2 Na BeagleBoard:...............................................................................................................11 8 H.264 na BeagleBoard.............................................................................................................13 8.1 Codificação do vídeo para o perfil Baseline......................................................................13 8.2 Execução:..........................................................................................................................15 Referências.................................................................................................................................16 2
  • 3. 1 Começando do zero: Instalando a distribuição Linux Estão catalogadas duas formas de se instalar uma distribuição Linux na BeagleBoard: 1.1 Download de uma imagem pré-configurada Requerido um cartão SD 1GB/2GB. Step 1: Baixe a imagem: wget http://rcn-ee.net/deb/rootfs/oneiric/ubuntu-11.10-r5-minimal-armel.tar.xz Step 2: Verificar a consistência do arquivo md5sum ubuntu-11.10-r5-minimal-armel.tar.xz Caso esteja ok, o comando resultará: dc38df885797c2db3a8fc8265463a43b ubuntu-11.10-r5-minimal- armel.tar.xz Descompacte a imagem, em seguida entre no diretório: tar xJf ubuntu-11.10-r5-minimal-armel.tar.xz cd ubuntu-11.10-r5-minimal-armel Step 3: Execute o script com base na localização do cartão SD ( /dev/ ) Ex: sudo ./setup_sdcard.sh --mmc /dev/sdX --uboot beagle_cx Caso não saiba a localização do SD sudo ./setup_sdcard.sh --probe-mmc gerará uma lista com os dispositivos: Are you sure? I Don't see [/dev/idontknow], here is what I do see... fdisk -l: Disk /dev/sda: 500.1 GB, 500107862016 bytes <- x86 Root Drive Disk /dev/mmcblk0: 3957 MB, 3957325824 bytes <- MMC/SD card mount: /dev/sda1 on / type ext4 (rw,errors=remount-ro,commit=0) <- x86 Root Partition Neste caso, /dev/mmcblk0 é o cartão SD que deve ser usado. Então, para 3
  • 4. executar o script, use: sudo ./setup_sdcard.sh --mmc /dev/mmcblk0 --uboot beagle_cx Remova o SD da unidade, e insira na BeagleBoard. Ao reiniciar terá o Ubuntu Maverick instalado (modo texto). User: ubuntu password: temppwd Para instalar a gui (graphical user interface), deve-se primeiro configurar a rede na BeagleBoard. Será explicado mais adiante. 1.2 Instalando via Netinstall Requerido um cartão SD 1GB/2GB. Este método utiliza de uma conexão com a internet para baixar a imagem e instalar no momento em que der o boot na beagleboard. - Ubuntu 11.10 (Oneiric): No terminal Linux PC, digite: git clone git://github.com/RobertCNelson/netinstall.git cd netinstall Instale o script: em "board" > substituir por beagle_cx Obs: Esse script precisa de mkimage. sudo apt-get install u-boot mkimage Executar Script: sudo ./mk_mmc.sh --mmc /dev/sdX --uboot "board" --distro oneiric Options: • --uboot: beagle_bx, beagle, panda • --distro: maverick, oneiric • --firmware: installs firmware • --serial-mode: debian-installer uses Serial Port • --addon ulcd: (ulcd from: http://search.digikey.com/scripts/DkSearch/dksus.dll? vendor=0&keywords=ULCD7-ND) Insira o cartão SD na Beagle e inicie-a: Escolha o idioma, teclado.. Configure a rede. Então o instalador baixará os pacotes necessários. User: ubuntu password: temppwd 4
  • 5. 2 Provendo Internet à BeagleBoard via usb através de um Linux PC: Requerido: um adaptador usb ethernet Step 1: Configurando o PC: Primeiramente, certifique-se que ambos estão conectados pelo usb (pode ser necessário rodar o comando ifconfig usb0 na BeagleBoard para que o PC reconheça o dispositivo). ifconfig Se estiver conectado via usb com a BB, aparecerá na tela algo do tipo: usb0 Link encap:Ethernet HWaddr 45:d1:a3:05:28:d3 Nem sempre o dispositivo aparece como usb0. Para este exemplo, será usado usb0, mas, nos próximos comandos, substitua pelo nome que seu linux reconhecer (usb1, …). Então, é necessário ativar a interface usb, setando um IP e uma máscara de rede à interface: sudo ifconfig usb0 [ip address] netmask [ netmask ] up Ex: sudo ifconfig usb0 192.168.0.1 netmask 255.255.255.0 up É necessário também configurar as IPTables do Linux PC para que os pacotes possam ser repassados à interface usb0. Assumindo que o Linux PC esteja conectado à internet via eth0 ou wlan0, rode os seguintes comandos: -Removendo prévias configurações: sudo iptables --flush sudo iptables --table nat --flush sudo iptables --delete-chain sudo iptables --table nat --delete-chain - Liberando a repassagem dos pacotes entre as interfaces: sudo iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE sudo iptables --append FORWARD --in-interface usb0 -j ACCEPT sudo vi /etc/sysctl.conf - Retire o “#” da linha: “#net.ipv4.ip_forward=1” para ativar a repassagem sudo sysctl -p (opcional, mostra se a repassagem está ativada) Obs: Em eth0, pode ser substituído por wlan0 (caso esteja na rede sem fio). 5
  • 6. Step 2: Configurando a BeagleBoard Deve-se ativar a interface usb0, da mesma forma como foi feito no Linux PC, mas com diferentes parâmetros: sudo ifconfig usb0 192.168.0.69 netmask 255.255.255.0 up Obs: Certifique-se que o ip pertença à rede do Linux PC (192.168.0.X) Em seguida, deve-se adicionar o endereço do gateway para a BeagleBoard, endereço no qual todo o tráfego de rede da BeagleBoard consiga atingir a internet. Para isso, basta adicionar o endereço do host (Linux PC) como gateway, com o seguinte comando: sudo route add default gw 192.168.0.1 (IP do Linux PC) Agora, é necessário editar o arquivo que contém os endereços DNS que a BeagleBoard utilizará. Geralmente, basta adicionar o endereço do gateway (roteador da rede que permite a conexão do Linux PC com a internet) que a resolução de nomes será responsabilidade deste, mas, caso não funcionar, pode- se adicionar outros servidores DNS, como o OpenDNS (208.67.222.222 ). sudo vi /etc/resolv.conf Adicione: nameserver 208.67.222.222 ou o DNS que lhe convier. Agora está tudo configurado! Pode-se testar a conexão com a internet com o comando ping www.google.com, recebendo resposta, está tudo certo. 6
  • 7. 3 Instalando pacotes no cartão SD via qemu É possível instalar pacotes diretamente no cartão SD (com o ubuntu para a beagleboard instalado) através do shell do Linux PC. Por exemplo, a interface gráfica pode ser instalada através do Linux PC, com o uso do software qemu. Step 1: Instale o pacote qemu-user-static no Linux PC sudo apt-get install qemu-user-static Step 2: Insira o cartão SD no Linux PC, e monte a partição rootfs (caso não tenha sido montada automaticamente): Ex: mount -o remount,dev /media/rootfs *Obs: Nesse caso, assumimos que o local da montagem foi: /media/rootfs. Step 3: Copie o arquivo qemu-arm-static para o diretório /media/rootfs/usr/bin Ex: cp /usr/bin/qemu-arm-static /media/rootfs/usr/bin Step 4: Use o chroot para que o shell possa emular e funcionar como o shell da própria beagleboard, porém com os recursos do PC (CPU, memória, rede, etc). chroot /media/rootfs Agora, pode-se realizar a instalação de diversos pacotes, que serão instalados no SD da beagleboard: export http_proxy=http://proxy.unioeste.br:8080 (se necessário) apt-get update apt-get install gdm xubuntu-desktop 7
  • 8. 4 Instalando a interface gráfica: Após configurar a rede, bastam dois comandos para a instalação completa da GUI. sudo apt-get update sudo apt-get install gdm xubuntu-desktop Geralmente, é um processo demorado, são vários pacotes que são baixados. 8
  • 9. 5 Atualizando o Kernel do Linux: Step 1: No terminal da BB, digite os seguintes comandos, para criar os seguintes parâmetros da atualização: export DIST=oneiric (oneiric pode ser substituída por outra distribuição); export ARCH=armel export BOARD=omap Step 2: Baixe o mais recente script de atualização do kernel (estável), com os seguintes comandos: wget http://rcn-ee.net/deb/${DIST}-${ARCH}/LATEST-${BOARD} (pode ser necessário obter permissão: sudo …) wget $(cat ./LATEST-${BOARD} | grep STABLE | awk '{print $3}') Step 3: Dessa forma, basta executar o script de atualização, e reiniciar o sistema. /bin/bash install-me.sh A atualização pode ser verificada então com o comando (uname -a), que resultará na versão do novo kernel. 9
  • 10. 6 Atualizar X-loader e U-boot Nesta seção será mostrada passo-a-passo a atualização do X-loader e U-boot. 1.1 Atualização Step 1: Em algumas situações, é necessário zerar as variáveis do ambiente u-boot para o script funcionar. Isso pode ser feito com o seguinte comando: nand erase 260000 20000 Step 2: A seguir, deve-se baixar via git clone os arquivos da atualização: git clone git://github.com/RobertCNelson/flash-omap.git cd flash-omap Entrando no diretório flash-omap, pode-se executar o script de atualização, e então siga as instruções a seguir: sudo ./mk_mmc.sh --mmc /dev/sdX --uboot beagle_cx 1: Plug Serial Cable in and Start Serial terminal program 2: Place MMC card in Beagle 3: Push and Hold User Button 4: Plug-in Power 5: Wait for U-boot countdown to finish, Let Off User Button 6: Wait for Flashing/script to end 7: Power down, remove and reformat MMC card to final OS *Obs: caso não saiba a localização do SD card: sudo ./mk_mmc.sh --probe-mmc *resultará em algo do tipo: Are you sure? I Don't see [/dev/idontknow], here is what I do see... fdisk -l: Disk /dev/sda: 500.1 GB, 500107862016 bytes <- x86 Root Drive Disk /dev/mmcblk0: 3957 MB, 3957325824 bytes <- MMC/SD card mount: /dev/sda1 on / type ext4 (rw,errors=remount-ro,commit=0) <- x86 Root Partition Nesse exemplo, pode-se notar via mount, que /dev/sda1 é o rootfs, e /dev/ mmcblk0 é o outro drive no sistema (MMC/SD) que deve ser usado pelo script ./mk_mmc.sh. 10
  • 11. 7 Instalação do DSP-bridge Nesta seção será mostrada passo-a-passo a instalação do DSP-bridge, para a utilização do DSP da BeagleBoard. 7.1 No Linux PC: Step 1: Baixe a última versão do script de instalação dos binários DSP, com o comando: wget https://github.com/RobertCNelson/stable-kernel/ raw/master/create_dsp_package.sh Torne-o executável, com o seguinte comando (vale ressaltar que esse script somente funcionará em uma arquitetura x86): chmod a+x ./create_dsp_package.sh Step 2: Execute o script, que criará (e irá compilar) o diretório contendo as bibliotecas do DSP: ./create_dsp_package.sh Após isso, copie o arquivo DSP_Install_libs.tar.gz para a BeagleBoard. Certifique-se que a conexão com a Internet esteja configurada. 7.2 Na BeagleBoard: Step 1: Extrair os arquivos com o comando: tar xf DSP_Install_libs.tar.gz Step 2: Execute o script de instalação do DSP ./install-DSP.sh É necessário também compilar as bibliotecas do Gstreamer. Ao executar o script: ./install-gst-dsp.sh Termina o processo de instalação do DSP-bridge. Reiniciando, automaticamente a bridge é iniciada, mas é possível iniciá-la manualmente com o comando: 11
  • 12. sudo /etc/init.d/dsp start É possível testá-la com o comando: sudo dsp-test Para reproduzir um arquivo multimídia (avi por exemplo), use o Gstreamer com o comando: sudo gst-launch playbin2 uri=file:///home/USER/big_buck_bunny_480p_surround-fix.avi 12
  • 13. 8 H.264 na BeagleBoard A BeagleBoard tem suporte para a decodificação de vídeos H.264. Uma das formas de se fazer isso é utilizando o gst-dsp [2], que se utiliza do GSTreamer para reprodução de arquivos multimídia. No caso, o gst-dsp utiliza, na decodificação H.264 pelo processador DSP, o codec proprietário da Texas Instruments. Entretanto, no DSP, é necessário que o vídeo seja codificado previamente no perfil Baseline, pois apenas este perfil do H.264 é suportado. Para isso, pode ser utilizado o FFmpeg em conjunto com a libx264, e os procedimentos para o processo da codificação do vídeo para baseline pode ser visualizada a seguir: 8.1 Codificação do vídeo para o perfil Baseline Step 1: Processo de instalação do FFmpeg com libx264 - Install X264 Os pacotes do source do x264 podem ser instalados usando o git: git clone git://git.videolan.org/x264 cd x264/ ./configure –enable-shared make sudo make install Obs: Pode ser que um erro ocorra: “No suitable assembler found. Install ‘yasm’ to get MMX/SSE optimized code.” Ou instale-o (sudo apt-get install yasm) ou desabilite-o (./configure –disable yasm –enable-shared). - Install ffmpeg Mesmo processo para o FFmpeg: git clone git://git.videolan.org/ffmpeg cd ffmpeg/ ./configure –enable-libopencore-amrnb –enable-libopencore-amrwb –enable- 13
  • 14. libfaac –enable-libmp3lame –enable-libtheora –enable-libvorbis –enable-libx264 – enable-libxvid –disable-ffplay –enable-shared –enable-gpl –enable-postproc – enable-version3 –enable-nonfree –enable-avfilter –enable-pthreads make sudo make install Obs: pacotes como o libopencore, theora e libxvid podem ser removidos da configuração, ficando a critério de escolha. Configure a variável global a seguir e edite o arquivo: export LD_LIBRARY_PATH=/usr/local/lib sudo gedit /etc/ld.so.conf Adicionando ‘/usr/local/lib’ no final do arquivo. sudo ldconfig hash x264 ffmpeg ffprobe Step 2: Codificando Agora, para executar um video h264 no DSP, o mesmo deve ter perfil BASELINE. Os parâmetros desse perfil podem ser adicionados em um arquivo, para o ffmpeg fazer a leitura dos mesmos, no momento da codificação. mkdir -p ~/.ffmpeg nano ~/.ffmpeg/libx264-baseline.ffpreset digite: coder=0 bf=0 flags2=-wpred-dct8x8+mbtree wpredp=0 Pronto, com isso o arquivo com esses parâmetros do perfil baseline para o ffmpeg foi criado. Agora, pode-se codificar um video com o comando (neste caso, foi feito o download do vídeo já codificado - http://www.bigbuckbunny.org/index.php/download/ - e então o vídeo foi re-codificado): ./ffmpeg -i /media/P39GB/h264/big_buck_bunny_480p_h264.mov -vcodec libx264 -vpre baseline -level 3 -vframes 300 /media/P39GB/h264/baseline/big_buck_ baseline3.mov 14
  • 15. -i : infile.mov (o contêiner pode variar, ex: mkv) -vcodec : libx264, especifica para o ffmpeg codificar com essa biblioteca -vpre : perfil a ser utilizado: baseline, main, high... -vframes : quantidade de frames a serem codificados. 8.2 Execução: Requisitos: gst-dsp instalado (capítulo 7), e ainda: - sudo apt-get install gstreamer0.10-ffmpeg - e talvez: sudo apt-get install gstreamer0.10-plugins-good - Para executar o vídeo no ARM (decodificador h264 do ffmpeg para arm) Executando: gst-launch-0.10 filesrc location=arquivo.mov ! qtdemux name=d d. ! queue ! ffdec_h264 ! ffmpegcolorspace ! ximagesink d. - No DSP (decoder proprietário da Texas Instruments) gst-launch-0.10 filesrc location=arquivo.mov ! qtdemux name=d d. ! queue ! dspvdec ! ffmpegcolorspace ! ximagesink d. 15
  • 16. Referências [1] eLinux.org/BeagleBoard - Guia para utilização da plataforma OMAP BeagleBoard. http://elinux.org/BeagleBoardUbuntu#Advanced [2] Gst-dsp. GStreamer elements to use DSP algorithms. http://code.google.com/p/gst- dsp/ 16