本人电脑为拯救者Y7000P RTX5060显卡,在安装完Ubuntu22.04(内核为6.8.0)双系统后会出现没有WIFI标志且无法联网的问题,解决方法如下: 问题出在网卡驱动上,参考文献: Realtek 8922AE Ubuntu22.04 无WiFi驱动解决 https://blog.csdn.net/Violet_1412/article/details/151174155?sharetype=blog&shareId=151174155&sharerefer=APP&sharesource=m0_74272399&sharefrom=link
(本文主要是对这篇帖子的详细注释,感谢大佬的方案,如果对ubuntu系统本身比较熟悉可以直接跟着原贴操作)
Ctrl+Alt+t,,打开终端,查看Secure Boot
mokutil –sb-state
如果输出结果不是disable而是enable则需要更改电脑的BIOS设置。重启电脑,连续按F2(对于拯救者Y7000P而言),会弹出如下页面:

点击右下角More Setting,进入更多设置:

在左栏中选择Security后,在右侧下拉,找到Secure Boot,改为Disabled,F10保存并退出:

联网。可采用网线或使用手机数据线(typeC-usb或双typeC均可)与电脑连接,然后打开手机的通过USB共享网络。
继续Ctrl+Alt+t打开终端,由于我的是刚装的系统,什么都没有,需要下载git,如果你的系统中已经有git,可以忽略这一步
sudo apt update#更新软件包索引
#sudo命令会要求提供密码,在终端中输入密码时不会显示,放心输入然后回车即可
sudo apt install git#会出现【y/n】的选项,输入y,回车
下载无限网卡驱动:
git clone https://github.com/morrownr/rtw89.git
cd rtw89
清理系统中可能存在的冲突驱动:
sudo apt install make#如果已经有make了可以忽略
#可以通过 make –version命令查看是否安装了make,如果输出版本号说明有
sudo make cleanup_target_system
编译并安装驱动:
make clean modules && sudo make install
报错:

原因分析:我的Linux内核(6.8.0-40-generic)是用 gcc-12 编译的,因此编译驱动模块时也需要完全相同的编译器版本,但系统中没有安装它。
解决方法:安装并设置gcc-12
sudo apt install gcc-12 g++-12
sudo update-alternatives –install /usr/bin/gcc gcc /usr/bin/gcc-12 100 –slave /usr/bin/g++ g++ /usr/bin/g++-12
gcc –version#输出版本号,验证是否安装并将gcc-12设为默认
重新编译驱动
make clean modules && sudo make install
继续报错:

3个报错都是由于内核版本(6.8.0-40-generic)导致的,解决方法如下:
1、找到/rtw89/usb.c文件中的static void rtw89_usb_deinit_tx函数,整个替换为:(为防止出错,建议将原来要替换的部分注释掉而非直接删除)
static void rtw89_usb_deinit_tx(struct rtw89_dev *rtwdev)
{
struct rtw89_usb *rtwusb = rtw89_usb_priv(rtwdev);
int i;
for (i = 0; i < ARRAY_SIZE(rtwusb->tx_queue); i++) {
if (i == RTW89_TXCH_CH12)
skb_queue_purge(&rtwusb->tx_queue[i]);
else {
// 新内核统一使用这套替代方案(兼容 6.7+)
ieee80211_stop_queue(rtwdev->hw, i);
skb_queue_purge(&rtwusb->tx_queue[i]);
ieee80211_wake_queue(rtwdev->hw, i);
}
}
}
剩余两个报错按照提示的分别在core.h、phy.h文件中找到ieee80211_iterate_stations_mtx,改为ieee80211_iterate_stations_atomic。保存,重新运行
make clean modules && sudo make install
安装固件
sudo make install_fw
复制配置文件
sudo cp -v rtw89.conf /etc/modprobe.d/
重启电脑,即可在右上角找到wifi标识



