iNet Wireless Daemon. Установка и настройка. Linux статьи
Написать статью
Войдите, чтобы писать статьи

iNet Wireless Daemon. Установка и настройка

14

iNet Wireless Daemon

Материал написан пользователем сайта.

iNet wireless daemon (iwd) - это демон беспроводных сетей от компании Интел, предлагаемый в качестве альтернативы wpa_supplicant.

Ключевые особенности проекта:

  1. Отсутствие каких-либо зависимостей от внешних библиотек.
  2. Максимальное использование функций ядра Линукс.
  3. Минимальная нагрузка на систему.
  4. Быстрое обнаружение и подключение, а также упрощенное управление беспроводными сетями.
  5. Собственная реализация DHCP и встроенный криптографический функционал.
  6. Может работать, как самостоятельный клиент, так и в паре с менеджером сети (networkmanager, dhcpcd, connman, netifrc, systemd-networkd) в качестве бэкенда.

Архитектурно iwd выглядит следующим образом:

Для функционирования iwd достаточно только ядра Линукс и библиотеки "С" (glibc). Данный инструментарий оптимизирован на минимальное потребление системных ресурсов и отлично подходит для применения во встраиваемых устройствах.

Пакет iwd состоит из демона (iwd), консольной утилиты (iwctl) и программы мониторинга (iwmon).

Для установки в вашу систему, используйте подходящий пакетный менеджер (pacman, apt, dnf ...etc). Далее на примере подробно разберем установку iwd в систему с NetworkManager.

Поскольку в Calculate Linux мне требовалась установка iwd как полностью самостоятельного инструментария, а 'standalone' в USE-флагах по умолчанию отключен для этого пакета, сначала определил полный путь и имя пакета, добавил пользовательский USE-флаг в конфигурационный файл (удобно создавать отдельные файлы, каждый для своего пакета) и запустил установку:

root# eix iwd
!!! Этот шаг только для установки iwd в качестве самостоятельного клиента:
root# echo "net-wireless/iwd standalone" >> /etc/portage/package.use/iwd
---
root# emerge -av net-wireless/iwd

После установки iwd нужно сконфигурировать запуск/останов системных сервисов. Для OpenRC:

Убедитесь, что wpa_supplicant остановлен до запуска iwd:
root# rc-service wpa_supplicant stop
root# rc-update del wpa_supplicant default
---
Запустите iwd и включите его в автозагрузку:
root# rc-service iwd start
root# rc-update add iwd default

Для SystemD:

root# systemctl stop wpa_supplicant
root# systemctl disable wpa_supplicant
---
root# systemctl start iwd
root# systemctl enable iwd

В случае 'standalone' установки, аналогичным образом нужно остановить NetworkManager и удалить его из автозагрузки. А также добавить файл конфигурации, чтобы iwd мог работать самостоятельно:

root# nano /etc/iwd/main.conf
[General]
EnableNetworkConfiguration=true
[Network]
NameResolvingService=resolvconf

Для работы iwd в качестве бэкенда NetworkManager, необходимо прописать необходимые для этого конфигурации и выполнить следующие команды:

root# echo "net-misc/networkmanager iwd" >> /etc/portage/package.use/networkmanager
root# emerge -aN net-misc/networkmanager
---
root# nano /etc/NetworkManager/conf.d/iwd.conf
[device]
wifi.backend=iwd
wifi.iwd.autoconnect=yes
---
Перезапустите NetworkManager
OpenRC:
root# rc-service NetworkManager restart
SystemD:
root# systemctl restart NetworkManager

Для установки и конфигурирования iwd в систему с менеджерами сети отличными от NetworkManager, рекомендую обращаться к следующим базам знаний:

  1. Gentoo Wiki
  2. ArchWiki

Когда iwd установлен в систему и выполнена начальная конфигурация для его использования, остается только произвести настройку беспроводных интерфейсов. Как отмечалось выше, пакет включает в себя консольную утилиту iwctl, которая запускается в интерактивном режиме (если не заданы ключи команды).

$ iwctl
Список доступных беспроводных адаптеров в системе и их состояние:
[iwd]# adapter list
Список доступных wifi устройств и их состояние:
[iwd]# device list
Список доступных wifi сетей и их состояние:
[iwd]# station list
$ iwctl
Включаем нужный адаптер беспроводной сети, если он был отключен:
[iwd]# adapter phy0 set-property Powered on
Включаем нужное сетевое устройство, если оно было отключено:
[iwd]# device wlan0 set-property Powered on
Сканируем доступные wifi сети:
[iwd]# station wlan0 scan
Выводим список wifi сетей доступных для подключения:
[iwd]# station wlan0 get-networks
Подключаемся к выбранной wifi сети:
[iwd]# station wlan0 connect TP-Link_A289
!!! При первом подключении к сети защищенной паролем появится запрос на его ввод.
Проверяем состояние подключения:
[iwd]# station wlan0 show
$ iwctl
Для вывода помощи по командам iwctl и доступным опциям:
[iwd]# help
Для выхода из интерактивного режима утилиты:
[iwd]# quit

По умолчанию настройки каждой сети хранятся в каталоге /var/lib/iwd. Имя файла создается по принципу: "SSID_сети.тип_сети" (в моем примере - "TP-Link_A289.psk"). Файл содержит зашифрованный PreSharedKey, а также Passphrase в открытом виде. Поскольку Passphrase является опциональным в файле конфигурации, его можно удалить, после получения зашифрованного PreSharedKey, формируемого автоматически при первом подключении к сети.

Для iwd существуют gui-клиенты. В моей системе Calculate Linux использован iwgtk, который обеспечивает пользователя полноценным функционалом iwctl (все настройки беспроводных сетей можно выполнить из него), а также предоставляет tray icon, единственный который у меня нормально заработал с systray окружения рабочего стола Enlightenment. Сама иконка не кликабельна (решается добавлением iwgtk в "избранные приложения" и быстрым его вызовом по  правому клику мышки), но с основной своей задачей визуального информирования о состоянии сети справляется на "отлично".

После полного перехода на iwd с NetworkManager (от Connman отказался раньше по причине проблемной настройки сети для виртуальных машин), заметил такую особенность: система стартует значительно быстрее, wifi сети сканируются мгновенно и обеспечивается очень быстрое подключение к ним.

Лайков: +17
войдите, чтобы ставить лайки
14
  • Опубликовано: 20.09.2023
  • scorpii

Комментарии

Minor748
Активный пользователь
Активный
20.09.2023
10:16
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+1
войдите, чтобы ставить лайки
Терминал красивый )
igorborisov
Активный пользователь
Активный
20.09.2023
14:09
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийMinor748Родительский комментарий
0
войдите, чтобы ставить лайки
Шрифт понравился?
Minor748
Активный пользователь
Активный
20.09.2023
14:12
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийigorborisovРодительский комментарий
+1
войдите, чтобы ставить лайки
Всё оформление (сочетание цветов, фона, цвет рамки).
Органичненько

https://ibb.co/Fn8ybtX
AquaVerso
Активный пользователь
Активный
20.09.2023
14:21
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
0
войдите, чтобы ставить лайки
Век живи! Век учись! Сэнки!
igorborisov
Активный пользователь
Активный
20.09.2023
14:29
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийAquaVersoРодительский комментарий
+2
войдите, чтобы ставить лайки
Век живи, век учи маны
AquaVerso
Активный пользователь
Активный
20.09.2023
14:32
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийigorborisovРодительский комментарий
0
войдите, чтобы ставить лайки
Да, так будет правильнее :)
Minor748
Активный пользователь
Активный
20.09.2023
15:22
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийigorborisovРодительский комментарий
0
войдите, чтобы ставить лайки
А пользоваться ими когда, если учишь постоянно?
igorborisov
Активный пользователь
Активный
20.09.2023
15:30
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийMinor748Родительский комментарий
0
войдите, чтобы ставить лайки
В фоновом режиме
xKDE
Активный пользователь
Активный
20.09.2023
17:33
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийigorborisovРодительский комментарий
0
войдите, чтобы ставить лайки
Зачем учить то, что можно в любой момент прочитать?!)
igorborisov
Активный пользователь
Активный
21.09.2023
12:17
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийxKDEРодительский комментарий
0
войдите, чтобы ставить лайки
С вами согласятся програмисты, которые копируют куски кода из stackoverflow/chatGPT. На некоторых серваках не стоит утилита man для чтения этих самых манов. Что вы тогда будете делать? Лезть в телефон? А если инета нет нигде?
xKDE
Активный пользователь
Активный
21.09.2023
13:03
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийigorborisovРодительский комментарий
+3
войдите, чтобы ставить лайки
Тогда зажигайте лучину в горнице, доставайте handbook, кисет с табаком, скручивайте страницу и легонько, не в затяг, начинайте раскуривать! При этом не забывайте крутить педали генератора, а то там может и электричества тоже нет, а "серваку" без него не хорошо.
А если серьезно, если это ремесло - то это одно, а если баловство - то другое!)
AlexPingPing
20.09.2023
20:44
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+1
войдите, чтобы ставить лайки
Очень полезно про iwd. Спасибо.
Как раз нужны команды тем, кто ставит, например, арч через wi-fi, а тут все нужное в одном месте.
DrSheppard
Активный пользователь
Активный
30.09.2023
14:04
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+1
войдите, чтобы ставить лайки
IWD невероятно полезен на Alpine
На Fedora, к сожалению, у меня с ним проблемы
DrSheppard
Активный пользователь
Активный
30.09.2023
14:10
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+1
войдите, чтобы ставить лайки
Есть также квази-гуй для rofi

https://github.com/TimTinkers/rofi-iwd-menu

А Дилан Арапс (создатель KISS Linux, neofetch, pure bash bible) переписал iwd без dbus

https://github.com/dylanaraps/eiwd

Написать комментарий

Ваше имя:
Текст комментария:
  • Уважать других.
  • Не ругаться.
  • Без оскорблений.
  • Без грубости.
  • Не переходить на личности.
  • Писать на русском языке.
  • Без политики.
  • Без флуда.
Правила