打开主板系统,将security boot设置为disenable,我们接下来的操作会涉及到内核级别需要关闭。
➜ ~ lspci | grep Network
02:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device 8852
可以看到自己的Wifi 型号,我的是8852螃蟹卡。
源码网址:https://github.com/lwfinger/ 根据型号选择源代码
我的时8852 使用 https://github.com/lwfinger/rtw89
以下内容为原项目的REAME文件内容,如果帮助到你,及的给元项目作者一颗Star
最新 Realtek rtlwifi 代码的存储库。
这个分支是从合并到 wireless-drivers-next 的版本创建的 repo,位于 5.16 内核中。 删除 v5、v6 和 v7 等所有分支!
只要发行版未修改,此代码将构建在任何内核 5.4 和更高版本上 任何内核 API。 如果您运行 UBUNTU,您可以确信 API 已更改。 不,我不会为您修改源。 你只能靠自己!!!!!
我正在修复旧内核上的构建。
此存储库包括以下卡的驱动程序:
瑞昱 8852AE
如果您正在寻找芯片的驱动程序,例如 RTL8188EE、RTL8192CE、RTL8192CU、RTL8192DE、RTL8192EE、RTL8192SE、RTL8723AE、RTL8723BE 或 RTL8821AE, 这些应该由您的内核提供。 如果没有,那么你应该去 Backports 项目 ( https://backports.wiki.kernel.org/index.php/Main_Page ) 获取必要的代码。
安装说明
要求
你需要安装“make”、“gcc”、“kernel headers”、“kernel build essentials”和“git”。
对于 Ubuntu :您可以使用以下命令安装它们
sudo apt-get 更新
sudo apt-get install make gcc linux-headers- $( uname -r ) build-essential git
对于 Fedora :您可以使用以下命令安装它们
sudo dnf install kernel-headers kernel-devel
sudo dnf group install " C 开发工具和库 "
对于 openSUSE :安装必要的头文件
sudo zypper install make gcc kernel-devel kernel-default-devel git libopenssl-devel
对于 Arch :安装必要的内核头文件和基础开发后,
git 克隆 https://aur.archlinux.org/rtw89-dkms-git.git
cd rtw89-dkms-git
makepkg -sri
如果找不到上述任何软件包,请检查您的发行版是否像这样安装它们。
安装
对于所有发行版:
git clone git://github.com/lwfinger/rtw89.git
光盘 rtw89
制作
须藤使安装
使用 SecureBoot 的模块签名进行安装
对于所有发行版:
git clone git://github.com/lwfinger/rtw89.git
光盘 rtw89
制作
sudo 进行登录安装
系统会提示您输入密码,请记住并在下一步中使用。 重新启动以激活新安装的模块。 在 MOK 管理屏幕中:
选择“注册密钥”并注册上述注册安装步骤创建的密钥
出现提示时,输入您在创建签名密钥时输入的密码。
如果您输入错误的密码,您的计算机将无法启动。 在这种情况下, 使用 BIOS 中的 BOOT 菜单启动操作系统,然后执行以下步骤:
sudo mokutil --reset
重启你的电脑 使用 BIOS 中的 BOOT 菜单启动到您的操作系统 在 MOK 管理界面,选择重置 MOK 列表 重新启动,然后从步骤 make sign-install 重试
如何卸载/重新加载内核模块
sudo modprobe -rv rtw89pci # 卸载模块
sudo modprobe -v rtw89pci # 这会加载模块
睡眠或冬眠后恢复问题
某些 BIOS 无法将电源状态从 D3hot 更改为 D0。 如果你有这个问题,那么
sudo cp suspend_rtw89 /usr/lib/systemd/system-sleep/。
该脚本将在睡眠或休眠之前卸载驱动程序,并在恢复后重新加载它。
选项配置
如果事实证明您的系统需要配置选项之一,请执行以下操作:
须藤 _ /etc/modprobe.d/<dev_name>.conf _ 纳米
在那里,输入以下行:
选项 < 驱动程序 > << 名称>>= <值>
rtw89pci 的可用选项是 disable_clkreq、disable_aspm_l1 和 disable_aspm_l1ss。 rtw89core 的可用选项是 debug_mask 和 disable_ps_mode
通常,这些都不需要; 但是,如果您遇到固件错误,一个或两个 的 disable_aspm_* 选项可能会有所帮助。 当有缺陷的 BIOS 无法实现 PCI规格正确。
当您的内核更改时,您需要执行以下操作:
光盘 ~ /rtw89
git 拉
打扫干净
制作
须藤使安装
; 或者
sudo 进行登录安装
请记住,每当您获得新内核时都必须这样做 - 没有例外。
这些驱动程序不会为早于 5.4 的内核构建。 如果您必须使用较旧的内核, 提交包含构建错误列表的 GitHub 问题。 没有错误,问题 将被忽略。 我不是读心术。
当您遇到驱动程序正确构建和加载但无法正常工作的问题时,GitHub 问题不是报告它的最佳地点。 我不知道任何一个的内部运作 芯片,而这样做的 Realtek 工程师不会阅读这些问题。 要联系他们,请发送电子邮件至 linux-wireless@vger.kernel.org 。 在内核中包含任何消息的详细描述 日志以及您为分析或解决问题而采取的任何步骤。 如果你的描述是 不完整,你不可能得到任何满足。 另一件事 - 你的邮件必须是简单的测试。 HTML 邮件被拒绝。
首先安装必要的工具:
sudo apt-get update sudo apt-get install make gcc linux-headers-$(uname -r) build-essential git
安装驱动:
git clone https://github.com/lwfinger/rtw89.git -b v7
接着打开rtw89目录下的phy.c 注释掉bss_color = vif->bss_conf.he_bss_color.color; 再打开rtw89目录下的cam.c 注释掉u8 bss_color => vif->bss_conf.he_bss_color.color;和FWCMD_SET_ADDR_BSSID_BSS_COLOR(cmd,> bss_color); 这是看到网上有人解决r7000的问题,但是我没有用到,放到这里希望帮到大家。
cd rtw89
make
这里没报错则成功编译,如有问题则检查是否错误注释了
sudo make install
这里显示Install rtw89 SUCCESS则表明成功安装
cd ~/rtw89 sudo modprobe -rv rtw89pci # 卸载模块 sudo modprobe -v rtw89pci # 这会加载模块
在有问题就去看原项目吧,我到这里就解决了。