最近公司要使用11ac的网卡,由我负责移植ath10k的驱动,这边做个笔记

网卡使用的是WLE900VX,芯片是QCA9880,是一颗3*3 11AC的网卡。主控是arm的海思芯片,SDK中的内核版本是3.0.y。由于之前也是用Atheros的2.4G芯片,使用内核自带的ath9k驱动。不过这个版本的内核肯定是不支持11AC的,于是直接去backports http://drvbp1.linux-foundation.org/~mcgrof/rel-html/backports/ 移植这个兼容驱动。(backports这是好东西,不过Linux世界好东西太多了,O(∩_∩)O~)在backports里边发现,3.19以下的版本中都没有11AC支持,只有3.19这个版本有。于是就编译这个版本的驱动。

由于之前搞ath9k,所以按照老路子,加载驱动,ifconfig查看设备。但是加载了驱动之后,ifconfig没有设备。但是有如下打印

ath10k_pci 0000:01:00.0: could not fetch firmware file 'ath10k/QCA988X/hw2.0/firmware-3.bin': -2
ath10k_pci 0000:01:00.0: could not fetch firmware file 'ath10k/QCA988X/hw2.0/firmware-2.bin': -2
ath10k_pci 0000:01:00.0: could not fetch board data (-2)
ath10k_pci 0000:01:00.0: could not fetch firmware files (-2)
ath10k_pci 0000:01:00.0: could not probe fw (-2)

原来它除了要加载驱动,还需要加载个固件。(⊙﹏⊙)b。去这个地方下载https://github.com/kvalo/ath10k-firmware,根据打印看应该是找firmware-3.bin,然后又去找firmware-2.bin。于是我就下载了firmware-3.bin。但是不知道怎么加载这个固件。于是网上找啊找,忘记在哪里找到了,Linux加载固件的脚本

当设备驱动加载之后,会在/sys/class/firmware/下面生成设备的目录

#ls -l /sys/class/firmware/
lrwxrwxrwx    1 root     root             0 Jan  1 00:00 0000:01:00.0 -> ../../devices/pci0000:00/0000:00:00.0/0000:01:00.0/firmware/0000:01:00.0
-rw-r--r--    1 root     root          4096 Jan  1 00:00 timeout

这个目录中有几个文件比较重要,加载固件时先echo 1 >/sys/class/firmware/0000\:01\:00.0/loading

然后把下载的固件cat /lib/firmware/ath10k/QCA988X/hw2.0/firmware-3.bin >/sys/class/firmware/0000\:01\:00.0/data

完了再echo 0 >/sys/class/firmware/0000\:01\:00.0/loading

# ls -l /sys/class/firmware/0000\:01\:00.0/
-rw-r--r--    1 root     root             0 Jan  1 00:00 data
lrwxrwxrwx    1 root     root             0 Jan  1 00:00 device -> ../../../0000:01:00.0
-rw-r--r--    1 root     root          4096 Jan  1 00:00 loading
lrwxrwxrwx    1 root     root             0 Jan  1 00:00 subsystem -> ../../../../../../class/firmware
-rw-r--r--    1 root     root          4096 Jan  1 00:00 uevent

此时,还不可以。换了几个固件都不行

后来试着突然可以了,hostapd起来之后也是11ac,我的努比亚连上去之后433Mbps妥妥的。然后看了加载顺序,顺序是这样的

先加载两次固件,也就是执行两次下面的命令

echo 1 >/sys/class/firmware/0000\:01\:00.0/loading
cat /lib/firmware/ath10k/QCA988X/hw2.0/firmware-3.bin >/sys/class/firmware/0000\:01\:00.0/data
echo 0 >/sys/class/firmware/0000\:01\:00.0/loading

然后几秒后会有如下打印

ath10k_pci 0000:01:00.0: could not fetch board data 'ath10k/QCA988X/hw2.0/board.bin' (-2)

然后在加载两次固件,设备起来了,试了多次之后都是ok,然后写了个脚本先这样用。

至于为啥这么坑爹,继续找,可能是我哪里没搞好,知道的大神请不吝赐教。

11AC ath10k的移植相关推荐

  1. Linux WIFI模块驱动移植

    作者 QQ群:852283276 微信:arm80x86 微信公众号:青儿创客基地 B站:主页 https://space.bilibili.com/208826118 参考 请问有知道atheros ...

  2. qca9882 qca9880移植

    Qualcomm Atheros QCA9882 9880是一种用于5GHz 802.11ac或2.4/5GHz 802.11n WLAN应用的高度集成的无线局域网(WLAN)片上系统(SoC). 以 ...

  3. WiGig 和 WirelessHD 和 802.11ac

     WiGig WiGig(Wireless Gigabit,无线千兆比特)是一种更快的短距离无线技术,可用于在家中快速传输大型文件. WiGig(无线千兆比特)技术会比Wi-Fi(无线相容性认证)技术 ...

  4. Ubuntu 18.04/20.04 安装Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter 驱动

    Ubuntu 18.04/20.04下Qualcomm Atheros QCA6174驱动安装 缘起 原因分析 查找Google 详细步骤 缘起 买了新电脑,装上Ubuntu 20.04.奈何发现wi ...

  5. wifi定频操作rtwpriv移植编译

    前言 RTL8XXXXX 定频工具移植编译,用于wifi模块认证配置WiFi工作在定频模式下. 一.rtl8xxxx的WiFi内核配置 1.使用说明: 1.先确认driver\rtl8XXXXX下的M ...

  6. 联咏平台(Novatek) | RTL8188FU WIFI驱动移植

    目录 1 开发环境 2 内核配置 2.1 配置支持USB设备 2.2 配置支持 wifi 设备 2.3 配置支持 wifi 网络 IEEE 802.11 2.4 编译内核 3 wifi 驱动移植 3. ...

  7. PowerBuilder程序 ASA 数据库移植后不能连接解决

    前言: 软件开发工具实践课作业用的powerbuilder自带的数据库画板建立的,建好之后运行成功后就没有再管过了.后来代码在别人的机器跑不起来.报错信息如下 找到原因: 程序运行完后,没有手动断开连 ...

  8. web server大全之GoAhead移植(转载)

    转自:http://linux.chinaunix.net/techdoc/develop/2009/06/19/1119124.shtml 注:最近在做goAhead web server和移植其到 ...

  9. Tomcat V6 Examples移植到Apusic V5.1

    目标:将Tomcat V6的的例子Examples移植到Apusic V5.1上 术语:Tomcat:只提供了WEB容器的开源服务器: Apusic:提供了完整的J2EE支持的商用服务器: %TOMC ...

最新文章

  1. QT中在Designer中设置QToolButoon上面图标下面文字
  2. 去空白符的大文本字符统计(洛谷P5015题题解,Java语言描述)
  3. springboot 支付宝电脑支付
  4. Windows Phone 7 常用控件简介
  5. 逐像元地表反射率计算(GF4)
  6. memcached mysql 类_mysql有没有类似和memcached里那样的CAS版本控制?
  7. 类似鹅厂的H5农场游戏,牧场游戏 博主亲自搭建
  8. 如何使用Python给Excel写入数据
  9. 软件测试实验课ppt,实验十 团队作业6:团队项目用户验收Beta冲刺
  10. wps 组合图(柱状图 + 折线图)不同数据类型(比如数量、百分比)
  11. Matplotlib系列(五):三维绘图
  12. html 强制用ie浏览,强制指定IE浏览器版本
  13. OutMan——C语言中字符串处理函数、内存管理和内存分区
  14. 并行计算、分布式计算、集群计算和网格计算的介绍,以及主要有哪些区别?
  15. 订阅号做了77天,没有挣钱,但是收获很多。
  16. 区间DP例题(持续更新)
  17. 计算矩阵行列式时奇排列与偶排列的判定
  18. mysql练习题记录之:学生表、课程表、成绩表、讲师表、等级表
  19. Javascript Promise用法详解
  20. 完美解决nginx跨域问题Request header field x-token is not allowed by Access-Control-Allow-Headers in prefligh

热门文章

  1. UIImage 的图片平铺实现效果
  2. C# 与 js的相与调用
  3. MySQL单表查询练习题
  4. Sass与Compass——回顾
  5. 《科研伦理与学术规范》2020期末试卷答案
  6. 计算机控制课程设计pid控制,自动化计算机控制课程设计参考题目
  7. ctfshow-web入门(21-28)
  8. 桥梁在线计算机监测系统,桥梁在线监测系统解决方案.doc
  9. matlab:变计算精度函数vpa,digits
  10. 如何免费低价获取一切资源?