树莓派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: Arducam 64MP摄像头 ESP32-S3开发板 1.85寸圆形LCD显示屏360×360 触摸屏 板载加速度与陀螺仪QMI8658传感器/SD卡槽/电池接口/麦克风/RTC/MP3喇叭音频 适用于Arduino RP2040开发板 Luckfox Pico Max教程 Luckfox RK3576摄像头IMX415 800万98度IR-CUT广角3840x2160像素 树莓派DSI 800×480 树莓派CM5计算模块PoE底板Compute module 5 PoE扩展板 树莓派机器人 X1301 树莓派5 HDMI转CSI-2模块1080P@60fp音频视频 兼容Pi4B/3B SIMCom SIM7600G-H MiniPCIe GNSS全球定位4G通讯模块LTE Cat-4 CPUGPU监控屏 树莓派Zero USB HUB Uno Minima RA4M1 ZERO迷你R7FA4M1开发板Tiny兼容Arduino兼容R4 树莓派PICO PoE以太网继电器 1.5寸OLED 树莓派NB-IoT教程 Milk-V 树莓派Raspberry Pi 500 键盘型(美式) X873 树莓派4 USB转M.2 NVME SSD NAS固态存储扩展 支持硬盘启动