『杂』联想 R9000 系列以及 Realtek Semiconductor Co., Ltd. Device 88xx 系列 Ubuntu WIFI 不能使用
1.设置 bios
打开主板系统,将 security boot 设置为 disenable,我们接下来的操作会涉及到内核级别需要关闭。
2.查询网卡型号
1 2
| ➜ ~ lspci | grep Network 02:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device 8852
|
可以看到自己的 Wifi 型号,我的是 8852 螃蟹卡。
3.下载驱动源码并安装
源码网址:https://github.com/lwfinger/ 根据型号选择源代码
我的时 8852 使用 https://github.com/lwfinger/rtw89
以下内容为原项目的 REAME 文件内容,如果帮助到你,及的给元项目作者一颗 Star
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
| 最新 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: 安装说明 要求
你需要安装“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: cd rtw89-dkms-git makepkg -sri
如果找不到上述任何软件包,请检查您的发行版是否像这样安装它们。 安装
对于所有发行版:
git clone git: 光盘 rtw89 制作 须藤使安装
使用 SecureBoot 的模块签名进行安装
对于所有发行版:
git clone 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 则表明成功安装
4.如何卸载/重新加载内核模块
cd ~/rtw89
sudo modprobe -rv rtw89pci # 卸载模块
sudo modprobe -v rtw89pci # 这会加载模块
在有问题就去看原项目吧,我到这里就解决了。