Tutorial beagleboard

1,889
-1

Published on

Um pequeno " How to " em português sobre instalação de componentes e rede na plataforma BeagleBoard

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,889
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
52
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Tutorial beagleboard

  1. 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. 2. Sumário1 Começando do zero: Instalando a distribuição Linux................................................................3 1.1 Download de uma imagem pré-configurada......................................................................3 1.2 Instalando via Netinstall.....................................................................................................43 Instalando pacotes no cartão SD via qemu................................................................................74 Instalando a interface gráfica:...................................................................................................85 Atualizando o Kernel do Linux:..................................................................................................96 Atualizar X-loader e U-boot.....................................................................................................107 Instalação do DSP-bridge.........................................................................................................11 7.1 No Linux PC:......................................................................................................................11 7.2 Na BeagleBoard:...............................................................................................................118 H.264 na BeagleBoard.............................................................................................................13 8.1 Codificação do vídeo para o perfil Baseline......................................................................13 8.2 Execução:..........................................................................................................................15Referências.................................................................................................................................16 2
  3. 3. 1 Começando do zero: Instalando a distribuição LinuxEstão catalogadas duas formas de se instalar uma distribuição Linux naBeagleBoard:1.1 Download de uma imagem pré-configuradaRequerido 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.xzStep 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-armelStep 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 Dont 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 RootPartition Neste caso, /dev/mmcblk0 é o cartão SD que deve ser usado. Então, para 3
  4. 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á oUbuntu Maverick instalado (modo texto). User: ubuntu password: temppwd Para instalar a gui (graphical user interface), deve-se primeiro configurar arede na BeagleBoard. Será explicado mais adiante.1.2 Instalando via NetinstallRequerido um cartão SD 1GB/2GB.Este método utiliza de uma conexão com a internet para baixar a imagem einstalar 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. 5. 2 Provendo Internet à BeagleBoard via usb através deum Linux PC:Requerido: um adaptador usb ethernetStep 1: Configurando o PC: Primeiramente, certifique-se que ambos estão conectados pelo usb (podeser necessário rodar o comando ifconfig usb0 na BeagleBoard para que o PCreconheç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 linuxreconhecer (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 ] upEx: 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 ospacotes possam ser repassados à interface usb0. Assumindo que o Linux PCesteja 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 -jMASQUERADE 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. 6. Step 2: Configurando a BeagleBoard Deve-se ativar a interface usb0, da mesma forma como foi feito no LinuxPC, mas com diferentes parâmetros: sudo ifconfig usb0 192.168.0.69 netmask 255.255.255.0 upObs: 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 aBeagleBoard, endereço no qual todo o tráfego de rede da BeagleBoard consigaatingir a internet. Para isso, basta adicionar o endereço do host (Linux PC) comogateway, 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 aBeagleBoard utilizará. Geralmente, basta adicionar o endereço do gateway(roteador da rede que permite a conexão do Linux PC com a internet) que aresoluçã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.confAdicione: nameserver 208.67.222.222ou o DNS que lhe convier.Agora está tudo configurado! Pode-se testar a conexão com a internet com ocomandoping www.google.com, recebendo resposta, está tudo certo. 6
  7. 7. 3 Instalando pacotes no cartão SD via qemuÉ possível instalar pacotes diretamente no cartão SD (com o ubuntu para abeagleboard instalado) através do shell do Linux PC.Por exemplo, a interface gráfica pode ser instalada através do Linux PC, com ouso do software qemu.Step 1: Instale o pacote qemu-user-static no Linux PC sudo apt-get install qemu-user-staticStep 2: Insira o cartão SD no Linux PC, e monte a partição rootfs (caso não tenhasido 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/binStep 4: Use o chroot para que o shell possa emular e funcionar como o shell daprópria beagleboard, porém com os recursos do PC (CPU, memória, rede, etc). chroot /media/rootfsAgora, pode-se realizar a instalação de diversos pacotes, que serão instalados noSD da beagleboard: export http_proxy=http://proxy.unioeste.br:8080 (se necessário) apt-get update apt-get install gdm xubuntu-desktop 7
  8. 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-desktopGeralmente, é um processo demorado, são vários pacotes que são baixados. 8
  9. 9. 5 Atualizando o Kernel do Linux:Step 1: No terminal da BB, digite os seguintes comandos, para criar os seguintesparâmetros da atualização: export DIST=oneiric (oneiric pode ser substituída por outra distribuição); export ARCH=armel export BOARD=omapStep 2: Baixe o mais recente script de atualização do kernel (estável), com osseguintes comandos: wget http://rcn-ee.net/deb/${DIST}-${ARCH}/LATEST-${BOARD} (pode sernecessá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.shA atualização pode ser verificada então com o comando (uname -a), que resultarána versão do novo kernel. 9
  10. 10. 6 Atualizar X-loader e U-bootNesta seção será mostrada passo-a-passo a atualização do X-loader e U-boot.1.1 AtualizaçãoStep 1: Em algumas situações, é necessário zerar as variáveis do ambiente u-bootpara o script funcionar. Isso pode ser feito com o seguinte comando: nand erase 260000 20000Step 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 Dont 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 RootPartition 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. 11. 7 Instalação do DSP-bridgeNesta seção será mostrada passo-a-passo a instalação do DSP-bridge, para autilizaçã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 ocomando: 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 scriptsomente funcionará em uma arquitetura x86): chmod a+x ./create_dsp_package.shStep 2: Execute o script, que criará (e irá compilar) o diretório contendo asbibliotecas 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.gzStep 2: Execute o script de instalação do DSP ./install-DSP.sh É necessário também compilar as bibliotecas do Gstreamer. Ao executar oscript: ./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 ocomando: 11
  12. 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 Gstreamercom o comando: sudo gst-launch playbin2uri=file:///home/USER/big_buck_bunny_480p_surround-fix.avi 12
  13. 13. 8 H.264 na BeagleBoardA BeagleBoard tem suporte para a decodificação de vídeos H.264. Uma dasformas de se fazer isso é utilizando o gst-dsp [2], que se utiliza do GSTreamerpara reprodução de arquivos multimídia. No caso, o gst-dsp utiliza, nadecodificação H.264 pelo processador DSP, o codec proprietário da TexasInstruments.Entretanto, no DSP, é necessário que o vídeo seja codificado previamente no perfilBaseline, pois apenas este perfil do H.264 é suportado.Para isso, pode ser utilizado o FFmpeg em conjunto com a libx264, e osprocedimentos para o processo da codificação do vídeo para baseline pode servisualizada a seguir:8.1 Codificação do vídeo para o perfil BaselineStep 1: Processo de instalação do FFmpeg com libx264- Install X264Os 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 installObs: 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 ffmpegMesmo processo para o FFmpeg:git clone git://git.videolan.org/ffmpegcd ffmpeg/./configure –enable-libopencore-amrnb –enable-libopencore-amrwb –enable- 13
  14. 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-pthreadsmakesudo make installObs: pacotes como o libopencore, theora e libxvid podem ser removidos daconfiguração, ficando a critério de escolha.Configure a variável global a seguir e edite o arquivo:export LD_LIBRARY_PATH=/usr/local/libsudo gedit /etc/ld.so.confAdicionando ‘/usr/local/lib’ no final do arquivo.sudo ldconfighash x264 ffmpeg ffprobeStep 2: CodificandoAgora, 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 ffmpegfazer a leitura dos mesmos, no momento da codificação. mkdir -p ~/.ffmpeg nano ~/.ffmpeg/libx264-baseline.ffpresetdigite: coder=0 bf=0 flags2=-wpred-dct8x8+mbtree wpredp=0Pronto, com isso o arquivo com esses parâmetros do perfil baseline para o ffmpegfoi criado. Agora, pode-se codificar um video com o comando (neste caso, foi feitoo 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. 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. 16. Referências[1] eLinux.org/BeagleBoard - Guia para utilização da plataforma OMAPBeagleBoard. http://elinux.org/BeagleBoardUbuntu#Advanced[2] Gst-dsp. GStreamer elements to use DSP algorithms. http://code.google.com/p/gst-dsp/ 16

×