terça-feira, julho 31, 2018

Como Preparar o Raspberry Pi WiFi com o Raspbian Sem Conectar TV/Monitor e Teclado

Embora um dos destaques do Raspberry seja a sua saída de vídeo, algumas aplicações não a utilizam. Mesmo assim, o processo tradicional de instalação e configuração do Raspbian requer a ligação de uma TV ou monitor e um teclado. Isto é particularmente chato no Raspberry Pi Zero W, que requer adaptadores nos conectores de USB e HDMI. Daí a minha felicidade em achar um artigo que descreve como fazer esta instalação editando alguns arquivos no SD e depois acessando via SSH.

Obs:  Fiz os testes com o Raspbian Strecht, pode ser que não funcione com versões anteriores ou posteriores.

Obs/2: Como os ajustes restantes serão feitos via ssh, estas instruções se referem aos modelos com interface de rede.

O primeiro passo é gravar no cartão a imagem do Rapbian ao invés do NOOBS. Além de permitir a configuração "headless" isto ganhará um bom tempo. Existem atualmente duas imagens do Raspbian para baixar: a Lite e a Desktop. Eu prefiro usar a Lite, porém tome cuidado pois não é apenas o Desktop que não está presente nela.

O processo de gravação está descrito no site. Se você quer simplicidade, instale o Etcher, você não vai precisar nem expandir o zip com a imagem. Se você usa Windows e quer um pouco mais de controle, instale e use o Win32 Disk Imager.

O cartão obtido possui duas partições, uma FAT (chamada BOOT) e uma ext4. Em ambiente Linux você pode editar diretamente os vários arquivos de configuração nas duas partições, porém o Windows reconhecerá somente a partição FAT. Felizmente o Raspbian tem os recursos necessários para realizar dois passos fundamentais editando somente a partição FAT: configuração do WiFi e habilitação do ssh.

A configuração do WiFi é feita criando um arquivo wifi_supplicant.conf. Este arquivo será movido automaticamente para o diretório apropriado da partição ext4. O formato básico é o seguinte:

country=BR
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
 ssid="MinhaRede"
 psk="SenhaDaRede"
 key_mgmt=WPA-PSK
}

Habilitar o ssh é ainda mais simples, basta criar um arquivo de nome ssh. O arquivo pode, inclusive, ser vazio.

Feito isto, o seu Raspberry será capaz de se conectar à rede e receber conexões ssh. A questão que sobra é de endereçamento. Você deveria ser capaz de acessá-lo pelo nome raspberry ou raspberry.local, porém isto não funciona sempre com o Windows. Neste caso, você pode usar o Nmap  para descobrir o IP.

Tudo pronto, é hora de se conectar via ssh (por exemplo, com o puTTY). Se identifique com o usuário e senha padrão (pi/raspberry). Recomendo executar o raspi-config (sudo raspi-config) para:
  • mudar a senha do usuário pi (Change User Password)
  • mudar o nome do computador (Network Options/Hostname)
  • habilitar interfaces I2C e SPI se for usá-las (Interface Options)
Além do ssh, lembre-se que você pode usar o SFTP para copiar aquivos para o Raspberry.

5 comentários:

Davi Silva Santos disse...

Ótimo post.

Lembrando que deve-se ligar o SSH permanentemente no `raspi-config`, pois o arquivo `ssh` na partição BOOT é apagado no reinício.

Daniel Quadros disse...

Davi,
Embora o arquivo ssh seja apagado o SSH permanece habilitado (pelo menos foi o que observei no Raspbian Stretch)

Anônimo disse...

O meu raspberry queimou o hdmi, com muita pesquisa na net fiz um Cabo p2 pra usar numa TV de tubo. Mas a imagem fica passando indefinidamente. Como resolver isso..

Daniel Quadros disse...

Imagino que você está se referindo ao conector A/V. Voce precisa acertar as configurações de vídeo composto no configurações.txt:
https://www.raspberrypi.org/documentation/configuration/config-txt/video.md
Dependendo da TV você terá que colocar sdtv_mode em 0 ou 3. Se é uma TV de tubo, sdtv_aspect deve ser 1.

Anônimo disse...

Realmente, quero usar o A/V, desculpe por não ter explicado tudo, vou acertar as configurações. desculpe pela demora na resposta, um monte de coisa pra fazer.
Obrigado Daniel..