在Jetson Nano上安装RTL8821cu驱动

在Jetson Nano上安装RTL8821cu驱动

Jetson Nano没有自带无线网卡,我用的是USB无线网卡,而且还是TP-Link的TL-WDN5200H,这玩意有点坑,用的是RTL8211芯片,免驱动仅仅支持Window,在linux上根本识别出来。

下载该芯片的驱动

这里有两个链接:

  1. https://github.com/brektrou/rtl8821CU
  2. https://github.com/whitebatman2/rtl8821CU

如何下载,这里我们用git工具来下载
首先在根目录建一个build文件夹,然后把项目拷贝到该目录

mkdir -p ~/build
cd ~/build
git clone https://github.com/brektrou/rtl8821CU.git

编译

如果我们直接编译,肯定出错,不要问为什么,因为我就是不相信,所以试了好几遍.
第一次编译出现问题,如下

make ARCH=aarch64 CROSS_COMPILE= -C /lib/modules/4.9.140-tegra/build M=/home/xxx/build/rtl8821CU  modules
make[1]: Entering directory '/usr/src/linux-headers-4.9.140-tegra-ubuntu18.04_aarch64/kernel-4.9'
Makefile:667: arch/aarch64/Makefile: No such file or directory
make[1]: *** No rule to make target 'arch/aarch64/Makefile'.  Stop.
make[1]: Leaving directory '/usr/src/linux-headers-4.9.140-tegra-ubuntu18.04_aarch64/kernel-4.9'
Makefile:2183: recipe for target 'modules' failed
make: *** [modules] Error 2

之后,我去/usr/src/linux-headers-4.9.140-tegra-ubuntu18.04_aarch64/kernel-4.9这个目录下查看,发现根本没有aarch64这个文件夹。然后我把arm64这个文件夹做了一个软链接,如下:

cd /usr/src/linux-headers-4.9.140-tegra-ubuntu18.04_aarch64/kernel-4.9/arch
sudo ln -s ./arm64 ./aarch64

然后进行第二次编译,但是还是出现了问题

make ARCH=aarch64 CROSS_COMPILE= -C /lib/modules/4.9.140-tegra/build M=/home/xxx/build/rtl8821CU  modules
make[1]: Entering directory '/usr/src/linux-headers-4.9.140-tegra-ubuntu18.04_aarch64/kernel-4.9'
  CC [M]  /home/xxx/build/rtl8821CU/core/rtw_cmd.o
gcc: error: unrecognized command line option ‘-mhard-float’; did you mean ‘--warn-format’?
scripts/Makefile.build:335: recipe for target '/home/xxx/build/rtl8821CU/core/rtw_cmd.o' failed
make[2]: *** [/home/xxx/build/rtl8821CU/core/rtw_cmd.o] Error 1
Makefile:1629: recipe for target '_module_/home/xxx/build/rtl8821CU' failed
make[1]: *** [_mod那个ule_/home/xxx/build/rtl8821CU] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.9.140-tegra-ubuntu18.04_aarch64/kernel-4.9'
Makefile:2183: recipe for target 'modules' failed
make: *** [modules] Error 2

看到这个问题,我也不知道怎么解决,直接去掉,就行了,然后在编译,起码能进行几项。

cd ~/build/rtl8821CU
sudo sed -i 's/-mhard-float//' Makefile

但是还是会出现问题,不过都是差不多的,反正删掉硬道理。

cd /usr/src/linux-headers-4.9.140-tegra-ubuntu18.04_aarch64/kernel-4.9/arch/aarch64
# Makefile文件存档,以后可以回恢复
sudo cp Makefile Makefile.$(date +%Y%m%d%H%M)
sudo sed -i 's/-mgeneral-regs-only//' Makefile

然后编译

make
sudo make install

到这里如果没有错误的话,说明驱动已经安装完毕。

网卡模式转换

当我们插入无线网卡的时候,可能还无法识别,那么我们需要使用usb_modeswitch工具,转换一下无线网卡的模式。
首先查看无线网卡的设备ID

lsusb

类似于0bda:1a2b,然后使用usb_modeswitch工具转换无线网卡模式

sudo usb_modeswitch -KW -v 0bda -p 1a2b

最后可以看到我们的无线网卡已经可以识别出来了,并且能够连上wifi了。

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值