当前位置: 首页 > news >正文

解决linux系统网卡加载慢的问题

手上有块开发板,启动系统后,需要五六分钟后无线wifi网卡才能加载起来,网卡型号是qca9377。

第一步先确认是不是第一时间挂载到PCI总线上了,在ath10k_pci_probe函数中添加调试信息,另外查看/sys/bus/pci/drivers/ath10k_pci/确认系统启动后已经识别到PCI设备

但这时候网卡还没识别到,如下图

大约过5、6分钟后,系统识别到了网卡wlp16s0

ifconfig 也能看到网卡了

以上过程说明网卡驱动启动了并且没有异常退出,只是中间堵塞在什么地方了。继续在ath10k_pci_probe函数中增加调试信息,定位阻塞点,最终确认阻塞在驱动加载firmware的地方

驱动加载网卡芯片firmware有三种方式

1.内核直接找firmware

2.内核通过uevent通知用户空间读取firmware

方法1,查看源码发现网卡firmware,没有添加到指定的路径中,所以没有找到固件

static const char * const fw_path[] = {
        fw_path_para,
        "/lib/firmware/updates/" UTS_RELEASE,
        "/lib/firmware/updates",
        "/lib/firmware/" UTS_RELEASE,
        "/lib/firmware"
};

方法2,有阻塞和非阻塞方式,目前开发板默认用的阻塞模式

看代码驱动需要加载多个bin文件(但实际没有这么多网卡也能正常用),板间确实没有这些bin文件所以就会阻塞在这里。

这个阻塞时间可以通过/sys/class/firmware/timeout设置,开发板默认用的是60s,总共有5个bin文件,所以阻塞了5分钟左右的时间

直接将/sys/class/firmware/timeout改成了3s,解决了该问题

http://www.lryc.cn/news/321708.html

相关文章:

  • Linux 命令或者一些工具
  • 基于python的4s店客户管理系统
  • 解决谷歌浏览器最新chrome94版本CORS跨域问题
  • JAVA 线程
  • Rust 基于 await、async 的异步编程和纤程、协程的实现
  • 【进阶五】Python实现SDVRP(需求拆分)常见求解算法——差分进化算法(DE)
  • 什么是神经网络?
  • 基于Python的图形用户界面设计及应用
  • python网络爬虫实战教学——urllib的使用(1)
  • 简述归并排序
  • HTML实现卷轴动画完整源码附注释
  • sh: 1: dtc: not found
  • laravel 表单验证的 exists、unique 去除软删除字段的校验
  • 【PHP + 代码审计】函数详解2.0
  • 宠物智能喂食机方案设计
  • 测试直播打赏需要考虑哪些测试要点?
  • Python练习(续)
  • 发布镜像到阿里云仓库
  • web蓝桥杯真题:灯的颜色变化
  • 通过docker容器安装zabbix6.4.12图文详解(监控服务器docker容器)
  • 算法打卡day21|回溯法篇01|理论知识,Leetcode 77.组合
  • C++ 输入输出
  • FPGA高端项目:FPGA基于GS2971+GS2972架构的SDI视频收发+HLS图像缩放+多路视频拼接,提供4套工程源码和技术支持
  • 【gpt实践】50个提升工作效率的GPT指令
  • 基于Springboot的高校竞赛管理系统(有报告)。Javaee项目,springboot项目。
  • 论文阅读——EarthPT
  • 软件测评中心:进行科技成果鉴定测试的注意事项和好处简析
  • Android 系统开发工具大全
  • C版本的-Unet-rknn推理
  • Transformer的前世今生 day04(ELMO、Attention注意力机制)