设想:
简而言之,我尝试使用wlan0
系统上现有的接口,在其上创建两个虚拟接口,并将其中一个用作接入点,另一个用作普通 WiFi 客户端。
问题:
我能够创建虚拟接口,使用它们查看它们,iwconfig
但只能使用其中之一来启动ifconfig
。如果我尝试调出其他界面,我会得到
SIOCSIFFLAGS: Device or resource busy.
硬件细节:
Xilinx SoC(ARM 处理器)
Petalinux(Linux Distro)
Intel 8265 NGW(WiFi 芯片组)
我非常确定英特尔硬件同时支持三种模式,这是以下输出iw list | grep -A 2 'interface combination'
:
valid interface combinations:
* #{ managed } <= 1, #{ AP, P2P-client, P2P-GO } <= 1, #{ P2P-device } <= 1, total <= 3, #channels <= 2
这就是我在终端上所做的事情:
iw dev wlan0 interface add vwlan0 type managed
iw dev wlan0 interface add vwlan1 type managed
输出iwconfig
vwlan0 IEEE 802.11 ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=0 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:on
vwlan1 IEEE 802.11 ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=0 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:on
sit0 no wireless extensions.
lo no wireless extensions.
wlan0 IEEE 802.11 Mode:Master Tx-Power=22 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
eth0 no wireless extensions.
ifconfig vwlan0 up
有效但
ifconfig vwlan1 up
给出
ifconfig: SIOCSIFFLAGS: Device or resource busy
答案1
我偶然发现我不必调出我创建的虚拟接口。
例子
如果我执行这个语句:
$ iw dev wlan0 interface add vwlan0 type managed
它创建了一个虚拟接口vwlan0
,我可以直接使用hostapd
或wpa_supplicant
将其用作接入点或 WiFi 客户端,而无需执行:
$ ifconfig vwlan0 up
我必须确保一切wlan0
顺利并且能够发挥作用。