如何使用 iw 永久添加无线接口

wal*_*lli 2 linux wireless-networking raspberry-pi raspbian

如何使用 iw 将虚拟无线接口永久添加到我的网络配置中?

我创建了以下接口:

iw phy phy0 interface add vwlan0 type station
iw phy phy0 interface add vwlan1 type __ap
Run Code Online (Sandbox Code Playgroud)

第一个配置为连接现有网络的wifi客户端(wpa_supplicant) 第二个配置为无线热点(hostapd + dnsmasq)

设置有效,但现在我无法弄清楚永久保存此配置的最佳策略是什么。

为 wpa_supplicant 制作了 init 脚本 为 /etc/network/interfaces 中设置的热点虚拟适配器网络设置制作了 init 脚本

但这一切都取决于正在创建的无线接口。确保在设置网络和运行服务之前创建这些接口的最佳方法是什么?

作为奖励,由于此无线接口是 USB 设备,是否可以在接口热插拔时创建接口(并启动服务)?

我知道您可以在网络接口启动后执行代码,但热插拔的 wlan0 接口不应该启动。

操作系统是树莓派

use*_*686 5

创建一个udev规则,如udev(7)手册页中所示:

ACTION=="add", SUBSYSTEM=="ieee80211", KERNEL=="phy0", \
    RUN+="/usr/bin/iw phy %k interface add vwlan0 type station", \
    RUN+="/usr/bin/iw phy %k interface add vwlan1 type station"
Run Code Online (Sandbox Code Playgroud)

(子系统匹配大多只是偏执。

把它们放进去/etc/udev/rules.d/90-wireless.rules或类似的东西。

至于服务启动,这取决于您的 init 系统和网络配置……对于 Debian 使用的常规 SysV init,唯一的方法是从相同的 udev 规则启动服务。