yar*_*160 5 wireless realtek drivers 18.04
更新
以下是我的原始问题以及补充信息。最初我以为我的硬件是 rtl8821ce 芯片,但是从lspci与这篇文章的输出比较,看来我拥有的无线设备实际上是 8822ce 芯片。以前这个问题的标题没有反映这个事实,所以我编辑了它。
我有一个无法解决的问题,我希望得到一些帮助。我有一台全新的联想 IdeaPad 笔记本电脑,我最近在上面安装了 Ubuntu 18.04.4。不幸的是,Ubuntu 无法识别我的 wifi,说:“找不到 wifi 适配器”。
lspci -nnk | grep 0280 -A3:
01:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. Device [10ec:c82f]
Subsystem: Lenovo Device [17aa:c02f]
Run Code Online (Sandbox Code Playgroud)
rfkill list all:
0: ideapad_wlan: Wireless LAN
Soft blocked: no
Hard blocked: no
1: ideapad_bluetooth: Bluetooth
Soft blocked: yes
Hard blocked: no
5: hci0: Bluetooth
Soft blocked: yes
Hard blocked: no
Run Code Online (Sandbox Code Playgroud)
sudo lshw -C network
*-network UNCLAIMED
description: Network controller
product: Realtek Semiconductor Co., Ltd.
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:01:00.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress cap_list
configuration: latency=0
resources: ioport:4000(size=256) memory:93000000-9300ffff
Run Code Online (Sandbox Code Playgroud)
值得注意的是,在其他帖子中类似命令的输出中,网络适配器显示:“RTL8821CE”,而我的输出没有。
首先,我尝试rtl8821ce-dkms像这样安装:
sudo apt-get install rtl8821ce-dkms
sudo modprobe rtl8821ce
sudo modprobe -r ideapad_laptop
Run Code Online (Sandbox Code Playgroud)
而且我还在 BIOS 中禁用了安全启动。这没有效果。Ubuntu 仍然给出相同的消息。
接下来,我尝试像这样直接从 tomaspinho GitHub 安装驱动程序(删除 rtl8821ce-dkms 后):
sudo apt-get install git dkms build-essential linux-headers-$(uname -r)
cd /usr/local/src/
sudo git clone https://github.com/tomaspinho/rtl8821ce
cd rtl8821ce/
sudo chmod +x dkms-install.sh
sudo chmod +x dkms-remove.sh
sudo ./dkms-install.sh
sudo modprobe 8821ce
Run Code Online (Sandbox Code Playgroud)
同样,这没有效果。Ubuntu 仍然给出相同的消息。
有趣的是,现在当我运行时dmesg | grep -i 8821,我得到:
[ 94.460377] 8821ce: loading out-of-tree module taints kernel.
[ 94.461221] 8821ce: module verification failed: signature and/or required key missing - tainting kernel
Run Code Online (Sandbox Code Playgroud)
我怀疑这个驱动程序可能不支持我的硬件。任何人都可以帮助我了解解决此“无 wifi 适配器”问题需要做些什么?
正如这里所建议的,我试图更新linux-firmware我机器上的软件包版本。我尝试了几个不同的版本,但都没有奏效。我做了什么:
wget http://security.ubuntu.com/ubuntu/pool/main/l/linux-firmware/linux-firmware_<version>_all.deb
sudo dpkg -i linux-firmware_<version>_all.deb
Run Code Online (Sandbox Code Playgroud)
<versions>我试过的“ ”是:
我仍然收到“无 wifi 适配器”消息。
终于,我找到了解决办法!(感谢本页的回答)。
事实证明,应该支持我的硬件 (rtw88) 的驱动程序是可用的,并且已经在内核 > 5.2 中与该硬件兼容(我有 5.3.0-46-generic),但它没有设置为识别我的硬件。 为了解决这个问题,我必须在源代码中稍作修改来编译 linux 内核(下面解决方案中的第 2 步)。这是我所做的:
1)获取您选择的 linux 源代码。就我而言,我使用了主线内核:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Run Code Online (Sandbox Code Playgroud)
2)找到文件: ./linux/drivers/net/wireless/realtek/rtw88/pci.c,然后编辑它。查找字符串'0xC822',并将其替换为'0xC82F'
3)按照说明继续编译内核。为了我的答案的完整性,这是我所做的:
cd 到 ./linux 文件夹。
使用当前内核的配置:
cp /boot/config-$(uname -r) .config
make menuconfig. 这里有很多选项可以配置。最好的办法是让它们保持原样(保存并退出)。编译和安装:
i)make或make -j8(并行使用 8 个线程而不是一个)。这将需要一段时间才能完成...
ii) sudo make modules_install。
三) sudo make install
启用内核以进行引导:
一)sudo update-initramfs -c -k 5.7.0-rc1+。当然,使用安装的内核版本(在我的例子中是 5.7.0-rc1+)。如果不确定内核版本:“ls /lib/modules/”并查看安装了哪些内核模块。
ii) sudo update-grub
就是这样。重新启动并确保启动到新内核。wifi现在应该可以工作了。
| 归档时间: |
|
| 查看次数: |
11056 次 |
| 最近记录: |