Por que eu quero fazer isso?
O Pi, mesmo vestido em um estojo robusto, é um pequeno computador. É perfeito para colocar em algum lugar fora da vista sem um bando de fios saindo dele - para muitos projetos, você simplesmente não precisa de um monitor permanente e acompanhamento periférico.
que não significa, no entanto, que você não precisará se conectar à caixa para fazer alterações, atualizar itens, transferir arquivos e assim por diante. Um exemplo perfeito disso é o pequeno indicador de chuva que construímos como parte do nosso Construir um Indicador LED com um artigo de Raspberry Pi (para E-mail, Tempo ou Qualquer Coisa). Ele não precisa de todas essas coisas anexadas a ele, mas ainda assim gostaríamos da capacidade de pular no dispositivo e fazer mudanças facilmente ou experimentar novos experimentos com o módulo LED sem ter que arrastá-lo de volta para a oficina, e conecte-o a um monitor, teclado, mouse, etc. Ao configurá-lo para shell remoto, desktop remoto e transferência remota de arquivos, tornamos super simples sempre interagir com nossa unidade Pi a partir do conforto de nosso computador de mesa como se Conectei a unidade a uma estação de trabalho completa.
O que eu preciso?
Para este tutorial, você precisará do seguinte:
- Um Raspberry Pi correndo Raspbian.
- Um computador desktop ou laptop.
- Uma rede local com fio ou Wi-Fi para conectar o Pi e seu computador.
Primeiro, a maioria das etapas deste tutorial deve funcionar com outras distribuições Pi baseadas em Linux. mas nós vamos usar o Raspbian. Você deve ter poucos problemas para adaptar o tutorial a outras distribuições.
Em segundo lugar, estamos usando uma máquina Windows como nosso computador em rede para interagir com a unidade Raspberry Pi como a cabeça / interface remota. Quando apropriado, faremos o melhor possível para criar links para tutoriais e sugestões de leitura relacionadas à execução de tarefas e ferramentas paralelas no OS X e no Linux.
Configurando e conectando-se ao servidor SSH
Abra o terminal em Rasbian, o atalho é o LXTerminal na área de trabalho e digite o seguinte comando:
sudo raspi-config
Navegue até ssh e aperte enter. Quando solicitado sobre o servidor SSH, selecione Habilitar e aperte enter novamente. Você retornará ao painel Raspi-config; navegue até Terminar e aperte enter para fechar a ferramenta de configuração. Isso é tudo que você precisa fazer para ativar o acesso SSH ao seu Pi. O login SSH e a senha padrão são pi e framboesa, respectivamente.
Enquanto você ainda está na linha de comando, agora é um ótimo momento para verificar o IP da sua unidade Raspberry Pi na rede local. Tipo ifconfig no prompt e, em seguida, observe a saída do comando. Se você está usando a porta Ethernet, você quer procurar init addr no eth0 seção; se você estiver usando Wi-Fi, você quer procurar o init addr no wlan0 seção. Além de verificar e anotar o endereço IP, esse também é um ótimo momento para configurar uma entrada de IP estático em seu roteador, para que você não precise procurar o IP no futuro.
Agora que temos o servidor SSH ativado, sabemos o login e sabemos o endereço IP da máquina, é hora de se conectar via SSH e testá-lo. Para fazer isso no Linux e no OS X, você pode simplesmente usar o ssh comando no terminal. Usuários do Windows, no entanto, precisarão de um cliente SSH como o PuTTY.
Como estamos usando uma caixa do Windows para gerenciar remotamente nosso Pi, o PuTTY é. Instale uma cópia do PuTTY ou extraia a versão portátil e inicie-a. tem muito de configurações que você pode mexer no PuTTY, mas só precisamos nos preocupar com uma única coisa para se conectar ao nosso Pi. Na interface principal da Session, basta digitar o endereço IP do seu Pi e selecionar SSH abaixo dela:
Acertar Abrir na parte inferior e o PuTTY iniciará uma janela de terminal para você, conecte-se ao seu Pi e solicite que você faça login. Vá em frente e faça o login com pi / framboesa:
Antes de prosseguirmos, há algumas funcionalidades extras que podemos extrair do SSH. Além de gerenciar a linha de comando remotamente, você também pode transferir arquivos remotamente usando a cópia protegida. Sua linha de comando é intensiva e não é particularmente conveniente para transferir um grande número de arquivos provenientes de vários diretórios, mas para uma transferência de arquivo de configuração única ou outro pequeno despejo, é bastante útil. Confira nosso guia para copiar arquivos por SSH usando o comando SCP aqui.
Analisaremos mais de perto as técnicas de transferência de arquivos fáceis de usar / baseadas em GUI, mais adiante no tutorial.
Configurando e configurando sua área de trabalho remota
Apesar de estarmos nos referindo a ele como "área de trabalho remota" até o momento, a ferramenta que estamos realmente instalando é conhecida como VNC (Virtual Network Computing, computação em rede virtual) - com as quais muitos estão familiarizados, como RealVNC e TightVNC. Para este tutorial, vamos instalar o TightVNC no Pi. Para acessar a sessão TightVNC baseada em Pi, você precisará de um cliente remoto como:
- Cliente de desktop TightVNC para Windows
- Cliente de desktop TightVNC para sistemas Linux / Unix-like
- Cliente de desktop RealVNC para OSX
Pegue uma cópia agora e nós a divulgaremos mais adiante nesta seção. Por enquanto, vamos começar a instalar o servidor TightVNC no seu Raspberry Pi. Abra o terminal. Digite o seguinte comando para começar:
sudo apt-get install tightvncserver
Isto irá baixar e descompactar os arquivos de instalação; quando solicitado, continue pressionando Y. Após a conclusão da instalação, você retornará ao prompt. Você pode iniciar o VNC de duas maneiras. Simplesmente executando o comando para o servidor da seguinte forma:
tightvncserver
Como alternativa, você pode usar um comando muito mais preciso, embora mais demorado, que lhe dê mais controle sobre como o computador remoto verá a área de trabalho - o mais importante, qual resolução a área de trabalho exibirá para que você aproveite a exibição em tela inteira o computador remoto. Para especificar a resolução da área de trabalho VNC, use o comando a seguir, trocando o valor de resolução (o quarto item no comando) pela resolução da área de trabalho remota:
vncserver:1 -geometry 1600×900 -depth 16 -pixelformat rgb565:
Se em algum momento você cometer um erro ao configurar sua instância do servidor VNC e / ou quiser desligar o servidor VNC, basta digitar o seguinte (mudando o número após os dois pontos para o número da instância VNC que você quer matar):
vncserver –kill:1
Agora que temos o servidor VNC em funcionamento, vamos nos conectar a ele em nossa área de trabalho remota. Abra o visualizador TightVNC no seu computador e conecte o endereço IP da unidade Raspberry Pi seguido por: 1 como:
sudo chown pi /home/pi/.Xauthority
Esse comando altera a propriedade do arquivo.Xauthority de volta para o usuário pi - para os curiosos, o arquivo.Xauthority é usado pelo sistema X-windows em Rasbian e alguma coisa durante o processo de instalação e configuração do servidor TightVNC faz com que poucas permissões sejam solucionadas.
Com esse pequeno desvio menor, vamos retomar a configuração da área de trabalho remota.
Agora que temos acesso de linha de comando e área de trabalho ao Raspberry Pi, há um ajuste não tão trivial que precisamos fazer. A ferramenta Raspi-config configura o servidor SSH para iniciar automaticamente na inicialização para nós, mas o servidor VNC ainda não está configurado dessa maneira. Você pode pular esta etapa e iniciar manualmente o servidor na linha de comando via SSH quando precisar, mas estamos tentando tornar isso o mais fácil possível para uso futuro. Vamos tirar um minuto agora e criar um arquivo de inicialização para o servidor VNC.
Para iniciar automaticamente o servidor VNC, precisamos configurar um arquivo init ou de inicialização que o Raspbian use para iniciar e encerrar o servidor de forma limpa durante o processo de inicialização e desligamento. Vamos criar o arquivo init agora. Na linha de comando, digite o seguinte comando:
sudo nano /etc/init.d/tightvnc
Isso criará um arquivo no diretório de inicialização chamado “tightvnc” e abrirá o editor nano para que possamos colar nosso script. No editor nano, cole o código a seguir (lembre-se de alterar o valor de resolução de 1600 x 900 para corresponder à tela do seu computador remoto:
#!/bin/sh ### BEGIN INIT INFO # Provides: tightvncserver # Required-Start: # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: start vnc server # Description: ### END INIT INFO
case “$1” in start) su pi -c ‘vncserver:1 -geometry 1600×900 -depth 16 -pixelformat rgb565:’ echo “VNC Started”;; stop) pkill Xtightvnc echo “VNC Terminated”;; *) echo “Usage: /etc/init.d/tightvnc {start|stop}” exit 1;; esac
Além de modificar a parte de resolução de tela do script, há outra coisa que você pode modificar. Na linha 14, você pode alterar o comando “su pi -c” para qualquer outra conta de usuário além de “pi” se você desejar VNC para a área de trabalho específica para essa conta.
Depois de colar e modificar o código, é hora de salvá-lo. Pressione CTRL + X para sair e salvar seu trabalho no nano. Quando estiver de volta à linha de comando, precisamos fazer algumas alterações rápidas nas permissões do arquivo:
sudo chmod 755 /etc/init.d/tightvnc
Agora o arquivo de inicialização é executável. Podemos testá-lo a partir do prompt:
sudo /etc/init.d/tightvnc start
sudo /etc/init.d/tightvnc stop
A última alteração que vamos fazer é atualizar o arquivo rc.d (que rastreia quais scripts de inicialização estão na pasta /init.d/):
sudo update-rc.d tightvnc defaults
Depois de inserir esse comando, você receberá uma confirmação de que o arquivo foi atualizado. Agora é hora do teste real: o arquivo é carregado corretamente após a reinicialização? Digite o seguinte na linha de comando para reiniciar e estar preparado com o seu cliente VNC para testar a conexão em um momento:
sudo reboot
Quando o sistema terminar de reinicializar, faça o login com o seu cliente VNC.Se a sua sessão VNC falhar, visite o prompt de comando e execute o comando tightvnc start (da parte de teste acima) novamente para verificar novamente se o arquivo é executável e se a senha foi salva corretamente.
Neste ponto, estamos ainda mais longe em nossa missão de controlar totalmente remotamente nossa unidade Raspberry Pi. Com o acesso à linha de comando remota via SSH e acesso remoto à área de trabalho via VNC em nossos cintos, vamos simplificar o processo de transferência de arquivos entre o Pi e o computador de mesa.
Configurando e configurando ferramentas de transferência de arquivos
Embora haja uma variedade de wrappers GUI para o comando SCP, vamos usar uma ferramenta multiplataforma que muitas pessoas já conhecem, têm e amam (e podem até mesmo desconhecer que faz transferências SCP): FileZilla. Está disponível para Windows, OS X e Linux - você pode pegar uma cópia aqui.
Depois de instalar o FileZilla, ligue-o e vá para Arquivo -> Gerenciador de sites. Crie uma nova entrada de site, nomeie-a e insira o nome de usuário e a senha para seu Pi.
Aproveitar a transferência de arquivos SSH existente é a maneira mais fácil de obter os arquivos no Pi sem nenhuma configuração adicional necessária mas Se você quiser configurar seu Pi para receber e compartilhar arquivos sem que o usuário remoto exija ferramentas sofisticadas (como um cliente FTP compatível com SCP, como o FileZilla), é altamente recomendável verificar a parte de configuração do Samba em nosso guia: Como transformar uma framboesa Pi em um dispositivo de armazenamento de rede de baixa potência. Lendo sobre isso irá familiarizá-lo com a criação de um compartilhamento básico do Samba no Pi para criar uma pasta compartilhada facilmente acessível por praticamente qualquer pessoa em sua rede sem quaisquer ferramentas adicionais.
Você configurou o SSH, configurou o VNC e configurou o acesso SFTP e / ou Samba simples ao seu Pi - nesse ponto, você pode inicializar seu Raspberry Pi, remover o monitor, o teclado e o mouse, e guarde-a como uma máquina silenciosa e sem cabeça.
Tem uma ideia para o projeto Raspberry Pi e você está morrendo por nós para escrever um tutorial para isso? Entre nos comentários ou envie-nos um e-mail para [email protected] e faremos o possível para ajudar.