网站移动端开发公司,山东前十名建筑设计院,二级域名查询入口,明快网站设计背景说明#xff1a; 系统#xff1a;Xubuntu16.04#xff1b;内核#xff1a;4.14#xff1b;无线网卡#xff1a;EDIMAX EW-7822UAC 关于无线网卡的驱动安装和create_ap配置参考博文#xff1a;Xubuntu16.04系统中使用EDIMAX EW-7822UAC无线网卡开启5G自发AP 目录 问题… 背景说明 系统Xubuntu16.04内核4.14无线网卡EDIMAX EW-7822UAC 关于无线网卡的驱动安装和create_ap配置参考博文Xubuntu16.04系统中使用EDIMAX EW-7822UAC无线网卡开启5G自发AP 目录 问题记录排查过程解决办法 问题记录 最近新买了一个EDIMAX EW-7822UAC无线网卡安装了驱动配置了create_ap设置了5g的AP模式当时无线网卡可以正常发射5g WIFI外部设备也可以正常连接。今天我重启设备之后突然就搜不到WIFI赶紧排查了下驱动、网卡、createa_ap服务是否正常
lsmod查看驱动挂载
$ lsmod | grep 88
8821au 2142208 0
cfg80211 643072 1 8821au
kvm_intel 217088 0
aesni_intel 188416 0
hid 114688 3 i2c_hid,usbhid,hid_penmount可以看到8821au的驱动已经挂载
ifconfig和iwconfig看下网卡是否还在系统能否识别到 ifconfigInterface Configuration是一个用于配置和显示网络接口的命令。 iwconfigWireless Configuration是一个用于配置和显示无线网络接口的命令。 可以看到无线网卡也被正确识别了查看create_ap服务是否正常systemctl status create_ap 先给出之前正常启动AP模式的create_ap服务状态如下图 但当搜不到WIFI后此时再查看create_ap服务状态如下图 显示当前的假设是5G信号频率信道超过了14这就很奇怪了因为要开启5G我create_ap配置文件中设置的是165信号iw list 查看当前网卡是支持165信道的。 既然日志说了超过14信道那就修改下 /etc/create_ap.conf 配置文件信道改成8试下改完后重启了下create_ap再次查看create_ap服务状态如下图 此时create_ap日志又显示警告指出你的适配器不完全支持AP虚拟接口这就有问题了。。。
排查过程
插拔无线网卡实时监控系统的内核消息dmesg -wH查看create_ap服务的日志journalctl -u create_ap查看create_ap程序状态发现cpu占用率为0说明create_ap未启动或被阻塞住了
htop -p pgrep create_ap根据create_ap的服务状态可以看到通过指令启动/usr/bin/create_ap --config /etc/create_ap.conf 查看/usr/bin/create_ap发现create_ap是由shell脚本所写剩下的就是代码debug了根据/usr/bin/create_ap --config /etc/create_ap.conf输出的终端信息在/usr/bin/create_ap中增加打印信息不断运行调试最终发现服务未启动的原因是卡在了一个while循环里面如下 具体是卡在了networkmanager_iface_is_unmanaged函数里面继续查看这个函数
networkmanager_iface_is_unmanaged( ) {is_interface $1 ll return 2networkmanager_knows_iface $1 l| return 0(nmcli -t -f DEVICE,STATE d 21 | grep -E ^$1:unmanaged$ /dev/null 21) || return 1
}$1表示无线网卡名称结合while循环中的内容可知只有当networkmanager_iface_is_unmanaged函数中匹配到无线网卡的状态是unmanaged状态才会退出while循环。
至此 create_ap 服务未启动的原因已经找到是当前无线网卡的状态不对可通过nmcli -t -f DEVICE,STATE d指令来查看这个指令是用于显示网络设备的状态。具体来说-t选项表示使用制表符作为字段分隔符-f选项指定要显示的字段DEVICE表示设备名称STATE表示设备的状态。因此这个指令将会以制表符分隔的格式显示网络设备的名称和状态。
rootbossdog-2177018234:~# nmcli -t -f DEVICE,STATE d
enp1s0:connected
enp2s0:connecting (getting IP configuration)
wlx08beac134a56:disconnected
lo:unmanaged
# 上面这些信息是使用nmcli命令获取的网络设备状态。具体来说它显示了四个网络设备的状态
# enp1s0已连接
# enp2s0正在连接正在获取IP配置
# wlx08beac134a56已断开连接
# lo未受管控
# 其中enp1s0表示有线网络接口1enp2s0表示有线网络接口2wlx08beac134a56表示无线网络接口lo表示本地环回接口。这些状态信息显示了每个网络设备的连接状态和管理状态。可以看到当前无线网卡wlx08beac134a56的状态是disconnected未连接的状态而不是unmanaged未受管控的状态需要查一下原因。 查询资料可知 wlx08beac134a56显示为disconnected而不是unmanaged。这是因为disconnected表示无线网卡已经被管理但当前未连接到任何网络。 unmanaged状态表示网络设备未由NetworkManager管理。这通常发生在用户手动配置网络设备或者使用其他网络管理工具的情况下。 因此区别在于disconnected表示设备已被NetworkManager管理但当前未连接到任何网络而unmanaged表示设备未由NetworkManager管理。 最终问题转化为如何让无线网卡不被NetworkManager管理
解决办法
如何让无线网卡不被NetworkManager管理
查询相关资料要将当前的无线网卡设备设置为未由NetworkManager管理可以使用以下命令
sudo nmcli dev set wlx08beac134a56 managed no这条命令告诉NetworkManager停止管理指定的无线网卡设备。将wlx08beac134a56替换为你的无线网卡设备名称。执行此命令后NetworkManager将不再管理该设备而设备将变为未受管控状态。
执行上面命令后会在/etc/NetworkManager/NetworkManager.conf文件的在[keyfile]部分下方生成一个配置项。 PS但实际操作后发现重启设备之后无线网卡还是被NetworkManager管理了于是改用无线网卡的MAC地址。 操作 将/etc/NetworkManager/NetworkManager.conf里面的文件在[keyfile]部分下方添加一行unmanaged-devicesmac:无线网卡的MAC地址其中无线网卡的MAC地址是要设置为不被管理的无线网卡的MAC地址。可以使用ip addr命令查找无线网卡的MAC地址或者ifconfig查看MAC地址。重新启动NetworkManager服务sudo systemctl restart NetworkManager以使更改生效。 最终问题解决只要无线网卡处于未受管控的状态则create_ap可以正常启动AP模式。。。