体验极速——在旭日X3派上使用双频1300M USB无线网卡

2023-05-16

上一篇博客《在旭日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.gzMakefile,并将这两个文件放在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:麻烦大佬们在升级系统的时候考虑下兼容性,系统变动特别大的话,会导致我之前的一些博客直接无效,无法给其他用户作为参考,秋梨膏!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

体验极速——在旭日X3派上使用双频1300M USB无线网卡 的相关文章

  • 车道线检测和基于RGB交通标志检测系统

    好久好久好久没更新博客了 今天是冬至 首先跟大家说一声 冬至快乐 冬至吃过汤圆 又长了一岁 感觉真的时不待人 好像自己什么事情也没有完成 也没留下一些什么东西 所以今天就想来写写博客 我是分割线 运行环境 Win7系统64位 运行平台 Qt
  • c++中h文件和lib有什么区别

    转自 xff1a https zhidao baidu com question 510969923 html 1 lib 是若干个obj的集合 xff0c 本质与obj相同 xff01 lib有静态lib和动态lib之分 静态lib将导出
  • cmake在Windows上的使用

    cmake介绍 cmake是一个构建C 43 43 代码的跨平台工具 xff0c 他能够干什么呢 xff1f 他能够搜索你的平台环境 xff0c 然后生成平台上用于Build的文件 在Windows上安装了Visual Studio 他能够
  • ubuntu系统安装完nvidia显卡驱动后黑屏,不能进入系统

    昨天想看显卡 xff0c 更新了下驱动 xff0c 发现服务器重启进不去 步骤 1 开机按esc 进入 选项界面2 进去以后选择一个括号里面带recovery mode的选项3 然后它自动黑屏出现代码 xff0c 然后弹出一个选择框 xff
  • ubuntu18.04下cmake的安装

    一 使用安装命令 span class token function sudo span span class token function apt span span class token function install span c
  • Nginx/Lighttpd/Apache三大web服务器对比分析

    一 xff0e 软件介绍 apache lighttpd nginx 1 lighttpd Lighttpd是一个具有非常低的内存开销 xff0c cpu占用率低 xff0c 效能好 xff0c 以及丰富的模块等特点 lighttpd是众多
  • STM32学习笔记八——串口实现不定长数据传输

    生命不息 xff0c 奋斗不止 0 摘要 今天说一下STM32单片机的接收不定长度字节数据的方法 由于STM32单片机带IDLE中断 xff0c 所以利用这个中断 xff0c 可以接收不定长字节的数据 xff0c 由于STM32属于ARM单
  • linux shell 字符串长度

    本篇内容主要包括以下内容 xff1a 获取字符串长度的方法 各方法间性能比较 相关内容补充 说明 xff1a 本篇内容为学习shell 编程 老男孩教程 笔记 xff0c 部分内容为相关视频课程内容 xff0c 补充部分是我查资料所得 xf
  • measurement studio测控与单片机通信上位机

    using NationalInstruments Analysis using NationalInstruments Analysis Conversion using NationalInstruments Analysis Dsp
  • C语言实现Socket简单通信

    环境是linux xff0c 不过应该没什么影响 xff0c 因为只用到了socket的基本用法 xff0c 没有涉及pthread等 分为服务器端和客户端 xff0c 服务器端监听端口发来的请求 xff0c 收到后向客户端发送一个Hell
  • 接口工具POSTMAN怎么设置中文

    相信各位测试工程师或者测试小白们都会在进行接口测试的时候接触到POSTMAN这款强大的接口测试软件 Postman 从最初设计上就是为接口测试而生的 xff0c 所以在程序员中广泛使用 xff0c 在开发调试网络程序时跟踪一些网络请求 xf
  • 【第三方库】libcurl实现http及https方式下载和访问

    准备条件 xff1a 编译好的libcurl库 xff0c 如果要支持https xff0c 需要和openssl一起编译 xff0c 网上教程较多 示例代码 xff1a xff08 使用loadlibrary的方式只是为了测试方便 xff
  • ROS学习系列:第四讲 — gazebo模型建立

    gazebo模型元素 World Files 文件包含机器人 灯光 传感器 静态物体 文件格式SDF xff0c 后缀扩展名 world gazebo服务端gzserver读取world文件产生和构成world Model Files 文件
  • 2021电赛F题视觉教程+代码免费开源

    2021电赛F题视觉教程 43 代码免费开源 最近好多要电赛题的源码 xff0c 其他csdn营销号下载都需要会员或钱 xff0c 正好最近课设又要做一遍电赛小车题 xff0c 哥们先把代码开源了 xff0c 饿死营销号 电赛宝藏链接 xf
  • 2021全国大学生电子设计竞赛论文(智能送药小车(F题))(电赛论文模板)

    2021全国大学生电子设计竞赛论文 xff08 智能送药小车 xff08 F题 xff09 xff09 写在前面的话 电赛是一个很奇妙的过程 xff0c 可能有些人觉得电赛的门槛太高 xff0c 那便意味着 xff0c 当你决定要参加电赛的
  • gazebo9中在墙上添加二维码

    1 aruco 1到aruco 34这些二维码图片 xff08 png格式 xff09 及下述配置文件上传至https download csdn net download zhaohaowu 83982724 将这34张二维码图片保存到
  • 最新MAC从官网安装QT Creator安装以及QT环境的配置(超详细)

    先开喷 xff0c 垃圾QT xff0c 官网的下载什么玩意儿 xff0c 搞了半天都弄不好 xff0c 后来琢磨了很久才装成功 首先直接访问官网的下载网站 xff1a https www qt io download qt install
  • ROS下如何将GPS数据在卫星地图显示(两种开源方法)

    自己知道的两种方法 xff0c 分别基于rviz satellite和mapviz xff0c 实测下来Mapviz在清晰度和准确度上效果感觉更好一些 xff0c 大家可以都试下 xff0c 有更好的方法可以留言大家讨论下 一 rviz s
  • JAVA类加载器包括几种?它们之间的关系是怎么样的?双亲委派机制是什么意思?有什么好处?

    JAVA类加载器包括几种 xff1f 引导类加载器 bootstrap class loader 启动类加载器主要加载的是JVM自身需要的类 xff0c 这个类加载使用C 43 43 语言实现的 xff0c 是虚拟机自身的一部分 xff0c
  • 微信小程序登录

    login wxml lt view class 61 34 content 34 gt lt 用户名 gt lt view class 61 34 username 34 gt lt view class 61 34 title 34 g

随机推荐