11AC ath10k的移植
最近公司要使用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的移植相关推荐
- Linux WIFI模块驱动移植
作者 QQ群:852283276 微信:arm80x86 微信公众号:青儿创客基地 B站:主页 https://space.bilibili.com/208826118 参考 请问有知道atheros ...
- qca9882 qca9880移植
Qualcomm Atheros QCA9882 9880是一种用于5GHz 802.11ac或2.4/5GHz 802.11n WLAN应用的高度集成的无线局域网(WLAN)片上系统(SoC). 以 ...
- WiGig 和 WirelessHD 和 802.11ac
WiGig WiGig(Wireless Gigabit,无线千兆比特)是一种更快的短距离无线技术,可用于在家中快速传输大型文件. WiGig(无线千兆比特)技术会比Wi-Fi(无线相容性认证)技术 ...
- 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 ...
- wifi定频操作rtwpriv移植编译
前言 RTL8XXXXX 定频工具移植编译,用于wifi模块认证配置WiFi工作在定频模式下. 一.rtl8xxxx的WiFi内核配置 1.使用说明: 1.先确认driver\rtl8XXXXX下的M ...
- 联咏平台(Novatek) | RTL8188FU WIFI驱动移植
目录 1 开发环境 2 内核配置 2.1 配置支持USB设备 2.2 配置支持 wifi 设备 2.3 配置支持 wifi 网络 IEEE 802.11 2.4 编译内核 3 wifi 驱动移植 3. ...
- PowerBuilder程序 ASA 数据库移植后不能连接解决
前言: 软件开发工具实践课作业用的powerbuilder自带的数据库画板建立的,建好之后运行成功后就没有再管过了.后来代码在别人的机器跑不起来.报错信息如下 找到原因: 程序运行完后,没有手动断开连 ...
- web server大全之GoAhead移植(转载)
转自:http://linux.chinaunix.net/techdoc/develop/2009/06/19/1119124.shtml 注:最近在做goAhead web server和移植其到 ...
- Tomcat V6 Examples移植到Apusic V5.1
目标:将Tomcat V6的的例子Examples移植到Apusic V5.1上 术语:Tomcat:只提供了WEB容器的开源服务器: Apusic:提供了完整的J2EE支持的商用服务器: %TOMC ...
最新文章
- QT中在Designer中设置QToolButoon上面图标下面文字
- 去空白符的大文本字符统计(洛谷P5015题题解,Java语言描述)
- springboot 支付宝电脑支付
- Windows Phone 7 常用控件简介
- 逐像元地表反射率计算(GF4)
- memcached mysql 类_mysql有没有类似和memcached里那样的CAS版本控制?
- 类似鹅厂的H5农场游戏,牧场游戏 博主亲自搭建
- 如何使用Python给Excel写入数据
- 软件测试实验课ppt,实验十 团队作业6:团队项目用户验收Beta冲刺
- wps 组合图(柱状图 + 折线图)不同数据类型(比如数量、百分比)
- Matplotlib系列(五):三维绘图
- html 强制用ie浏览,强制指定IE浏览器版本
- OutMan——C语言中字符串处理函数、内存管理和内存分区
- 并行计算、分布式计算、集群计算和网格计算的介绍,以及主要有哪些区别?
- 订阅号做了77天,没有挣钱,但是收获很多。
- 区间DP例题(持续更新)
- 计算矩阵行列式时奇排列与偶排列的判定
- mysql练习题记录之:学生表、课程表、成绩表、讲师表、等级表
- Javascript Promise用法详解
- 完美解决nginx跨域问题Request header field x-token is not allowed by Access-Control-Allow-Headers in prefligh