Raspberry Pi не поднимает интерфейс wlanX – несколько беспроводных интерфейсов.

Вопрос или проблема

Давайте сразу к делу.

Я использую Raspberry Pi 3 с последней версией Raspbian (Pixel) в качестве роутера/точки доступа WiFi.


У меня есть 3 беспроводных интерфейса:

  1. встроенный WiFi интерфейс (brcmfmac)
  2. TP-Link WN722 для 2.4Ghz WiFi-AP (пока не работает) (ath9k_htc)
  3. Comfast CF-912AC (rtl88112au)

Назначение каждого интерфейса:

  • wlan0 => 5Ghz daemon hostapd
  • wlan1 => связь с роутером (см. wpa_supplicant в файле interfaces)
  • wlan2 => 2.4Ghz daemon hostapd (не функционирует)

смотрите внизу для дополнительной информации


Проблема:

Эта проблема часто возникала у меня с Raspberry Pi

Я просто не могу поднять интерфейс wlan0 и wlan2, и wlan2 не реагирует на настройки, указанные в /etc/network/interfaces.

Я пробовал различные команды для поднятия этих интерфейсов, но ни одна не работает:

$ sudo ifdown wlan0
ifdown: интерфейс wlan0 не настроен

$ sudo ifup wlan0
RTNETLINK отвечает: файл уже существует
Не удалось поднять wlan0.

$ sudo ifdown wlan2
ifdown: интерфейс wlan2 не настроен

$ sudo ifup wlan2
Игнорирование неизвестного интерфейса wlan2=wlan2.

и с wlan0 и wlan2 в состоянии down, видимым из ip addr

`sudo ip link set wlan0 up`

`sudo ip link set wlan2 up`

что не приносит успеха в поднятии этих интерфейсов (подтверждено состояние down с помощью инструмента ip).


Как это произошло:

Примечание: ранее все работало, хотя я никогда не мог поднять свой адаптер tp-link WiFi, ath9k_htc, поэтому оставил его выключенным

  1. Я был занят настройкой моего Raspberry Pi для запуска второго daemon hostapd на wlan2 (что я бы решил позже – проблема с драйвером):

    • скопировал рабочий конфиг hostapd и модифицировал его для 2.4Ghz, сохранил в директорию /etc/hostapd с уникальным именем.
  2. Я использовал dnsmasq в качестве dhcp-сервера, где dhcpcd был отключен и остановлен:

    • Я настроил /etc/dnsmasq.conf также слушать интерфейс wlan2, добавив IP для прослушивания на 192.168.4.254 (не уверен, нужно ли это)
  3. Последний разредактировал /etc/default/hostapd.conf и добавил второй конфиг hostapd с разделением пробелами, упомянутым здесь

  4. Наконец, вызвал перезапуск для этих двух сервисов

    sudo service dnsmasq restart

    sudo service hostapd restart

Это момент, когда все пошло наперекосяк.

Вызов sudo service networking restart отключил wlan0 (существующий 5Ghz daemon hostapd), и я так и не смог его поднять с тех пор, равно как и wlan2. Однако eth0 и wlan1 остались активными, т.е.

В выводе:

У меня был 5Ghz WiFi хот-спот, и я попытался создать 2.4Ghz хот-спот, теперь я в трудном положении без хот-спота

Я удалил все настройки (то есть вернулся к предыдущему рабочему состоянию), но неудачно.

Также примечание: несколько перезагрузок не решили ничего


Вопрос:

1. Как я могу поднять эти интерфейсы

2. Почему возникает эта проблема невозможности поднять интерфейс, когда все кажется правильным

p.s. дайте знать, если я что-то упустил


Дополнительная информация:

мой файл interfaces:

$ sudo cat /etc/network/interfaces

source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

allow-hotplug wlan0
iface wlan0 inet static
    address 192.168.0.254
    subnet 255.255.255.0
    gateway 192.168.8.254
    network 192.168.0.0
    broadcast 192.168.0.255

allow-hotplug wlan2
iface wlan0 inet static
    address 192.168.4.254
    subnet 255.255.255.0
    gateway 192.168.8.254
    network 192.168.4.0
    broadcast 192.168.4.255

allow-hotplug eth0
iface eth0 inet static
    address 192.168.1.254
    subnet 255.255.255.0
    gateway 192.168.8.254
    network 192.168.1.0
    broadcast 192.168.1.255

allow-hotplug wlan1
iface wlan1 inet static
    address 192.168.8.254
    subnet 255.255.255.0
    gateway 192.168.8.1
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Логи:

выполнено sudo ip link set wlan0 down

  • dmesg сообщает:

    n/a

  • но /var/log/syslog сообщает:

    Apr 24 20:47:09 gateway avahi-daemon[480]: Interface wlan0.IPv4 больше не актуален для mDNS.

    Apr 24 20:47:09 gateway avahi-daemon[480]: Оставление группы многоадресной рассылки mDNS на интерфейсе wlan0.IPv4 с адресом 192.168.0.254.

    Apr 24 20:47:09 gateway avahi-daemon[480]: Снятие записи адреса для 192.168.0.254 на wlan0.

впоследствии выполнено sudo ip link set wlan0 up

  • dmesg сообщает:

    IPv6: ADDRCONF(NETDEV_UP): wlan0: ссылка не готова

  • но /var/log/syslog сообщает:

    Apr 24 20:50:06 gateway avahi-daemon[480]: Подключение к группе многоадресной рассылки mDNS на интерфейсе wlan0.IPv4 с адресом 192.168.0.254.

    Apr 24 20:50:06 gateway avahi-daemon[480]: Новая актуальная запись интерфейса wlan0.IPv4 для mDNS.

    Apr 24 20:50:06 gateway avahi-daemon[480]: Регистрация новой записи адреса для 192.168.0.254 на wlan0.IPv4.

    Apr 24 20:50:06 gateway kernel: [ 2964.213013] IPv6: ADDRCONF(NETDEV_UP): wlan0: ссылка не готова

NIC статус

 $ ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether b8:27:eb:e5:67:fb brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.254/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::ba27:ebff:fee5:67fb/64 scope link 
       valid_lft forever preferred_lft forever
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 40:a5:ef:d9:9c:4f brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.254/24 brd 192.168.0.255 scope global wlan0
       valid_lft forever preferred_lft forever
4: wlan1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether b8:27:eb:b0:32:ae brd ff:ff:ff:ff:ff:ff
    inet 192.168.8.254/24 brd 192.168.8.255 scope global wlan1
       valid_lft forever preferred_lft forever
    inet6 fe80::ba27:ebff:feb0:32ae/64 scope link 
       valid_lft forever preferred_lft forever
5: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
    link/none 
    inet 192.168.10.1 peer 192.168.10.2/32 scope global tun0
       valid_lft forever preferred_lft forever
6: tun1: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
    link/none 
    inet 192.168.11.1 peer 192.168.11.2/32 scope global tun1
       valid_lft forever preferred_lft forever
7: wlan2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 90:f6:52:13:aa:82 brd ff:ff:ff:ff:ff:ff

Информация о сетевых адаптерах

$ sudo lshw -C net

  *-usb:1                 
       описание: Беспроводной интерфейс
       продукт: USB2.0 WLAN
       поставщик: ATHEROS
       физический id: 2
       информация о шине: usb@1:1.2
       логическое имя: wlan2
       версия: 1.08
       серийный: 12345
       возможности: usb-2.00 ethernet physical wireless
       конфигурация: broadcast=yes driver=ath9k_htc driverversion=4.4.50-v7+ firmware=1.3 link=no maxpower=500mA multicast=yes speed=480Mbit/s wireless=IEEE 802.11bgn
  *-usb:2
       описание: Беспроводной интерфейс
       продукт: NIC 802.11n
       поставщик: Realtek
       физический id: 5
       информация о шине: usb@1:1.5
       логическое имя: wlan0
       версия: 0.00
       серийный: 123456
       возможности: usb-2.00 ethernet physical wireless
       конфигурация: broadcast=yes driver=rtl8812au ip=192.168.0.254 maxpower=500mA multicast=yes speed=480Mbit/s wireless=unassociated
  *-network:0
       описание: Ethernet интерфейс
       физический id: 2
       логическое имя: eth0
       серийный: b8:27:eb:e5:67:fb
       размер: 100Mbit/s
       емкость: 100Mbit/s
       возможности: ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
       конфигурация: autonegotiation=on broadcast=yes driver=smsc95xx driverversion=22-Aug-2005 duplex=full firmware=smsc95xx USB 2.0 Ethernet ip=192.168.1.254 link=yes multicast=yes port=MII speed=100Mbit/s
  *-network:1
       описание: Беспроводной интерфейс
       физический id: 3
       логическое имя: wlan1
       серийный: b8:27:eb:b0:32:ae
       возможности: ethernet physical wireless
       конфигурация: broadcast=yes driver=brcmfmac driverversion=7.45.41.26 firmware=01-df77e4a7 ip=192.168.8.254 multicast=yes wireless=IEEE 802.11bgn

Так что через некоторое время я выяснил, что Raspbian использует пакет ifupdown, который можно вручную скачать от здесь.

Поэтому причина, по которой ваш интерфейс не поднимается, может быть разной, поэтому я не могу сказать, в чем причина, но логи МОГУТ определенно помочь вам, если их погуглить.

Получить логи

Чтобы найти эти логи, используйте либо это для быстрого обновления состояния:

systemctl status networking.service

или это для детализированных логов:

journalctl -u networking.service

Об networking.service

Вы можете найти файл сервиса здесь /lib/systemd/system/networking.service

Откройте его с помощью nano/vim (я предпочитаю nano) для просмотра

Сервис запускает /sbin/ifup -a --read-environment, но можно добавить дополнительную детализацию -v для получения больше информации о ваших интерфейсах сети

Таким образом, выполнение /sbin/ifup -a --read-environment -v даст вам понимание о том, почему интерфейсы не могут быть подняты.

Вы можете найти пример вывода вышеуказанной команды здесь, с этого AskUbuntu поста

.

Ответ или решение

Ваши Raspberry Pi, работающие на последней версии Raspbian (Pixel), сталкиваются с проблемой поднятия беспроводных интерфейсов wlan0 и wlan2. Это достаточно распространенная проблема, с которой часто сталкиваются при работе с несколькими беспроводными интерфейсами на одном устройстве. Ваша задача — настроить Raspberry Pi как роутер/точку доступа Wi-Fi, используя три беспроводных интерфейса: встроенный (brcmfmac), TP-Link WN722 (ath9k_htc) и Comfast CF-912AC (rtl88112au).

Теория

Первый шаг в решении проблемы заключается в понимании того, как работают сетевые интерфейсы на Raspberry Pi и что может вызывать подобные сбои. В Raspbian управлением сетевыми интерфейсами занимается служба ifupdown, которая, в свою очередь, взаимодействует с конфигурационным файлом /etc/network/interfaces. Ошибки чаще всего связаны с конфигурацией этого файла, конфликтами между различными службами (например, hostapd и dnsmasq) или несовместимостью драйверов.

Пример

Вы описали, что изначально всё работало, пока вы не стали конфигурировать вторую точку доступа hostapd на wlan2, после чего произошли сбои. Из ваших логов видно, что:

  • Команда ifup wlan0 отвечает ошибкой: RTNETLINK answers: File exists, что говорит о потенциальном конфликте конфигураций.
  • Интерфейсы wlan0 и wlan2 находятся в состоянии NO-CARRIER, что указывает на отсутствие соединения или конфликт настроек.
  • journalctl -u networking.service может дать более детальную информацию о том, где именно происходит сбой.

Применение

Как восстановить интерфейсы:

  1. Проверьте конфигурацию: Убедитесь, что в файле /etc/network/interfaces нет ошибок. Заметьте, что у вас дважды записан iface wlan0 inet static, что может быть ошибкой. Убедитесь, что каждая запись соответствует своему интерфейсу.

  2. Используйте правильные драйверы: Проверьте, что используемые драйверы корректно установлены и загружены (lsmod | grep <driver_name>).

  3. Логи и диагностика: Используйте команды systemctl status networking.service и journalctl -u networking.service для определения точной причины проблем. Это поможет вам выявить, какой именно процесс вызывает сбой.

  4. Сетевые конфликты: Остановите все сетевые службы и перезапустите их постепенно, чтобы изолировать проблему:

    sudo service dnsmasq stop
    sudo service hostapd stop
    sudo service networking restart
  5. Обновите систему: Убедитесь, что у вас установлены все последние обновления Raspbian, включая патчи для вашего сетевого оборудования.

  6. Исключите dhcpcd: Если dhcpcd отключён, проверьте, не конфликтует ли экосистема служб между собой. В некоторых случаях может потребоваться включить его обратно для корректной работы.

  7. Откат изменений: Верните конфигурации к предыдущему работоспособному состоянию, а потом внесите изменения шаг за шагом, проверяя их влияние.

Почему возникают такие проблемы:

  1. Несоответствие конфигурации: Ошибки в конфигурационных файлах или конфликтующие записи могут привести к неправильной работе системы.

  2. Обновления драйверов: Некоторые драйверы могут не поддерживать определённые версии ядра или платформы, вызывая такие сбои.

  3. Конфликты служб: Несовместимость между службой управления сетевыми интерфейсами (например, dhcpcd и dnsmasq) может вызывать сбои.

  4. Ошибки прошивки: Поскольку компоненты изначально работали, но после вмешательства произошли сбои, стоит проверить, соответствует ли версия прошивки вашим сетевым адаптерам.

Решение всех этих проблем требует внимательного анализа конфигураций, внимательной работы с логами и пошагового устранения сбоев. Рекомендуется вести журнал внесённых изменений и их последствий, чтобы в будущем избежать повторения таких ситуаций.

Оцените материал
Добавить комментарий

Капча загружается...