Підготуйте SD-карту для Wifi на Headless Pi


158

Мені потрібно SSH мій Pi через wifi, але оскільки це модель плати (використання концентратора usb неможливо - ніколи), і я не маю Ethernet, я не можу налаштувати Pi для підключення до моєї захищеної мережі Wi-Fi. Я хочу, щоб SD-карта була підключена до мого ноутбука, і я хочу відредагувати файл з інформацією про конфігурацію wifi, щоб мій Pi підключився до моєї мережі автоматично при запуску, щоб потім я міг SSH отримати контроль. Я знаю, як увімкнути SSH на безголовій системі завдяки цій відповіді .

Редагувати . Я шукав навколо, і мені цікаво, чи зможу я просто відредагувати файл, /etc/network/interfacesпоки SD-карта знаходиться на моєму ПК, і помістити в неї всі матеріали ssid, psk і wlan0. Чи буде це працювати? Дякую


Ви там стикаєтеся з досить важким становищем. Я б запропонував тимчасово використовувати USB LAN для підключення через SSHS. Більшість водіїв включені до них. Вставте свій Wi-Fi, а потім дотримуйтесь цієї відповіді, щоб налаштувати Wi-Fi на Pi. Після того, як підопічні перезавантажуються, відключіть мережеву мережу та завантажте її за допомогою Wi-Fi. Він повинен автоматично підключитися протягом декількох хвилин.
Пьотр Кула

2
Спосіб налаштування з низькою вартістю полягає у використанні USB-послідовного адаптера для підключення до серіалу у заголовку GPIO. Вам навіть не потрібно включати ssh для цього
Джон Ла Рой

см моя відповідь [тут] [1] для альтернативного методу [1]: raspberrypi.stackexchange.com/a/31397/30719
memebrain

Відповіді:


237

Тут є кілька чудових відповідей, але багато застарілих. З травня 2016 року, Raspbian вдалося скопіювати деталі Wi - Fi від /boot/wpa_supplicant.confв /etc/wpa_supplicant/wpa_supplicant.confавтоматичному налаштуванню бездротового доступу до мережі:

Якщо файл wpa_supplicant.conf розміщений у каталозі / boot /, він буде переміщений до каталогу / etc / wpa_supplicant / наступного разу при завантаженні системи, замінивши мережеві налаштування; це дозволяє попередньо завантажити конфігурацію Wifi на карту з Windows або іншої машини, яка може бачити лише завантажувальний розділ.

- Останнє оновлення до Raspbian - Raspberry Pi , 2016-05-13

Оскільки до /bootрозділу доступний будь-який комп'ютер із зчитувачем SD карт, конфігурація Wi-Fi тепер значно простіша.

Типовий файл wpa_supplicant.conf:

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
}

Замініть «your_ISO-3166-1_two-letter_country_code» своїм кодом країни ISO (наприклад, CAдля Канади), «your_SSID» своїм ім'ям точки бездротового доступу та «your_PSK» своїм паролем wifi.

Якщо ви не бажаєте зберігати пароль Wi-Fi у простому тексті, ви можете скористатися wpa_passphraseутилітою для збереження хешованого пароля:

wpa_passphrase «your_SSID»

Утиліта запропонує ввести пароль і поверне шістнадцяткове значення хеша. Зауважте, що цей хешований пароль зберігається без лапок у /boot/wpa_supplicant.conf, наприклад:

psk=b76dc68cb76bfea7232e32634f859ca760cd8abeee318a346b51d3bde00b8965

Слід зазначити , що country, ctrl_interfaceі update_configлінії потрібно в файл , як створений в /boot: якщо вони відсутні в системі не буде підключатися до мережі. Вищеописаний процес можна повторити для виправлення пропусків.

Цей процес був протестований як з Raspbian, так і з Raspbian Lite станом на випуск листопада 2018 року.


Крім того, ви можете додати захищений оболонку (SSH) до свого безголового Raspberry Pi. SSH відключений на Raspbian за замовчуванням з міркувань безпеки. Ви можете ввімкнути це, створивши файл під назвою /boot/ssh:

Для безголівкових налаштувань SSH можна ввімкнути, розмістивши на завантажувальному розділі SD-карти файл з назвою "ssh" без будь-якого розширення. Коли Pi завантажується, він шукає файл ssh; якщо він знайдений, SSH увімкнено, а потім файл видаляється. Вміст файлу не має значення: він може містити текст або взагалі нічого.

- SSH (безпечна оболонка) - Документація Raspberry Pi

Якщо ви включите доступ до SSH, вам слід якнайшвидше змінити пароль стандартного користувача pi . Оскільки пароль за замовчуванням ( малиновий ) широко відомий, ваш Raspberry Pi ефективно відкритий для всіх у вашій мережі, поки ви не зміните пароль. Це можна зробити за допомогою passwdкоманди.


2
Для цього рішення є два обмеження (протестовано з зображеннями 2016-09-23): 1. Файл повинен бути відформатований із закінченнями рядків у стилі Linux (LF замість CR LF). 2. Це не спрацювало зі світлим зображенням Raspbian на моєму Raspberry Pi 3.
user2154065

1
@ user2154065 1. Перенесіть файл у LF за допомогою блокнота ++ , клацнувши правою кнопкою миші на "Dos \ Windows" в нижньому правому куті і виберіть "Формат UNIX / OSX". 2. wpasupplicantПакет, ймовірно, не включений у Raspbian Lite.
Hydraxan14

1
Тепер у мене працює декілька машин Raspbian Lite, я майже впевнений, що мій коментар був неправильним: wpa_supplicant включений або його можна легко встановити.
scruss

5
@kleinfreund не включає парольну фразу в чіткому тексті. Запустіть "wpa_passphrase SSID" (з вашим SSID) і введіть пароль, коли буде запропоновано. Скопіюйте висновок у свій файл wpa_supplicant.conf, видаливши рядок, що включає прозорий текст і залишивши лише хешовану версію. (Ви можете зробити це в іншій системі, щоб у вас був файл достроково під час налаштування мікро SD для Pi.)
Peter Hansen

4
@scruss - ваша відповідь майже правильна, будь ласка, додайте цей рядок до wpa_supplicant.confзразка вище: ctrl_interface=/var/run/wpa_supplicant я щойно спробував новий Zero W з Raspbian Strech Lite
ctekse

23

Деякі конкретні інструкції:

Зміст /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

Зміст /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"
}

Чесний. Ці два файли із заданим вмістом - те, що я використовую на всіх своїх пі-файлах. Вони завантажуються і негайно підключаються до мого бездротового маршрутизатора. DHCP узгодження надає адресу, і мій маршрутизатор вирішує ім'я хоста на відповідну IP-адресу. Переконайтеся , що ім'я кожного PI відповідно через /etc/hostname.

Необхідність дивності у interfacesфайлі, що знаходиться в останньому iface default..., потрібна, інакше бездротове WPA-з'єднання не з’явиться.

У wpa_supplicant.confфайлі теж може бути кілька network={записів, я брав свою роботу до роботи ... підключайте його і вуаля, він також підключався автоматично там, конфігурація роботи була дещо складнішою. Тут включено як приклад, додайте / замініть у wpa_supplicant.confфайлі таке:

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

По суті, він сканує wpa_supplicant.confфайл і підключається до першої мережі, яку виявить, що відповідає. Дуже зручно. Це можливо зробити так, щоб він підключався до будь-якої "відкритої" мережі автоматично і цим способом. Не найрозумніша річ, але виконана.


Мені потрібно мати статичний ip також як його безголовий, і я не зможу його збивати, не знаючи його ip адреси. На даний момент id_str="home"у iface home inet staticфайлі інтерфейсів я є wpa_supplicant.conf та (статична ip інформація під цим), це дає мені статичний ip, але я не впевнений, що це найкращий спосіб налаштувати його та трохи заплутано налаштувати ( і я отримую помилку "Неможливо знайти" home "пристрою під час завантаження).
11чубиня11

1
Я використовую dyn.com (або dyndns.com), щоб дозволити власному імені отримати доступ до моїх пі (ив), використовую ddclient для автоматичного встановлення імені на відповідну адресу. Крім того, використовуйте маршрутизатор, щоб вказати статичну dhcp адресу, набагато кориснішу. Я також використовую upnpcd для динамічного встановлення налаштувань upnp, щоб дозволити мені підключатися до моїх систем поза моєю мережею, ніколи не потрібен статичний IP-адрес, він налаштовує себе будь-коли. (iface stanza може мати лише lo / eth0 / wlan0 / default за замовчуванням, "home" не працюватиме)
lornix

Як я можу додати /etc/network/interfacesдо завантажувача SD? Просто покладіть його куди завгодно, і він скопіює?
denislexic

В основному це коментар до відповіді lornix - рішенням якого я успішно користувався - оскільки у мене немає репутації, щоб писати коментарі. Для редагування кореневої файлової системи вам потрібно змонтувати другий розділ, а не перший, завантажувальний розділ. Я зробив: sudo mount / dev / sdc2 / mnt, після чого я міг редагувати файли під коренем / mnt, тобто /mnt/etc/wpa_supplicant/wpa_supplicant.conf та / mnt / etc / network / interfaces та / mnt / etc / name host (знову використовуючи судо). Закінчивши, вийдіть з ієрархії / mnt і виконайте sudo umount / mnt. Потім ви можете вставити SD-карту в Rπ та завантажувати. Зауважте, що для цього потрібна машина Linux,
Ketil Malde,

10

З листопада 2016 року SSH відключено за умовчанням у стандартних зображеннях Raspbian з міркувань безпеки.

Щоб знову ввімкнути його, створіть порожній файл, який називається sshабо ssh.txtв папці завантаження sd карти (розділ fat32, доступний у Windows)

Щоб заздалегідь налаштувати настройки Wi-Fi, ви також створите файл, який називається wpa_supplicant.confтам, що містить:

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

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

Обидва ці файли можна створювати у вікнах та редагувати за допомогою блокнота.

Потім вставте SD-карту в pi, і ви зможете прямо на SSH.


Приємно бачити, що вони значно спростили налаштування! Чудова відповідь!
lornix

3

За RASPBIAN STRETCH ви повинні включати в себе ctrl_interfaceі update_configвwpa_supplicant.conf

Щоб отримати wifi з ssh під час завантаження, виконайте наступні прості дії на SD-карті:

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

Зі змістом:

country=AU  #omit if US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="YourNetworkSSID-1"
    psk="passwordOne"
}
  1. Від'єднайте SD-карту, поставте pi, завантажте pi

2

Ви можете використовувати interfacesфайл. Завантажте його всією інформацією про мережу та покладіть її в привід великого пальця та перезавантажте RPI з цим. RPI приймає налаштування та налаштовує WiFi без необхідності додаткового обладнання або монітора.

Після цього ви можете запустити SSH у Pi та встановити VNC, щоб отримати графічний інтерфейс. Якщо ви хочете , крок за кроком інструкції для нього, перевірити Option 3: Connect with WiFiна http://www.dexterindustries.com/BrickPi/getting-started/using-the-pi/


Не вдалося це зробити. Не можете знайти будь-яку іншу інформацію в Інтернеті про цей спосіб налаштування Wi-Fi.
11чубків11

Забув згадати сценарій, який використовується для автоматизації цього. Ось він
каран

2

Ви також можете налаштувати SD-карту, яка автоматично встановлюватиме Rasbian з попередньо налаштованим Wi-Fi підключенням на вашому Raspberry pi (Raspberry Pi без заголовка). Це дозволить вашому пі просто підключити живлення для його першого завантаження.

Крок 1. Завантажте Noobs Отримайте та розпакуйте найновіше програмне забезпечення Noobs (версія офлайн та мережа) на https://www.raspberrypi.org/downloads/

Альтернатива: пряме посилання на файл: http://downloads.raspberrypi.org/NOOBS_latest

На той момент написання останньої версії NOOBS - 1.4.0

Крок 2: Конфігурація без голови Без довідки видаліть усі інші папки, ніж rasbian /. Насправді у вас повинна бути лише одна інша папка під назвою Data_Partition.

У папці rasbian / відредагуйте файл flavours.json. Ви повинні побачити наступне:

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

Видаліть частину "Raspbian - Boot to Scratch", тому файл повинен виглядати приблизно так:

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

Відредагуйте файл recovery.cmdline у ​​кореневій директорії NOOBS та додайте silentinstall до списку аргументів. Файл повинен виглядати так у кінці:

runinstaller quiet vt.cur_default=1 elevator=deadline silentinstall

Крок 4 (необов’язково): Налаштуйте власну розкладку клавіатури та мову Якщо ви хочете змінити розкладку клавіатури за замовчуванням (нас) та / або мову за замовчуванням (за замовчуванням - "ми"), додайте lang = XX клавіатуру = XX у список аргументів відновлення .cmdline-файл (XX слід замінити на ваш код мови та клавіатури, який може бути fr, de,… За замовчуванням у нас).

Файл повинен виглядати так у кінці:

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

Крок 5 (необов’язково): Налаштування Wifi Noobs Config - це інструмент, який буде копіювати / пропускати деякі файли відразу після встановлення програми Rasbian. Крім усього іншого, цей інструмент дозволяє попередньо налаштувати Wi-Fi на Pi. Це, однак, передбачає, що використовуваний Wi-Fi ключ підтримується Raspbian.

Перше - завантажити Noobs Config на GitHub ( https://github.com/procount/noobsconfig/archive/master.zip )

Потім розпакуйте noobsconfig.zip і:

  • скопіюйте “customise.sh” у кореневий каталог файлів Noobs

  • скопіюйте “os / Rasbian / partition_setup.sh” у каталог “os / Rasbian /” ваших файлів Noobs.

  • створити папку під назвою "wifi" під "os / Rasbian /"

  • скопіюйте “Приклади / Rasbian / wifi / wifi / wpa_supplicant.conf” у
    каталог “os / Rasbian / wifi /” ваших файлів Noobs.

  • скопіюйте “Приклади / Rasbian / wifi / Raspbian_root.txt” у каталог “os / Rasbian /”
    ваших файлів Noobs.

Останнє - налаштувати свій wifi ssid та psk (пароль) у wpa_supplicant.conf:

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

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

Крок 5 (необов’язково): Змінення пароля за замовчуванням Навіть якщо цей крок не є обов’язковим, настійно рекомендується змінити пароль за замовчуванням для вашого налаштування Rasbian.

Відредагуйте файл os / Rasbian / os.json. Це повинно виглядати так:

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

Давайте змінимо пароль за замовчуванням у рядку 9.

Крок 5: Скопіюйте файли на вашу SD-карту та завантажте свої файли Raspberry pi Copy / минулі файли на форматированной SD-картці FAT.

Крок 6: Завантажте та підключіть завантаження на нашій SD-картці через кілька хвилин (залежно від вашої SD-картки, процес встановлення може зайняти більше 30 хвилин) та підключіться до вашого Pi через SSH.

Що це ...


Ці інструкції виглядають багатообіцяючими, але станом на NOOBS v1.9.2 файл flavours.json у каталозі OS / Raspbian не існує. Оскільки основною причиною редагування було видалення альтернативної версії, я думаю, що безпечно просто пропустити цей крок, коли це не потрібно.
natevw

2

Процес безголовної настройки трохи змінився для Raspbian Stretch та новіших версій RetroPie.

всередині завантажувального каталогу ...

touch ssh

nano wpa_supplicant.conf

додайте це до wpa_supplicant.conf

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

відключіть sd-карту та вставте в pi для завантаження

дайте хвилинку і знайдіть ip-адресу вашого pi

ssh в пі

ssh pi@pi-ip-address

за замовчуванням пароль - малиновий


1

Вам потрібно відредагувати wpa_supplicant.confфайл на SDCard (це в /etcабо в /etc/wpa_supplicantзалежності від версії розподілу). Формат файлу пояснюється тут: http://linux.die.net/man/5/wpa_supplicant.conf


Але якщо бездротовий зв'язок відмовляється, він не буде автоматично підключатися, використовуючи основні параметри. Це вимагає використання ручного режиму та роумінгу з додатковими конфігураційними файлами.
Пьотр Кула

Ну, цього має бути достатньо для налаштування, правда? Оскільки він обов'язково підключиться, коли запуститься wpa_supplicant, якщо мережа доступна. Я також думаю, що wpa_supplicant повинен автоматично підключитися, якщо ви втратите мережу.
hogliux

Надалі до мого останнього коментаря хотілося б додати, що я сам використовував цей метод на малиновій моделі A з найновішим debian.
hogliux

WPA Supplicant буде не відновити , якщо ви використовуєте AUTO, вам потрібно використовувати STATICз ROAMINGі визначити SSID для підключення до ... , який є трохи складніше в налаштуванні.
Пьотр Кула

1

Я створив інструмент сценарію оболонки (на жаль, працює лише в Linux), він автоматизує весь процес завантаження останнього зображення Raspbian, розпакування зображення, вбудовування в зображення налаштувань wi-fi та Ethernet (надаються користувачем), перепакування зображення і запишіть його на SD-карту. Коли ви завантажуєте свій Pi за допомогою SD-карти, він одразу підключається до вашої мережі. Сценарій також має можливість пошуку свіжо налаштованого Pi в мережі.

Ви можете безпосередньо підключити Wi-Fi ключ до свого Pi, скористайтеся сценарієм RaspImgConfig.sh, щоб вставити Raspbian Image за допомогою облікових даних Wi-Fi та записати зображення на карту. Не потрібно жодного монітора, миші чи клавіатури.

Відеоролик про використання інструменту в Youtube: https://youtu.be/WdYb1L2WzjM

З повагою, Subhajit Ghosh


-2

Ви можете налаштувати pi для роботи із захищеним паролем Wi-Fi і автоматично ввімкнути ssh без завантаження pi, з конфігураційними файлами в розділі / boot.

Я використовував це для свого AIY і відсканував мережу, використовуючи nmap, щоб знайти свій пі.

Звідти можна просто підключитися до пі.


Ви повинні хоча б пояснити необхідні імена файлів та їх вміст, а також посилання на додаткову інформацію.
Стів Робільярд

-3

Я думаю, що всі ці відповіді пропускають те, що модель RPi A HAS NO Ethernet, wi-fi, тому що б ви не робили, якщо ви не отримаєте зовнішній ключ, ви не зможете підключитися до RPi через ssh .. .. Ваша найкраща ставка - або використовувати його безпосередньо на телевізорі, або використовувати його через послідовний порт на заголовках, або, як я вже сказав, отримати зовнішній ключ для wifi.


5
Я думаю, що мається на увазі, що він уже використовує. Можна припустити, що ОП знає, що він не може підключитися до бездротової мережі без якогось адаптера.
Імпульс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.