“Recentemente” a Intel liberou uma imagem Linux atualizada para a Intel Galileo Gen1 e Gen2 contendo algumas melhorias e atualizações para o sistema dessa incrível placa.
Para quem não sabe, a Intel Galileo Gen2 roda Linux em um processador Intel Quark X1000, operando a 400 MHz com 256 MB de RAM. Em outras palavras, é um processador x86 para aplicações embarcadas de controle e automação. Ou seja, ela é bem mais poderosa do que um tradicional Arduino da vida. Você pode executar um simples Sketch de Arduino nela, ou escrever um programa em Python com banco de dados e conexão com serviços na nuvem, por exemplo, fazendo uso do sistema Linux que ela executa.
O Adilson Thomsen já escreveu sobre a Galileo Gen2 aqui no Blog MakerHero, a saber:
- Primeiros Passos com Galileo Gen2 – Mostra como instalar e configurar o Arduino IDE para fazer interface de comunicação e programação com a placa.
- Trabalhando com Linux e Python na Galileo Gen2 – Mostra como instalar o sistema Linux em cartão para usar Python com a Galileo Gen2.
Todavia, dos tempos desses artigos para cá a Intel realizou atualizações na imagem, e o próprio processo de gravação da imagem em cartão foi modificado também. Assim, irei mostrar como gravar a imagem de cartão e como localizar a Intel Galileo Gen2 na rede.
“André, mas a Galileo já não vem com Linux na memória interna dela?” – Sim, fato. Mas a memória interna dela é pequena, bem pequena: 8 MB. Suficiente apenas para rodar alguns scripts e executar os binários de Arduino, por exemplo. Se você quiser algo mais “requintado”, por assim dizer, terá que usar uma imagem gravada em cartão de memória!
E mais: Com essa imagem atualizada é possível instalar o Python, bibliotecas como OpenCV, executar NodeJS, dentre outros. Ou seja, você terá muito mais funcionalidades com a placa, indo além do tradicional Arduino.
Receita de Bolo
Para esse artigo, iremos usar os seguintes itens e ferramentas:
- Intel Galileo Gen2 com fonte de alimentação, cabo de rede Ethernet;
- Roteador com uma porta Ethernet disponível;
- Cartão microSD – recomendo pelo menos 4 GB ou 8 GB;
- Imagem Linux Poky para Intel Galileo Gen2;
- Programa Win32DiskImager
- Programa Advanced IP Scanner
- Programa Putty
Baixando e Gravando a imagem de cartão
O primeiro passo é ir na página de Downloads da Intel para a Galileo Gen2 – Disponível neste link. Nessa página é possível ter acesso ao link de download da imagem Linux Poky (feita com Yocto) para a Intel Galileo Gen2.
Feito o download da imagem, no momento da escrita desse artigo, você terá um arquivo chamado iot-devkit-prof-dev-image-galileo-20160606.zip. Descompacte esse arquivo em um diretório de sua preferência, usando um WinZip, WinRAR ou 7zip da vida.
Quem já gravou imagens para Raspberry Pi ou correlatos da vida, deve estar esperando encontrar um arquivo com extensão *.img dentro desse arquivo *.zip compactado. Mas… A Intel colocou o arquivo com extensão *.direct! Não estranhe, está tudo certo, está tudo bem 😉
Descompactado o arquivo que você baixou da Intel, você terá então um arranjo da seguinte forma:
O próximo passo agora é usar o Win32DiskImager para gravar a imagem que baixamos de cartão na Intel Galileo Gen2. O programa está disponível no SourceForge neste link. A instalação é OK, o típico “procedimento padrão” – próximo, próximo, etc.
Instalado o programa, insira o cartão microSD usando um adaptador USB ou um adaptador de cartão SD, caso esteja usando um notebook com entrada para cartão, por exemplo.
Agora, abra o programa Win32DiskImager instalado no seu computador com Windows. Após abrir o programa, você irá observar uma janela tal como a mostrada na imagem da Figura 3 logo abaixo, com 2 itens que destaco para o nosso processo:
- 1o Item – ícone para abrir a janela de seleção para o arquivo de imagem a ser gravado.
- 2o Item – Lista de seleção para unidade de disco (ou cartão…) onde será gravada a imagem.
Clique no ícone indicado pelo número 1 da Figura 3, e irá abrir uma janela do Windows Explorer para você selecionar a imagem que usaremos para gravar o cartão microSD. Como padrão, o programa espera encontrar arquivos no formato *.img, mas a nossa imagem está no formato *.direct, lembram? Assim, clique na lista de seleção destacada no canto inferior direito da Figura 4 e selecione a opção *.* para que o programa exiba todos os arquivos. Selecione então a imagem iot-devkit-prof-dev-image-galileo-20160606.direct, no local em que foi descompactada, e clique em Open.
Feito isso, ATENÇÃO: Vamos selecionar a unidade de disco no campo “Device” do Win32DiskImager, conforme destacado no item 2º da Figura 3. Verifique pelo Windows Explorer qual é a unidade de disco do microSD que você inseriu no seu computador. No meu caso, o Windows Explorer identificou a unidade como sendo a G:. Isso é muito importante porque o programa irá sobrescrever os dados da unidade (ou cartão), gravando a imagem que selecionamos. Se você selecionou a unidade certa, OK. Mas se selecionar a errada… Aí é uma dor de cabeça. Então, atenção nessa parte!
Vejam na Figura 5 que meu cartão microSD inserido no computador foi identificado como um “USB Drive”, como unidade G:
Feito isso, deixe marcado então no campo Device a unidade correspondente ao cartão microSD no seu computador, e agora vem o ponto-chave: A gravação! Clique no botão Write, conforme indicado na Figura 6, para que o programa faça então o processo de gravar o arquivo de imagem no cartão microSD. Paciência, pois esse processo pode demorar uns bons minutos.
Como o processo irá sobrescrever os arquivos da unidade selecionada, o programa irá exibir um aviso tal como o da imagem da Figura 6. Clique em Yes caso tenha selecionado corretamente a unidade e tenha certeza em continuar com o processo.
Agora é esperar…
Se tudo correu bem, e assim esperamos que corra bem, o programa irá exibir ao final uma janela tal como a mostrada na Figura 8. Clique em OK.
Terminado, faça a remoção com segurança do adaptador USB/adaptador de cartão microSD (nos mesmos moldes que você faz – ou deveria fazer – com pendrives no Windows).
É importante remover com segurança para que o sistema finalize eventuais processos vinculados à unidade, o que reduz as chances de o cartão acabar sendo corrompido.
Startup e Conexão SSH com Galileo Gen2
Beleza, gravamos o cartão com a imagem mais nova, agora é hora de colocar ele na Galileo Gen2, ligar a placa e colocar ela na rede!
Primeiro – Insira o cartão microSD no conector para cartão microSD da Intel Galileo Gen2.
Segundo – Ligue o cabo de rede Ethernet no seu roteador e na Intel Galileo Gen2
Terceiro – Ligue o cabo de energia da fonte que acompanha a placa, e ligue a fonte na tomada para energizar a placa.
Antes, para sabermos o endereço IP da Intel Galileo e sermos capazes de acessar ela pela rede, era necessário gravar um Sketch de Arduino nela, capaz de ler os dados da rede e enviar via Serial.
Com essa nova imagem, o serviço de SSH já vem acionado por padrão no Linux Poky da Galileo Gen2. Isso significa que basta localizarmos o IP da placa na rede para podermos acessar o console do sistema Linux, e até mesmo termos acesso aos arquivos da placa, dentre outros.
Para localizarmos a placa na rede, iremos usar o programa Advanced IP Scanner, que é gratuito. Acesse o site do programa e clique no ícone verde Free Download, que irá levar você a uma outra página, específica para Download. Nessa página, clique no ícone verde no canto superior direito da página, Download Latest Version. Baixe e faça a instalação (procedimento padrão!). Esse programa tem um modo de operação “standalone”, ou seja, não instala – executa diretamente. Não recomendo… Como uso ele com frequência, deixo instalado já de cara, ok?
Abra o Advanced IP Scanner e clique no botão Scan, para que ele comece a procurar pelos dispositivos na sua rede local.
A Intel Galileo Gen2 irá aparecer com o nome galileo.home, conforme mostrado na Figura 10. Observe ao lado do nome o endereço IP dela na rede, iremos usar esse endereço para acessá-la logo adiante.
A despeito de existirem diversos programas para acessar um sistema Linux via SSH, iremos usar o Putty por ser gratuito, simples e prático. Você pode baixar o programa nesta página – Selecione o putty-0.68-installer.msi para máquinas x86 ou o putty-64bit-0.68-installer.msi para máquinas x64. Faça o download e realize a instalação do programa logo em seguida. Terminada a instalação, abra o programa Putty.
O Putty já é aberto com a opção de acesso via SSH selecionada por padrão. Assim, no campo Host Name (IP), coloque o endereço IP da Intel Galileo Gen 2, localizado pelo Advanced IP Scanner. A porta de acesso é a 22, padrão do SSH. Feito isso, clique em Open para iniciar a conexão via SSH com o Linux Poky da Intel Galileo Gen2.
O protocolo SSH é uma forma segura para acesso a sistemas remotamente. De uma forma resumida, há uma troca de chaves que garantem um acesso autorizado ao sistema. Assim, na primeira vez que você for acessar o sistema Linux da Intel Galileo Gen2, no endereço IP informado, o Putty irá notificar a adição da chave de acesso, tal como mostrado na Figura 12. Clique em Yes para adicionar e continuar com o acesso. Caso a Intel Galileo Gen2 mude de endereço IP, haverá uma nova troca/adição de chaves, ok?
Com o acesso autorizado, a primeira mensagem que irá aparecer é um campo (login as: ) para você inserir o usuário o qual deseja usar no acesso. Por padrão, o Poky Linux da Intel Galileo Gen2 está com o usuário root, sem senha. Então, digite root e aperte a tecla ENTER. O acesso agora está garantido! Observe na Figura 13 como fica. Em termos de sistema Linux, o console será exibido como “root@galileo: ~#” – root por ser o usuário, galileo pelo nome da máquina (hostname), ~ é o diretório raiz, e # indica que o console está como super-usuário (root).
Um panorama sobre o Poky Linux para Intel Galileo Gen2
Essa versão do Poky Linux para a Intel Galileo Gen2 está realmente fantástica! Para makers e desenvolvedores de plantão, é um prato cheio para a criação de aplicações em Java, Python, NodeJS e até C/C++, pois já vem com os compiladores/interpretadores instalados. Veja na Figura 14 uma “prova” disso.
Ela já vem até com servidor Web Lighttpd instalado e configurado. Acesse o endereço IP que você usou para acessá-la no Putty via SSH em um navegador. No meu caso, acessei o IP 192.168.1.35 no Firefox, e pude ver a mensagem “It works” exibida. Ficou curioso? Essa página está no diretório /www/pages da Intel Galileo. Eu editei o arquivo e olha só:
Alguns usuários começaram usando a Intel Galileo Gen2 no modo Arduino, mais purista… Brincando com a placa usando simplesmente o Arduino IDE. Mas ela tem muito mais recursos! Aventure-se pelo mundo de Linux Embarcado e explore o desenvolvimento de aplicações embarcadas em Java, C/C++, Python e NodeJS. Você pode criar mecanismos que controlam os recursos da Intel Galileo Gen2, ao mesmo tempo que realiza comunicação com serviços na nuvem tais como Azure, Amazon, etc.
Gostou? Deixe seu comentário logo abaixo.