Java & Raspberry Pi - Parte 3

Publicado em 02/12/2014

Para operar seu Raspberry Pi remotamente, é preciso saber o seu endereço IP — isso é basicamente como se fosse o endereço onde ele reside e permite que o computador hospedeiro o encontre na rêde. Em condições padrão, o roteador fornece automaticamente um endereço IP ao Raspberry Pi (chamado IP dinâmico e representado pela sigla DHCP), quando você o conecta à rêde. Todavia, isso pode mudar sempre que você remover o Pi da rêde.

Possuir um endereço estático não é essencial, mas tornará a repetição de acesso ao Raspberry Pi através do SSH muito mais simples, uma vez que você poderá confiar que ele terá sempre o mesmo endereço. Imagine o trabalho que o carteiro teria se sua casa mudasse constantemente de localização.

Este tutorial presume que você tem a versão oficial do Sistema Operacional Raspian instalada, disponível na distribuição NOOBS conforme ensinei no meu artigo anterior. Presume-se, também, que a conexão com o Pi seja numa rêde via ethernet. Caso você, como eu, pretenda se conectar ao Pi remotamente na maior parte do tempo, sugiro que o instale próximo ao roteador e utilize a porta ethernet para acesso à Internet, usufruindo assim da velocidade máxima de sua conexão.

A. Verificando a Configuração

Depois do login no Pi, precisamos listar a interface de rêde que temos disponível no momento. Digite o comando:

$ cat /etc/network/interfaces

Interfaces de rede

A linha

iface eth0 inet dhcp

...quer dizer que, no momento, estamos obtendo o endereço IP via DHCP, ou seja, que ele está sendo registrado dinamicamente pelo roteador. E é exatamente isso que queremos mudar.

B. Coletando Informações

A primeira coisa que precisamos fazer é coletar algumas informações do nosso roteador e do Pi. Há um par de comandos que devemos executar para obter essas informações. Tenha lápis e papel à mão...

$ ifconfig

Tela ifconfig

Esse comando exibe a informação do seu roteador, e a parte que precisamos é o que vem depois de eth0 (a conexão ethernet)...

eth0 Link encap:Ethernet HWaddr b8:27:eb:b3:fc:2c inet addr:192.168.1.81 Bcast:192.168.1.255 Mask:255.255.255.0

Anote as seguintes informações, substituindo-as, evidentemente, pelos resultados que você obtiver na sua máquina:

  • inet addr – 192.168.1.81 (Endereço IP atual do Pi)
  • Bcast – 192.168.1.255 (O intervalo IP de transmissão)
  • Mask – 255.255.255.0 (Endereço da máscara de sub-rêde)

Precisamos de um pouco mais de informação antes de continuar. Use o comando:

$ netstat -nr

(o comando route -n dá o mesmo resultado):

Tela netstat -nr

As informações que precisamos são:

  • 'Gateway' – 192.168.1.254
  • 'Destination' – 192.168.1.0

C. Editando a Configuração da Rêde

Vamos precisar agora inserir essas informações no arquivo de configuração de rêde do Pi usando um editor de texto. Vamos usar o nano, mas fique à vontade se você é um daqueles "vi-maníacos": tem uma versão dele no Raspian...

$ sudo nano /etc/network/interfaces

Config. da rede

Basta mudar a linha onde se lê:

iface eth0 inet dhcp

para

iface eth0 inet static

Então, imediatamente abaixo desta linha, digite o seguinte:

address 192.168.1.81 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.254

Aviso: você deve usar os seus próprios endereços, obtidos na Parte B acima.

Para deixar tudo bem claro, cada item significa o seguinte:

  • address - O endereço que você quer dar ao Pi, o qual poderá ser qualquer IP dentro do alcance da rêde, mas normalmente aconselha-se escolher números mais altos ao invés de mais baixos, para não correr o risco de alocar dispositivos diferentes ao mesmo IP! Escolhemos aqui 192.168.1.81, pois já estávamos registrados nesse endereço (de acordo com o inet addr), mas poderia ser qualquer endereço no limite de 192.168.1.1 até 192.168.1.255.
  • netmask - O endereço da Mask que anotamos antes.
  • network - O endereço IP do roteador, que é o endereço Destination obtido anteriormente.
  • broadcast - O endereço Bcast que também anotamos acima.
  • gateway - Este é o endereço do Gateway, obtido da mesma forma.

Config. da rede 2

Devemos ficar com um texto parecido com o exibido acima, diferindo apenas os valores, que serão os seus próprios! Lembre-se de salvar Ctrl-O, antes de sair Ctrl-X.

D. Conferindo a Configuração Estática

Precisamos reiniciar para verificar as mudanças...

$ sudo reboot

Registre-se novamente e execute...

$ ifconfig

...o qual deve mostrar suas novas configurações:

Config. da rede 3

Para confirmar que tudo está funcionando como deveria, ping o endereço do seu 'Gateway'...

$ ping 192.168.1.254 -c 10

(o argumento -c 10 apenas indica que você quer pingar 10 vezes. Se esquecer de colocar essa opção, ficará "pingando" aquele endereço continuamente. Se isso acontecer, o ping pode ser parado com Ctrl-C.

Tela do ping

O ping deve ser bem sucedido e todos os pacotes recebidos. Se alguma coisa não correr bem, verifique novamente todos os seus endereços IP e assegure-se de estar dando ping no endereço certo. Lembre-se que você sempre poderá voltar ao DHCP revertendo esses passos. O endereço 'network' do roteador às vezes é um pouco complicado, de forma que é bom verificar se está apresentando problemas.

Espero, no entanto, que seu Raspberry Pi esteja configurado agora com um endereço IP estático, como o meu.

Verificando a Instalação do JDK/JRE

Vamos conectar o Pi remotamente, com o comando:

$ ssh 192.168.1.150 -l pi

(use o seu endereço IP e substitua pi se modificou o nome do usuário)

...digite a senha:

raspberry

(se também não mudou).

Aproveitando a conexão remota com o Pi, podemos confirmar se o JDK/JRE já estão instalados no sistema, com os comandos:

  • java -version (JRE)
  • javac -version (JDK)

A tela abaixo mostra o resultado no meu Raspberry Pi, significando que está tudo pronto para seguir adiante!

Verificando JRE/JDK

SSH no Windows

Nos exemplos acima, usamos o SO Linux, utilizando o Terminal e a linha de comando. No Windows, um bom cliente para SSH é o PuTTY. Nesse caso, os dados para a conexão são inseridos numa caixa de diálogo, como na imagem a seguir:

Conexão com PuTTY

Uma vez estabelecida a conexão, abre-se uma janela emulando um terminal, onde se procede o login normalmente, conforme abaixo:

Terminal do PuTTY

Acessando o Pi Remotamente, em Modo Gráfico

Para acessar nosso Pi remotamente no modo gráfico vamos precisar instalar nele um servidor VNC (Virtual Network Computing), que é um protocolo específico para possibilitar interfaces gráficas remotas. Recomendo instalar o tightvncserver, bem leve, na medida certa para o Raspberry Pi. Basta, no Pi, digitar o comando:

$ sudo apt-get install tightvncserver

Depois de instalá-lo, o servidor pode ser inicializado com o comando:

$ vncserver :0 -geometry 1920x1080 -depth 24

Será solicitada uma senha, que você deve anotar com cuidado, pois vai ser necessária na conexão do cliente. Para maiores esclarecimentos, consulte as páginas man de vncserver e xtightvnc.

Como cliente, no Linux, eu uso o tigervnc, que é uma versão de código-aberto do TightVNC. Para o Windows, podemos usar o próprio TightVNC, cuja caixa de diálogo para a conexão, idêntica à do tigervnc do Linux, é a seguinte:

Conexão com TightVNC

Uma vez estabelecida a conexão, abre-se a janela com a interface gráfica que configuramos no Pi, com resolução de 1920x1080:

Tela do VNC

Vamos deixar para o próximo artigo a instalação e teste do BlueJ no nosso Raspberry Pi, que agora já está devidamente pronto para recebê-lo com todas as honras.

Compartilhe esta postagem