A BeagleBoard.org recentemente apresentou a revisão BeagleBoard xM,
uma nova edição do hardware aberto altamente bem-sucedido
BeagleBoard atualmente na revisão C. Este artigo descreve o ambiente
necessário e as etapas para fazer o boot do Linux na BeagleBoard-xM
com Angstrom Linux, Android e Ubuntu.
Apresentando a BeagleBoard-xM
A BeagleBoard é uma placa de referência de tamanho pequeno contendo
um processador Texas Instruments Open Multimedia Application Platform
(OMAP) 3 system-on-a-chip (SoC) – o que inclui um núcleo ARM Cortex-A8,
um digital signal processor (DSP) Texas Instruments C64x+ e um mecanismo
gráfico integrado, assim como uma memória de acesso aleatório (RAM) dual
data rate (DDR) integrada.
O BeagleBoard é uma plataforma de baixo
custo para amadores, acadêmicos e profissionais que estão aprendendo
Linux e sistemas pequenos. A Figura 1 mostra a BeagleBoard-xM.
Figura 1. BeagleBoard-xM
Em um artigo anterior do developerWorks, explorei fazer boot do Linux na BeagleBoard revisão C,
que hospeda um processador OMAP3530 de 600MHz, RAM de 256MB e memória
flash NAND de 256MB.
A revisão xM é mais robusta, com um processador
OMAP3730 de 1GHz e RAM de 512MB. Faz boot a partir do cartão microSD sem
nenhuma memória flash e hospeda novas interfaces, incluindo conector
serial DB-9, hub Universal Serial Bus (USB) integrado de quatro portas e
uma porta Ethernet integrada.
A BeagleBoard-xM retém muitos recursos da
revisão C, incluindo saída Digital Visual Interface (DVI)-D, S-vídeo,
áudio, Joint Test Action Group (JTAG) e diversos cabeçalhos de expansão.
Construindo seu ambiente de trabalho
As seções a seguir mostram como originar os componentes necessários, configurar e testar o console.
Originando componentes
A BeagleBoard-xM é empacotada com um cartão microSD
pré-formatado de 4GB junto com um adaptador, de modo que se pode
conectar o cartão em um slot Secure Digital (SD)/MultiMediaCard (MMC)
padrão, mas sem cabos. É preciso o seguinte:
- Fonte de alimentação
Use uma fonte de alimentação externa de 5V. - Cabo serial
A BeagleBoard-xM
fornece uma porta DB9 fêmea e exige um cabo serial para conectar o
console ao seu sistema host. Use um cabo direto (não modem nulo).
Se seu sistema host não tiver porta serial, use um cabo DB9 a USB. - Teclado USB e mouse USB
- Monitor compatível com DVI-D e um cabo DVI-D a High-Definition
Multimedia Interface (HDMI)
Observe
que a placa não emite sinais Video Graphics Array (VGA) através desse
conector, então um cabo conversor DVI a VGA padrão não funcionará. - Cartões microSD de 4GB+ e um leitor de cartão
É
possível substituir os dados no cartão fornecido, mas é melhor comprar
alguns cartões para usar com diferentes distribuições. Use um leitor de
cartão USB se seu host não possuir leitor integrado.
Ativar a BeagleBoard-xM
Tradicionalmente, a BeagleBoard é ativada a partir de
uma fonte de alimentação externa de 5V ou um cabo USB On-The-Go (OTG).
Esses cabos, porém, fornecem apenas até 500mA, no limite mínimo para
ativar o xM.
É altamente recomendado usar uma fonte de alimentação
externa – seja uma fonte de alimentação de 5V com um tambor de 2,1mm
(centro positivo) ou um cabo Y que se conecte a duas portas USB no seu
host.
Configurando o console
Usuários do Linux podem usar minicom, mostrado nos
exemplos a seguir. Usuários do Microsoft Windows podem usar
Hyperterminal ou PuTTy, e usuários de Mac podem usar screen, ZTerm ou
MacWise.
Conecte o cabo serial na porta DB9 da BeagleBoard-xM e seu host e inicie minicom no modo de configuração como raiz:
sudo minicom -s
A Listagem 1 mostra o menu de configuração minicom.
Listagem 1. Menu de configuração minicom
+-----[configuration]------+
| Filenames and paths |
| File transfer protocols |
| Serial port setup |
| Modem and dialing |
| Screen and keyboard |
| Save setup as dfl |
| Save setup as.. |
| Exit |
| Exit from Minicom |
+--------------------------+
Selecione configuração da porta serial. O submenu resultante é mostrado na Listagem 2.
Listagem 2. Configuração da porta serial minicom
+-----------------------------------------------------------------------+
| A - Serial Device : /dev/ttyS0 |
| B - Lockfile Location : /var/lock |
| C - Callin Program : |
| D - Callout Program : |
| E - Bps/Par/Bits : 115200 8N1 |
| F - Hardware Flow Control : No |
| G - Software Flow Control : No |
| |
| Change which setting? |
+-----------------------------------------------------------------------+
| Screen and keyboard |
| Save setup as dfl |
| Save setup as.. |
| Exit |
| Exit from Minicom |
+--------------------------+
Se seu cabo for um cabo serial direto, o dispositivo serial é /dev/ttyS0. Se usar um conversor USB, use /dev/ttyUSB0.
Se nenhum texto aparecer na próxima etapa, é possível que seu host
tenha atribuído um dispositivo diferente, então incremente 0 para 1 e
tente novamente.
Para todos os dispositivos, as configurações são
115200, 8 bits, sem paridade, 1 bit de parada e nenhum controle de fluxo
de hardware ou software.
Quando suas configurações estiverem corretas, salve esta configuração como padrão selecionando Save setup as dfl e, a seguir, Exit. A mensagem de boas-vindas do minicom aparece, como mostrado na Listagem 3.
Listagem 3. Mensagem de boas-vindas minicom
Welcome to minicom 2.3
OPTIONS: I18n
Compiled on Oct 24 2008, 06:37:44.
Port /dev/ttyS0
Press CTRL-A Z for help on special keys
Para verificar, aplique alimentação ao seu BeagleBoard-xM e digite uma
chave para parar a contagem regressiva de boot. As mensagens do loader
de boot aparecem mostrando a versão do X-loader e U-boot, a data de
criação e a saída, com o U-boot mostrando detalhes sobre memória do
sistema, canais de entrada e saída, informações da placa de expansão e a
revisão da placa e ID da matriz, como mostrado na Listagem 4.
Listagem 4. X-Loader e U-Boot
Texas Instruments X-Loader 1.4.4ss (Aug 19 2010 - 02:49:27)
Beagle xM Rev A
Reading boot sector
Loading u-boot.bin from mmc
U-Boot 2010.03-dirty (Aug 20 2010 - 20:50:46)
OMAP3630/3730-GP ES1.0, CPU-OPP2, L3-165MHz,
OMAP3 Beagle board + LPDDR/NAND
I2C: ready
DRAM: 512 MB
NAND: 256 MiB
In: serial
Out: serial
Err: serial
Probing for expansion boards, if none are connected you'll see a harmless I2C error.
No EEPROM on expansion board
Beagle xM Rev A
Die ID #77f600001bf00000015739ea0701c021
Hit any key to stop autoboot: 0
OMAP3 beagleboard.org #
Desconecte a energia da BeagleBoard-xM.
Preparando para fazer o boot do Linux
Conecte seu teclado e mouse nos soquetes USB na BeagleBoard-xM.
Conecte um cabo de rede, se disponível, à tomada de Ethernet. Conecte o cabo
HDMI-a-DVI entre a placa e um monitor DVI-D.
As seguintes instruções são apenas para ativar e operar sua placa com essas três distribuições do Linux. Os links em Recursos contêm kits de desenvolvimento, toolchains e instruções para configurar ambientes de desenvolvimento completos.
Cabo do monitor
Certifique-se de nunca conectar o cabo do
monitor enquanto a placa estiver ligada, pois isso pode danificar a
placa. Sempre desconecte a alimentação primeiro.
Fazendo o boot do Angstrom Linux
O Angstrom Linux é um sistema operacional desenvolvido
especificamente para pequenos computadores, como a BeagleBoard-xM. A
maneira mais rápida de fazer o boot do Angstrom na BeagleBoard-xM é com
um cartão microSD que vem com a placa, contendo uma imagem Angstrom.
Porém, a imagem nesse cartão é uma imagem de verificação, o que
significa que é fornecida apenas para verificar a operação da placa. Ela
não contém uma interface gráfica com o usuário (GUI) e faz o boot por
padrão como um disco RAM. Assim, quaisquer alterações feitas são
perdidas ao desconectar.
O cartão microSD incluso contém uma única partição de File Allocation Table (FAT)
de aproximadamente 117MB, contendo o seguinte:
- Loaders de boot X-loader (MLO) e U-boot
(u-boot.bin) - Kernel Linux (uImage)
- Script de boot (user.scr)
- Sistema de arquivos raiz do disco RAM (ramdisk.gz)
- Arquivo md5sum para verificar os tamanhos de arquivo
O restante do cartão é não formatado. Para fazer boot, insira o cartão microSD e aplique
energia. Após a contagem regressiva de boot, o sistema automaticamente
chama o script de boot.
O texto do loader de boot é mostrado novamente
no console, seguido de mensagens de boot mostrando os processos de boot,
incluindo a execução do script em si, carregando o kernel e o disco RAM
e, por fim, iniciando o kernel como mostrado na Listagem 5.
Listagem 5. Fazendo boot de Angstrom
mmc1 is available
The user button is currently NOT pressed.
reading boot.scr
** Unable to read "boot.scr" from mmc 1:1 **
reading user.scr
755 bytes read
Running bootscript from mmc ...
## Executing script at 80200000
mmc1 is available
reading ramdisk.gz
19960110 bytes read
reading uImage
3190568 bytes read
Booting from ramdisk ...
## Booting kernel from Legacy Image at 80200000 ...
Image Name: Angstrom/2.6.32/beagleboard
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3190504 Bytes = 3 MB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux.....................................................................
[ 0.000000] Linux version 2.6.32 (ubuntu@ip-10-204-115-71) (gcc version 4.3.3 .......
Mensagens de boot do Linux se seguem e, por fim, o logotipo e prompt de login do Angstrom, como mostrado na Listagem 6.
Listagem 6. Console de login do Angstrom
.-------.
| | .-.
| | |-----.-----.-----.| | .----..-----.-----.
| | | __ | ---'| '--.| .-'| | |
| | | | | |--- || --'| | | ' | | | |
'---'---'--'--'--. |-----''----''--' '-----'-'-'-'
-' |
'---'
The Angstrom Distribution beagleboard ttyS2
Angstrom 2010.7-test-20100820 beagleboard ttyS2
beagleboard login:
Efetue login como root, nenhuma senha é necessária. É possível executar comandos básicos do Linux para testar o sistema. Tente executar testled e observe os diodos emissores de luz (LED) na BeagleBoard-xM.
Para ver o Angstrom em ação, é preciso um sistema de
arquivos raiz completo e um kernel correspondente. As seguintes
instruções mostram como fazer download e boot da imagem demo.
- Navegue para a página demo do Angstrom BeagleBoard e leia as instruções.
- Faça o download das imagens binárias para o loader
de boot e sistema de arquivos raiz a partir da página demo do Angstrom
BeagleBoard. Os arquivos necessários são:
-
mkcard.txt
- MLO
- u-boot.bin
- Angstrom-Beagleboard-demo-image-glibc-ipk-2010.3-beagleboard.rootfs.tar.bz2
03. Insira um cartão microSD com pelo menos 4GB de capacidade e determine
seu nome de dispositivo. Por exemplo, se estiver usando um leitor de
cartão USB, use fdisk e procure um disco correspondendo às características do cartão. O exemplo a seguir mostra /dev/sdg:
# fdisk -l
...
Disk /dev/sdg: 3.9 GB, xxx bytes
255 heads, 63 sectors/track, xxx cylinders
04. Desmonte quaisquer partições no cartão. Use o nome de dispositivo do seu cartão no lugar de /dev/sdg no seguinte exemplo:
sudo umount /dev/sdg?
05. Formate seu cartão SD usando mkcard.txt.
Nota: Esteja certo de que está selecionando seu cartão SD, e não um disco do sistema. Use o nome de dispositivo do seu cartão no lugar de /dev/sdg no seguinte exemplo:
chmod +x mkcard.txt ; sudo ./mkcard.txt /dev/sdg
Quando a operação estiver concluída, seu cartão microSD contém duas posições primárias:
- Uma partição de 70MB FAT rotulada boot.
- Uma partição ext3 rotulada Angstrom
que compõe o restante da capacidade do cartão.
Se seu sistema não montar automaticamente essas partições após o script
criá-las, monte-as manualmente, substituindo o nome de dispositivo do
seu cartão por /dev/sdg no seguinte exemplo:
sudo mkdir -p /media/boot ; sudo mount /dev/sdg1 /media/boot
sudo mkdir /media/Angstrom ; sudo mount /dev/sdg2 /media/Angstrom
O restante deste exemplo presume que essas partições estão montadas como /media/boot e /media/Angstrom.
06. Desempacote os arquivos para a partição do sistema de arquivos raiz (esse comando pode levar algum tempo):
sudo tar -C /media/Angstrom -xjvf
Angstrom-Beagleboard-demo-image-glibc-ipk-2010.3-beagleboard.rootfs.tar.bz2
07. Copie os arquivos para a partição de boot, notando que a imagem do kernel vem diretamente do sistema de arquivos raiz:
cp MLO /media/boot
cp u-boot.bin /media/boot
cp /media/Angstrom/boot/uImage /media/boot
08. Quando todas as operações estiverem concluídas, sincroniza os sistemas de arquivos e desmonte as partições:
sync ; sudo umount /dev/sdg?
09. Insira o cartão em BeagleBoard-xM e aplique energia.
Nota: Se o primeiro boot falhar com um erro como este:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block...
Reinicie o sistema, pare a contagem regressiva de boot e digite o seguinte comando:
setenv mmcroot /dev/mmcblk0p2 rw
Então faça o boot do sistema digitando boot. O primeiro boot leva um tempo enquanto o sistema
configura a si mesmo. O logotipo Angstrom aparece no monitor, enquanto
no console cada componente é configurado.
Depois de cerca de 10 minutos,
uma tela de login Angstrom aparece no monitor e um prompt de boot é
exibido no console. Use a tela de login para definir um novo usuário e
efetuar login. Também é possível efetuar login no console como root, nenhuma senha é necessária.
Fazendo boot do Android
O Android provou ser um sistema operacional popular para BeagleBoard,
uma vez que a placa é uma plataforma de baixo custo para
desenvolvimento e teste do aplicativo Android.
Há diversas portas do
Android para a BeagleBoard. Este artigo usa o projeto rowboat. Certifique-se de conectar um teclado USB e um mouse, bem como um monitor DVI antes de iniciar.
- Faça download do tarball binário pré-compilado a
partir da página Texas Instruments Android DevKit, certificando-se de
identificar a imagem pré-construída para o BeagleBoard-xM (beagleboard-xm.tar.gz). - Desempacote o tarball:
tar zxvf beagleboard-xm.tar.gz
03. Leia as instruções em README.txt.
04. Insira um cartão microSD com pelo menos 4GB de
capacidade e determine seu nome de dispositivo. Por exemplo, se estiver
usando um leitor de cartão USB, use fdisk e procure um disco correspondendo às características do cartão. O exemplo a seguir mostra /dev/sdg:
# fdisk -l
...
Disk /dev/sdg: 3.9 GB, xxx bytes
255 heads, 63 sectors/track, xxx cylinders
05. Formate seu cartão SD usando o script fornecido.
Nota: Esteja certo de que está selecionando seu cartão SD, e não um disco do sistema.
Use o dispositivo do cartão no lugar de /dev/sdg no seguinte exemplo:
mkmmc-android.sh /dev/sdg
Quando todas as operações estiverem concluídas, sincronize os sistemas de arquivo e desmonte as partições:
sync ; sudo umount /dev/sdg?
06. Insira o cartão microSD na BeagleBoard-xM e aplique alimentação.
O
primeiro boot leva um tempo enquanto o sistema configura a si mesmo.
Depois de cerca de quatro minutos, você deve ver o logotipo Android e
então uma tela inicial. Se a rede não ativar automaticamente, aguarde
outros cinco minutos e reinicialize. Observe que o console permanece
ativo e faz login automaticamente como root.
Fazendo boot do Ubuntu
O Ubuntu está rapidamente tornando-se uma distribuição popular para
netbooks, mobile
Internet devices (MIDs) e outros pequenos sistemas. A
Canonical, empresa-mãe do Ubuntu, dedicou recursos para fazer porta do
Ubuntu a processadores ARM, como a BeagleBoard. Como com o Android,
certifique-se de fazer plug-in em um monitor e teclado USB e mouse antes
de iniciar.
- Leia as instruções na página Ubuntu OMAP Maverick Install.
- Faça o download da imagem binária pré-compilada. Certifique-se de identificar a imagem para BeagleBoard-xM: Imagem de netbook pré-instalada para computadores TI OMAP3
(ubuntu-netbook-10.10-preinstalled-netbook-armel+omap.img.gz).
Não descompacte a imagem desta vez. - Insira um cartão microSD com pelo menos 4GB de
capacidade e determine seu nome de dispositivo. Por exemplo, se estiver
usando um leitor de cartão USB, use fdisk e procure um disco correspondendo às características do cartão. O exemplo a seguir mostra /dev/sdg:
# fdisk -l
...
Disk /dev/sdg: 3.9 GB, xxx bytes
255 heads, 63 sectors/track, xxx cylinders
04. Grave a imagem diretamente no cartão.
Nota: Esteja certo de que está selecionando seu cartão SD, e não um disco do sistema.
Use o dispositivo do seu cartão no lugar de /dev/sdg no exemplo a seguir:
sudo sh -c 'zcat
./ubuntu-netbook-10.10-preinstalled-netbook-armel+omap.img.gz > /dev/sdg'
Nota: Se seu BeagleBoard-xM for uma revisão A3, pode
ser preciso fazer download de um kernel diferente. Consulte a página de
instalação do Ubuntu Maverick para detalhes.
Quando todas as operações estiverem concluídas, sincronize os sistemas de arquivos e desmonte as partições:
sync ; sudo umount /dev/sdg?
- Insira o cartão na BeagleBoard-xM e aplique energia.
O
primeiro boot leva um tempo enquanto o sistema configura a si mesmo, e
durante esse período o monitor e o console podem permanecer escuros.
Depois de cerca de cinco minutos, o logotipo do Ubuntu aparece no
monitor, seguido por uma série de telas de configuração do sistema. Responda as perguntas de configuração usando o teclado e o mouse
conectado à BeagleBoard. Se a rede não ativar automaticamente, aguarde
até o sistema estar completamente operacional, desligue-o (acesse System e escolha Shut
Down), e depois reinicialize.
O console não permanece ativo para o Ubuntu. É preciso
interagir com o sistema através do monitor e do teclado ou mouse. Porém,
é possível instalar um servidor Virtual Network Computing (VNC) a
partir do Ubuntu Software Center e interagir com o sistema através da
VNC.
O que fazer a seguir
Cada um desses sistemas operacionais possui seu próprio ecossistema
de comunidade, incluindo sites da Web, wikis, listas de e-mails e canais
de Internet Relay Chat (IRC), assim como o BeagleBoard em si. Aproveite
esses excelentes recursos enquanto aprende sobre a BeagleBoard-xM e seu
sistema operacional escolhido.
Recursos
Aprender
-
BeagleBoard.org é o principal portal para tudo sobre a BeagleBoard, incluindo Manual de Referência do Sistema BeagleBoard-xM (PDF). Os dois principais sites para informações geradas pela comunidade são eLinux.org BeagleBoard wiki
e o menor wiki em code.google.com. - O principal site Angstrom possui muitas informações sobre a distribuição Angstrom. Informações sobre o uso da imagem de validação inclusa estão na página Diagnostics. É possível fazer o download do software para BeagleBoard na página demo Angstrom BeagleBoard
(certifique-se de ler as instruções na metade inferior da página).
Também é possível criar uma imagem pré-construída usando a ferramenta Narcissus
do Angstrom - Os recursos Android para a BeagleBoard-xM incluem o site da Web Rowboat , bem como a página Texas Instruments Android DevKit. Para saber mais sobre o sistema operacional Android em geral, inicie com a página do Android.
- Os recursos Ubuntu para BeagleBoard-xM incluir a página BeagleBoardUbuntu no eLinux.org bem como a página de instalação do OMAP Maverick no wiki do Ubuntu. Para saber mais sobre o sistema operacional Ubuntu em geral, inicie com a página principal do Ubuntu.
- Integrated Linux Primer, 2ª Ed. por Chris Hallinan (Prentice Hall, 2010) é um dos recursos absolutos para aprender sobre Linux integrado.
- “Boot do Linux na Beagle Board” (developerWorks, agosto de 2009) mostra como fazer boot do Linux na BeagleBoard revisão C.
-
The Open Source Way
é um wiki, livro e (em breve) livro-texto com conteúdo criado pela
comunidade dedicado a definir como as coisas são feitas no mundo da
abertura e para promover o software livre em novos domínios, como
educação, governo e negócios. -
Na zona Linux do developerWorks,
você encontrará muitos artigos e tutoriais de instruções, bem como downloads, fóruns de discussão e muitos outros recursos para desenvolvedores e administradores Linux. -
Fique por dentro dos eventos técnicos e webcasts do developerWorks
focados em uma série de produtos IBM e tópicos do segmento de mercado de TI. -
Participe de um briefing ao vivo e gratuito
developerWorks para se atualizar rapidamente sobre produtos e ferramentas IBM, bem como tendências do segmento de mercado de TI.
Discutir
- Visite a Lista de e-mails de discussão sobre BeagleBoard e o canal BeagleBoard IRC para discutir qualquer coisa sobre BeagleBoard.
-
Participe da comunidade do developerWorks.
Entre em contato com outros usuários do developerWorks e explore os
blogs, fóruns, grupos e wikis voltados para desenvolvedores.
***
artigo publicado originalmente no developerWorks Brasil, por Jeffrey Osier-Mixon
Jeffrey Osier-Mixon é escritor técnico, defensor de software livre e gerente de comunidade. Ele mantém um blog com atualizações diárias sobre software livre, possui um Meld integrado a uma comunidade Linux e faz palestras em conferências sobre o Linux.