Fazendo boot do Linux na BeagleBoard-xM

Inicie com esta pequena plataforma aberta para o desenvolvimento de dispositivo

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.

Jeffrey M. Osier-Mixon, Technical Writer, MontaVista Software, Inc.

Author photo - Jeffrey Osier-MixonJeffrey 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.



14/Dez/2010

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, bem 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
Picture of the 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:

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.

  • 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.

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

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.

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.


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.

  1. Navegue para a página demo do Angstrom BeagleBoard e leia as instruções.
  2. 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
  3. 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
  4. 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?
  5. 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.

  6. 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
  7. 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
  8. Quando todas as operações estiverem concluídas, sincroniza os sistemas de arquivos e desmonte as partições:
    sync ; sudo umount /dev/sdg?
  9. 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.

  1. 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).
  2. Desempacote o tarball:
    tar zxvf beagleboard-xm.tar.gz
  3. Leia as instruções em README.txt.
  4. 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
  5. 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?
  6. 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.

  1. Leia as instruções na página Ubuntu OMAP Maverick Install.
  2. 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.
  3. 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
  4. 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?
  5. 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

Obter produtos e tecnologias

  • Avalie os produtos IBM da maneira que for melhor para você: faça download da versão de teste de um produto, avalie um produto online, use-o em um ambiente de nuvem ou passe algumas horas na SOA Sandbox aprendendo a implementar Arquitetura Orientada a Serviços de modo eficiente.

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Linux, Software livre
ArticleID=630550
ArticleTitle=Fazendo boot do Linux na BeagleBoard-xM
publish-date=12142010