Como inicializar a Intel Edison pelo o cartão SD usando o Ubilinux

On 9 de janeiro de 2017 by Thiago Urzedo

Intel Edison. Esse tutorial irá descrever como inicializar o Ubilinux pelo cartão SD na Intel Edison.

Primeiramente, vamos precisar instalar o Ubilinux na memória interna da Intel Edison, só depois inicializar a imagem pelo cartão SD.

1 – Instalando o Ubilinux na memória interna da Intel Edison

1.1 – Antes de começar, você ira precisar dos seguintes itens:

1.2 – Agora, extraia o(s) arquivo(s) que você baixou. Caso use Windows, você precisa copiar o arquivo dfu-util.exe (que se encontra na pasta “win32-mingw32” dentro do arquivo dfu-util que você baixou) e colar dentro da pasta toFlash (é criada quando se extrai o arquivo do Ubilinux).

Copie o arquivo dfu-util.exe

Cole na pasta toFlash

 

 

 

 

 

1.3 – Navegue até a pasta toFlash e execute o arquivo flashall.bat (caso use Windows) ou flashall.sh (caso use Linux).

Execute flashall.bat ou flashall.sh

1.4 – Agora você verá a seguinte mensagem “Now waiting for dfu device” ou algo do tipo, depois disso, conecte sua Edison via usb ao computador. Logo após se iniciará a instalação. Esse processo deve demorar algo em torno de 5 a 10 minutos. Quando terminado, você receberá a seguinte mensagem “Your board needs to reboot twice to complete the flashing procedure, please do not unplug it for 2 minutes”. Como diz a mensagem, não remova o cabo da Intel Edison por no mínimo 2 minutos, pois o processo de instalação ainda está acontecendo. Caso por algum motivo o cabo usb da Edison for removido durante esse tempo, pode acontecer de seu dispositivo ficar em um estado irrecuperável, por tanto, tenha cuidado.

Aguarde o processo de instalação

1.5 – Pronto, agora o Ubilinux já está instalado da memória interna da Edison. Agora vamos precisar fazer uma conexão serial para poder acessar o sistema. Para isso conecte a Intel Edison ao computador usando 2 cabos usb.

Caso esteja usando Windows, você primeiro terá que descobrir o número da porta que o Windows atribuiu a Intel Edison. Para isso, abra o gerenciador de dispositivos e expanda “Portas (COM e LPT)” e você deverá ver USB Serial Port(COM x). Guarde o número do COM.

Número da porta serial

Agora abra o Putty, marque “Serial” na “Connection type”, no campo “Serial line” insira o número da sua porta, em “Speed” coloque 115200 e clique em “Open”.

Conexão serial com o Putty

Depois disso, você verá uma tela preta. Pressione “Enter” e a tela de login irá aparecer. Por padrão, login: root e senha: edison

Já se estiver usando Linux, abra o terminal e entre com o seguinte comando:

sudo screen /dev/ttyUSB0 115200

Depois disso, aperte “Enter” e a tela de login irá aparecer. Por padrão, login: root e senha: edison

2 – Inicializando a Intel Edison pelo cartão SD

2.1 – Para essa segunda fase, você irá precisar usar o Linux, já que iremos trabalhar com partições e arquivos com extensões ext4 e o windows não trabalha com arquivos ou partições deste formato. Dito isso, primeiro você precisa formatar seu cartão SD para o formato ext4. Você pode fazer isso usando o GParted ou o próprio sistema.

2.2 – Feito isso, abra o terminal e navegue até a pasta “toFlash” e, insira os seguintes comandos:

sudo -s
mkdir Rootfs
mount ./edison-image-edison.ext4 Rootfs
# Aqui substitua a segunda parte pelo caminho de seu cartão sd
# Exemplo: /media/usuário/nome-do-seu-cartão
# Caso não saiba o nome seu cartão, digite no terminal: ls /media/usuário 
cp -a Rootfs/* /media/thiago/eb361b92-c285-44a6-9f32-da393c879487
sync

2.3 – Agora, insira o cartão SD na Intel Edison e, pelo terminal da conexão serial, digite o seguinte comando para descobrir o nome do dispositivo:

dmesg | tail -n 10

Nome do cartão SD

No exemplo acima, o nome do cartão SD é “/dev/mmcblk1” e sua partição primária é “/dev/mmcblk1p1”

2.4 – O sistema Debian da Intel Edison não monta o cartão SD  automaticamente. Para montar o sdcard na partição boot, você precisa modificar o arquivo do sistema /etc/fstab na Intel Edison. Para isso, primeiro precisamos achar o UUID para o cartão SD, então digite o seguinte comando na Intel Edison:

blkid

UUID do cartão SD

2.5 – Agora com o UUID em mãos, você pode adicionar uma entrada no arquivo do sistema para a partição ser montada automaticamente quando o sistema for inicializado. Para isso digite os seguintes comandos:

nano /etc/fstab
# Substitua essa primeira parte pela UUID do seu cartão, não se esqueça de retirar as aspas
UUID=eb361b92-c285-44a6-9f32-da393c879487    /media/sdcard    ext4    defaults    0 0

Inicialização do cartão sd no fstab

Apos isso, aperte “Ctrl + x”, depois “y” e depois “Enter” para salvar e sair.

Então insira os seguintes comandos:

mkdir -p /media/sdcard/
reboot

Com isso, a Edison irá reiniciar. Depois de reiniciar, se você digitar o comando “df -h”, verá que o sistema montou o cartão SD.

Cartão SD montado automaticamente

Perceba na imagem acima que embora o cartão tenha sido montado pelo sistema operacional, ainda não podemos utiliza-lo como um armazenamento do sistema. Então ter que monta-lo no rootfs e, para isso, teremos que modificar a variável do sistema U-Boot, chamada “mmc-bootargs” com argumentos de inicialização do kernel. Todavia, o U-Boot não pode ser modificado pelo console linux no Debian OS. Somente é possível pelo Prompt de comando do U-Boot.

2.5 – Para ter acesso ao Prompt de comando do U-Boot, reinicie a Intel Edison e fique atento a tela. Quando você ver uma mensagem dizendo “Hit any key to stop autoboot”, pressione qualquer tecla e o Prompt de comando irá aparecer, interrompendo a inicialização do sistema.

Prompt de comando do U-Boot

Então entre com os seguintes comandos:

Na segunda e terceira linha, confira se o nome de seu cartão é igual ao que está abaixo

setenv mmc-bootargs 'setenv bootargs root=${myrootfs} rootdelay=3 rootfstype=ext4 ${bootargs_console} ${bootargs_debug} systemd.unit=${bootargs_target}.target hardware_id=${hardware_id} g_multi.iSerialNumber=${serial#} g_multi.dev_addr=${usb0addr}'

setenv myrootfs '/dev/mmcblk1p1'

setenv myrootfs_sdcard /dev/mmcblk1p1

setenv myrootfs_emmc PARTUUID=012b3303-34ac-284d-99b4-34e03a2335f4

setenv do_boot_emmc 'setenv myrootfs ${myrootfs_emmc}; run do_boot'

setenv do_boot_sdcard 'setenv myrootfs ${myrootfs_sdcard}; run do_boot'

setenv bootdelay 5

saveenv

run do_boot_sdcard

U-Boot

Depois de inserido o último comando, a Edison irá reiniciar. O sistema pode demorar um pouco para iniciar na primeira vez.

Depois de iniciado o sistema, se você digitar “df -h” no console, verá que o “rootfs” agora tem o tamanho do seu cartão SD.

Rootfs expandido com o cartão SD

Referências:

 

Deixe um comentário

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