购置了TPLINK WDN5200H网卡在树莓派4代上使用,结果发现插上去只会弹一个文件,并没有其他反应,iwconfig也看不到该网卡的存在,查阅资料发现,需要装驱动。下面来说一下步骤
一、使网卡不以文件的方式读入
通过usb_modeswitch
首先打开 /lib/udev/rules.d/40-usb_modeswitch.rules 文件
增加以下内容:
#rtl8821cu
ATTR{idVendor}=="0bda", ATTR{idProduct}=="1a2b", RUN+="usb_modeswitch '/%k'"
添加后的效果:
之后在 /etc/usb_modeswitch.d目录下,新建一个名为0bda:1a2b的文件
文件中填写如下内容:
TargetVendor=0x0bda
TargetProduct=0xc820
StandardEject=1
重启电脑即可,插入网卡,不再会弹出文件框。
二、下载驱动
由于本张网卡的芯片是rtl8821cu ,github上有,直接下载即可
git clone https://github.com/whitebatman2/rtl8821CU.git
三、编译安装
这一步较为困难,也是识别成功的关键
首先配置一些依赖,后面编译会用
sudo apt-get install git dkms build-essential raspberrypi-kernel-headers bc
下载太慢可以切换清华源。
进入rtl8821CU文件夹,编辑Makefile文件,作出如下修改(我的机器是树莓派4b):
/*文件开头加上
EXTRA_CFLAGS += -Wno-error=date-time
/*修改平台,一般默认yes在i386上
CONFIG_PLATFORM_I386_PC = n
CONFIG_PLATFORM_ARM_RPI = y
CONFIG_PLATFORM_ARM_RPI3 = n
做好这些之后,看到一篇解决方案中还需要执行如下几条(虽然不知道有没有用,但自己确实当时执行了,有报错也没管)
DRV_NAME=rtl8821CU
DRV_VERSION=5.2.5.3
sudo mkdir /usr/src/${DRV_NAME}-${DRV_VERSION}
git archive master | sudo tar -x -C /usr/src/${DRV_NAME}-${DRV_VERSION}
sudo dkms add -m ${DRV_NAME} -v ${DRV_VERSION}
sudo dkms build -m ${DRV_NAME} -v ${DRV_VERSION}
sudo dkms install -m ${DRV_NAME} -v ${DRV_VERSION}
之后,可以尝试make一下
make
如果没出错,当然是极好的,直接可以进入make install,而如果出现以下这样的错误
make ARCH=arm CROSS_COMPILE= -C /lib/modules/4.14.50-v7+/build M=/tmp/rtl8812au modules
make[1]: *** /lib/modules/4.14.50-v7+/build: No such file or directory. Stop.
Makefile:1052: recipe for target 'modules' failed
make: *** [modules] Error 2
只能说明内核还稍微有些问题
可以通过uname -r 看到当前的版本与实际的不符
我的做法是更新一下
sudo apt-get upgrade
重启,就可以make成功了
如果没有编译出ko文件也没有关系,我的资料下载中有我编译过的,下载拖入到 rtl8821CU文件夹里,
后期突然发现我设置的免积分下载被强行改为了1积分,没有积分的小伙伴可以私信我,我直接发送驱动
最后执行以下两条指令就ok了
sudo make install
sudo modprobe 8821cu
重启之后,应该可以通过iwconfig指令看到系统已经有两张网卡了 一张是树莓派自带的,一个是TPLINK这张