Wifi on Thinkpad E14 Gen3: Install missing Firmware?

Hello,

I am new to Fedora and I got stuck with enabling Wifi. I guess firmware is missing. Here are some system Informations:

# dmidecode | grep -A 9 "System Information"
System Information
        Manufacturer: LENOVO
        Product Name: 20Y7003SGE
        Version: ThinkPad E14 Gen 3
        Serial Number: PF2ZFTRB
        UUID: e9f16ccc-2ed1-11b2-a85c-cb2849a7547d
        Wake-up Type: Power Switch
        SKU Number: LENOVO_MT_20Y7_BU_Think_FM_ThinkPad E14 Gen 3
        Family: ThinkPad E14 Gen 3
# lspci
00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir Root Complex
00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD] Renoir IOMMU
00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge
00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge
00:02.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe GPP Bridge
00:02.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe GPP Bridge
00:02.3 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe GPP Bridge
00:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge
00:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir Internal PCIe GPP Bridge to Bus
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 51)
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 51)
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir Device 24: Function 0
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir Device 24: Function 1
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir Device 24: Function 2
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir Device 24: Function 3
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir Device 24: Function 4
00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir Device 24: Function 5
00:18.6 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir Device 24: Function 6
00:18.7 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir Device 24: Function 7
01:00.0 Non-Volatile memory controller: SK hynix Device 174a
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)
03:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device 8852
04:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Lucienne (rev c2)
04:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Device 1637
04:00.2 Encryption controller: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 10h-1fh) Platform Security Processor
04:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Renoir USB 3.1
04:00.4 USB controller: Advanced Micro Devices, Inc. [AMD] Renoir USB 3.1
04:00.5 Multimedia controller: Advanced Micro Devices, Inc. [AMD] Raven/Raven2/FireFlight/Renoir Audio Processor (rev 01)
04:00.6 Audio device: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 10h-1fh) HD Audio Controller
# lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 0bda:4852 Realtek Semiconductor Corp. Bluetooth Radio
Bus 003 Device 002: ID 04f3:0c4b Elan Microelectronics Corp. ELAN:Fingerprint
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 13d3:56fb IMC Networks Integrated Camera
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
# fwupdmgr update
Devices with no available firmware updates: 
 • Integrated Camera
 • SKHynix HFM512GD3HX015N
 • System Firmware
 • UEFI Device Firmware
 • UEFI Device Firmware
 • UEFI Device Firmware
 • UEFI dbx
No updatable devices

So I guess this are the important bits:

02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)
03:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device 8852

But I am not sure if this is wifi. Shouldn’t there be “802.11” in the name? If this is correct, where do I find the correct firmware and how to install it?

Please help.

hey,
I had the same issue with the realtek 8852 wifi on my new ideapad.
Fortunatly there is a github repo with the driver.

For fedora you need to install some packages before you can install the firmware.
I was successful with:

sudo dnf install dpkg g++ gcc make automake gcc-c++ kernel-devel
git clone https://github.com/lwfinger/rtw89.git
cd rtw89
make
sudo make install

and then reboot.

Greetings.

Thank you so far.
I must be missing some step.
I guess dpkg is unnecessary.

$ make
make -C /lib/modules/5.12.11-300.fc34.x86_64/build M=/home/mogoh/src/github.com/lwfinger/rtw89 modules
make[1]: Verzeichnis „/usr/src/kernels/5.12.11-300.fc34.x86_64“ wird betreten
  CC [M]  /home/mogoh/src/github.com/lwfinger/rtw89/core.o
  CC [M]  /home/mogoh/src/github.com/lwfinger/rtw89/debug.o
  CC [M]  /home/mogoh/src/github.com/lwfinger/rtw89/mac80211.o
  CC [M]  /home/mogoh/src/github.com/lwfinger/rtw89/mac.o
  CC [M]  /home/mogoh/src/github.com/lwfinger/rtw89/phy.o
  CC [M]  /home/mogoh/src/github.com/lwfinger/rtw89/fw.o
  CC [M]  /home/mogoh/src/github.com/lwfinger/rtw89/rtw8852a.o
  CC [M]  /home/mogoh/src/github.com/lwfinger/rtw89/rtw8852a_table.o
  CC [M]  /home/mogoh/src/github.com/lwfinger/rtw89/rtw8852a_rfk.o
  CC [M]  /home/mogoh/src/github.com/lwfinger/rtw89/rtw8852a_rfk_table.o
  CC [M]  /home/mogoh/src/github.com/lwfinger/rtw89/cam.o
  CC [M]  /home/mogoh/src/github.com/lwfinger/rtw89/efuse.o
  CC [M]  /home/mogoh/src/github.com/lwfinger/rtw89/regd.o
  CC [M]  /home/mogoh/src/github.com/lwfinger/rtw89/coex.o
  CC [M]  /home/mogoh/src/github.com/lwfinger/rtw89/ps.o
  CC [M]  /home/mogoh/src/github.com/lwfinger/rtw89/ser.o
  LD [M]  /home/mogoh/src/github.com/lwfinger/rtw89/rtw89core.o
  CC [M]  /home/mogoh/src/github.com/lwfinger/rtw89/pci.o
  LD [M]  /home/mogoh/src/github.com/lwfinger/rtw89/rtw89pci.o
  MODPOST /home/mogoh/src/github.com/lwfinger/rtw89/Module.symvers
  CC [M]  /home/mogoh/src/github.com/lwfinger/rtw89/rtw89core.mod.o
  LD [M]  /home/mogoh/src/github.com/lwfinger/rtw89/rtw89core.ko
  BTF [M] /home/mogoh/src/github.com/lwfinger/rtw89/rtw89core.ko
Skipping BTF generation for /home/mogoh/src/github.com/lwfinger/rtw89/rtw89core.ko due to unavailability of vmlinux
  CC [M]  /home/mogoh/src/github.com/lwfinger/rtw89/rtw89pci.mod.o
  LD [M]  /home/mogoh/src/github.com/lwfinger/rtw89/rtw89pci.ko
  BTF [M] /home/mogoh/src/github.com/lwfinger/rtw89/rtw89pci.ko
Skipping BTF generation for /home/mogoh/src/github.com/lwfinger/rtw89/rtw89pci.ko due to unavailability of vmlinux
make[1]: Verzeichnis „/usr/src/kernels/5.12.11-300.fc34.x86_64“ wird verlassen
$ sudo make install
make -C /lib/modules/5.12.11-300.fc34.x86_64/build M=/home/mogoh/src/github.com/lwfinger/rtw89 modules
make[1]: Verzeichnis „/usr/src/kernels/5.12.11-300.fc34.x86_64“ wird betreten
make[1]: Verzeichnis „/usr/src/kernels/5.12.11-300.fc34.x86_64“ wird verlassen
cp *.bin /lib/firmware/rtw89/.
Install rtw89 SUCCESS
$ sudo modprobe rtw_8723de
modprobe: FATAL: Module rtw_8723de not found in directory /lib/modules/5.12.11-300.fc34.x86_64

This happens even after a reboot.
So some step is missing. :thinking:

hmm, maybe try:

lspci -v

if “kernel modules: rtw89_pci” and “kernel driver in use: rtw89_pci” the installation should have worked.

usually you don´t need to modprobe…
it can also take a few minutes before it shows in settings.

but it looks like make is skipping something because of vmlinux???
are you sure that you have installed all the packages?

Sure

$ lspci -v
[...]
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)
        Subsystem: Lenovo Device 5097
        Flags: bus master, fast devsel, latency 0, IRQ 49, IOMMU group 9
        I/O ports at 3000 [size=256]
        Memory at fd504000 (64-bit, non-prefetchable) [size=4K]
        Memory at fd500000 (64-bit, non-prefetchable) [size=16K]
        Capabilities: <access denied>
        Kernel driver in use: r8169
        Kernel modules: r8169

03:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device 8852
        Subsystem: Lenovo Device 4852
        Physical Slot: 0
        Flags: fast devsel, IRQ 255, IOMMU group 10
        I/O ports at 2000 [disabled] [size=256]
        Memory at fd400000 (64-bit, non-prefetchable) [disabled] [size=1M]
        Capabilities: <access denied>
        Kernel modules: rtw89pci
[...]

No kernel driver in use …

but it looks like make is skipping something because of vmlinux?

Yes, but I don’t know what.

are you sure that you have installed all the packages?

Yes, at least all you called. I even installed dpkg afterwards and tried again, to be sure. But no success so far.

ok,
it looks like the installation failed.
Since I used this repo they changed the code and removed some dependencies.
Maybe try the second latest commit: 6e82f69dc7c2f3b85aa0b7b6a37b76193cf1f6b4
from Jun 21, 2021.

hopefully that helps, otherwise you could open an Issue on Github.

That did not help either. Same missing “vmlinux”.

I will open a bug report.
Thanks again. :slight_smile:

I have created an Issue and will see if it helps: “unavailability of vmlinux” - missing dependency? · Issue #5 · lwfinger/rtw89 · GitHub

sorry, i am not an expert. :sweat_smile:
If it is a missing development tool, then maybe install all of them and not just a few with something like:

sudo dnf groupinstall “Development Tools” “Development Libraries”

greetings from germany.

1 Like

I will look into that, but I don’t want to “clutter” my fresh install too much, so I will read a bit in before.

No need to be sorry. You already (probably) set me on the right trackt. :smiley:

Do yourself a favor and get enough sleep, it is getting late here in germany. :sweat_smile:

1 Like

Sadly, nothing worked so far.
I have installed:

sudo dnf groupinstall “Development Tools” “Development Libraries”

But I get the same problem. :thinking:

So I got it working.
It is basically as @susi stated. Thanks again!
Here is how:

Install dependencies

sudo dnf install g++ gcc make automake gcc-c++ kernel-devel git

(I guess that are all)

Clone Git repository

git clone https://github.com/lwfinger/rtw89.git
cd rtw89

Compile and Install

make
sudo make install

Modprobe

The module should now be loaded automatically on boot, but you can test it manually with:

sudo modprobe rtw89pci

Note that this differs from the readme which, I guess, was just copy&pasted. (see bugreport)

If you get something like “Key was rejected by service”, then you have to deal with secure boot. (see below)

Disable Secure Boot or Sign Module

If you have secure boot enabled, then you have to sign the kernel module. The documentation explains how.

I just disabled secure boot in the BIOS settings. Maybe I sign the module later and readable secure boot. Or I wait until it is officially integrated and signed in Fedora and enable secure boot then again.

3 Likes

Sorry for cutting in, I have a problem with RTL8821CE in dual booting of Fedora 34 and Windows 10 Home.
Wi-Fi signal on Windows was strong and stable.
WiFiSignalOnWindows10
On the other hand, Wi-Fi signal on Fedora 34 was unstable, it fluctuated all the time.
WiFiSignalOnFedora34
Can reinstalling firmware solve such problem ?

I don’t know, but I guess that is possible.
But also: do you have only one access point?

I use tp-link TL-MR100 in my house. We have 2 notebooks, HP 14-ck0023TU dual booting Windows 10 Home and Fedora 34 Workstation Official Edition. Its Wi-Fi adapter is RTL8821CE. The Wi-Fi signal on notebook number 1 is strong in either Windows 10 Home or Fedora 34. On the other hand, the Wi-Fi signal on notebook number 2 is strong and stable in Windows 10 Home, but in Fedora 34 it is mostly weak and unstable and also fluctuated.

From your post, do I have to uninstall something first and do I have to replace rtw89 with rtw88 before the installation ?

This problem on notebook no. 2 came after I did some Windows Updates previously.

Sorry for asking in this question instead of starting a new topic and thank you so much in advance.

I can just tell from my experience: I did not uninstall any previous installed kernel module and I don’t think it would be necessary.

But after using wifi for two days, I can say that the signal-intensety is flickering.

Screenshot_20210626_134714
Screenshot_20210626_134826

But it is relative stable, so I hope it is just the indicator and not really weak.

I don’t know how it would be on windows, because I completly deleted it without testing.

The wifi is dependent upon several things for strength.
The band is first, and the 2.4 Ghz band is stronger and has a longer range than the 5 Ghz band.
Distance from the AP is a factor. The closer you are the stronger the signal.
Obstructions are a factor. Walls, furniture, appliances, etc. all can interfere with signal strength.
Other wifi APs in the area can interfere. Neighbors using the same wifi channel can be a significant interference and you might need to switch the machine to a different channel than the default to avoid interference. My neighbors only show me a 1 or 2 bar signal, but others have had a full strength signal from the neighbors on the same channel and had to switch channels to get a reliable connection.

All these are things to consider when trying to troubleshoot a bad wifi connection.

1 Like

Thank you that worked for me.

Upgraded:
elfutils-0.185-2.fc33.x86_64 elfutils-libelf-0.185-2.fc33.x86_64 elfutils-libs-0.185-2.fc33.x86_64
Installed:
autoconf-2.69-34.fc33.noarch automake-1.16.2-2.fc33.noarch bison-3.6.4-3.fc33.x86_64 elfutils-libelf-devel-0.185-2.fc33.x86_64
flex-2.6.4-5.fc33.x86_64 gcc-c+±10.3.1-1.fc33.x86_64 kernel-devel-5.12.12-200.fc33.x86_64 libstdc+±devel-10.3.1-1.fc33.x86_64
m4-1.4.18-15.fc33.x86_64 openssl-devel-1:1.1.1k-1.fc33.x86_64 zlib-devel-1.2.11-23.fc33.x86_64

Complete!

Even that I still have a missing repo etc/yum/

Warning: failed loading '/etc/yum.repos.d/fedora-33-unstable.repo', skipping.
Last metadata expiration check: 0:41:25 ago on Mon 28 Jun 2021 10:22:22 PM CEST.

There has been considerable discussion in the past on this forum about using fedora-33-unstable.repo

I suggest you search and read that discussion (more than one thread) about the problems and solution.

What about for Fedora Silverblue? Does anyone know?

Why don’t you provide a link to avoid confusion? When searching, all I see is a thread related to a VPN which installs a repo by that name

1 Like