Tutorial: Configurando uma PandaBoard (Parte 2)

On 12 de agosto de 2013 by vinicius mauricio de almeida

No Post anterior foi apresentada uma introdução para a PandaBoard e ensinei a instalar o ubuntu desktop e server na placa, neste irei ensinar com instalar o ubuntu-core, então vamos la!

para ver o post anterior clique aqui

Instalação ubuntu core
Alguns desenvolvedores necessitam de um sistema operacional mais leve (sejam para economizar processamento ou para fazer teste de programas que iram rodar em placas inferiores a panda), e talvez o ubuntu desktop ou server com seus milhares de pacotes instalados podem ser muito pesado ele, porem é possível, apesar de um pouco mais complicado, instalar na Panda uma versão mais leve do ubuntu o ubuntu core na panda.
O ubuntu core é uma versão minima do ubuntu, utilizado para criação e personalização de imagens, quase totalmente livre de pacotes adicionais do ubuntu, sendo assim é uma versão muito leve dele, ele tem suporte total ao repositórios do ubuntu através do apt-get, o que torna simples a instalação de qualquer pacote.
A sua configuração em cartão SD para uso da panda e um pouco mais complicada que as anteriores, pelo fato de não haver uma imagem pré-instalada para esta versão, porem vamos ensinar agora passo a passo com fazer para utiliza-lo.
Inicialmente precisamos configurar o cartão SD, para isto já temos um script simples, para ter ver-lo clique aqui.
O script recebe como argumento o endereço do seu cartão para utilizar-lo é necessário descobri-lo, para isto faça o seguinte comando:

[code] df -l[/code]

com ele você terá a saídas de todas a partições de disco que estão conectadas no pc, seja as partições do HD seja partições de um disco removível, então é só descobri qual a do seu cartão pelo tamanho das partições, no meu caso o cartão utilizado era de 4G e saída foi:

Device Boot Start End Blocks Id System
/dev/sda1 * 63 117248109 58624023+ 83 Linux
/dev/sda2 117250046 312580095 97665025 5 Extended
/dev/sda5 117250048 306720751 94735352 83 Linux
/dev/sda6 306722816 312580095 2928640 82 Linux swap / Solaris

Disk /dev/mmcblk0: 3921 MB, 3921674240 bytes

logo meu cartão esta no caminho /dev/mmcblk0. Sabendo o caminho do catão agora e só rodar o script. Então faça o seguinte comando:

[code] ./omap3-mkcard.sh /dev/mmcblk0 [/code]

Pronto agora seu cartão já foi particionando e esta pronto para ser usado, podemos ocupa-lo com os arquivos necessários. O script cria duas partições para seu cartão a /boot e a /rootfs, na boot sera colocado os arquivos necessário para botar o ubuntu no cartão já na rootfs sera colocado os aquivos do SO, então vamos começar pelos arquivos de boot.
A PandaBoard não tem em si arquivos necessário para boot, nela só ha um sistema minimo que tenta chamar no cartão SD este arquivos, o primeiro arquivo que ela chama é o MLO ele é um tipo pre-boot, este MLO por sua vez chama um arquivo chamado u-boot, que usa um arquivo chamando boot.src como “script” para o boot, e por final ele chama os aquivos de kernel da imagens uImagem e, em alguns casos, uInitrd. Então vamos preparar este arquivos.
Primeiramente vamos criar o boot.scr, para isto crie um arquivo chamando boot.scrip e coloque dentro dele o seguinte que texto:

fatload mmc 0:1 0x80000000 uImage
fatload mmc 0:1 0x81600000 uInitrd
setenv bootargs rw elevator=noop vram=32M fixrtc mem=1G@0x80000000 root=/dev/mmcblk0p2 console=ttyO2,115200n8 rootwait ip$
bootm 0x80000000

A parti desde arquivo iremos criar o boot.src, para isto faça o seguinte comando:

[code] mkimage -A arm -T script -C none -n "Boot Image" -d boot.script boot.scr [/code]

pronto agora temos nosso arquivo boot.scr criado, os outros arquivos iremos fazer download.
No meu caso a versão do ubuntu core utilizada é a 12.04, o tutorial também funciona para 12.10, porem quanto as versões ubuntu 13 tive alguns problemas, então para o meu caso vamos baixar os arquivos pelo seguintes endereços:
MLO: http://ports.ubuntu.com/ubuntu-ports/dists/precise/main/installer-armhf/current/images/omap4/netboot/MLO
u-boot.bin: http://ports.ubuntu.com/ubuntu-ports/dists/precise/main/installer-armhf/current/images/omap4/netboot/u-boot.bin
uImage: http://ports.ubuntu.com/ubuntu-ports/dists/precise/main/installer-armhf/current/images/omap4/netboot/uImage
Pronto, agora enviaremos todos os arquivos para o a partição de boot do SD, pelo comando:

[code] cp MLO u-boot.bin uImage boot.scr /media/boot [/code]

Agora vamos baixar os arquivos do SO, encontramos ele a parti do seguinte endereço (http://cdimage.ubuntu.com/ubuntu-core/releases/12.04/release/ubuntu-core-12.04.2-core-armhf.tar.gz), após o dowload temos quer descompacta-lo na partição rootfs do SD, para isto vamos entra nela e descomptar o arquivo de dentro da partição pelos seguintes comando:

[code]cd /media/rootfs[/code]
[code]sudo tar –numeric-owner -xzvf <endereço aonde esta o download>/ubuntu-core-12.04.2-core.armhf.tar.gz[/code]

Os arquivos do ubuntu já estão no cartão, porem ainda temos que fazer algumas modificações para que tudo rode perfeitamente, primeiro vamos criar um arquivo .conf no direito etc/init/ do cartão, faremos os comando:

[code]>$ cd /media/rootfs/etc/init/ [/code]
[code]>$ nano serial-auto-detect-console.conf [/code]

e coloque o seguinte texto no arquivo

# serial-auto-detect-console – starts getty on serial console
#
# This service starts a getty on the serial port given in the ‘console’ kernel argument.
#

start on runlevel [23]
stop on runlevel [!23]

respawn

exec /bin/sh /bin/serial-console
Agora vamos criar outro arquivo, desta vez chamado serial-console, é vai estar no endereço /bin/serial-console, nele iremos colocar o seguinte texto:

for arg in $(cat /proc/cmdline)
do
case $arg in
console=*)
tty=${arg#console=}
tty=${tty#/dev/}

case $tty in
tty[a-zA-Z]* )
PORT=${tty%%,*}

# check for service which do something on this port
if [ -f /etc/init/$PORT.conf ];then continue;fi

tmp=${tty##$PORT,}
SPEED=${tmp%%n*}
BITS=${tmp##${SPEED}n}

# 8bit serial is default
[ -z $BITS ] && BITS=8
[ 8 -eq $BITS ] && GETTY_ARGS=”$GETTY_ARGS -8 ”

[ -z $SPEED ] && SPEED=’115200,57600,38400,19200,9600′

GETTY_ARGS=”$GETTY_ARGS $SPEED $PORT”
exec /sbin/getty $GETTY_ARGS
esac
esac
done

Com os texto nos novos arquivos, vamos retirar a senha do root para que possamos acessar a placa, para isto vamos configurar o arquivo /etc/shadow na partição roofs do SD, e nele iremos retirar o caractere ‘*’ que se encontra entre dois pontos na lina do root, ficando algo similar a:
root::15259:…
Pronto agora e só configurar a internet e estamos prontos para usar a placa com ubuntu-core, para isto vamos novamente configurar alguns arquivos do cartão, desta vez será o arquivo /etc/network/interfaces, e iremos deixar-lo similar a isto

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp

Por final vamos escrever a seguinte comando “nameserver 8.8.8.8” no arquivo etc/resolv.conf.
E pronto! Agora e só colocar o SD na placa e utilizar a sua pandaboard!Captura de Tela 2013-08-15 às 16.55.16

Trackbacks & Pings

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *