Prepare o cartão SD para Wifi no Headless Pi

158

Eu preciso do SSH meu Pi por wifi, mas como é uma placa modelo A (não é possível usar um hub usb - nunca) e não tenho Ethernet, não consigo configurar o Pi para conectar-me à minha rede wifi segura. Quero ter o cartão SD conectado ao meu laptop e quero editar um arquivo com as informações de configuração wifi para que meu Pi se conecte à minha rede automaticamente na inicialização, para que eu possa fazer o SSH para obter o controle. Eu sei como habilitar o SSH em um sistema sem cabeça, graças a esta resposta .

Edit . Eu estive pesquisando e estou pensando se consigo editar o arquivo /etc/network/interfacesenquanto o cartão SD está no meu PC e colocar todas as coisas de rede ssid, psk e wlan0 nele. Isso vai funcionar? obrigado

11chubby11
fonte
Você se depara com uma situação bastante difícil lá. Eu sugeriria o uso temporário de uma LAN USB para conectar-se via SSHS. A maioria dos drivers está incluída para esses. Insira seu WiFi e siga esta resposta para configurar seu WiFi no Pi. Depois de reiniciar, desconecte a LAN e inicie usando Wifi. Ele deve se conectar automaticamente em alguns minutos.
Piotr Kula #
2
A maneira mais barata de configurar é usar um adaptador serial USB para conectar-se ao serial no cabeçalho GPIO. Você não precisa mesmo de permitir ssh para fazer isso
John La Rooy
veja minha resposta [aqui] [1] para um método alternativo [1]: raspberrypi.stackexchange.com/a/31397/30719
memebrain

Respostas:

239

Há ótimas respostas aqui, mas muitas estão desatualizadas. Desde Maio de 2016, Raspbian tem sido capaz de copiar detalhes wi-fi de /boot/wpa_supplicant.confpara /etc/wpa_supplicant/wpa_supplicant.confconfigurar automaticamente o acesso à rede sem fio:

Se um arquivo wpa_supplicant.conf for colocado no diretório / boot /, ele será movido para o diretório / etc / wpa_supplicant / na próxima vez que o sistema for inicializado, substituindo as configurações de rede; isso permite que uma configuração Wifi seja pré-carregada em um cartão a partir de um Windows ou outra máquina que só pode ver a partição de inicialização.

- A atualização mais recente do Raspbian - Raspberry Pi , 13/05/2016

Como a /bootpartição é acessível por qualquer computador com um leitor de cartão SD, a configuração do wifi agora é muito mais simples.

Um arquivo wpa_supplicant.conf típico é:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=«your_ISO-3166-1_two-letter_country_code»

network={
    ssid="«your_SSID»"
    psk="«your_PSK»"
    key_mgmt=WPA-PSK
}

Substitua «your_ISO-3166-1_two-letter_country_code» pelo seu código ISO do país (como CAno Canadá), «your_SSID» pelo nome do seu ponto de acesso sem fio e «your_PSK» pela senha do wifi.

Se você não deseja armazenar sua senha wifi em texto sem formatação, pode usar o wpa_passphraseutilitário para armazenar a senha com hash:

wpa_passphrase «your_SSID»

O utilitário solicitará a senha e retornará o valor do hash hexadecimal. Observe que essa senha com hash é armazenada sem aspas no /boot/wpa_supplicant.conf, por exemplo:

psk=b76dc68cb76bfea7232e32634f859ca760cd8abeee318a346b51d3bde00b8965

Observe que as linhas country, ctrl_interfacee update_configsão necessárias no arquivo, conforme criado em /boot: se elas estiverem ausentes, o sistema não se conectará à rede. O processo acima pode ser repetido para corrigir as omissões.

Este processo foi testado com o Raspbian e o Raspbian Lite a partir da versão de novembro de 2018.


Além disso, convém adicionar o acesso Secure Shell (SSH) ao seu Raspberry Pi decapitado. O SSH está desativado no Raspbian por padrão por razões de segurança. Você pode habilitá-lo criando um arquivo chamado /boot/ssh:

Para configuração sem cabeça, o SSH pode ser ativado colocando um arquivo chamado 'ssh', sem nenhuma extensão, na partição de inicialização do cartão SD. Quando o Pi é inicializado, ele procura o arquivo 'ssh'; se for encontrado, o SSH é ativado e o arquivo é excluído. O conteúdo do arquivo não importa: ele pode conter texto ou nada.

- SSH (Secure Shell) - Documentação do Raspberry Pi

Se você ativar o acesso SSH, altere a senha do usuário pi padrão o mais rápido possível. Como a senha padrão ( framboesa ) é amplamente conhecida, seu Raspberry Pi é efetivamente aberto a todos na sua rede até que você altere a senha. Você pode fazer isso com o passwdcomando

scruss
fonte
2
Existem duas restrições para esta solução (testada com imagens de 23/09/2016): 1. O arquivo deve ser formatado com finais de linha de estilo Linux (LF em vez de CR LF). 2. Não funcionou com a imagem de luz Raspbian no meu Raspberry Pi 3.
user2154065
1
@ user2154065 1. Covarde o arquivo para o LF com o Notepad ++ clicando com o botão direito do mouse em "Dos \ Windows" no canto inferior direito e selecionando "formato UNIX / OSX". 2. O wpasupplicantpacote provavelmente não está incluído no Raspbian Lite.
precisa saber é o seguinte
1
Agora que tenho algumas máquinas Raspbian Lite em execução, tenho certeza de que meu comentário estava errado: o wpa_supplicant está incluído ou pode ser facilmente instalado.
scruss
5
@kleinfreund não inclui a senha no texto não criptografado. Execute "wpa_passphrase SSID" (com seu SSID) e digite a senha quando solicitado. Copie a saída no seu arquivo wpa_supplicant.conf, removendo a linha que inclui o texto não criptografado e deixando apenas a versão em hash. (Você pode fazer isso em um sistema diferente para que você tenha o arquivo antes do tempo ao configurar o seu micro SD para o Pi.)
Peter Hansen
4
@scruss - a sua resposta é quase correta, por favor, adicione esta linha ao wpa_supplicant.confexemplo acima: ctrl_interface=/var/run/wpa_supplicant Eu apenas tentei em um novo Zero W com Raspbian Strech Lite
ctekse
23

Algumas instruções específicas:

Conteúdo de /etc/network/interfaces:

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
    wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
    post-up ifdown eth0
iface default inet dhcp

Conteúdo de /etc/wpa_supplicant/wpa_supplicant.conf:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="YOUR_SSID_HERE"
    psk="YOUR_SECRET_PASSPHRASE_HERE"
    id_str="SOME_DESCRIPTIVE_NAME"
}

Honesto. Esses dois arquivos, com conteúdo fornecido, são o que eu uso em todos os meus pi. Eles inicializam e se conectam imediatamente ao meu roteador sem fio. A negociação de DHCP fornece um endereço e meu roteador resolve o nome do host para o endereço IP apropriado. Certifique-se de nomear cada PI adequadamente via /etc/hostname.

A estranheza no interfacesarquivo no final iface default...é necessária, caso contrário, a conexão WPA sem fio não será exibida.

O wpa_supplicant.confarquivo também pode ter várias network={entradas, eu costumava levar meu pi para o trabalho ... conecte-o e pronto, ele se conectou automaticamente lá também, a configuração do trabalho era um pouco mais complicada. Incluído aqui como exemplo, adicione / substitua o seguinte no wpa_supplicant.confarquivo:

network={
    ssid="THE_OFFICE"
    scan_ssid=1
    key_mgmt=WPA-EAP
    eap=PEAP
    identity="WORK_USERNAME"
    password="WORK_PASSWORD"
    phase1="peaplabel=0"
    phase2="auth=MSCHAPV2"
    id_str="SOME_DESCRIPTIVE_NAME"
}

Essencialmente, ele verifica o wpa_supplicant.confarquivo e se conecta à primeira rede que encontra que corresponde. Muito conveniente. Também é possível conectar automaticamente a qualquer rede 'aberta' dessa maneira. Não é a coisa mais inteligente a fazer, mas factível.

lornix
fonte
Eu preciso ter um IP estático também como seu decapitado e eu não serei capaz de ssh sem saber seu endereço IP. Atualmente, tenho id_str="home"em wpa_supplicant.conf e iface home inet static(informações de IP estático abaixo disso) no arquivo de interfaces, isso me dá um IP estático, mas não tenho certeza se essa é a melhor maneira de configurá-lo e é um pouco confuso de configurar ( e recebo o erro "Não é possível encontrar o dispositivo" inicial "" na inicialização).
11chubby11
1
Eu uso dyn.com (ou dyndns.com) para permitir que um nome adequado acesse meus pi (s), use ddclient para definir automaticamente o nome para o endereço apropriado. Como alternativa, use seu roteador para especificar um endereço dhcp estático, muito mais útil. Também uso o upnpcd para configurar dinamicamente as configurações de upnp para permitir que eu me conecte aos meus sistemas fora da minha rede; nenhum IP estático é necessário agora, ele se instala onde quer que esteja. (iface estrofe só pode ter lo / eth0 / wlan0 / default como opção, 'casa' não vai funcionar)
lornix
Como posso adicionar /etc/network/interfacesa inicialização do SD? Basta colocá-lo em qualquer lugar e ele será copiado?
Denislexic
Basicamente, um comentário à resposta de lornix - cuja solução eu usei com sucesso - já que não tenho representante para escrever comentários. Para editar o sistema de arquivos raiz, você precisa montar a segunda partição, não a primeira, partição de inicialização. Eu fiz: sudo mount / dev / sdc2 / mnt, após o qual eu poderia editar arquivos sob a raiz / mnt, ou seja, /mnt/etc/wpa_supplicant/wpa_supplicant.conf e / mnt / etc / network / interfaces e / mnt / etc / hostname (novamente usando o sudo). Quando terminar, saia da hierarquia / mnt e faça o sudo umount / mnt. Em seguida, você pode inserir o cartão SD no Rπ e inicializar. Note que isto requer uma máquina Linux,
Ketil Malde
10

Desde novembro de 2016, o SSH foi desativado por padrão nas imagens Raspbian padrão por motivos de segurança.

Para reativá-lo, crie um arquivo em branco chamado sshou ssh.txtna pasta de inicialização do cartão sd (partição fat32 acessível no Windows)

Para pré-configurar as configurações de wifi, você também cria um arquivo chamado wpa_supplicant.conflá contendo:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={ 
ssid="MySSID" 
psk="MyPassword" 
}

Ambos os arquivos podem ser criados no Windows e editados usando o bloco de notas.

Em seguida, insira o cartão SD no pi e você poderá SSH direto.

Mike Redrobe
fonte
É bom ver que eles simplificaram muito a configuração! Ótima resposta!
Lornix 19/02
3

A partir de ESTIRAMENTO RASPBIAN você deve incluir ctrl_interfacee update_configemwpa_supplicant.conf

Para obter o wifi com o ssh na inicialização, siga estas etapas simples no seu cartão SD:

  1. touch /<sd mount point>/boot/ssh
  2. nano <sd mount point>/boot/wpa_supplicant.conf

Com o conteúdo:

country=AU  #omit if US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="YourNetworkSSID-1"
    psk="passwordOne"
}
  1. Desmonte o cartão SD, coloque pi, inicialize pi
rynop
fonte
2

Você pode usar o interfacesarquivo Carregue-o com todas as informações da rede, coloque-o em um pen drive e reinicie o RPi com isso. O RPi pega as configurações e configura o Wi-Fi sem a necessidade de hardware extra ou um monitor.

Depois disso, você pode fazer o SSH no Pi e instalar o VNC para obter uma GUI. Se você quer uma instrução passo a passo para isso, veja Option 3: Connect with WiFiem http://www.dexterindustries.com/BrickPi/getting-started/using-the-pi/

karan
fonte
Não foi possível fazer isso funcionar. Não consigo encontrar nenhuma outra informação na internet sobre essa maneira de configurar o wifi.
precisa saber é o seguinte
Esqueci de mencionar o script usado para automatizar isso. Aqui está
karan
2

Você também pode configurar um cartão SD que instalará automaticamente o Rasbian com uma conexão Wi-Fi pré-configurada no seu Raspberry pi (configuração sem cabeça do Raspberry Pi). Isso permite que seu pi seja conectado apenas à energia para sua primeira inicialização.

Etapa 1: Faça o download do Noobs Obtenha e descompacte o software Noobs mais recente (versão instalação offline e em rede) em https://www.raspberrypi.org/downloads/

Alternativa: link direto para o arquivo: http://downloads.raspberrypi.org/NOOBS_latest

No momento da redação deste artigo, a versão mais recente do NOOBS é 1.4.0

Etapa 2: Configuração sem cabeçalho No diretório os /, exclua todas as outras pastas que não sejam rasbian /. Na verdade, você deve ter apenas uma outra pasta chamada Data_Partition.

Na pasta rasbian /, edite o arquivo flavours.json. Você deve ver o seguinte:

{
  "flavours": [
    {
      "name": "Raspbian - Boot to Scratch",
      "description": "A version of Raspbian that boots straight into Scratch",
      "supported_hex_revisions": "2,3,4,5,6,7,8,9,d,e,f,10,11,12,14,19,1040,1041"
    },
    {
      "name": "Raspbian",
      "description": "A Debian wheezy port, optimised for the Raspberry Pi",
      "supported_hex_revisions": "2,3,4,5,6,7,8,9,d,e,f,10,11,12,14,19,1040,1041"
    }
  ]
}

Exclua a parte “Raspbian - Boot to Scratch”, para que o arquivo fique assim no final:

{
  "flavours": [
    {
      "name": "Raspbian",
      "description": "A Debian wheezy port, optimised for the Raspberry Pi",
      "supported_hex_revisions": "2,3,4,5,6,7,8,9,d,e,f,10,11,12,14,19,1040,1041"
    }
  ]
}

Edite o arquivo recovery.cmdline no diretório raiz do NOOBS e acrescente silentinstall à lista de argumentos. O arquivo deve ficar assim no final:

runinstaller quiet vt.cur_default=1 elevator=deadline silentinstall

Etapa 4 (opcional): configurar o layout e o idioma do teclado personalizados Se você quiser alterar o layout do teclado padrão (us) e / ou o idioma padrão (o padrão é 'us'), acrescente lang = XX keyboard = XX na lista de argumentos da recuperação Arquivo .cmdline (XX deve ser substituído pelo código do idioma e do teclado, que pode ser fr, de,… O padrão é nós).

O arquivo deve ficar assim no final:

runinstaller quiet vt.cur_default=1 elevator=deadline silentinstall lang=fr keyboard=fr

Etapa 5 (opcional): Configure o Wifi Noobs Config é uma ferramenta que irá copiar / colar alguns arquivos logo após a instalação do Rasbian. Entre muitas outras coisas, essa ferramenta permite pré-configurar o Wifi no seu Pi. No entanto, isso pressupõe que o dongle wifi usado seja diretamente suportado pelo Raspbian.

A primeira coisa a fazer é baixar o Noobs Config no GitHub ( https://github.com/procount/noobsconfig/archive/master.zip )

Descompacte noobsconfig.zip e:

  • copie “customise.sh” no diretório raiz dos seus arquivos Noobs

  • copie “os / Rasbian / partition_setup.sh” para o diretório “os / Rasbian /” dos seus arquivos Noobs.

  • crie uma pasta chamada “wifi” em “os / Rasbian /”

  • copie “Examples / Rasbian / wifi / wifi / wpa_supplicant.conf” para o
    diretório “os / Rasbian / wifi /” dos seus arquivos Noobs.

  • copie “Examples / Rasbian / wifi / Raspbian_root.txt” para o
    diretório “os / Rasbian /” dos seus arquivos Noobs.

A última coisa é configurar seu wifi ssid e psk (senha) no wpa_supplicant.conf:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid="MyNetwork"
psk="MyPassword"
}

Etapa 5 (opcional): altere a senha padrão Mesmo que essa etapa seja opcional, é altamente recomendável alterar a senha padrão da sua configuração do Rasbian.

Edite o arquivo os / Rasbian / os.json. Deve ficar assim:

{
  "name": "Raspbian",
  "version": "wheezy",
  "release_date": "2015-02-16",
  "kernel": "3.18",
  "description": "A community-created port of Debian wheezy, optimised for the Raspberry Pi",
  "url": "http://www.raspbian.org/",
  "username": "pi",
  "password": "raspberry",
  "supported_hex_revisions": "2,3,4,5,6,7,8,9,d,e,f,10,11,12,14,19,1040,1041"
}

Vamos mudar a senha padrão na linha 9.

Etapa 5: Copie os arquivos no seu cartão SD e inicie o Raspberry pi Copiar / arquivos antigos em um cartão SD formatado em FAT.

Etapa 6: Inicialize e conecte Inicialize no nosso cartão SD, após alguns minutos (dependendo do seu cartão SD, o processo de instalação pode levar mais de 30 minutos) e conecte-se ao seu Pi via SSH.

Que isso ...

jeje
fonte
Essas instruções parecem promissoras, mas a partir do NOOBS v1.9.2 não há arquivo flavours.json no diretório os / Raspbian. Como o principal motivo para editá-lo foi remover uma versão alternativa, acho que é seguro simplesmente pular essa etapa quando não for necessário.
Natevw 21/08
2

O processo de instalação sem cabeça foi ligeiramente alterado para Raspbian Stretch e versões mais recentes do RetroPie.

dentro do diretório de inicialização ...

touch ssh

nano wpa_supplicant.conf

adicione isso ao wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
network={
    ssid="YOUR_NETWORK_NAME"
    psk="YOUR_PASSWORD"
    key_mgmt=WPA-PSK
}

desmonte o cartão sd e insira o pi para inicializar

espere um minuto e encontre o endereço IP do seu pi

ssh no pi

ssh pi@pi-ip-address

a senha padrão é framboesa

Ullauri
fonte
1

Você precisa editar o wpa_supplicant.confarquivo no cartão sd (ele está dentro /etcou /etc/wpa_supplicantdepende da sua versão de distribuição). O formato do arquivo é explicado aqui: http://linux.die.net/man/5/wpa_supplicant.conf

hogliux
fonte
Mas se a conexão sem fio for desativada, ela não será reconectada automaticamente usando as configurações básicas. Requer o uso do modo manual e roaming com arquivos de configuração extras.
Piotr Kula
Bem, deve ser o suficiente para configurar, certo? Como ele se conectará definitivamente quando o wpa_supplicant iniciar, se a rede estiver disponível. Eu também acho que o wpa_supplicant deve se reconectar automaticamente se você perder a rede.
Hogliux 22/10/2013
Além do meu último comentário, gostaria de acrescentar que eu mesmo usei esse método em um modelo A de framboesa com o mais novo debian.
Hogliux 22/10/2013
WPA Supplicant vai não reconectar se você usar AUTO, você precisa usar STATICcom ROAMINGe definir SSID para conectar-se ... o que é um pouco complicado de configurar.
Piotr Kula #
1

Eu criei uma ferramenta de script de shell (infelizmente roda apenas no Linux), que automatiza todo o processo de download da imagem Raspbian mais recente, descompacta a imagem, incorpora as configurações de wi-fi e ethernet (fornecidas pelo usuário) na imagem, reembalar imagem e grave-a no cartão SD. Quando você inicializa seu Pi com o cartão SD, ele se conecta imediatamente à sua rede. O script também tem a capacidade de procurar um Pi recém-configurado na rede.

Você pode conectar diretamente um dongle Wi-Fi ao seu Pi, use o script RaspImgConfig.sh para incorporar a imagem Raspbian com credenciais de Wi-Fi e gravar a imagem no cartão. Não há necessidade de qualquer monitor, mouse ou teclado.

Vídeo do YouTube usando a ferramenta: https://youtu.be/WdYb1L2WzjM

Atenciosamente, Subhajit Ghosh

Glowingthumb
fonte
-2

Você pode configurar seu pi para trabalhar com um wifi protegido por senha e ativar automaticamente o ssh sem inicializar o pi, com arquivos de configuração na partição / boot.

Eu usei isso para o meu AIY e digitalizei a rede usando o nmap para encontrar o meu pi.

De lá, você pode apenas conectar-se ao pi.

Zanidd
fonte
Você deve pelo menos explicar os nomes dos arquivos necessários e seu conteúdo, bem como um link para mais informações.
Steve Robillard
-3

Eu acho que todas essas respostas estão perdendo o ponto que o modelo RPi NÃO TEM Ethernet, não tem wi-fi, então não importa o que você faça, a menos que você obtenha um dongle externo, você não poderá se conectar ao RPi através do ssh. .. sua melhor aposta é usá-lo diretamente em uma TV ou através da porta serial nos cabeçalhos ou, como eu disse, obter um dongle externo para wifi.

amigojapan
fonte
5
Eu acho que está implícito que ele já está usando um. Alguém poderia assumir que o OP sabe que ele não pode se conectar a uma rede sem fio sem algum tipo de adaptador.
Impulss