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

对于我来说,开发板自带的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接收,没测热点,我其实觉得如果有热点需求,不如买个好点路由器。目前我还是没发现哪些应用一定需要由嵌入式来创建热点的。
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值