上一篇博客《在旭日X3派开发板上使用USB Wifi来提高网络速度》提供一种低成本¥20的USB Wifi解决方案。这个模块的传输速度在10M/s以内,尽管满足正常的开发需求,但在项目应用时,特别是涉及到wifi图传,带宽就不够了。此外,该模块仅支持2.4gwifi,因此在室外场景下就不适用了。
为了满足高速和室内外的场景需求,调研了一些网卡,最后终于寻到一款能在X3开发板上使用的wifi模块【标准款 1300M】,驱动可以在X3上成功编译使用。
先放结论,路由器wifi频率为270Mbps/S,连接的是5gWiFi,Mbps/8是我们理解的传输速度M/s。
- 从x3拖文件到本地:传输速率约为9M/s,CPU总占用在20-25%之间。
- 从本地拖文件到X3:传输速率约为23M/s,CPU总占用在40-50%之间。
网速传输速度受到多种因素的影响,比如路由器wifi频率,收发端网卡性能,文件IO读写性能等。如果上述速度仍然不满足,可以考虑从上述三点进行升级。
本博客所需的文件已经放在百度云(提取码:vp3w,如果失效我会把新连接放在评论区)中,各位可以从这里进行下载使用。
这次编译驱动遇到系统版本不一致问题,导致编译好的ko文件无法直接拷贝到其他设备上使用,这里做一些说明:
- 本博客会提供两个系统版本的编译教程以及编译文件,系统版本如下图绿色框内的文件。
- 上一份Wifi驱动编译教程《在旭日X3派开发板上使用USB Wifi来提高网络速度》是基于20220623的系统版本编译的,而且可以直接拿到20220819系统版本使用,但并不适合20221104的版本,编译好的ko文件无法直接拿过来使用,且编译流程也发生了变化。
- 该驱动8818eu在20221104的编译流程在相关博客的置顶评论区。
- 如果你的系统版本属于红框内,请迅速重刷系统,很多功能已经无法使用,且不兼容新发布的一些功能包了。
- 如果各位在未来的使用中,使用了新版本系统,且我这里提供的ko文件以及流程均无法直接使用,希望各位能写下相关的编译流程,并放在评论区中,我会给置顶。
该网卡基于的无线驱动型号为88x1eu,下面我给出ko文件的使用以及编译教程。
一 使用编译好的kernel
两个系统编译好的ko文件我都放在这里啦,各位可以直接去百度云下载,关于驱动使用方式:
- 如果系统版本在20221104之前:驱动使用方式参考这个8188eu使用教程博客。
- 如果系统版本在20221104及之后:使用
cd /lib/modules/4.14.87/
进入文件夹,输入sudo hobot-sign-file 88x2bu.ko
对ko文件进行签名,之后输入sudo /sbin/depmod -a 4.14.87
以及sudo insmod 88x2bu.ko
更新并加载驱动,这时候我们就能看到WIFI模块已经亮起来啦,输入ifconfig可以看到网卡信息。

连接WiFi时候可以利用指令sudo nmcli dev wifi connect "wifi名" password "密码" ifname wlx200db0c5992c
,其中wlx200db0c5992c
就是网卡的设备名。
同样地,如果想永久启用,输入sudo vim /etc/modules
,在里面添加88x2bu
即可。
第一次使用的时候切记要先测试是否可用(启动驱动后wifi模块会亮灯),千万别不测试就设置永久启动了,如果驱动不对的话会导致系统重启,永久启动就是永久重启(′д` )…彡…彡。
如果在落地项目中只用USB wifi模块,需要关闭板端wifi来降低信号干扰的话可以,输入如下指令:
# 关闭板端wifi,板端wifi一般为wlan0,可以通过ifconfig查看
sudo nmcli dev dis wlan0
# 禁用板端wifi
ifconfig wlan0 down
测试了下文件上传下载速度,5gwifi真的很快哦→_→。
二 源码编译驱动
由于不同系统版本编译方式不同,最近三个系统版本三种编译方式,版本20220623编译的ko文件可以拿到20220819上直接使用,但是无法拿到20221104版本上使用。三种系统编译流程如下:
- 系统版本
20220623
:编译方式参考8188eu使用教程博客。 - 系统版本
20220819
:编译流程参考本教程2.2部分。 - 系统版本
20221104
:编译流程参考本教程2.3部分。
2.1 代码准备
请下载百度云中提供的两个文件:RTL8812BU.tar.gz
和Makefile
,并将这两个文件放在x3的某个文件夹下,比如我这里是放在/home/sunrise/tools
下,进入这个目录,执行以下指令:
# 解压代码
tar -zxvf RTL8812BU.tar.gz
# 替换Makefile文件
cp -f Makefile RTL8812BU_for_Raspbian/
cd RTL8812BU_for_Raspbian
RTL8812BU.tar.gz
可以通过git clone https://github.com/fastoe/RTL8812BU_for_Raspbian
下载,防止后续更新无法使用,我就把当前能用的代码打包了。
Makefile
中添加了针对X3的配置编译选项,所以要替换掉原始的Makefile文件,添加的部分如下所示,感兴趣可以看一下。
## 在114行处,平台支持部分
###################### Platform Related #######################
CONFIG_PLATFORM_ARM_NV_NANO = n
CONFIG_PLATFORM_I386_PC = n
CONFIG_PLATFORM_ARM_RPI = n
CONFIG_PLATFORM_ARM_SUNRISEX3 = y # 增加X3的编译选项,记得这里要保证只有一个y
CONFIG_PLATFORM_ANDROID_X86 = n
CONFIG_PLATFORM_ANDROID_INTEL_X86 = n
## 在1244处,补充了如下代码
ifeq ($(CONFIG_PLATFORM_ARM_SUNRISEX3), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
ARCH := arm64 # 主要修改地方
KVER := $(shell uname -r)
KSRC := /usr/src/linux-headers-$(KVER) # 主要修改地方
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
INSTALL_PREFIX :=
STAGINGMODDIR := /lib/modules/$(KVER)/kernel/drivers/staging
endif
2.2 驱动编译 [系统版本20220819]
编译前先安装一些环境依赖库
# 安装X3内核文件,之前的版本都是利用sudo apt-get install linux-headers-4.14.87安装
# 以后内核基本都是以hobot-linux-headers 为主了
sudo apt-get install hobot-linux-headers
sudo apt install -y dkms bc # 安装一些依赖库
进入代码文件夹cd RTL8812BU
,输入make -j4
开始编译代码(如果编译时候内存不够了,记得改为-j2或者不加),代码编译完之后会在当前文件夹下生成88x2bu.ko
,利用指令拷贝到系统驱动目录下sudo cp 88x2bu.ko /lib/modules/4.14.87/
。
之后按照上文“一 使用编译好的kernel”注册启动驱动即可。
2.3 驱动编译 [系统版本20221104]
该版本驱动的编译过程非常感谢用户俄武器trews提供的流程。
sudo -i # 切换root账号
# 下面的操作是防止出现错误:/bin/sh:scripts/basic/fixdep: not found
cd /usr/src/linux-headers-4.14.87/
make scripts
sudo apt-get install dkms bc
使用su sunrise
切换回用户账号,并按照“2.1 代码准备”的方式准备好代码文件,进入文件夹RTL8812BU_for_Raspbian
,输入make -j4
开始编译代码(如果编译时候内存不够了,记得改为-j2或者不加),代码编译完之后会在当前文件夹下生成88x2bu.ko
,利用指令拷贝到系统驱动目录下sudo cp 88x2bu.ko /lib/modules/4.14.87/
。
之后按照上文“一 使用编译好的kernel”注册启动驱动即可。
三 小结
目前对于Wifi这个问题,从当前的测试结果下来看,我觉得速度方面已经完全足够我使用了,针对Wifi问题我应该后续不会再出新的了。
1300M理论上最高可以达到80M/S的,如果速度不够可以考虑升级路由器等硬件。
在实际项目应用中,是否能够稳定图传、数传等,还需要进一步验证。但如果这个wifi还存在不稳定的问题的话,大概率就要从非wifi的硬件上去找找原因了。
PS:麻烦大佬们在升级系统的时候考虑下兼容性,系统变动特别大的话,会导致我之前的一些博客直接无效,无法给其他用户作为参考,秋梨膏!!!
