记录:排查create_ap偶发无法开启自发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的驱动已经挂载

  • ifconfigiwconfig看下网卡是否还在,系统能否识别到
    ifconfig(Interface Configuration)是一个用于配置和显示网络接口的命令。
    iwconfig(Wireless 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 2>&1 | grep -E "^$1:unmanaged$" > /dev/null 2>&1) || return 1
}

$1表示无线网卡名称,结合while循环中的内容可知,只有当networkmanager_iface_is_unmanaged函数中匹配到无线网卡的状态是"unmanaged"状态,才会退出while循环。

  • 至此 create_ap 服务未启动的原因已经找到,是当前无线网卡的状态不对,可通过nmcli -t -f DEVICE,STATE d指令来查看,(这个指令是用于显示网络设备的状态。具体来说,-t选项表示使用制表符作为字段分隔符,-f选项指定要显示的字段,DEVICE表示设备名称,STATE表示设备的状态。因此,这个指令将会以制表符分隔的格式显示网络设备的名称和状态。)
root@bossdog-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表示有线网络接口1,enp2s0表示有线网络接口2,wlx08beac134a56表示无线网络接口,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-devices=mac:<无线网卡的MAC地址>,其中<无线网卡的MAC地址>是要设置为不被管理的无线网卡的MAC地址。可以使用ip addr命令查找无线网卡的MAC地址,或者ifconfig查看MAC地址。重新启动NetworkManager服务sudo systemctl restart NetworkManager,以使更改生效。

最终问题解决,只要无线网卡处于未受管控的状态,则create_ap可以正常启动AP模式。。。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/619720.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式系统的三字真经CAP

文章目录 前言C&#xff08;Consistency 数据一致性&#xff09;A&#xff08;Availability 服务可用性&#xff09;P&#xff08;Partition Tolerance 分区容错性&#xff09;CAP理论最后 前言 你好&#xff0c;我是醉墨居士&#xff0c;我一起探索一下分布式系统的三字真经C…

大数据调度框架Oozie,这个学习网站让你事半功倍!

Oozie是一个基于工作流引擎的开源框架&#xff0c;由Cloudera公司贡献给Apache。它主要用于管理和调度Apache Hadoop作业&#xff0c;支持的任务类型包括Hadoop MapReduce、Pig Jobs等。 Oozie的核心概念包括workflow jobs和coordinator jobs。Workflow jobs是由多个动作&#…

Jmeter 性能-监控服务器

Jmeter监控Linux需要三个文件 JMeterPlugins-Extras.jar (包&#xff1a;JMeterPlugins-Extras-1.4.0.zip) JMeterPlugins-Standard.jar (包&#xff1a;JMeterPlugins-Standard-1.4.0.zip) ServerAgent-2.2.3.zip 1、Jemter 安装插件 在插件管理中心的搜索Servers Perform…

AIGC视频生成:Pika1.0快速入门详解

Pika1.0快速入门详解 一、简介二、登录三、参数设置1、改变画面大小&#xff08;Aspect ratio&#xff09;2、改变帧数大小&#xff08;Frames per second&#xff09;3、镜头平移&#xff08;Camera control&#xff09;4、画面运动控制&#xff08;Strength of motion&#x…

永不停止,永远在路上!MIAOYUN 2023年度回顾

2023 MIAOYUN年度关键词&#xff1a;坚持/沉淀/成长 2023年&#xff0c;我们身处虚浮遥荡的世界&#xff1a;支原体肺炎、流感接二连三、经济下行成热词、人人思危&#xff1b;更有暴雨成灾&#xff0c;核污水扩散&#xff0c;战火与地震不断。 坏事发生时&#xff0c;你有三种…

【NLP】多标签分类【上】

简介 《【NLP】多标签分类》主要介绍利用三种机器学习方法和一种序列生成方法来解决多标签分类问题&#xff08;包含实验与对应代码&#xff09;。共分为上下两篇&#xff0c;上篇聚焦三种机器学习方法&#xff0c;分别是&#xff1a;Binary Relevance (BR)、Classifier Chain…

绝地求生:【PC】第27赛季第2轮更新公告

各位玩家大家好&#xff01;欢迎收看本期闲游盒更新公告。 正式服维护时间 ※ 下列时间可能会根据维护情况而发生变化。 1月10日上午8:00 – 下午4:30 地图轮换 ※ 地图轮换将于每周三上午10点进行。 ※ 在随机选择地图的地区中&#xff0c;第1周可选择荣都地图&#xff0c…

Java SE入门及基础(11)

程序调试 1. 什么是程序调试 当程序出现问题时&#xff0c;我们希望程序能够暂停下来&#xff0c;然后通过我们操作使代码逐行执行&#xff0c;观察整个过程中变量的变化是否按照我们设计程序的思维变化&#xff0c;从而找问题并解决问题&#xff0c;这个过程称之为程序调试…

从零开发短视频电商 PaddleOCR Java推理 (一)飞桨引擎推理

文章目录 简介方式一&#xff1a;DJL 飞浆引擎 飞桨模型方式二&#xff1a;ONNXRuntime 飞桨转换后的ONNX模型&#xff08;Paddle2ONNX&#xff09; 添加依赖文字识别OCR过程分析文字区域检测文字角度检测文字识别&#xff08;裁减旋转后的文字区域&#xff09; 高级替换模型…

MySQL 和 Redis 如何保证数据一致性,通过MySQL的binlog实现

1、简介 MySQL 和 Redis 如何保证数据一致性&#xff0c;目前大多讨论的是先更新Redis后更新MySQL&#xff0c;还是先更新MySQL 后更新Redis&#xff0c;这两种方式在实际的应用场景中都不能确保数据的完全一致性&#xff0c;在某些情况下会出现问题&#xff0c;本文介绍使用 C…

遥感影像-语义分割数据集:高分卫星-云数据集详细介绍及训练样本处理流程

原始数据集详情 简介&#xff1a;该云数据集包括RGB三通道的高分辨率图像&#xff0c;包含高分一、高分二及宽幅数据集。 KeyValue卫星类型高分系列覆盖区域未知场景未知分辨率1m、2m、8m数量12000单张尺寸1024*1024原始影像位深8位标签图片位深8位原始影像通道数三通道标签图…

vivado 使用源文件

使用源文件 概述 源文件包括从AMD IP添加的设计源、知识产权&#xff08;IP&#xff09;源目录、RTL设计源、从系统添加的数字信号处理&#xff08;DSP&#xff09;源生成器工具和IP子系统&#xff0c;也称为块设计&#xff0c;由IP集成商创建AMD Vivado的功能™ 设计套件。源…

C++11 14 17内存管理

智能指针 unique_ptr 初始化 访问和移动赋值 重置和移动内存资源 自定义删除器 shared_ptr 原理 自定义删除器 分配器allocator和new重载 new表达式原理 operator new delete placement new new (buf) 是一种 "placement new" 的使用方式&#xff0c;它允许在已…

Qt/QML编程学习之心得:Grid、GridLayout、GridView、Repeater(33)

GRID网格用处非常大,不仅在excel中,在GUI中,也是非常重要的一种控件。 Grid 网格是一种以网格形式定位其子项的类型。网格创建一个足够大的单元格网格,以容纳其所有子项,并将这些项从左到右、从上到下放置在单元格中。每个项目都位于其单元格的左上角,位置为(0,0)。…

uniapp 开发小程序的时候使用自定义 tabbar 时出现切换页面闪烁的情况

问题&#xff1a;在使用自定义组件的时候可以看到页面切换明显的闪烁, 这种体验是很不好的, 当然最好的方式就是使用原生导航栏, 不要搞花里胡哨的东西。 来看下体验不好的效果 优化调整 先说思路&#xff0c;就是仍然设置原生 tabbar, 在应用启动的时候主动隐藏原生 tabba…

VS QT 创建新的QT类后,编译报错无法解析的外部符号 “public: virtual struct QMetaObject const *

问题描述&#xff1a; 新建QT的 Widgets 类&#xff0c;创建新的窗口 在编译的时候出现以下报错信息&#xff1a; 1>vfhclassifydialog.obj : error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __cdecl VfhClassifyDialog::metaObject…

vivado 指定顶部模块和重新排序源

指定顶部模块和重新排序源 文件夹默认情况下&#xff0c;Vivado Design Suite会自动确定设计的顶层添加到的源文件的层次结构和细化、合成和模拟的顺序项目这可以通过右键单击中的“层次更新”设置进行控制“源”窗口的菜单。请参阅中的“源”窗口中的“层次更新”命令Vivado …

Ceph入门到精通-通过 CloudBerry Explorer 管理对象bucket

简介 CloudBerry Explorer 是一款可用于管理对象存储&#xff08;Cloud Object Storage&#xff0c;COS&#xff09;的客户端工具。通过 CloudBerry Explorer 可实现将 COS 挂载在 Windows 等操作系统上&#xff0c;方便用户访问、移动和管理 COS 文件。 支持系统 支持 Wind…

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -投票帖子管理实现

锋哥原创的uniapp微信小程序投票系统实战&#xff1a; uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…

Java项目:05 停车管理系统

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 课题意义&#xff1a; 随着时代和科技的进步&#xff0c;人们的生活水平越来越高&#xff0c;私家车的数量不断上涨&#xff0c;随之产生了一些问题&…