You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04双系统下Realtek 10ec:b852无线网卡未识别,编译驱动报错求助

Ubuntu 22.04双系统下Realtek 10ec:b852无线网卡未识别,编译驱动报错求助

别慌,我来帮你拆解问题并给出可行的解决方案~

问题根源分析

你遇到的编译错误,本质是内核版本兼容性问题:你当前用的Ubuntu内核是5.19,属于比较新的版本,而你下载的rtl8852be驱动源码里还在使用已经被Linux内核废弃的PCI DMA旧接口(比如pci_dma_sync_single_for_device、pci_map_single这类函数),新内核已经移除了这些接口的声明,所以编译器会报「隐式函数声明」的错误。

解决方案(推荐方案一,更省心)

方案一:使用适配新内核的官方维护驱动

Realtek的新网卡(包括你的10ec:b852)现在有专门的rtw89驱动分支,完美适配Ubuntu 22.04的5.15/5.19内核,步骤如下:

  1. 先清理原来的驱动源码目录(避免冲突):
cd /home/jakob/Programs/rtl8852be
sudo make clean
cd ../
sudo rm -rf rtl8852be
  1. 克隆适配版驱动源码:
git clone https://github.com/lwfinger/rtw89.git
cd rtw89
  1. 编译并安装驱动:
make
sudo make install
sudo modprobe rtw89pci
  1. 重启电脑后,打开WiFi设置,应该就能看到可用网络了。

方案二:手动修改旧驱动源码(适合想折腾的情况)

如果你坚持要用原来的rtl8852be驱动,需要手动替换源码里的旧内核函数,具体修改/home/jakob/Programs/rtl8852be/platform/platform_linux_pc_pci.c文件:

  • 将pci_dma_sync_single_for_device替换为dma_sync_single_for_device,同时把第一个参数hwdev改成&hwdev->dev
  • 将pci_dma_sync_single_for_cpu替换为dma_sync_single_for_cpu,参数改为&hwdev->dev
  • 将pci_map_single替换为dma_map_single,参数改为&hwdev->dev
  • 将pci_unmap_single替换为dma_unmap_single,参数改为&hwdev->dev
  • 将pci_free_consistent替换为dma_free_coherent,参数改为&pdev->dev

举个具体的修改例子:
原来的代码行:

pci_dma_sync_single_for_device(hwdev, *bus_addr, size, direction);

修改后:

dma_sync_single_for_device(&hwdev->dev, *bus_addr, size, direction);

所有涉及上述函数的地方都按这个规则修改后,重新执行:

make
sudo make install
sudo modprobe rtl8852be

重启后验证网卡状态。

验证方法

驱动安装完成并重启后,执行以下命令查看网卡是否被正确识别:

sudo lshw -C network

如果输出里的网卡状态从UNCLAIMED变成claimed,说明驱动加载成功,WiFi选项应该会正常显示。

备注:内容来源于stack exchange,提问作者Jakob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 11:29:52