Como inicializar a Intel Edison pelo o cartão SD usando o Ubilinux
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:
- Imagem do Ubilinux
- O Pacote dfu-util
- Caso use Windows baixe desse link
- Caso use Linux, abra o terminal e digite:
sudo apt-get install dfu-util
- Drivers usb, caso use Windows
- Putty, caso use o Windows, para fazer a conexão com a Intel Edison
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).
1.3 – Navegue até a pasta toFlash e execute o arquivo flashall.bat (caso use Windows) ou flashall.sh (caso use Linux).
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.
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.
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”.
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
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
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
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.
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.
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
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.
Referências:
- https://learn.sparkfun.com/tutorials/loading-debian-ubilinux-on-the-edison
- https://sarweshcr.blogspot.com.br/2015/11/Boot-Intel-Edison-from-SD-card-with-Debian-or-Ubilinux.html