前言

本帖记录在栗子派昇腾310B开发板套件开发板上完成 Realtek RTL8821CE PCIe Wi-Fi 网卡驱动安装、无线热点创建与 5G 网络共享的全过程。开发板搭载 NPU Ascend 310B4,系统为 Ubuntu 22.04 LTS (aarch64),运行内核 5.10.0+,Ascend 软件版本 23.0.rc3。

Wi-Fi 模块为 Realtek RTL8821CE 802.11ac PCIe 无线网卡,设备 ID 为 10ec:c821。客户侧无需编译驱动源码,随设备提供已针对 5.10.0+ 内核准备的 8821ce.ko 文件。

验收标准:PCIe 设备和驱动正常,无线接口已创建;手机可连接热点并完成联网测速。

前置条件:5G 模块(RM500U-CNV)已测试通过,usb1 可正常访问公网(参见上一个帖子)。


一、硬件连接

开发板断电后安装 Realtek RTL8821CE PCIe Wi-Fi 网卡并连接天线,确认金手指完全插入插槽、固定可靠。该网卡使用 PCIe 接口,不通过 USB 数据线连接。

警告:插拔 Wi-Fi 模块或天线前必须断电。


二、确认PCIe设备与内核版本

RTL8821CE 属于 PCIe 无线网卡。安装驱动前先确认系统能够枚举设备,并核对运行内核。若 lspci 已能看到 10ec:c821,说明 PCIe 硬件链路基本正常。

uname -r
uname -m
lspci -nn | grep -i -E 'network|wireless|10ec:c821|8821'

# 若系统曾安装过驱动,可进一步查看当前绑定状态
lspci -nnk | grep -A3 -i -E '10ec:c821|8821'
find /lib/modules/$(uname -r) -type f | grep -Ei '8821ce|8821' || true

判定标准:lspci 应识别 Realtek RTL8821CE,设备 ID 为 10ec:c821;uname -r 应与交付的 8821ce.ko 所适配内核一致。本次交付驱动适用于 5.10.0+。

不要使用与当前内核版本不匹配的其他 .ko 文件。


三、驱动文件安装

3.1 将8821ce.ko复制到开发板

驱动文件由供货方直接提供,文件名为 8821ce.ko。先在电脑端将该文件复制到开发板 /root/ 目录。Windows PowerShell 可使用 scp:

# 以下命令在 Windows PowerShell 中执行
# 先进入 8821ce.ko 所在目录,再执行:
scp ".\8821ce.ko" root@<开发板IP>:/root/

# 示例:复制到 192.168.137.100
scp ".\8821ce.ko" root@192.168.137.100:/root/

# 然后登录开发板确认文件已存在
ssh root@<开发板IP>
ls -lh /root/8821ce.ko

3.2 安装并加载8821ce.ko

文件复制完成后,在开发板上先用 modinfo 检查 8821ce.ko 的 vermagic,并与 uname -r 对照。确认匹配后,将驱动复制到当前内核的 extra 目录,更新模块依赖并加载。该流程不需要准备内核源码、headers 或 build 目录。

# 以下命令在开发板上执行
uname -r
modinfo /root/8821ce.ko | grep -E 'filename|version|vermagic'


# 安装到当前运行内核目录
mkdir -p /lib/modules/$(uname -r)/extra
cp /root/8821ce.ko /lib/modules/$(uname -r)/extra/8821ce.ko

# 更新模块依赖并加载
depmod -a
modprobe 8821ce

3.3 驱动安装结果确认

驱动安装成功后,lspci -nnk 应显示 Kernel driver in use: rtl8821ceKernel modules: 8821ce/lib/modules/5.10.0+/extra/ 下应存在 8821ce.ko;ip -br link 应出现 wlan0。

echo '========== RTL8821CE 驱动与接口状态 =========='
lspci -nnk | grep -A3 -i -E '10ec:c821|8821'
modinfo 8821ce | grep -E 'filename|version|vermagic'
lsmod | grep -E '8821ce|cfg80211|mac80211'
ip -br link | grep -E '^wl'


# 期望:
# Kernel driver in use: rtl8821ce
# Kernel modules: 8821ce
# /lib/modules/5.10.0+/extra/8821ce.ko
# wlan0

检查项

判定方法

驱动文件与内核匹配

modinfo 8821ce 查看 vermagic;应与 uname -r 对应

驱动绑定与无线接口

lspci -nnk 显示 rtl8821ce;ip -br link 出现 wlan0


四、驱动加载完整验证

8821ce.ko 安装并加载后,再安装/确认无线调试工具 iw。若执行 iw dev 提示 iw: command not found,说明只是系统缺少 iw 工具,不代表驱动失败;5G 网络正常时可直接通过 apt 安装。

echo '========== RTL8821CE 加载验证 =========='
# 若 iw 不存在,先安装
command -v iw >/dev/null 2>&1 || { apt update && apt install -y iw; }


lspci -nnk | grep -A3 -i -E '10ec:c821|8821'
lsmod | grep -Ei '8821ce|cfg80211|mac80211'

ip -br link show wlan0
iw dev
nmcli device status
dmesg | grep -Ei '8821|rtl|wlan|wifi' | tail -n 80

判定标准:lspci -nnk 显示 Kernel driver in use: rtl8821ce;lsmod 能看到 8821ce;ip -br link 显示 wlan0;iw dev 能列出无线接口;NetworkManager 能识别 wlan0。


五、无线热点配置

RTL8821CE 驱动和 wlan0 确认正常后,使用 NetworkManager 创建 AP 热点。连接名称为 Ascend-AP,热点 SSID 为 ruituzhineng_wen。示例密码使用 123456789,现场可替换为实际密码。

注意:密码变量中不要写尖括号,例如 AP_PASS='<123456789>' 会把 <> 也作为密码字符。

WIFI_IF='wlan0'
UPLINK='usb1'
AP_NAME='Ascend-AP'
AP_SSID='ruituzhineng_wen'
AP_PASS='123456789'  # 示例密码,按实际要求修改;不要加 < >

nmcli device set "$WIFI_IF" managed yes
nmcli radio wifi on
nmcli connection delete "$AP_NAME" 2>/dev/null || true

nmcli connection add type wifi ifname "<span class="inlineKatex" data-text="WIFI_IF" con-name ""></span>AP_NAME" ssid "$AP_SSID"
nmcli connection modify "$AP_NAME" \
  802-11-wireless.mode ap \
  wifi-sec.key-mgmt wpa-psk \
  wifi-sec.psk "$AP_PASS" \
  ipv4.method shared \
  ipv6.method ignore \
  connection.autoconnect yes
nmcli connection up "$AP_NAME"

# 查看热点与公网出口
nmcli device status
iw dev "$WIFI_IF" info
ip route get 8.8.8.8
# 若实际出口不是 usb1,再纠正默认路由

NetworkManager 的 ipv4.method shared 可自动为无线终端提供 IPv4 地址分配和 NAT 转发。热点启动后,Ascend-AP 处于已连接状态,iw 输出中的 type 为 AP,SSID 为 ruituzhineng_wen。手机能够正常连接热点并通过 5G 上行访问互联网。


六、5G共享与终端测速

手机打开 WLAN,选择 ruituzhineng_wen 并输入热点密码。连接成功后,在板端确认手机关联、IPv4 转发和 5G 默认出口,再在手机端进行联网与测速。

WIFI_IF='wlan0'
iw dev "$WIFI_IF" station dump
sysctl net.ipv4.ip_forward
ip route get 8.8.8.8
ping -I usb1 -c 4 8.8.8.8
# 手机端连接 ruituzhineng_wen 后进行联网与测速

本次终端连接和网络访问正常,测速结果为:

网络延迟:55.3 ms

延迟抖动:4.94 ms

下载速度:59.1 Mbps

上传速度:33.2 Mbps

RTL8821CE PCIe 设备识别正常,驱动已绑定并创建无线接口;热点 ruituzhineng_wen 可正常启动,手机成功连接并访问互联网,Wi-Fi 测试结果通过。


七、设置驱动与热点自动恢复

驱动和热点验证正常后,将 8821ce 设置为开机自动加载,并将 NetworkManager 的 Ascend-AP 设置为自动连接。驱动文件必须已经保存在 /lib/modules/$(uname -r)/extra/8821ce.ko,且已执行 depmod -a

# 确保驱动文件已安装并更新依赖
ls -l /lib/modules/$(uname -r)/extra/8821ce.ko
depmod -a

# 设置8821ce开机自动加载
echo 8821ce > /etc/modules-load.d/rtl8821ce.conf

# 热点设置为自动连接
nmcli connection modify Ascend-AP connection.autoconnect yes
systemctl enable NetworkManager
reboot

# 重启后复核
lspci -nnk | grep -A3 -i -E '10ec:c821|8821'
lsmod | grep 8821ce

ip -br link show wlan0
nmcli device status
nmcli connection show --active

八、Wi-Fi常见问题与处理

故障现象

原因

解决方法

lspci 看不到 10ec:c821

PCIe 网卡未插紧、供电或插槽异常

断电重插 RTL8821CE,检查天线、固定和 PCIe 插槽

modprobe 提示 Module 8821ce not found

8821ce.ko 未放入当前内核目录,或复制后未执行 depmod

确认 /lib/modules/$(uname -r)/extra/8821ce.ko 存在,执行 depmod -a 后再 modprobe 8821ce

modprobe 提示 invalid module format

8821ce.ko 的 vermagic 与运行内核不匹配

执行 uname -rmodinfo /root/8821ce.ko | grep vermagic 核对;使用与当前内核匹配的交付驱动

驱动加载后没有 wlan0

驱动绑定异常、无线功能被禁用或内核日志存在错误

检查 lspci -nnklsmodrfkillip -br linkdmesg

iw: command not found

系统未安装 iw 用户态工具

5G 联网正常时执行 apt update && apt install -y iw;该报错本身不代表驱动失败

手机按示例密码无法连接

密码变量误写了尖括号,< > 被当作密码字符

密码 123456789 应写 AP_PASS='123456789',不要写 AP_PASS='<123456789>'

热点无法启动

wlan0 状态、AP 模式或 NetworkManager 配置异常

检查 iw deviw listnmcli device statusdmesg;确认 wlan0 已由 NetworkManager 管理

热点可连接但不能上网

默认公网出口不是 usb1,或 NAT/转发状态异常

执行 ip route get 8.8.8.8 确认出口为 usb1,再检查 ipv4.method shared 与 net.ipv4.ip_forward


九、验收结果

测试项

实际结果

判定

Wi-Fi PCIe 识别

Realtek RTL8821CE,设备 ID 10ec:c821,可被 lspci 识别

通过

Wi-Fi 驱动

8821ce.ko 已安装到 /lib/modules/5.10.0+/extra;rtl8821ce 绑定正常,wlan0 已创建

通过

Wi-Fi 热点/测速

手机连接 ruituzhineng_wen 正常;下载 59.1 Mbps,上传 33.2 Mbps,延迟 55.3 ms

通过

总结

RTL8821CE 能够以 PCIe 设备 10ec:c821 被系统识别,客户侧通过交付的 8821ce.ko 完成驱动安装后,内核驱动 rtl8821ce 正常绑定并创建 wlan0,热点 ruituzhineng_wen 可供终端连接并通过 5G 网络共享。

交付要点已固化为:复制 8821ce.ko → 安装 → depmod → modprobe → 验证 wlan0 → 创建热点,可避免现场重复踩坑。

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐