Intel Edison Linux - Dicas e Truques

intel edison linux

Neste artigo iremos aprender como proceder com as tarefas mais comuns de configuração da Intel Edison. Caso deseje, utilize a seção de comentários, para sugerir outras operações a serem adicionadas no artigo. O computador Host que será utilizado nesse tutorial é um Ubuntu 14.04.

 

 

Você irá aprender a:

Atualizar o Firmware

Conectar à internet pela interface USB

Configurar a conexão Wireless

Instalação de pacotes adicionais

Adicionar um Script na Inicialização do Sistema

 

Você pode também construir a sua própria distribuição Linux embarcado do zero para a Edison.

 

 

Update do Firmware do Intel Edison Linux

 

No momento da escrita desse artigo o a versão mais recente liberada pela Intel é 2.1. Portanto iremos mostrar o procedimento de update de firmware da Intel Edison para esta versão usando o Flash Tool Lite.

 

Vamos fazer o download do firmware e instalação do Flash Tool Lite. Abra o terminal (Ctrl+Alt+T) e digite:

 

# Intalação dos pacotes necessários
sudo apt-get install gdebi libncurses5:i386 libstdc++6:i386

# Download e descompactação da imagem
wget http://downloadmirror.intel.com/24910/eng/edison-image-ww18-15.zip -P ~/Downloads
unzip ~/Downloads/edison-image-ww18-15.zip -d ~/Downloads/edison-image-ww18-15

# Download e Instalação do Flash Tool Lite
wget http://downloadmirror.intel.com/24910/eng/phoneflashtoollite_5.2.4.0_linux_x86_64.deb -P ~/Downloads
sudo gdebi ~/Downloads/phoneflashtoollite_5.2.4.0_linux_x86_64.deb

# Aceite a Intel Property License(IPL)

 

Agora vamos executar o Flash Tool Lite pelo terminal:

 

phoneflashtoollite

 

E teremos a seguinte tela:

 

intel edison flash tool lite
Tela inicial do Flash Tool Lite

 

 

 

 

Selecione o arquivo "~/Downloads/edison-image-ww18-15/FlashEdison.json" seguindo os passos enumerados na figura abaixo e no final pressione o botão "Start to flash".

 

flash tool lite
Gravação do firmware no Flash Tool Lite

 

Posicione a chave SW1 próxima ao conector micro USB de acordo com a figura abaixo:

 

intel edison sw1 setup
Posicionamento da chave SW1 para gravação do firmware

 

e conecte a Edison ao seu computador através do cabo micro USB:

 

intel edison usb setup
Conexão USB para gravação do firmware

 

A placa será energizada e o processo de gravação será iniciado. No final teremos a seguinte tela no Flash Tool Lite:

 

flash tool lite
Processo de gravação do firmware finalizado

 

Pronto. Agora é só esperar alguns pouco minutos e a sua Intel Edison estará rodando o Linux mais recente.

 

 

 

Conectando a Intel Edison à internet pela interface USB

 

Para conectarmos a Intel Edison à internet através da interface USB teremos que conectá-la ao computador (que está conectado à internet) e compartilhar o seu acesso à rede mundial de computadores com a nossa placa.

 

Posicione a chave SW1 próxima ao conector micro USB de acordo com a figura abaixo:

 

intel edison sw1 setup
Posicionamento da chave SW1 para conexãoUSB

 

e conecte a Intel Edison ao seu computador através do cabo micro USB:

 

intel edison usb setup
Conexão USB com o computador

 

 

Após algum tempo Linux da Edison irá subir e no seu computador irá aparecer uma conexão de rede nova. Abra o terminal (Ctrl+Alt+T) e digite:

 

ifconfig

 

Teremos uma mensagem semelhante a essa:

 

usb0      Link encap:Ethernet  HWaddr 56:7e:d3:3b:b7:fd  
          inet addr:10.42.0.1  Bcast:10.42.0.255  Mask:255.255.255.0
          inet6 addr: fe80::547e:d3ff:fe3b:b7fd/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:191 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3827 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:25544 (25.5 KB)  TX bytes:804930 (804.9 KB)

 

Note que existe a interface  de rede "usb0". Você deverá configurar o teu computador para compartilhar a internet nessa interface. Para isso siga as instruções desse artigo.

 

Agora iremos nos conectar à interface serial de console da Edison ao nosso computador:

 

intel edison console setup
Conexão para console serial

 

Instale o aplicativo screen e abra a conexão com a placa:

 

sudo apt-get install screen
sudo screen /dev/ttyUSB0 115200

O usuário padrão da placa é "root" e não possui senha.

 

Vamos configurar a placa para receber as configurações de rede do nosso computador. Digite os seguintes comandos:

 

mkdir -p /etc/network
echo -e "auto usb0\niface usb0 inet dhcp" > /etc/network/interfaces

echo -e "[Unit]\nDescription=Start ifup for %I\nAfter=network.target\n\n[Service]\nExecStart=/sbin/ifup %I\nExecStop=/sbin/ifdown %I\nRemainAfterExit=true\n\n[Install]\nWantedBy=multi-user.target" > /lib/systemd/system/[email protected]

 

Criamos os arquivos "/etc/network/interfaces" e "/lib/systemd/system/[email protected]" com os seguintes conteúdos:

 

/etc/network/interfaces:
auto usb0
iface usb0 inet dhcp

/lib/systemd/system/[email protected]:
[Unit]
Description=Start ifup for %I
After=network.target

[Service]
ExecStart=/sbin/ifup %I
ExecStop=/sbin/ifdown %I
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

 

Agora iremos habilitar a interface usb0 e receber as configurações de rede com os seguintes comandos na placa:

 

systemctl enable [email protected]
systemctl start if[email protected]

 

Toda vez que o sistema reiniciar ele irá receber as configurações de rede através do computador.

 

Vejamos como ficaram as configurações através dos comandos "ifconfig" e "route":

 

ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:19 errors:0 dropped:0 overruns:0 frame:0
          TX packets:19 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1698 (1.6 KiB)  TX bytes:1698 (1.6 KiB)

usb0      Link encap:Ethernet  HWaddr 02:00:86:53:b9:f6  
          inet addr:10.42.0.29  Bcast:10.42.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4087 errors:0 dropped:0 overruns:0 frame:0
          TX packets:195 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:620690 (606.1 KiB)  TX bytes:37314 (36.4 KiB)

 

route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.42.0.1       0.0.0.0         UG    0      0        0 usb0
10.42.0.0       *               255.255.255.0   U     0      0        0 usb0

 

Pronto agora vamos ver se realmente estamos conectados à internet através do comando "ping -c 5 www.google.com":

 

ping -c 5 www.google.com                                                                                         
PING www.google.com (216.58.219.68): 56 data bytes
64 bytes from 216.58.219.68: seq=0 ttl=50 time=141.415 ms
64 bytes from 216.58.219.68: seq=1 ttl=50 time=134.996 ms
64 bytes from 216.58.219.68: seq=2 ttl=50 time=136.824 ms
64 bytes from 216.58.219.68: seq=3 ttl=50 time=137.620 ms
64 bytes from 216.58.219.68: seq=4 ttl=50 time=138.438 ms

--- www.google.com ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 134.996/137.858/141.415 ms

 

 

 

Configuração da conexão Wireless da Intel Edison

 

A imagem Linux da Edison vem com um utilitário ("configure_edison") que facilita a configuração da conexão wireless da placa. Para configurá-la realize as conexões USB descritas no tópico "Conectando a Intel Edison à internet pela interface USB", e em seu computador abra o terminal (CTRL+Alt+T) e digite:

 

sudo screen /dev/ttyUSB0 115200

O usuário padrão da placa é "root" e não possui senha.

 

Vamos rodar o utilitário de configuração ("configure_edison --wifi") na placa:

 

configure_edison --wifi

 

E realizar as configurações necessárias. No final teremos algo semelhante a:

 

Configure Edison: WiFi Connection

Scanning: 1 seconds left  

0 :     Rescan for networks
1 :     Exit WiFi Setup
2 :     Manually input a hidden SSID
3 :     RodriguesCampinas
4 :     Lucas
5 :     DKM2
6 :     DKM


Enter 0 to rescan for networks.
Enter 1 to exit.
Enter 2 to input a hidden network SSID.
Enter a number between 3 to 6 to choose one of the listed network SSIDs: 5
Is DKM2 correct? [Y or N]: Y
Password must be between 8 and 63 characters.
What is the network password?: *************
Initiating connection to DKM2. Please wait...
Attempting to enable network access, please check 'wpa_cli status' after a minute to confirm.
Done. Please connect your laptop or PC to the same network as this device and go to http://192.168.0.3 or http://edison.local in your browser.
Warning: SSH is not yet enabled on the wireless interface. To enable SSH access to this device via wireless run configure_edison --password first.

 

Conferindo as configurações através dos comandos "ifconfig" e "route":

 

ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:19 errors:0 dropped:0 overruns:0 frame:0
          TX packets:19 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1698 (1.6 KiB)  TX bytes:1698 (1.6 KiB)

usb0      Link encap:Ethernet  HWaddr 02:00:86:53:b9:f6  
          inet addr:10.42.0.29  Bcast:10.42.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4418 errors:0 dropped:0 overruns:0 frame:0
          TX packets:328 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:666454 (650.8 KiB)  TX bytes:64273 (62.7 KiB)

wlan0     Link encap:Ethernet  HWaddr 78:4b:87:a9:5e:3c  
          inet addr:10.0.0.108  Bcast:0.0.0.0  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2522 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8911 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:353628 (345.3 KiB)  TX bytes:763966 (746.0 KiB)

 

route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.0.0.1        0.0.0.0         UG    0      0        0 wlan0
10.0.0.0        *               255.255.255.0   U     0      0        0 wlan0
10.42.0.0       *               255.255.255.0   U     0      0        0 usb0

 

 

 

 

Instalação de pacotes adicionais no sistema

 

O gerenciador de pacotes presente na Edison é o opkg e recentemente AlexT criou um repositório de pacotes que você pode utilizar para instalação sem precisar compilá-los.

 

Vamos realizar as conexões USB descritas no tópico "Conectando a Intel Edison à internet pela interface USB", e em seu computador abra o terminal (CTRL+Alt+T) e digite:

 

sudo screen /dev/ttyUSB0 115200

O usuário padrão da placa é "root" e não possui senha.

 

Para que a placa possa baixar e instalar os pacotes devemos configurar o arquivo "/etc/opkg/base-feeds.conf". Para isso digite os seguintes comandos na placa:

 

echo -e "src/gz all http://repo.opkg.net/edison/repo/all\nsrc/gz edison http://repo.opkg.net/edison/repo/edison\nsrc/gz core2-32 http://repo.opkg.net/edison/repo/core2-32" > /etc/opkg/base-feeds.conf
opkg update

 

Ao final do processo teremos a seguinte mensagem na console:

 

Downloading http://repo.opkg.net/edison/repo/all/Packages.gz.
Inflating http://repo.opkg.net/edison/repo/all/Packages.gz.
Updated list of available packages in /var/lib/opkg/all.
Downloading http://repo.opkg.net/edison/repo/edison/Packages.gz.
Inflating http://repo.opkg.net/edison/repo/edison/Packages.gz.
Updated list of available packages in /var/lib/opkg/edison.
Downloading http://repo.opkg.net/edison/repo/core2-32/Packages.gz.
Inflating http://repo.opkg.net/edison/repo/core2-32/Packages.gz.
Updated list of available packages in /var/lib/opkg/core2-32.
Downloading http://iotdk.intel.com/repos/1.1/intelgalactic/Packages.
Updated list of available packages in /var/lib/opkg/iotkit.

 

Agora você pode, por exemplo, instalar as aplicações do opencv com o seguinte comando:

 

opkg install opencv-apps

 

Para conhecer os comandos disponíveis para o opkg acesse sua página de manual ou digite o comando "opkg --help" no terminal da placa.

 

 

 

Adicionando um script na inicialização do sistema

 

A maioria dos sistemas embarcados baseados em Linux usam o SysVinit como sistema de inicialização, porém na Intel Edison encontraremos o Systemd. Você pode conferir as principais diferenças entre ambos nesse link. Basicamente, no Systemd temos que adicionar arquivos ".service" para que nossos aplicativos sejam executados na inicialização.

 

Nesta seção apresentaremos como criar rapidamente um script de inicialização através do arquivo "rc.local", que é muito utilizado em sistemas baseados no SysVinit porém é compatível com o Systemd.

 

Para isso realize as conexões USB descritas no tópico "Conectando a Intel Edison à internet pela interface USB", e em seu computador abra o terminal (CTRL+Alt+T) e digite:

 

sudo screen /dev/ttyUSB0 115200

O usuário padrão da placa é "root" e não possui senha.

 

Vamos criar o arquivo "/etc/rc.local" e torná-lo executável digitando os seguintes comandos na placa:

 

echo -e "#! /bin/sh\ndate > /etc/rc.local
chmod +x /etc/rc.local

 

O arquivo "/etc/rc.local" terá o seguinte conteúdo:

 

#! /bin/sh
date > ~/init-test

Note que iremos escrever no arquivo "~/init-test" a data e hora em que o script foi executado, ou seja, na hora em que o sistema terminou de iniciar completamente, já que o "rc.local" será o último script a ser executado.

 

Vamos agora habilitá-lo e iniciá-lo:

 

systemctl enable rc-local
systemctl start rc-local

 

E vamos verificar o conteúdo do arquivo "~/init-test":

 

cat ~/init-test
Fri Jun 12 17:20:01 UTC 2015

 

Pronto, agora você pode lançar as suas aplicações e scripts automaticamente na inicialização através do "/etc/rc.local".

 

 

 

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Diego Sueiro
Formado em Engenharia de Controle e Automação pela UNIFEI e CEO do Embarcados, atualmente trabalho na Inglaterra com Desenvolvimento de Sistemas Linux Embarcado Real Time. Sou consultor e desenvolvedor de software para Sistemas Embarcados com vasta experiência em projetos com processadores de 8bits a 32bits, sistemas bare metal, RTOS, Linux Embarcado e Android Embarcado. Um apaixonado por Pink Floyd e Empreendedorismo.

1
Deixe um comentário

avatar
 
1 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
1 Comment authors
Juliana Rodrigueiro Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Juliana Rodrigueiro
Visitante
Juliana Rodrigueiro

Olá, Diego.

Primeiramente, quero dizer que o seu material é muito bom.

Estou seguindo seu tutorial mas tive um problema logo no início. Após todas as instalações o Flash Tool Lite dá o seguinte erro:

ERROR : [Port -1] Command `Wait for device with status dnx_fw on port -1` failed
ERROR : [Port -1] Flash failed (Command type: Device enumeration)

E então a gravação não é iniciada. Segui todos os passos que você descreveu.

Você poderia nos ajudar?

Obrigada!