栗子派昇腾310B开发板套件Atlas 200I DK A2 之 RTL8821CE Wi-Fi 驱动安装与无线热点配置实战
前言
本帖记录在栗子派昇腾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: rtl8821ce 和 Kernel 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
|
检查项 |
判定方法 |
|---|---|
|
驱动文件与内核匹配 |
|
|
驱动绑定与无线接口 |
|
四、驱动加载完整验证
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 |
确认 |
|
modprobe 提示 invalid module format |
8821ce.ko 的 vermagic 与运行内核不匹配 |
执行 |
|
驱动加载后没有 wlan0 |
驱动绑定异常、无线功能被禁用或内核日志存在错误 |
检查 |
|
iw: command not found |
系统未安装 iw 用户态工具 |
5G 联网正常时执行 |
|
手机按示例密码无法连接 |
密码变量误写了尖括号, |
密码 123456789 应写 |
|
热点无法启动 |
wlan0 状态、AP 模式或 NetworkManager 配置异常 |
检查 |
|
热点可连接但不能上网 |
默认公网出口不是 usb1,或 NAT/转发状态异常 |
执行 |
九、验收结果
|
测试项 |
实际结果 |
判定 |
|---|---|---|
|
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 → 创建热点,可避免现场重复踩坑。
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐



所有评论(0)