Prepare la tarjeta SD para Wifi en Headless Pi


159

Necesito SSH mi Pi a través de wifi pero debido a que es una placa modelo A (nunca es posible usar un hub usb) y no tengo ethernet, no puedo configurar el Pi para conectarme a mi red wifi segura. Quiero tener la tarjeta SD conectada a mi computadora portátil y quiero editar un archivo con la información de configuración wifi para que mi Pi se conecte a mi red automáticamente al inicio para que luego pueda SSH para obtener el control. Sé cómo habilitar SSH en un sistema sin cabeza gracias a esta respuesta .

Editar . He estado buscando y me pregunto si puedo editar el archivo /etc/network/interfacesmientras la tarjeta SD está en mi PC y poner todo el contenido de red ssid, psk y wlan0 en él. esto funcionara? Gracias


Te enfrentas a una situación difícil allí. Sugeriría usar una LAN USB temporalmente para conectarse a través de SSHS. La mayoría de los controladores están incluidos para esos. Inserte su WiFi y luego siga esta respuesta para configurar su WiFi en el Pi. Después de reiniciar, desenchufe la LAN e inicie usando Wifi. Debería conectarse automáticamente en unos minutos.
Piotr Kula

2
La forma económica de configurar es usar un adaptador USB serie para conectarse a la serie en el encabezado GPIO. Ni siquiera necesita habilitar ssh para hacer esto
John La Rooy

vea mi respuesta [aquí] [1] para un método alternativo [1]: raspberrypi.stackexchange.com/a/31397/30719
memebrain

Respuestas:


240

Aquí hay algunas respuestas excelentes, pero muchas están desactualizadas. Desde mayo de 2016, Raspbian ha sido capaz de copiar datos de wifi /boot/wpa_supplicant.confen /etc/wpa_supplicant/wpa_supplicant.confconfigurar automáticamente el acceso de red inalámbrica:

Si se coloca un archivo wpa_supplicant.conf en el directorio / boot /, este se moverá al directorio / etc / wpa_supplicant / la próxima vez que se inicie el sistema, sobrescribiendo la configuración de red; esto permite que una configuración de Wifi se cargue previamente en una tarjeta desde Windows u otra máquina que solo puede ver la partición de arranque.

- La última actualización de Raspbian - Raspberry Pi , 2016-05-13

Dado que /bootcualquier computadora con lector de tarjetas SD puede acceder a la partición, la configuración wifi ahora es mucho más simple.

Un archivo típico wpa_supplicant.conf es:

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
}

Reemplace «your_ISO-3166-1_two-letter_country_code» con su código de país ISO (como CApara Canadá), «your_SSID» con el nombre de su punto de acceso inalámbrico y «your_PSK» con su contraseña wifi.

Si no desea almacenar su contraseña wifi en texto plano, puede usar la wpa_passphraseutilidad para almacenar la contraseña cifrada:

wpa_passphrase «your_SSID»

La utilidad solicitará la contraseña y devolverá el valor hash hexadecimal. Tenga en cuenta que esta contraseña cifrada se almacena sin comillas en /boot/wpa_supplicant.conf, por ejemplo:

psk=b76dc68cb76bfea7232e32634f859ca760cd8abeee318a346b51d3bde00b8965

Tenga en cuenta que las líneas country, ctrl_interfacey update_configson necesarias en el archivo creado en /boot: si faltan, el sistema no se conectará a la red. El proceso anterior se puede repetir para corregir las omisiones.

Este proceso se ha probado con Raspbian y Raspbian Lite a partir de la versión de noviembre de 2018.


Además, es posible que desee agregar acceso Secure Shell (SSH) a su Raspberry Pi sin cabeza. SSH está deshabilitado en Raspbian de forma predeterminada por razones de seguridad. Puede habilitarlo creando un archivo llamado /boot/ssh:

Para la configuración sin cabeza, SSH se puede habilitar colocando un archivo llamado 'ssh', sin ninguna extensión, en la partición de arranque de la tarjeta SD. Cuando el Pi arranca, busca el archivo 'ssh'; si se encuentra, se habilita SSH y luego se elimina el archivo. El contenido del archivo no importa: puede contener texto o nada en absoluto.

- SSH (Secure Shell) - Documentación de Raspberry Pi

Si habilita el acceso SSH, debe cambiar la contraseña del usuario pi estándar lo antes posible. Como la contraseña predeterminada ( frambuesa ) es ampliamente conocida, su Raspberry Pi está abierta para todos en su red hasta que cambie la contraseña. Puedes hacer esto con el passwdcomando.


2
Hay dos restricciones para esta solución (probada con imágenes del 23/09/2016): 1. El archivo debe estar formateado con terminaciones de línea de estilo Linux (LF en lugar de CR LF). 2. No funcionó con la imagen ligera de Raspbian en mi Raspberry Pi 3.
user2154065

1
@ user2154065 1. Archivo secreto a LF con Notepad ++ haciendo clic derecho en "Dos \ Windows" en la parte inferior derecha y seleccionando "formato UNIX / OSX". 2. El wpasupplicantpaquete probablemente no está incluido en Raspbian Lite.
Hydraxan14

1
Ahora que tengo un par de máquinas Raspbian Lite funcionando, estoy bastante seguro de que mi comentario fue incorrecto: wpa_supplicant está incluido o se puede instalar fácilmente.
scruss

55
@kleinfreund no incluye la frase de contraseña en texto claro. Ejecute "wpa_passphrase SSID" (con su SSID) e ingrese la contraseña cuando se le solicite. Copie la salida en su archivo wpa_supplicant.conf, eliminando la línea que incluye el texto sin formato y dejando solo la versión con hash. (Puede hacer esto en un sistema diferente para tener el archivo con anticipación al configurar su micro SD para el Pi.)
Peter Hansen

44
@scruss: su respuesta es casi correcta, agregue esta línea al wpa_supplicant.confejemplo anterior: ctrl_interface=/var/run/wpa_supplicant acabo de probar un nuevo Zero W con Raspbian Strech Lite
ctekse

23

Algunas instrucciones específicas:

Contenido 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

Contenido 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. Esos dos archivos, con contenido dado, son los que uso en todos mis pi. Arrancan e inmediatamente se conectan a mi enrutador inalámbrico. La negociación de DHCP proporciona una dirección, y mi enrutador resuelve el nombre de host en la dirección IP correcta. Asegúrese de nombrar cada PI apropiadamente a través de /etc/hostname.

Se necesita la rareza en el interfacesarchivo en el seguimiento iface default..., de lo contrario la conexión inalámbrica WPA no aparecerá.

El wpa_supplicant.confarchivo también puede tener múltiples network={entradas, solía llevar mi pi al trabajo ... conéctelo y listo, también se conectaba automáticamente allí, aunque la configuración del trabajo era un poco más complicada. Incluido aquí como ejemplo, agregue / reemplace lo siguiente en el wpa_supplicant.confarchivo:

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"
}

Básicamente, escanea el wpa_supplicant.confarchivo y se conecta a la primera red que encuentra que coincide. Muy útil. También es posible hacer que se conecte automáticamente a cualquier red 'abierta' de esta manera. No es lo más inteligente, pero es factible.


Necesito tener una ip estática también porque no tiene cabeza y no podré ssh sin conocer su dirección ip. Actualmente tengo id_str="home"en wpa_supplicant.conf y iface home inet static(información IP estática por debajo de esta) en el archivo de interfaces, esto me da una dirección IP estática, pero no estoy seguro si esta es la mejor manera de tener que configurar y es un poco complicado de configurar ( y aparece un error "No se puede encontrar el dispositivo" inicio "" en el arranque).
11chubby11

1
Uso dyn.com (o dyndns.com) para permitir que un nombre propio acceda a mis pi (s), uso ddclient para establecer automáticamente el nombre en la dirección correcta. Alternativamente, use su enrutador para especificar una dirección dhcp estática, mucho más útil. También uso upnpcd para configurar dinámicamente la configuración de upnp para permitirme conectarme a mis sistemas desde fuera de mi red, no se necesita ninguna IP estática ahora, se configura donde sea que esté. (la estrofa iface solo puede tener lo / eth0 / wlan0 / default como opción, 'home' no funcionará)
lornix

¿Cómo puedo agregar /etc/network/interfacesel arranque SD? ¿Solo ponlo en cualquier lugar y lo copiará?
denislexic

Básicamente un comentario a la respuesta de lornix, cuya solución usé con éxito, ya que no tengo representante para escribir comentarios. Para editar el sistema de archivos raíz, debe montar la segunda partición, no la primera partición de arranque. Lo hice: sudo mount / dev / sdc2 / mnt después de lo cual pude editar archivos bajo la raíz / mnt, es decir /mnt/etc/wpa_supplicant/wpa_supplicant.conf y / mnt / etc / network / interfaces y / mnt / etc / hostname (De nuevo usando sudo). Cuando termine, cd fuera de la jerarquía / mnt, y sudo umount / mnt. Luego puede insertar la tarjeta SD en el Rπ y arrancar. Tenga en cuenta que esto requiere una máquina Linux,
Ketil Malde

10

Desde noviembre de 2016, SSH ha sido deshabilitado por defecto en las imágenes Raspbian estándar por razones de seguridad.

Para volver a habilitarlo, cree un archivo en blanco llamado cualquiera ssho ssh.txten la carpeta de arranque de la tarjeta SD (partición fat32 accesible desde Windows)

Para preconfigurar la configuración wifi, también crea un archivo llamado wpa_supplicant.confallí que contiene:

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

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

Ambos archivos se pueden crear en Windows y editar con el bloc de notas.

Luego inserte la tarjeta SD en el pi, y debería poder SSH directamente.


¡Es bueno ver que han simplificado enormemente la configuración! ¡Gran respuesta!
lornix

3

A partir de RASPBIAN STRETCH debe incluir ctrl_interfacey update_configenwpa_supplicant.conf

Para obtener wifi con ssh en el arranque, siga estos simples pasos en su tarjeta SD:

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

Con los contenidos:

country=AU  #omit if US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="YourNetworkSSID-1"
    psk="passwordOne"
}
  1. Desmontar la tarjeta SD, poner en pi, arrancar pi

2

Puedes usar el interfacesarchivo. Cárguelo con toda la información de la red y colóquelo en una unidad de disco USB y reinicie el RPi con eso. El RPi toma la configuración y configura el WiFi sin la necesidad de hardware adicional o un monitor.

Después de eso, puede SSH en Pi e instalar VNC para obtener una GUI. Si quieres una instrucción paso a paso para ello, echa un vistazo Option 3: Connect with WiFien http://www.dexterindustries.com/BrickPi/getting-started/using-the-pi/


No se pudo lograr que esto funcione. No puedo encontrar ninguna otra información en Internet sobre esta forma de configurar wifi.
11chubby11

Olvidé mencionar el script utilizado para automatizar esto. Aquí está
karan

2

También puede configurar una tarjeta SD que instalará automáticamente Rasbian con una conexión WiFi preconfigurada en su Raspberry pi (configuración sin cabeza de Raspberry Pi). Esto permite que su pi se conecte a la alimentación para su primer arranque.

Paso 1: descargue Noobs Obtenga y descomprima el último software de Noobs (versión sin conexión e instalación en red) en https://www.raspberrypi.org/downloads/

Alternativa: enlace directo al archivo: http://downloads.raspberrypi.org/NOOBS_latest

En ese momento de la escritura, la última versión de NOOBS es 1.4.0

Paso 2: Configuración sin cabeza En el directorio os /, elimine todas las carpetas que no sean rasbian /. De hecho, solo debería tener otra carpeta llamada Data_Partition.

En la carpeta rasbian /, edite el archivo flavours.json. Deberías ver lo siguiente:

{
  "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"
    }
  ]
}

Elimine la parte "Raspbian - Boot to Scratch", para que el archivo se vea así al 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 el archivo recovery.cmdline en el directorio raíz NOOBS y agregue silentinstall a la lista de argumentos. El archivo debería verse así al final:

runinstaller quiet vt.cur_default=1 elevator=deadline silentinstall

Paso 4 (opcional): configure la distribución y el idioma del teclado personalizado Si desea cambiar la distribución predeterminada del teclado (us) y / o el idioma predeterminado (el predeterminado es 'us') agregue lang = XX keyboard = XX en la lista de argumentos de la recuperación archivo .cmdline (XX debe ser reemplazado por su idioma y código de teclado, que podría ser fr, de, ... El valor predeterminado es nosotros).

El archivo debería verse así al final:

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

Paso 5 (opcional): Configurar Wifi Noobs Config es una herramienta que copiará / pegará algunos archivos justo después de la instalación de Rasbian. Entre muchas otras cosas, esta herramienta le permite preconfigurar Wifi en su Pi. Sin embargo, esto supone que Raspbian admite directamente el dongle wifi que utiliza.

Lo primero es descargar Noobs Config en GitHub ( https://github.com/procount/noobsconfig/archive/master.zip )

Luego descomprima noobsconfig.zip y:

  • copie "customise.sh" en el directorio raíz de sus archivos Noobs

  • copie "os / Rasbian / division_setup.sh" a su directorio "os / Rasbian /" de sus archivos Noobs.

  • crear una carpeta llamada "wifi" en "os / Rasbian /"

  • copie "Ejemplos / Rasbian / wifi / wifi / wpa_supplicant.conf" al directorio
    "os / Rasbian / wifi /" de sus archivos Noobs.

  • copie "Ejemplos / Rasbian / wifi / Raspbian_root.txt" al
    directorio "os / Rasbian /" de sus archivos Noobs.

Lo último es configurar su wifi ssid y psk (contraseña) en wpa_supplicant.conf:

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

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

Paso 5 (opcional): cambie la contraseña predeterminada Incluso si este paso es opcional, se recomienda cambiar la contraseña predeterminada de su configuración Rasbian.

Edite el archivo os / Rasbian / os.json. Debe tener un aspecto como este :

{
  "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"
}

Cambiemos la contraseña predeterminada en la línea 9.

Paso 5: Copie los archivos en su tarjeta SD y arranque su Raspberry pi Copy / past files en una tarjeta SD con formato FAT.

Paso 6: Arranque y conecte Arranque en nuestra tarjeta SD, después de unos minutos (dependiendo de su tarjeta SD, el proceso de instalación puede tomar más de 30 minutos) y conéctese a su Pi a través de SSH.

Que eso ...


Estas instrucciones parecen prometedoras, pero a partir de NOOBS v1.9.2 no hay ningún archivo flavours.json en el directorio os / Raspbian. Dado que la razón principal para editarlo fue eliminar una versión alternativa, creo que es seguro omitir ese paso cuando no sea necesario.
natevw

2

El proceso para la configuración sin cabeza ha cambiado ligeramente para Raspbian Stretch y las versiones más recientes de RetroPie.

dentro del directorio de arranque ...

touch ssh

nano wpa_supplicant.conf

agregue esto a 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 la tarjeta SD e insértela en pi para arrancar

dale un minuto y encuentra la dirección IP de tu pi

ssh en el pi

ssh pi@pi-ip-address

la contraseña predeterminada es frambuesa


1

Debe editar el wpa_supplicant.confarchivo en la tarjeta sd (está en /etco /etc/wpa_supplicantdepende de su versión de distribución). El formato del archivo se explica aquí: http://linux.die.net/man/5/wpa_supplicant.conf


Pero si la conexión inalámbrica se desconecta, no se volverá a conectar automáticamente utilizando la configuración básica. Requiere que use el modo manual y el roaming con archivos de configuración adicionales.
Piotr Kula

Bueno, debería ser suficiente para configurar, ¿verdad? Como definitivamente se conectará cuando se inicie wpa_supplicant si la red está disponible. También creo que wpa_supplicant debería reconectarse automáticamente si pierde la red.
hogliux

Además de mi último comentario, me gustaría agregar que he usado este método yo mismo en un modelo A de frambuesa con el debian más reciente.
hogliux

WPA suplicante va a no volver a conectar si se utiliza AUTO, es necesario utilizar STATICcon ROAMINGy definir SSID para conectarse a ... que es un poco difícil de configurar.
Piotr Kula

1

He creado una herramienta de script de shell (desafortunadamente solo se ejecuta en Linux), automatiza todo el proceso de descarga de la última imagen de Raspbian, desempaqueta la imagen, incrusta la configuración de wi-fi y ethernet (proporcionada por el usuario) en la imagen, reempaqueta la imagen y grabarla en la tarjeta SD. Cuando inicia su Pi con la tarjeta SD, se conecta inmediatamente con su red. El script también tiene la capacidad de buscar un Pi recién configurado en la red.

Puede conectar directamente un dispositivo de seguridad Wi-Fi con su Pi, usar el script RaspImgConfig.sh para incrustar la imagen Raspbian con credenciales de wi-fi y grabar la imagen en la tarjeta. No es necesario ningún monitor, mouse o teclado.

Video de YouTube sobre el uso de la herramienta: https://youtu.be/WdYb1L2WzjM

Saludos, Subhajit Ghosh


-2

Puede configurar su pi para que funcione con un wifi protegido por contraseña y habilitar automáticamente ssh sin arrancar el pi, con archivos de configuración en la partición / boot.

Utilicé esto para mi AIY y escaneé la red usando nmap para encontrar mi pi.

Desde allí solo puede conectarse a la pi.


Al menos debe explicar los nombres de archivo necesarios y sus contenidos, así como un enlace para obtener más información.
Steve Robillard

-3

Creo que a todas estas respuestas les falta el punto de que el modelo RPi A NO TIENE Ethernet, no tiene wi-fi, así que no importa lo que haga, a menos que obtenga un dongle externo, no podrá conectarse al RPi a través de ssh ... .. su mejor opción es usarlo directamente en un televisor o usarlo a través del puerto serie en los encabezados, o como dije, obtener un dongle externo para wifi.


55
Creo que está implícito que ya está usando uno. Uno supondría que el OP es consciente de que no puede conectarse a una red inalámbrica sin algún tipo de adaptador.
Impulso