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

升级Ubuntu 22.04.3 LTS时安装RTL8723BE无线网卡驱动报错的解决求助

升级Ubuntu 22.04.3 LTS时安装RTL8723BE无线网卡驱动报错的解决求助

嘿,我来帮你捋捋这个问题。首先看你的报错信息,核心矛盾是旧的rtlwifi_new驱动代码和Ubuntu 22.04搭载的5.15内核不兼容了——具体来说,驱动里用的uninitialized_var()宏在新内核的编译环境下语法解析逻辑变了,导致编译器误以为value、valueHi这些变量没被声明,所以抛出了错误。

先试试系统自带驱动的修复方案

你的lspci输出显示系统已经加载了官方的rtl8723be驱动,但可能默认参数有问题才导致WiFi不能用。可以先尝试调整自带驱动的参数,说不定不用折腾第三方驱动就能解决:

  • 先卸载你已经编译到一半的第三方驱动(如果有的话):进入驱动目录执行 sudo make uninstall,然后重启系统
  • 重新加载自带驱动:sudo modprobe rtl8723be
  • 调整天线优先级(RTL8723BE常见的信号问题修复):
    sudo echo "options rtl8723be ant_sel=1" | sudo tee /etc/modprobe.d/rtl8723be.conf
    
    重启系统后如果信号还是不好,可以把ant_sel=1改成ant_sel=2再试一次。

如果必须用第三方驱动,修改代码适配新内核

要是自带驱动确实不行,那我们需要修改旧驱动的代码来适配5.15内核的编译规则:

  1. 打开报错的文件:nano /home/sns/Downloads/rtlwifi_new/rtl8192cu/hw.c
  2. 找到第一个报错的函数_rtl92cu_init_chipN_one_out_ep_priority,把里面的:
    u16 uninitialized_var(value);
    
    改成:
    u16 value = 0;
    
    要是想避免编译器的未使用警告,也可以改成:
    u16 value __attribute__((unused)) = 0;
    
  3. 同样处理第二个函数_rtl92cu_init_chipN_two_out_ep_priority里的两行:
    把
    u16 uninitialized_var(valueHi);
    u16 uninitialized_var(valueLow);
    
    分别改成:
    u16 valueHi = 0;
    u16 valueLow = 0;
    
  4. 保存文件后,重新执行编译安装:
    make clean
    make
    sudo make install
    
  5. 重启系统后加载驱动:sudo modprobe rtl8723be

这样修改后,编译器就能正确识别变量,应该就能顺利编译通过了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 15:38:16