Jetson Nano没有自带无线网卡,我用的是USB无线网卡,而且还是TP-Link的TL-WDN5200H,这玩意有点坑,用的是RTL8211芯片,免驱动仅仅支持Window,在linux上根本识别出来。
下载该芯片的驱动
这里有两个链接:
如何下载,这里我们用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了。