树莓派Wireless-AC600M教程

尽管Raspberry Pi 4具有内置的双频WiFi,但是需要放到金属车体上,无法引出天线,所以需要一个网卡,在WIFI网卡中RTL8811cu是一款带5G的无线网卡,这款网卡有些缺点就是驱动需要编译安装,需要折腾(5G的USB网卡基本不免驱)。

本文使用RTL8811CU网卡和树莓派作为示例,基于UBUNTU18.04,内核4.19,其他设备安装方法大同小异。


更新软件包

sudo apt-get update sudo apt-get upgrade

Linux

安装所需的包

安装编译包以及git

sudo apt-get install build-essential -y sudo apt-get install bc -y sudo apt install git -y

Linux

检查内核文件

apt search linux-headers-(uname -r) ls -l /usr/src/linux-headers-(uname -r)

Linux

如果没有安装内核头文件,则需要安装

树莓派: sudo apt install raspberrypi-kernel-headers 其他: sudo apt-get install linux-headers-$(uname -r)

Linux

可选,如需要使用DKMS进行编译和安装,但是博主未使用

sudo apt-get install dkms

Linux

注意内核版本

查看内核版本

uname -a

Linux

或者

getconf LONG_BIT

Linux

如果你的内核是”4.x及以下”或者是”5.x”版本请按照不同步骤执行

克隆编译包 (内核4.x)

mkdir -p ~/drive cd ~/drive git clone https://github.com/whitebatman2/rtl8821CU

Linux

克隆编译包 (内核5.x)

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

Linux

使用DKMS进行构建和安装(博主未使用)

DKMS是一个系统,当安装或更新新内核时,该系统将自动重新编译并安装内核模块。要使用DKMS,请安装dkms软件包。

博主未使用这种安装方式!

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}

Linux

在没有使用DKMS进行构建和安装

首先进入驱动包目录,并且编辑驱动程序配置

cd ~/drive/rtl8821CU vim Makefile

Linux

假如您使用的是Raspberry Pi 4/3 64位,需要配置Makefile的设备类型,原本是:

内核4.x : CONFIG_PLATFORM_I386_PC = y CONFIG_PLATFORM_ARM_RPI = n CONFIG_PLATFORM_ARM_RPI3 = n 内核5.x : CONFIG_PLATFORM_I386_PC = y CONFIG_PLATFORM_ARM_RPI = n CONFIG_PLATFORM_ARM64_RPI = n

Linux

变更为

内核4.x : CONFIG_PLATFORM_I386_PC = n CONFIG_PLATFORM_ARM_RPI = n CONFIG_PLATFORM_ARM_RPI3 = y 内核5.x : CONFIG_PLATFORM_I386_PC = n CONFIG_PLATFORM_ARM_RPI = n CONFIG_PLATFORM_ARM64_RPI = y

Linux

如果您使用的是Raspberry Pi 4/3 32位,则变更为

内核4.x : CONFIG_PLATFORM_I386_PC = n CONFIG_PLATFORM_ARM_RPI = y CONFIG_PLATFORM_ARM_RPI3 = n 内核5.x : CONFIG_PLATFORM_I386_PC = n CONFIG_PLATFORM_ARM_RPI = y CONFIG_PLATFORM_ARM64_RPI = n

Linux


针对5.x内核驱动程序的ARM体系结构调整(解决5.x驱动程序的编译问题)
For AArch32 (例如树莓派32位)

sudo cp /lib/modules/(uname -r)/build/arch/arm/Makefile /lib/modules/(uname -r)/build/arch/arm/Makefile.(date +%Y%m%d%H%M) sudo sed -i 's/-msoft-float//' /lib/modules/(uname -r)/build/arch/arm/Makefile sudo ln -s /lib/modules/(uname -r)/build/arch/arm /lib/modules/(uname -r)/build/arch/armv7l

Linux

For AArch64 (例如树莓派64位)

sudo cp /lib/modules/(uname -r)/build/arch/arm64/Makefile /lib/modules/(uname -r)/build/arch/arm64/Makefile.(date +%Y%m%d%H%M) sudo sed -i 's/-mgeneral-regs-only//' /lib/modules/(uname -r)/build/arch/arm64/Makefile

L
inux

输入以下命令以安装驱动程序,可能需要几分钟:

make

编译完成后执行安装

sudo make install

如果你已成功安装了驱动程序,则可以使用以下命令检查

ls /lib/modules/$(uname -r)/kernel/drivers/net/wireless/8821cu*

如果以后要删除它,请执行以下操作:

sudo make uninstall

网卡使用 (店铺购买网卡不需要切换USB模式)

将USB-WIFI适配器插入设备,如果可以检测到WIFI,那么恭喜。如果没有检测到,也许需要通过以下步骤切换USB模式:
1. 通过以下方式找到您的usb-wifi-adapter设备ID,例如”0bda:1a2b”:

lsusb
  1. 需要先安装usb_modeswitch用于切换USB设备类型,假设设备ID是"0bda:1a2b"
sudo usb_modeswitch -KW -v 0bda -p 1a2b

  1. 使用iw命令查看网卡是否识别到新网卡
iw dev

设置自动启动识别 (店铺购买网卡不需要切换USB模式)

如果插入设备进入u盘或者其他模式,则需要切换为无线网卡模式
1. 编辑usb_modeswitch规则

sudo vim /lib/udev/rules.d/40-usb_modeswitch.rules
  1. 在最后结束行LABEL="modeswitch_rules_end"前面添加以下内容
# Realtek 8211CU Wifi AC USB
ATTR{idVendor}=="0bda", ATTR{idProduct}=="1a2b", RUN+="usb_modeswitch '/%k'"
TAG: 工业级隔离型USB转8路RS485转换器支持35mm标准导轨/堆叠安装 树莓派PCM5122 I2S DAC HIFI声卡音频扩展板PI5/PI4/Zero免驱 资料 Raspberry Pi 5 全志H618 树莓派Pico ESP32 S3开发板3.5寸 虾哥小智AI音箱DeepSeek人工智能语音聊天机器人盒子N16R8 QMI8658 6轴/触摸/摄像头 X1201 树莓派5 UPS电源管理扩展板18650不间断供电模块 MP2.5G树莓派5 PCIE转 2.5G以太网扩展板 Pi5 RTL8125 PD电源 UART转以太网 树莓派5/4B UPS带PD快充诱导输出激活Type C不间断电源9600mAh 5V/5A 25W 充电宝 也支持手机/平板/迷你PC电脑等 1.28寸旋钮屏LCD触摸显示屏圆形智能家居开关中控串口屏 Type-C 可编程键盘 UGV02 Modbus系列BootLoader说明 官方 MAX9296A 2路GMSL相机Camera扩展板适用于Jetson Orin主板 树莓派Pico 2 RP2350-Matrix开发板8×8RGB LED点矩阵六轴传感器