Préparer une carte SD pour Wifi sur Headless Pi

160

J'ai besoin de SSH sur mon Pi via le wifi, mais comme il s'agit d'un modèle Un tableau (il n'est pas possible d'utiliser un hub USB) et que je n'ai pas d'Ethernet, je ne peux pas configurer le Pi pour qu'il se connecte à mon réseau wifi sécurisé. Je souhaite que la carte SD soit connectée à mon ordinateur portable et je souhaite éditer un fichier contenant les informations de configuration wifi afin que mon Pi se connecte automatiquement à mon réseau au démarrage afin que je puisse ensuite le SSH le contrôler. Je sais comment activer SSH sur un système sans tête grâce à cette réponse .

Modifier . J'ai cherché partout et je me demandais si je pouvais simplement éditer le fichier /etc/network/interfacesalors que la carte SD était dans mon PC et y insérer tous les éléments réseau, psk et wlan0 du réseau. Est-ce que ça va marcher? Merci

11chubby11
la source
Vous êtes confronté à une situation difficile. Je suggère d'utiliser un réseau local USB temporairement pour se connecter via SSHS. La plupart des pilotes sont inclus pour ceux-ci. Insérez votre WiFi et suivez ensuite cette réponse pour configurer votre WiFi sur le Pi. Une fois que vous avez redémarré, débranchez le réseau local et démarrez à l’aide de Wifi. Il devrait se connecter automatiquement dans quelques minutes.
Piotr Kula
2
Un moyen peu coûteux de configuration consiste à utiliser un adaptateur série USB pour se connecter au port série de l’en-tête GPIO. Vous n'avez même pas besoin d'activer ssh pour faire cela
John La Rooy
voir ma réponse [ici] [1] pour une méthode alternative [1]: raspberrypi.stackexchange.com/a/31397/30719
memebrain,

Réponses:

241

Il y a quelques bonnes réponses ici, mais beaucoup sont obsolètes. Depuis mai 2016, Raspbian a été en mesure de copier les détails de wifi à partir /boot/wpa_supplicant.confdans /etc/wpa_supplicant/wpa_supplicant.confpour configurer automatiquement l' accès au réseau sans fil:

Si un fichier wpa_supplicant.conf est placé dans le répertoire / boot /, il sera déplacé vers le répertoire / etc / wpa_supplicant / au prochain démarrage du système, en écrasant les paramètres réseau. Cela permet de précharger une configuration Wifi sur une carte à partir d'un ordinateur Windows ou d'un autre ordinateur ne pouvant voir que la partition de démarrage.

- Dernière mise à jour de Raspbian - Raspberry Pi , 2016-05-13

Étant donné que la /bootpartition est accessible par n'importe quel ordinateur équipé d'un lecteur de carte SD, la configuration du wifi est maintenant beaucoup plus simple.

Un fichier wpa_supplicant.conf typique est:

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
}

Remplacez «your_ISO-3166-1_two-letter_country_code» par votre code de pays ISO (par exemple, CApour le Canada), «your_SSID» avec le nom de votre point d'accès sans fil et «your_PSK» avec votre mot de passe wifi.

Si vous ne souhaitez pas stocker votre mot de passe wifi en texte brut, vous pouvez utiliser l' wpa_passphraseutilitaire pour stocker le mot de passe haché:

wpa_passphrase «your_SSID»

L'utilitaire demandera le mot de passe et renverra la valeur de hachage hexadécimale. Notez que ce mot de passe haché est stocké sans guillemets dans le /boot/wpa_supplicant.conf, par exemple:

psk=b76dc68cb76bfea7232e32634f859ca760cd8abeee318a346b51d3bde00b8965

Notez que les lignes country, ctrl_interfaceet update_configsont nécessaires dans le fichier créé dans /boot: s'il leur manque, le système ne se connectera pas au réseau. Le processus ci-dessus peut être répété pour corriger les omissions.

Ce processus a été testé avec Raspbian et Raspbian Lite depuis la version de novembre 2018.


En outre, vous souhaiterez peut-être ajouter un accès Secure Shell (SSH) à votre Raspberry Pi sans tête. SSH est désactivé par défaut sur Raspbian pour des raisons de sécurité. Vous pouvez l'activer en créant un fichier nommé /boot/ssh:

Pour une configuration sans assistance, SSH peut être activé en plaçant un fichier nommé 'ssh', sans aucune extension, sur la partition de démarrage de la carte SD. Lorsque le Pi démarre, il cherche le fichier 'ssh'; S'il est trouvé, SSH est activé, puis le fichier est supprimé. Le contenu du fichier importe peu: il peut contenir du texte ou rien du tout.

- SSH (Secure Shell) - Documentation de Raspberry Pi

Si vous activez l'accès SSH, vous devez modifier le mot de passe de l' utilisateur pi standard dès que possible. Le mot de passe par défaut ( framboise ) étant largement connu, votre Raspberry Pi est effectivement ouvert à tout le monde sur votre réseau jusqu'à ce que vous changiez le mot de passe. Vous pouvez le faire avec la passwdcommande.

scruss
la source
2
Il existe deux restrictions pour cette solution (testée avec les images 2016-09-23): 1. Le fichier doit être formaté avec des fins de ligne de style Linux (LF au lieu de CR LF). 2. Cela n'a pas fonctionné avec l'image de lumière Raspbian sur mon Raspberry Pi 3.
user2154065
1
@ user2154065 1. Convertissez un fichier dans LF avec Notepad ++ en cliquant avec le bouton droit de la souris sur "Dos \ Windows" en bas à droite et en sélectionnant "Format UNIX / OSX". 2. Le wpasupplicantpaquet n'est probablement pas inclus dans Raspbian Lite.
Hydraxan14
1
Maintenant que deux machines Raspbian Lite sont en cours d’exécution, je suis presque certaine que mon commentaire était erroné: wpa_supplicant est inclus ou peut être facilement installé.
scruss
5
@kleinfreund n'incluez pas la phrase secrète en texte clair. Exécutez "wpa_passphrase SSID" (avec votre SSID) et entrez la phrase secrète lorsque vous y êtes invité. Copiez la sortie dans votre fichier wpa_supplicant.conf, en supprimant la ligne contenant le texte en clair et en ne conservant que la version hachée. (Vous pouvez le faire sur un autre système afin de disposer du fichier à l'avance lors de la configuration de votre
Peter Hansen
4
@scruss - votre réponse est presque correcte, veuillez ajouter cette ligne à l' wpa_supplicant.confexemple ci-dessus: ctrl_interface=/var/run/wpa_supplicant je viens d'essayer un nouveau Zero W avec Raspbian Strech Lite
ctekse le
23

Quelques instructions spécifiques:

Contenu 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

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

Honnête. Ces deux fichiers, avec un contenu donné, sont ce que j'utilise sur tous mes fichiers. Ils démarrent et se connectent immédiatement à mon routeur sans fil. La négociation DHCP fournit une adresse et mon routeur résout le nom d'hôte en l'adresse IP appropriée. Assurez-vous de nommer chaque PI de manière appropriée via /etc/hostname.

L'étrangeté dans le interfacesfichier dans la fin iface default...est nécessaire, sinon la connexion WPA sans fil ne sera pas établie.

Le wpa_supplicant.conffichier peut avoir plusieurs network={entrées aussi, j’avais l'habitude de faire marcher mon pi ... branchez-le et le tour est joué, il s'est connecté automatiquement là aussi, la configuration du travail était un peu plus compliquée cependant. Inclus ici à titre d'exemple, ajoutez / remplacez les éléments suivants dans le wpa_supplicant.conffichier:

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

Essentiellement, il analyse le wpa_supplicant.conffichier et se connecte au premier réseau correspondant. Très utile. Il est également possible de le connecter automatiquement à n’importe quel réseau «ouvert». Pas la chose la plus intelligente à faire, mais faisable.

Lornix
la source
Je dois aussi avoir une adresse IP statique car elle est sans tête et je ne pourrai pas la ssh sans connaître son adresse ip. J'ai actuellement id_str="home"dans wpa_supplicant.conf et iface home inet static(IP statique info dessous) dans le fichier d'interface, cela me donne une adresse IP statique mais je ne suis pas sûr que ce soit le meilleur moyen de le configurer et son un peu déroutant de le configurer ( et je reçois une erreur "Impossible de trouver le périphérique" maison "" au démarrage).
11chubby11
1
J'utilise dyn.com (ou dyndns.com) pour permettre à un nom correct d'accéder à mon ou mes pi, utilisez ddclient pour définir automatiquement le nom avec l'adresse appropriée. Alternativement, utilisez votre routeur pour spécifier une adresse statique DHCP, beaucoup plus utile. J'utilise également upnpcd pour configurer de manière dynamique les paramètres upnp afin de me permettre de me connecter à mes systèmes depuis l'extérieur de mon réseau. Aucune adresse IP statique n'est nécessaire, elle se configure où qu'elle soit. (la strophe iface ne peut avoir que l'option lo / eth0 / wlan0 / default, l'option 'home' ne fonctionnera pas)
lornix
Comment puis-je ajouter /etc/network/interfacesdans le démarrage SD? Il suffit de le mettre n'importe où et il va le copier?
denislexic
Fondamentalement, un commentaire à la réponse de Lornix - dont j'ai utilisé la solution avec succès - car je n'ai pas de représentant pour écrire des commentaires. Afin de modifier le système de fichiers racine, vous devez monter la deuxième partition, et non la première, la partition de démarrage. J'ai fait: sudo mount / dev / sdc2 / mnt, après quoi je pouvais éditer des fichiers sous la racine / mnt, c'est-à-dire /mnt/etc/wpa_supplicant/wpa_supplicant.conf et / mnt / etc / network / interfaces et / mnt / etc / hostname. (encore une fois en utilisant sudo). Une fois terminé, supprimez la hiérarchie / mnt et faites sudo umount / mnt. Vous pouvez ensuite insérer la carte SD dans le Rπ et démarrer. Notez que cela nécessite une machine Linux,
Ketil Malde
10

Depuis novembre 2016, SSH est désactivé par défaut dans les images Raspbian standard pour des raisons de sécurité.

Pour le réactiver, créez un fichier vide appelé sshou ssh.txtdans le dossier de démarrage de la carte sd (partition fat32 accessible à partir de Windows).

Pour préconfigurer les paramètres wifi, vous devez également créer un fichier appelé wpa_supplicant.conf:

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

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

Ces deux fichiers peuvent être créés sous Windows et modifiés à l'aide du bloc-notes.

Ensuite, insérez la carte SD dans le pi et vous devriez pouvoir SSH directement.

Mike Redrobe
la source
Cela fait plaisir de voir qu'ils ont grandement simplifié la configuration! Très bonne réponse!
Lornix
3

À partir de RASPBIAN STRETCH, vous devez inclure ctrl_interfaceet update_configdanswpa_supplicant.conf

Pour obtenir le wifi avec ssh au démarrage, suivez ces étapes simples sur votre carte SD:

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

Avec le contenu:

country=AU  #omit if US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="YourNetworkSSID-1"
    psk="passwordOne"
}
  1. Démontez la carte SD, mettez en pi, démarrez pi
rynop
la source
2

Vous pouvez utiliser le interfacesfichier. Chargez-le avec toutes les informations du réseau et mettez-le dans une clé USB, puis redémarrez le RPi avec cela. Le RPi prend les paramètres et configure le WiFi sans avoir besoin de matériel supplémentaire ni de moniteur.

Après cela, vous pouvez SSH en Pi et installer VNC pour obtenir une interface graphique. Si vous voulez une des instructions étape par étape pour elle, consultez Option 3: Connect with WiFile http://www.dexterindustries.com/BrickPi/getting-started/using-the-pi/

Karan
la source
Impossible que cela fonctionne. Je ne trouve aucune autre information sur Internet concernant cette façon de configurer le wifi.
11chubby11
J'ai oublié de mentionner le script utilisé pour automatiser cela. Le voici
Karan
2

Vous pouvez également configurer une carte SD qui installera automatiquement Rasbian avec une connexion WiFi préconfigurée sur votre Raspberry pi (configuration sans tête Raspberry Pi). Cela permet à votre pi d'être juste connecté au pouvoir pour son premier démarrage.

Étape 1: Téléchargez Noobs Téléchargez et décompressez le dernier logiciel Noobs (version hors connexion et installation réseau) sur https://www.raspberrypi.org/downloads/

Alternative: lien direct vers le fichier: http://downloads.raspberrypi.org/NOOBS_latest

Au moment de la rédaction de cet article, la dernière version de NOOBS est la 1.4.0.

Étape 2: Configuration sans tête Dans le répertoire os /, supprimez tous les autres dossiers que rasbian /. En fait, vous ne devriez avoir qu'un seul autre dossier nommé Data_Partition.

Dans le dossier rasbian /, éditez le fichier flavours.json. Vous devriez voir ce qui suit:

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

Supprimez la partie «Raspbian - Boot to Scratch» pour que le fichier ressemble à ceci à la fin:

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

Editez le fichier recovery.cmdline dans le répertoire NOOBS racine et ajoutez silentinstall à la liste des arguments. Le fichier devrait ressembler à ceci à la fin:

runinstaller quiet vt.cur_default=1 elevator=deadline silentinstall

Étape 4 (facultatif): Configurez la disposition du clavier et la langue personnalisées Si vous souhaitez modifier la disposition du clavier par défaut (us) et / ou la langue par défaut (la valeur par défaut est 'us'), ajoutez lang = XX keyboard = XX dans la liste des arguments de la récupération. Fichier .cmdline (XX devrait être remplacé par votre langue et votre code clavier, ce qui pourrait être fr, de,… La valeur par défaut est nous).

Le fichier devrait ressembler à ceci à la fin:

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

Étape 5 (facultatif): Configurer Wifi Noobs Config est un outil qui permet de copier / coller certains fichiers juste après l'installation de Rasbian. Entre autres choses, cet outil vous permet de préconfigurer le Wifi sur votre Pi. Cela suppose néanmoins que le dongle wifi que vous utilisez est directement supporté par Raspbian.

La première chose à faire est de télécharger Noobs Config sur GitHub ( https://github.com/procount/noobsconfig/archive/master.zip )

Puis décompressez noobsconfig.zip et:

  • copiez “customise.sh” dans le répertoire racine de vos fichiers Noobs

  • copiez “os / Rasbian / partition_setup.sh” dans votre répertoire “os / Rasbian /” de vos fichiers Noobs.

  • créer un dossier nommé "wifi" sous "os / Rasbian /"

  • copiez le répertoire «Exemples / Rasbian / wifi / wifi / wpa_supplicant.conf» dans le
    répertoire «os / Rasbian / wifi /» de vos fichiers Noobs.

  • copiez le répertoire «Exemples / Rasbian / wifi / Raspbian_root.txt» dans le répertoire «os / Rasbian /»
    de vos fichiers Noobs.

La dernière chose à faire est de configurer vos identifiants wifi et psk (mot de passe) dans wpa_supplicant.conf:

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

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

Étape 5 (facultatif): Modifier le mot de passe par défaut Même si cette étape est facultative, il est vivement recommandé de modifier le mot de passe par défaut de votre configuration Rasbian.

Editez le fichier os / Rasbian / os.json. Ça devrait ressembler à ça :

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

Changeons le mot de passe par défaut sur la ligne 9.

Étape 5: Copiez les fichiers sur votre carte SD et démarrez votre Raspberry pi Copy / past files sur une carte SD au format FAT.

Étape 6: Démarrez et connectez Boot sur notre carte SD, après quelques minutes (en fonction de votre carte SD, le processus d'installation peut prendre plus de 30 minutes) et connectez-vous à votre Pi via SSH.

C'est ça ...

jeje
la source
Ces instructions semblent prometteuses, mais à partir de NOOBS v1.9.2, il n’existait aucun fichier flavours.json dans le répertoire os / Raspbian. Étant donné que la principale raison de l’éditer était de supprimer une version alternative, j’estime prudent de sauter cette étape si elle n’est pas nécessaire.
mardi
2

Le processus d'installation sans tête a légèrement changé pour Raspbian Stretch et les nouvelles versions de RetroPie.

à l'intérieur du répertoire de démarrage ...

touch ssh

nano wpa_supplicant.conf

ajoutez ceci à wpa_supplicant.conf

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

démontez la carte SD et insérez-la en pi pour le démarrage

donnez-lui une minute et trouvez l'adresse IP de votre pi

ssh dans le pi

ssh pi@pi-ip-address

le mot de passe par défaut est framboise

Ullauri
la source
1

Vous devez éditer le wpa_supplicant.conffichier sur la carte sd (c'est dans /etcou /etc/wpa_supplicantselon la version de votre distribution). Le format du fichier est expliqué ici: http://linux.die.net/man/5/wpa_supplicant.conf

hogliux
la source
Mais si le sans-fil est désactivé, il ne se reconnectera pas automatiquement à l'aide des paramètres de base. Vous devez utiliser le mode manuel et l'itinérance avec des fichiers de configuration supplémentaires.
Piotr Kula
Eh bien, cela devrait suffire à installer, non? Comme il va certainement se connecter lorsque wpa_supplicant démarre, si le réseau est disponible. Je pense aussi que wpa_supplicant devrait se reconnecter automatiquement si vous perdez le réseau.
hogliux
Suite à mon dernier commentaire, je voudrais ajouter que j’ai moi-même utilisé cette méthode sur un modèle A de framboise avec le dernier fichier debian.
hogliux
WPA Supplicant ne pas vous reconnecter si vous utilisez AUTO, vous devez utiliser STATICavec ROAMINGet définir le SSID pour se connecter à ... ce qui est un peu difficile à mettre en place.
Piotr Kula
1

J'ai créé un outil de script shell (ne fonctionnant malheureusement que sous Linux), il automatise l'intégralité du processus de téléchargement de la dernière image Raspbian, décompressant l'image, intégrant les paramètres Wi-Fi et Ethernet (fournis par l'utilisateur) dans l'image, remballe l'image et la graver sur la carte SD. Lorsque vous démarrez votre Pi avec la carte SD, il se connecte immédiatement à votre réseau. Le script permet également de rechercher un Pi nouvellement configuré sur le réseau.

Vous pouvez connecter directement un dongle Wi-Fi à votre Pi, utilisez le script RaspImgConfig.sh pour incorporer l'image Raspbian avec les informations d'identification Wi-Fi et graver l'image sur la carte. Pas besoin de moniteur, souris ou clavier.

Vidéo Youtube d'utilisation de l'outil: https://youtu.be/WdYb1L2WzjM

Cordialement, Subhajit Ghosh

Luminescent
la source
-2

Vous pouvez configurer votre pi pour qu'il fonctionne avec un réseau wifi protégé par mot de passe et activer automatiquement ssh sans démarrer le pi, avec des fichiers de configuration dans la partition / boot.

Je l'ai utilisé pour mon AIY et j'ai scanné le réseau à l'aide de nmap pour trouver mon pi.

De là, vous pouvez simplement vous connecter au pi.

Zanidd
la source
Vous devez au moins expliquer les noms de fichiers nécessaires et leur contenu, ainsi qu'un lien vers des informations complémentaires.
Steve Robillard
-3

Je pense que toutes ces réponses manquent le point que le modèle de RPi A N'A PAS d'Ethernet, pas de Wi-Fi, donc peu importe ce que vous faites, à moins que vous n'ayez un dongle externe, vous ne pourrez pas vous connecter au RPi via ssh. .. votre meilleur pari est soit de l’utiliser directement sur un téléviseur, soit de l’utiliser via le port série des en-têtes, ou, comme je l’ai dit, un dongle externe pour le wifi.

amigojapan
la source
5
Je pense que cela sous-entend qu'il en utilise déjà un. On pourrait supposer que l'OP est conscient qu'il ne peut pas se connecter à un réseau sans fil sans une sorte d'adaptateur.
Impuls