在旭日X3派开发板上使用USB Wifi来提高网络速度

2023-05-16

对于我来说,开发板自带的wifi模块速度不是很满意,下载或者传文件啥的最多也就2M/s。而且,在之前测评博客[首发] 多方位玩转“地平线新发布AIoT开发板——旭日X3派(Sunrise x3 Pi)” 插电!开机!轻松秒杀!的串口转wifi测试中,发现了wifi延迟高的问题。

后续我要学习ROS,对网络要求还是蛮高的,所以我就在寻找能用在Linux上的USB Wifi模块。花了一些功夫,终于给各位寻找了一个低成本的方案(20块钱)。在开发板编译驱动,启动驱动后wifi即可点亮使用!!!
在这里插入图片描述
相关文件已经放在百度云(提取码:vp3w)中了,各位可以直接下载使用。

在这里插入图片描述

一 使用编译好的kernel

1.1 驱动激活

开机之后,我们可以输入sudo nmcli dev wifi来查看当前环境的Wifi信息的。把USB Wifi模块插上开发板之后,输入lsusb看到系统识别到了这个设备,但由于目前还没有安装驱动,所以wifi的灯是不会亮的。
在这里插入图片描述

下载百度云中的8188eu.ko文件,拷贝到用户目录,即/home/sunrise/。输入指令sudo cp /home/sunrise/8188eu.ko /lib/modules/4.14.87/ 拷贝驱动文件,最终文件路径如下所示。紧接着输入sudo /sbin/depmod -a 4.14.87,值得注意的是4.14.87是通过指令uname -r得到,输入depmod指令前请注意一下。

紧接着,正常来输入sudo modprobe 8188eu是可以激活驱动的,但是在这个板子上,会出现如下错误:modprobe: ERROR: could not insert ‘8188eu’: Required key not available。原因就是这个驱动没有签名。签名所需文件我放在百度云里了,文件名为x3pi_sign_ko.tar.gz,将文件放进开发板里之后,输入如下指令。

tar -zxvf x3pi_sign_ko.tar.gz
cd x3pi_sign_ko/
sudo ./sign-file-arm64 sha512 ./hobot_fixed_signing_key.pem ./signing_key.x509 /lib/modules/4.14.87/8188eu.ko

然后,在输入sudo modprobe 8188eu就会发现没有error了,Wifi的灯也亮起来了。再次输入sudo nmcli dev wifi可以发现,Wifi的数目变多了,信号也更强了。

1.2 连接Wifi

输入sudo nmcli dev,可以看到当前wifi的连接情况,系统里识别到了两个wifi模块,一个是wlan0,一个是wlxe0e1a993d822。下面有一些指令,用于连接与断开wifi。

#### 使用指定模块连接wifi,利用ifname来指定设备
# 连接到 wlan0
sudo nmcli dev wifi connect "wifi名" password "密码" ifname wlan0
# 连接到 wlxe0e1a993d822
sudo nmcli dev wifi connect "wifi名" password "密码" ifname wlxe0e1a993d822

# 关闭指定wifi
sudo nmcli dev dis wlan0

下图是利用上述指令连接和关闭wifi的示意图。
在这里插入图片描述

1.3 速度测试

利用wget -c ftp://vrftp.horizon.ai/Open_Explorer/eval_dataset/cifar-10.tar.gz下载文件,来测试不同wifi的下载速度。很明显,新买的USB WiFi模块更快喔,o( ̄▽ ̄)ブ。
在这里插入图片描述

1.4 永久启动

现在我们能激活驱动了,但每次重启开机都要手动激活,很麻烦。

永久启动的办法也很简单,输入sudo vim /etc/modules,如下所示,在空白行添加8188eu,保存退出,完毕!!
在这里插入图片描述
这样模块就永久启用了,无论是重启还是开机都会自动激活该模块。是不是非常的简单。

二 源码编译驱动

从百度云中下载源码包RTL8188EUS_linux_v5.3.9_28540.20180806.zip,按照如下指令解压,并给安装脚本赋予执行权限。

unzip RTL8188EUS_linux_v5.3.9_28540.20180806.zip
cd RTL8188EUS_linux_v5.3.9_28540.20180806/
chmod +x install.sh

2.1 环境准备

在编译驱动前,请先安装所需的依赖工具。

sudo apt-get install bc
# ※ 使用以下命令前,请先用命令uname -r 确认下是不是4.14.87
sudo apt-get install linux-headers-4.14.87
# ※使用以下命令前,先确认当前路径下是不是只有arm64没有aarch64
sudo ln -s /usr/src/linux-headers-4.14.87/arch/arm64 /usr/src/linux-headers-4.14.87/arch/aarch64

为什么要安装这几个,我跟各位说明一下:

  1. sudo apt-get install bc:如果不安装这个,编译内核时候就会显示如下错误:/bin/sh: 1: bc: not found
  2. sudo apt-get install linux-headers-4.14.87:编译内核文件需要一些头文件相关的支持,4.14.87这个可以使用uname -r查看,安装前请确认版本。如果不安装这个会出现如下错误
make ARCH=aarch64 CROSS_COMPILE= -C /lib/modules/4.14.87/build M=/home/sunrise/tools/RTL8188EUS_linux_v5.3.9_28540.20180806/driver/rtl8188EUS_linux_v5.3.9_28540.20180627  modules
make[1]: *** /lib/modules/4.14.87/build: No such file or directory.  Stop.
  1. sudo ln -s /usr/src/linux-headers-4.14.87/arch/arm64 /usr/src/linux-headers-4.14.87/arch/aarch64:为什么要创建这个软连接呢,输入uname -m,查看系统架构,返回的是aarch64,但安装linux-headers-4.14.87时,各种框架的编译工具放在/usr/src/linux-headers-4.14.87/arch/里面,值得注意的是,aarch64和arm64是等价的,因此利用软连接创建aarch64的编译工具。如果不这么整的话,就会出现如下错误。
make ARCH=aarch64 CROSS_COMPILE= -C /lib/modules/4.14.87/build M=/home/sunrise/tools/RTL8188EUS_linux_v5.3.9_28540.20180806/driver/rtl8188EUS_linux_v5.3.9_28540.20180627  modules
make[1]: Entering directory '/usr/src/linux-headers-4.14.87'
Makefile:646: arch/aarch64/Makefile: No such file or directory

PPT有展示wifi信息的图片

# 创建文件夹
mkdir tools
cd tools
# 把RTL8188EUS_linux_v5.3.9_28540.20180806文件拷贝到当前文件夹
unzip RTL8188EUS_linux_v5.3.9_28540.20180806.zip
cd RTL8188EUS_linux_v5.3.9_28540.20180806/
chmod +x install.sh
sudo -i
/home/sunrise/tools/RTL8188EUS_linux_v5.3.9_28540.20180806
./install

2.2 编译驱动

进入目标文件夹RTL8188EUS_linux_v5.3.9_28540.20180806/,直接执行./install.sh,经过一段时间的编译之后,会出现如下错误。不要慌,正常现象,因为紧接着我们还要输入指令
在这里插入图片描述
在出现上述问题之后,保证当前命令行在RTL8188EUS_linux_v5.3.9_28540.20180806/下,之后请按序输入如下指令。

# 与前面一样,注意4.14.87版本问题
mkdir -p /lib/modules/4.14.87/kernel/drivers/net/wireless/
# 进入驱动源码文件夹
cd driver/rtl8188EUS_linux_v5.3.9_28540.20180627
# 安装编译好的驱动
sudo su -c "make install"

结束后,驱动将会被放在/lib/modules/4.14.87/kernel/drivers/net/wireless/文件夹下,将其拷贝到/lib/modules/
之后,与上一节介绍的一样,请按需完成驱动激活连接Wifi永久启动的工作。
在这里插入图片描述
这样我们就完成了源码的编译工作。

三 小结

利用不到20块钱的Wifi模块,填了板子的一个小坑。为了写这个教程,我特意买了个16g的内存卡疯狂刷机来恢复原始问题,以方便各位愉快的使用更快速的wifi模块。当然,有几点也要注意一下:

  • wifi模块对应的驱动是8188eu,wifi产品名叫CF-WU810N,也有官方提供对应的驱动文件,CF-WU810N驱动下载地址。如果有更高速度需求的话,可以先去查一下有没有驱动可用。
  • 只测了Wifi接收,没测热点,我其实觉得如果有热点需求,不如买个好点路由器。目前我还是没发现哪些应用一定需要由嵌入式来创建热点的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在旭日X3派开发板上使用USB Wifi来提高网络速度 的相关文章

  • boost库noncopyable简介

    前言 看了一段时间的UNP对Linux下网络编程有了一定程度的理解 xff0c 经学长推荐 xff0c 开始学习陈硕老师的 Linux多线程服务端编程 看之前特地上了知乎 xff0c 阅读者需要具备一定的C 43 43 和网络编程基础 xf
  • 车道线检测和基于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
  • 小程序-用户注册

    wxml lt form bindsubmit 61 34 formSubmit 34 gt lt view class 61 34 user 34 gt lt view class 61 34 hr 34 gt lt view gt lt
  • 小程序-滑动导航

    home1 wxml lt pages home1 home1 wxml gt lt 滑动导航 gt lt view class 61 34 bg 34 gt lt view class 61 34 nav 34 gt lt scroll
  • 小程序-地图(腾讯地图)

    map wxml 经度 xff1b 维度 xff1b 缩放比例 xff1b 样式 xff1b 显示位置 lt pages map map wxml gt lt 地图组件 gt lt 经度 xff1b 维度 xff1b 缩放比例 xff1b
  • nginx和php之间是怎样通信的呢

    FastCGI原理 FastCGI是一个运用于Http Server和动态脚本语言间通信的接口 xff0c 多数流行的Http Server都支持FastCGI xff0c 包括Apache Nginx和lighttpd等 同时 xff0c
  • MYSQL(分表)千万级数据量的优化方法积累

    1 分库分表 一个主表 xff08 例如用户表 xff09 无限制的增长势必严重影响性能 xff0c 分库与分表是一个很不错的解决途径 xff0c 也就是性能优化途径 xff0c 现在的案例是我们有一个1000多万条记录的用户表member
  • GO 字符串转换为 JSON数据与各种转换

    span class hljs keyword style color rgb 51 51 51 font weight bold https segmentfault com q 1010000005025933 a 1020000005
  • 5种Redis数据结构详解

    http www php cn php weizijiaocheng 388126 html 本文我们主要和大家分享 5种Redis数据结构详解 xff0c 希望文中的案例和代码 xff0c 能帮助到大家 2 1 1 全局命令 1 查看所有
  • Ubuntu解决Vscode检测到#include错误,请更新includepath

    第一步 终端输入gcc v E x c 找到路径 usr lib gcc x86 64 linux gnu 11 include usr local include usr include x86 64 linux gnu usr incl
  • Redis内部数据结构详解(4)——ziplist

    本文是 Redis内部数据结构详解 系列的第四篇 在本文中 xff0c 我们首先介绍一个新的Redis内部数据结构 ziplist xff0c 然后在文章后半部分我们会讨论一下在robj dict和ziplist的基础上 xff0c Red
  • golang是如何实现高并发的?深入领会MPG模式

    多线程共享内存 xff0c 这也是Java C 或者C 43 43 等语言中的多线程开发的常规方法 xff0c 其实golang语言也支持这种传统模式 xff0c 另外一种是Go语言特有的 xff0c 也是Go语言推荐的 xff1a CSP
  • Mysql索引类型Btree和Hash的区别以及使用场景

    遇到单表数据量大的时候很多开发者都会想到给相对的字段建立索引来提高性能 xff08 mysql索引的使用 xff09 xff0c 但很少会去关注索引的类型该如何选择 xff0c 在mysql中支持有两种类型 xff0c 最常用的也是默认的B
  • tcpreplay的安装使用

    转自 xff1a https www cnblogs com zlslch p 7325599 html utm source 61 itdadao amp utm medium 61 referral tcpreplay是什么 xff1f
  • Ubuntu18.04从零配置到zed2i实现,orb-slam3运行,ros安装(Ubuntu18.04 3050ti) 系列一:cuda与csdnn安装。

    利用双系统来安装Ubuntu18 04 采用的是U盘烧录镜像 xff0c 硬盘为980 256G 目录 1 烧录镜像以及分区 2 设置ubuntu密码 3 网络认证 4 更新显卡驱动以及软件源 5 安装搜狗输入法 6 安装vpn 7 安装C
  • java ee 话外之 http

    HTTP请求格式 当浏览器向web服务器发出请求时 xff0c 它向服务器传递了一个数据块 xff0c 也就是请求信息 xff0c http请求信息由三个部分组成 1 请求方法 url协议 版本 2 请求头 xff08 request he
  • Pytorch学习(3) —— nn.Parameter nn.ParameterList nn.ParameterDict 源码解析

    为了更好理解Pytorch基本类的实现方法 xff0c 我这里给出了关于参数方面的3个类的源码详解 此部分可以更好的了解实现逻辑结构 xff0c 有助于后续代码理解 xff0c 学pytorch的话这个不是必须掌握的 xff0c 看不懂也没
  • 针对电陶炉E5错误的维修总结(狗头)

    一个编程技术员开始研究电陶炉维修是不是有些奇怪 没办法 xff0c 最近家里面各种电器都开始坏掉了 xff0c 有的是按钮 xff0c 有的是断线 xff0c 有的就是电路板内部故障 固件坏了买相应零件修好就能用 xff0c 比如用4个开关
  • 关于视觉SLAM十四讲sophus库安装报错

    Sophus安装 xff1a git clone https github com strasdat sophus git cd sophus mkdir build cmake make 这时候系统报错 error lvalue requ
  • [BPU部署教程] 教你搞定YOLOV5部署 (版本: 6.2)

    最近一些人问我怎么在BPU上部署yolov5 xff0c 因为之前的博客 BPU部署教程 一文带你轻松走出模型部署新手村介绍的网络都是基于Caffe的 xff0c 自己的网络都是基于pytorch的 xff0c 所以遇到了很多坑 鉴于这些需
  • 在旭日X3派开发板上使用USB Wifi来提高网络速度

    对于我来说 xff0c 开发板自带的wifi模块速度不是很满意 xff0c 下载或者传文件啥的最多也就2M s 而且 xff0c 在之前测评博客 首发 多方位玩转 地平线新发布AIoT开发板 旭日X3派 Sunrise x3 Pi 插电 x