网站开发国际化,许昌网页制作,设计公司排名前十,建筑企业网站有哪些手上有块开发板#xff0c;启动系统后#xff0c;需要五六分钟后无线wifi网卡才能加载起来#xff0c;网卡型号是qca9377。
第一步先确认是不是第一时间挂载到PCI总线上了#xff0c;在ath10k_pci_probe函数中添加调试信息#xff0c;另外查看/sys/bus/pci/drivers/ath10…手上有块开发板启动系统后需要五六分钟后无线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解决了该问题