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
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
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):
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
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.
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:
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
.
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!
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:
Uma vez estabelecida a conexão, abre-se uma janela emulando um terminal, onde se procede o login normalmente, conforme abaixo:
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:
Uma vez estabelecida a conexão, abre-se a janela com a interface gráfica que configuramos no Pi, com resolução de 1920x1080:
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.