Как заставить Wi-Fi подключаться при загрузке?

30

Raspberry Pi Model B
OS: Raspbian

Я использую мой Pi без головы (в настоящее время через прямое соединение Ethernet). У меня есть USB WiFi ключ. Я хотел бы, чтобы WiFi запускался при загрузке и подключался по DHCP.

http://rpi.tnet.com/project/faqs/headlessportablewifi предполагает, что мне не нужно фактически изменять / etc / network / interfaces по умолчанию:

auto lo

iface lo inet loopback
iface eth0 inet dhcp

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

Я настроил /etc/wpa_supplicant/wpa_supplicant.conf для своей сети.

Когда я загружаю Pi, WiFi не сразу подключается. Но если я SSH в и запустить sudo ifup wlan0, Pi подключается нормально.

Разве это не то, что Пи должен делать в своем собственном процессе загрузки? Предположительно, я мог бы написать команду dotfile для выполнения этой команды, но я хотел бы сделать это правильно (и узнать, как работает моя система).

Я знаю, что могу также установить статический IP-адрес для каждой сети WiFi, которую я хочу использовать: Как настроить несколько сетей WiFi? , Но я бы предпочел иметь простое решение, где мне нужно всего лишь ввести пару строк в /etc/wpa_supplicant/wpa_supplicant.conf, чтобы добавить новую сеть WiFi.

Какой кусок мне здесь не хватает?

katriel
источник

Ответы:

24

Стандартная конфигурация Raspbian / etc / network / interfaces не подключается к WiFi при загрузке. Ключевые строки интерфейса man-страницы:

Строки, начинающиеся со слова «auto», используются для определения физических интерфейсов, которые будут вызываться при запуске ifup с параметром -a. (Эта опция используется скриптами загрузки системы.)

...

Строки, начинающиеся со слова «auto», используются для определения физических интерфейсов, которые будут вызываться при запуске ifup с параметром -a. (Эта опция используется скриптами загрузки системы.)

Первой недостающей частью была строка auto wlan0. Насколько я знаю, это может идти в любом месте файла.

Это работает до тех пор, пока вы не попытаетесь загрузиться без подключенного кабеля Ethernet. Затем WiFi не подключается при загрузке и должен запускаться вручную при запуске sudo ifup wlan0или отключении и повторной установке ключа Wi-Fi.

Проблема вызвана демоном ifplugd , который включает и отключает сетевые устройства при их подключении или удалении. Вы можете перенастроить его или просто удалить sudo apt-get purge ifplugd.

Если вы удалили ifplugd , вы должны добавить следующие строки в / etc / network / interfaces, чтобы соединение Ethernet также подключалось при подключении:

auto eth0
allow-hotplug eth0

Я не уверен auto, строго ли необходимы строки или правильно ли hotplug загружается при отсутствии ifplugd , но это сработало для меня.

Мой рабочий файл гласит:

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
katriel
источник
2
у вас есть опечатка в "auth eth0"? должно ли это быть "auto eth0"?
Джордан Ситкин
2
Небольшое исправление в посте @katriel: служба, которую нужно удалить, называется ifplugd, а не ifupd
dh1tw
@ DH1TW и через шесть месяцев ... Я никогда больше не буду писать одну из этих вещей по памяти
катриэль
Для записи я использую wpa_supplicant, поэтому я только что включил службуsudo systemctl enable wpa_supplicant.service
Даниэль Аргуэльес
0

У меня такая же проблема. Проверьте ч / б настройки вашего /etc/network/interfaces.

Я сделал, chmod 600 /etc/network/interfacesи моя проблема исчезла.

Геро
источник