Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM

17
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Laboratório de Sistemas Embarcados Críticos Tutorial: Instalação do sistema Linaro Ubuntu na placa Gumstix Overo® Fire COM Rayner de Melo Pires Sergio Zumpano Arnosti

Transcript of Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM

Page 1: Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM

Universidade de São Paulo

Instituto de Ciências Matemáticas e de Computação

Laboratório de Sistemas Embarcados Críticos

Tutorial: Instalação do sistema Linaro Ubuntu na placa Gumstix Overo® Fire COM

Rayner de Melo Pires –

Sergio Zumpano Arnosti –

Page 2: Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM

Laboratório de Sistemas Embarcados Críticos (LSEC) www.lsec.icmc.usp.br – [email protected]

2

São Carlos – SP

2014

Sumário

Informações Gerais ..................................................................................................................................................... 3

1. Obtendo o sistema Linaro ................................................................................................................................. 3

2. Obtendo o Linato Image Tools ......................................................................................................................... 3

3. Criando um cartão SD bootável ....................................................................................................................... 4

4. Inicializando o sistema na Gumstix ................................................................................................................ 6

5. Configurando uma conexão sem fio ............................................................................................................... 8

5.1. Configurar acesso para redes com criptografia WPA........................................................................ 8

5.2. Configurar acesso para uma rede Ad-Hoc .......................................................................................... 10

6. Atualização do sistema e dos pacotes ......................................................................................................... 13

7. Utilizando uma imagem de sistema pronta ................................................................................................. 14

8. Recomendações e considerações finais ..................................................................................................... 15

8.1. Criando um espaço de SWAP para o sistema .................................................................................... 16

9. Link Úteis ............................................................................................................................................................. 17

10. Agradecimentos e Contato .......................................................................................................................... 17

Page 3: Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM

Laboratório de Sistemas Embarcados Críticos (LSEC) www.lsec.icmc.usp.br – [email protected]

3

Informações Gerais Para este tutorial recomenda-se a utilização da distribuição Linux Ubuntu para Desktops a fim de

facilitar a instalação de programas e configuração do cartão SD.

Este tutorial visa auxiliar aos desenvolvedores na instalação do Linaro Ubuntu na placa Gumstix

Overo® Fire COM. Esta distribuição é baseada em Linux e foi desenvolvida para rodar em sistemas com

processador ARM. A placa de expansão utilizada é a Palo35.

Visando facilitar o entendimento deste tutorial, utiliza-se a tag [terminal-desktop] quando o comando

tiver que ser feito no computador e a tag [terminal-gumstix] para comandos no sistema instalado na placa.

Mais informações do Linaro podem ser obtidas em : http://www.linaro.org/

As distribuições Linaro podem ser obtidas em: http://releases.linaro.org/

Especificações técnicas da Overo® Fire COM: https://store.gumstix.com/index.php/products/227/

1. Obtendo o sistema Linaro

Para este tutorial será utilizado a versão final Linaro 11.10 para desenvolvedores, esta versão se

mostrou a mais estável e que contém uma boa gama de pacotes essenciais já instalados.

Linaro 11.10: http://releases.linaro.org/platform/latest/developer/latest

Faça o download dos seguintes arquivos pelo link acima:

- linaro-o-developer-tar-20111024-0.tar.gz

- hwpack_linaro-overo-20111024-0_armel_supported.tar.gz

- linaro-o-developer-tar-20111024-0.packages

Dentro do arquivo “linaro-o-developer-tar-20111024-0.packages” você poderá visualizar todos os

pacotes que vem instalados nesta versão.

2. Obtendo o Linato Image Tools

Em sistemas baseados no Linux Ubuntu você precisará simplesmente adicionar o repositório do

Linaro Tools e depois instalá-lo. Utilize os seguintes comandos no terminal:

[terminal-desktop]

$ sudo add-apt-repository ppa:linaro-maintainers/tools

$ sudo apt-get update

$ sudo apt-get install linaro-image-tools

Page 4: Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM

Laboratório de Sistemas Embarcados Críticos (LSEC) www.lsec.icmc.usp.br – [email protected]

4

Das ferramentas disponíveis no Image Tools, precisaremos do linaro-media-create. Para utilizar o

linaro-media-create em outras distribuições Linux, consulte instruções neste link:

https://wiki.linaro.org/Platform/DevPlatform/Ubuntu/ImageInstallation

3. Criando um cartão SD bootável

Obtenha um cartão microSD de pelo menos 8GB. Insira o cartão SD no leitor de cartões do seu

computador. Se o seu computador já tiver um leitor de cartões, utilize um adaptador de microSD para SD,

caso contrário utilize um leitor de cartão USB.

Coloque todos os arquivos baixados em uma única pasta para facilitar o procedimento. Vá até a

pasta que contém os arquivos e digite no terminal o seguinte comando:

Atenção: Verifique atentamente onde o seu cartão foi montado e substitua o X no comando “/dev/sdX”

pela letra correta que o seu sistema determinou.

Você pode verificar isso executando o comando “dmesg” logo após o cartão ser montado, deverá

aparecer algo semelhante à imagem abaixo, a parte destacada mostra o dispositivo que corresponde ao

cartão microSD, neste caso [sdb]:

[terminal-desktop]

$ sudo linaro-media-create --rootfs ext3 --mmc /dev/sdX –-binary linaro-o-

developer-tar-20111024-0.tar.gz --hwpack hwpack_linaro-overo-20111024-

0_armel_supported.tar.gz --dev overo

Page 5: Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM

Laboratório de Sistemas Embarcados Críticos (LSEC) www.lsec.icmc.usp.br – [email protected]

5

Após ter se certificado da letra correta do cartão execute o comando para criar os arquivos e

montar o cartão.

O processo levará alguns minutos, pois o linaro-media-create irá organizar e baixar os arquivos,

realizar o apt-get update, formatar e particionar o cartão e depois preencher o cartão com os arquivos

corretos. Chegando ao momento de preencher o cartão, esta parte pode demorar, aguarde até que o

processo tenha concluído, o terminal tenha voltado para a linha de comando e as partições “boot” e

“rootfs” tenham sido montadas automaticamente pelo sistema.

Inicio do linaro-media-create:

Fim do processo:

Terminado o processo, o cartão está pronto para ser inserido na placa.

Page 6: Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM

Laboratório de Sistemas Embarcados Críticos (LSEC) www.lsec.icmc.usp.br – [email protected]

6

4. Inicializando o sistema na Gumstix

Primeiramente baixe um software para realizar a conexão serial com a placa.

Se for utilizar o sistema operacional Windows, baixe o programa Putty e configure da seguinte

forma:

Observação: A “Serial Line” pode variar de acordo com a placa que você possui. Para verificar no

Windows, vá até o Gerenciador de Dispositivos -> Portas (COM e LPT) -> USB Serial Port(“porta”). No

lugar de “porta” estará escrito a sigla que deverá utilizar.

Se for utilizar o Linux, recomenda-se instalar o programa Screen. Depois de instalado em seu

computador, insira o cartão microSD no slot da Gumstix, após feito isso conecte a placa no computador

apenas utilizando o cabo USB, atente que o cabo deve estar conectado na porta CONSOLE da placa de

expansão e a placa não deve ser conectada na energia por enquanto. Utilize o seguinte comando em seu

computador para verificar qual nome foi atribuído ao dispositivo:

[terminal-desktop]

$ dmesg | grep tty

Page 7: Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM

Laboratório de Sistemas Embarcados Críticos (LSEC) www.lsec.icmc.usp.br – [email protected]

7

A Gumstix COM deve ser a última entrada, por exemplo:

Depois de identificado o nome do dispositivo, execute o seguinte comando:

Depois de conectado na Gumstix, ligue a placa na energia para que ela inicie o boot do sistema.

Pressione uma tecla qualquer durante a contagem dos 5 segundos para evitar o autoboot. Então a

tela deverá entrar na linha de comando do boot da Overo®, como se segue:

[ 0.000000] console [tty0] enabled

[ 0.853593] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

[ 1.047979] 00:09: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

[127.108578] usb 1-1.6: FTDI USB Serial Device converter now attached to ttyUSB0

[terminal-desktop]

$ sudo screen <USB DEVICE NAME> 115200

Por exemplo: $ sudo screen /dev/ttyUSB0 115200

reading u-boot.img

reading u-boot.img

U-Boot 2012.04.01 (Jul 19 2012 - 17:31:34)

OMAP36XX/37XX-GP ES1.2, CPU-OPP2, L3-165MHz, Max CPU Clock 1 Ghz

Gumstix Overo board + LPDDR/NAND

I2C: ready

DRAM: 512 MiB

NAND: 512 MiB

MMC: OMAP SD/MMC: 0

In: serial

Out: serial

Err: serial

Board revision: 1

Direct connection on mmc2

timed out in wait_for_pin: I2C_STAT=1000

I2C read: I/O error

Unrecognized expansion board

Die ID #2d3800229ff8000001683b060a00b012

Net: smc911x-0

Hit any key to stop autoboot: 0

Overo #

Page 8: Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM

Laboratório de Sistemas Embarcados Críticos (LSEC) www.lsec.icmc.usp.br – [email protected]

8

Na linha de comando da Overo, digite os seguintes comandos:

Isso fará com que a placa limpe a memória flash (NAND) que contém as informações de boot e

inicialize com o novo boot do cartão.

Observação: Só é necessário realizar este procedimento na primeira vez que desejar inserir um novo

sistema.

5. Configurando uma conexão sem fio

5.1. Configurar acesso para redes com criptografia WPA

Primeiramente será necessário modificar dois arquivos de configuração, o arquivo interfaces e o

wpa_supplicant.conf.

Vá até a pasta “/etc/network”, acesse o arquivo “interfaces” utilizando o editor de texto vim com o

seguinte comando:

Entre no modo de edição pressionando a tecla “ i ”, aparecerá o texto “–-INSERT--” na última

linha indicando que você entrou no modo de inserção, então adicione ao final do arquivo as seguintes

linhas:

Se desejar que a placa wireless seja inicializada e conecte logo ao realizar o boot da placa,

descomente a linha que contém “auto wlan0”.

Observação: Dependendo da sua placa Gumstix, o nome da interface wireless pode ser diferente de

wlan0.

Pressione a tecla “ESC” para voltar ao modo normal do vim, digite “:wq” para salvar as alterações e

sair do arquivo.

[terminal-gumstix]

# nand erase 240000 20000

# reset

[terminal-gumstix]

/etc/network# vim interfaces

auto lo

iface lo inet loopback

#auto wlan0

allow-hotplug wlan0

iface wlan0 inet dhcp

pre-up wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf -B

down killall wpa_supplicant

Page 9: Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM

Laboratório de Sistemas Embarcados Críticos (LSEC) www.lsec.icmc.usp.br – [email protected]

9

Vá até a pasta “/etc” acesse o arquivo “wpa_supplicant.conf” utilizando o editor de texto vim

novamente. Caso o arquivo não exista, crie um novo com o seguinte comando:

Entre no modo de edição novamente e insira as linhas no arquivo:

No lugar dos textos add-your-ascii-ssid e add-your-ascii-passphrase adicione o nome (SSID) da sua

rede sem fio e a senha respectivamente, lembrando que as aspas devem ser mantidas.

Para configurações em redes sem fio com outro tipo de criptografia ou abertas, acesse:

http://wiki.gumstix.org/index.php?title=Overo_Wifi

Para conectar a sua placa na rede que foi configurada no wpa_supplicant, primeiro é preciso ativar

a placa wireless, para isso digite o seguinte comando no terminal da Gumstix:

Feito isso, a interface wireless foi ativada e agora é necessário ativar a busca pela rede. Digite o

seguinte comando para que a placa se conecte a rede configurada:

Se a placa wireless foi ativada corretamente ao digitar novamente apenas o comando “ifconfig”

será possível ver que o dispositivo wireless(wlan) aparecerá como segue abaixo na imagem e terá um

endereço de ip atribuído:

[terminal-gumstix]

/etc# vim wpa_supplicant.conf

ctrl_interface=/var/run/wpa_supplicant

ctrl_interface_group=0

eapol_version=1

ap_scan=1

fast_reauth=1

network={

ssid="add-your-ascii-ssid"

proto=WPA2 # try WPA RSN if you WPA2 fails

key_mgmt=WPA-PSK

pairwise=CCMP TKIP

group=CCMP TKIP

scan_ssid=1

psk="add-your-ascii-passphrase"

priority=10

}

[terminal-gumstix]

# ifconfig <NOME_DO_DISPOSITIVO_WIRELESS> up

Por exemplo: ifconfig wlan0 up

[terminal-gumstix]

# ifup <NOME_DO_DISPOSITIVO_WIRELESS>

Por exemplo: ifup wlan0

Page 10: Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM

Laboratório de Sistemas Embarcados Críticos (LSEC) www.lsec.icmc.usp.br – [email protected]

10

Verifique se a conexão com a internet foi bem sucedida enviando pings para algum site da internet,

utilize para isso o seguinte comando:

Este comando enviará cinco requisições ao site google.com.br e se a conexão estiver correta, o

site retornará as respostas, caso contrário o terminal avisa que o servidor é inalcançável.

5.2. Configurar acesso para uma rede Ad-Hoc

Este tópico é focado na configuração de uma rede Ad-Hoc entre duas placas Gumstix, porém uma

vez configurada a rede, é possível conectar outros dispositivos.

Será necessário modificar novamente o arquivo interfaces. Vá até a pasta “/etc/network”, acesse o

arquivo “interfaces” utilizando o editor de texto vim como feito no item 5.1. Deixe o arquivo da seguinte

maneira:

[terminal-gumstix]

# ping google.com.br –c 5

auto lo

iface lo inet loopback

#auto wlan0

iface wlan0 inet static

address 192.168.1.1

netmask 255.255.255.0

wireless-mode ad-hoc

Page 11: Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM

Laboratório de Sistemas Embarcados Críticos (LSEC) www.lsec.icmc.usp.br – [email protected]

11

Para que outra placa conecte a esta rede, simplesmente faça a mesma configuração no arquivo

interfaces, mudando apenas o endereço de ip, porém mantendo a mesma classe, neste caso,

192.168.1.X.

Se desejar que a placa wireless seja inicializada e conecte logo ao realizar o boot da placa,

descomente a linha que contém “auto wlan0” retirando o símbolo #.

Page 12: Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM

Laboratório de Sistemas Embarcados Críticos (LSEC) www.lsec.icmc.usp.br – [email protected]

12

Quando a Gumstix estabelecer uma conexão sem fio, será possível visualizar que um LED azul se

acenderá e ficará estático na placa, como seguem nas imagens:

Page 13: Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM

Laboratório de Sistemas Embarcados Críticos (LSEC) www.lsec.icmc.usp.br – [email protected]

13

6. Atualização do sistema e dos pacotes

Para que a atualização via apt-get funcione corretamente, será necessário alterar as listas de

repositórios, uma vez que a versão Linaro 11.10 é um pouco antiga.

Acesse a pasta “/etc/apt”, edite o arquivo sources.list para que fique dessa maneira, adicionando os

repositórios necessários. Salve as alterações.

Agora acesse a pasta “/etc/apt/sources.list.d” e utilizando o símbolo # no início da linha, comente as

linhas dos seguintes arquivos:

- hwpack.security.list

- hwpack.ubuntu.list

- hwpack.updates.list

Matenha o arquivo overlay.list intacto.

Após realizados os procedimentos, digite os seguintes comandos no terminal para inicializar as

operações de atualização:

Terminadas as atualizações, reinicie a placa com o seguinte comando:

# /etc/apt/sources.list

#deb http://ports.ubuntu.com/ oneiric main universe

#deb-src http://ports.ubuntu.com/ oneiric main universe

#deb http://ports.ubuntu.com/ oneiric-security main universe

#deb-src http://ports.ubuntu.com/ oneiric-security main universe

#deb http://ports.ubuntu.com/ oneiric-updates main universe

#deb-src http://ports.ubuntu.com/ oneiric-updates main universe

deb http://old-releases.ubuntu.com/ubuntu oneiric main restricted universe multiverse

deb http://old-releases.ubuntu.com/ubuntu oneiric-updates main restricted universe multiverse

deb http://old-releases.ubuntu.com/ubuntu oneiric-security main restricted universe multiverse

# Optional

#deb http://old-releases.ubuntu.com/ubuntu/ oneiric-backports main restricted universe multiverse

#deb http://old-releases.ubuntu.com/ubuntu/ oneiric-proposed main restricted universe multiverse

[terminal-gumstix]

# apt-get update

Aguarde as tarefas do update terminarem...

# apt-get upgrade

[terminal-gumstix]

# reboot

Page 14: Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM

Laboratório de Sistemas Embarcados Críticos (LSEC) www.lsec.icmc.usp.br – [email protected]

14

Ao inicializar o sistema, você poderá reparar que no cabeçalho ele estará atualizado para a versão

12.03 do Linaro Ubuntu. Para ver qual a sua distribuição, também pode utilizar o seguinte comando no

terminal:

7. Utilizando uma imagem de sistema pronta

Se desejar utilizar uma imagem de sistema pronta, será preciso primeiro formatar o cartão

adequadamente e depois copiar a imagem.

Para formatar o cartão recomenda-se que seja utilizado o script disponível na página da Gumstix,

segue abaixo:

Copie este conteúdo para um novo arquivo com o nome “mk2partsd.sh”, após feito isso conceda

privilégios de execução ao arquivo com os seguintes comandos:

[terminal-gumstix]

# lsb_release -a

#! /bin/sh

#

# (c) Copyright 2014 Gumstix, Inc.

# Licensed under terms of GPLv2

#

# Based on mk2PartSDCard.sh from Texas Instrument

# http://processors.wiki.ti.com/index.php/How_to_Make_3_Partition_SD_Card

#

# example usage: $ sudo mk2partsd /dev/sdb

DRIVE=$1

dd if=/dev/zero of=$DRIVE bs=1024 count=1024

SIZE=`fdisk -l $DRIVE | grep Disco| awk '{print $5}'`

echo DISK SIZE - $SIZE bytes

CYLINDERS=`echo $SIZE/255/63/512 | bc`

sfdisk --force -D -uS -H 255 -S 63 -C $CYLINDERS $DRIVE << EOF

128,130944,0x0C,*

131072,,,-

EOF

if [ -b ${1}1 ]; then

mkfs.vfat -F 32 -n "boot" ${DRIVE}1

else

mkfs.vfat -F 32 -n "boot" ${DRIVE}p1

fi

if [ -b ${1}2 ]; then

mkfs.ext3 -L "rootfs" ${DRIVE}2

else

mkfs.ext3 -L "rootfs" ${DRIVE}p2

fi

Page 15: Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM

Laboratório de Sistemas Embarcados Críticos (LSEC) www.lsec.icmc.usp.br – [email protected]

15

Depois execute o script:

Onde o X em “/dev/sdX” é a letra atribuída pelo sistema ao cartão microSD.

Observação: O script foi adaptado para sistemas em português, caso seu sistema esteja em inglês, será

necessário modificar o comando “grep Disco” para “grep Disk”.

Formatado o cartão, pegue o arquivo de imagem e execute o seguinte comando para transferir a

imagem ao cartão:

Atenção: Este processo pode demorar várias horas dependendo do tamanho original da imagem, por isso

seja paciente.

Para acompanhar o processo de cópia, abra um novo terminal e utilize o seguinte comando:

Este comando mostrará o processo de cópia no primeiro terminal de tempos em tempos, de acordo

com o valor definido por você no lugar de “<INTERVAL IN SECONDS>”.

8. Recomendações e considerações finais

1 - Caso a placa apresente kernel panic na primeira inicialização, simplesmente desligue a mesma

da energia e da porta USB, reconecte a placa no computador, realize a conexão serial pelo software e

ligue na energia para realizar o boot novamente, o sistema de arquivos será corrigido e a placa deverá

inicializar normalmente.

2- Caso o terminal da placa fique travado, desligue a mesma e verifique se a Gumstix está bem

encaixada na placa de expansão.

3 - Para desligar a placa de forma segura sem corromper o sistema de arquivos, procure sempre

utilizar o seguinte comando:

[terminal-desktop]

$ sudo chmod +x mk2partsd.sh

[terminal-desktop]

$ sudo ./mk2partsd.sh /dev/sdX

[terminal-desktop]

$ sudo dd if=arquivo.img of=/dev/sdX

[terminal-desktop]

$ sudo watch -n <INTERVAL IN SECONDS> kill -USR1 $(pgrep '^dd$')

[terminal-gumstix]

# shutdown –h now

Page 16: Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM

Laboratório de Sistemas Embarcados Críticos (LSEC) www.lsec.icmc.usp.br – [email protected]

16

Quando aparecer a mensagem “System halted” a placa já pode ser desligada da tomada e do

computador.

3 - Este tutorial serve para qualquer outra distribuição ou hardware pack que deseje utilizar.

4 - Crie um espaço de SWAP para o seu sistema.

8.1. Criando um espaço de SWAP para o sistema

Para criar um SWAP de 512MB, faça os seguintes procedimentos:

a- Coloque o cartão microSD em seu computador, acesse a pasta “rootfs”

b- Dentro deste diretório crie um novo arquivo com o nome “swap512.swap”, você pode

escolher outro nome se quiser. Recomenda-se utilizar o seguinte comando:

c- Agora vamos alocar o espaço necessário com o seguinte comando:

d- Alocado o espaço necessário, crie o swap com o seguinte comando:

e- Feito os passos anteriores, desmonte o cartão do computador e retire o mesmo

ejetando.

f- Insira o cartão microSD novamente no slot da Gumstix e faça os procedimentos para

iniciar o sistema.

g- Depois de iniciado, vá até a pasta de root (“/”) e execute o seguinte comando para ativar

o swap:

h- Verifique se o swap foi ativado corretamente:

i- Para ativar o swap automaticamente toda vez que iniciar o sistema, coloque o comando

do passo g dentro do arquivo “rc.local” que se encontra dentro da pasta “/etc”.

[terminal-desktop]

$ sudo touch swap512.swap

[terminal-desktop]

$ sudo dd if=/dev/zero of=swap512.swap bs=1024 count=524288

[terminal-desktop]

$ sudo mkswap swap512.swap

[terminal-gumstix]

# swapon swap512.swap

[terminal-gumstix]

# free -m

Page 17: Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM

Laboratório de Sistemas Embarcados Críticos (LSEC) www.lsec.icmc.usp.br – [email protected]

17

9. Links Úteis

Gumstix Developer Center - http://www.gumstix.org/

Wiki da Gumstix - http://wiki.gumstix.org/index.php?title=Main_Page

Site do Linaro - http://www.linaro.org/

Distribuições Linaro - http://releases.linaro.org/

10. Agradecimentos e Contato

Agradecemos ao leitor por ler e utilizar o nosso tutorial. Quaisquer erros, dúvidas ou sugestões

podem ser enviados para os e-mails na capa deste tutorial ou para o e-mail do Laboratório de

Sistemas Embarcados Críticos (LSEC) - [email protected].

A reprodução parcial ou completa desse documento deverá incluir a citação do mesmo e de seus

autores.