Wireless Adapter (WiFi) not working and not showing up in settings

Latest response

My System:
E480 Lenovo Thinkpad
uname -a Linux dagobah 4.18.0-80.4.2.el8_0.x86_64

Just installed RedHat 8. Noticed that I'm unable to connect to wifi. Going into "Settings->Wi-Fi" shows the message "No Wi-Fi Adapter Found...make sure you have a Wi-Fi adapter plugged and turned on". In the status bar up at the top there is also no wifi icon indicator either. My friend and I both have the same laptops (E480 Thinkpads) and he happened to see the same thing when he installed Centos7. So it appears to not be specific to my setup. Prior to installing RedHat I had Ubuntu installed and the wifi was working fine. So I'm stuck on why it's not working with RedHat and need some help. I included some more details below.

The command ip link displays the following...

1: lo: <LOOPBACK, UP, LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp3s0: <BROADCAST, MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether e8:6a:64:b1:83:b1 brd ff:ff:ff:ff:ff:ff
3: virbr0: <NO-CARRIER, BROADCAST, MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000 link/ether 52:54:00:82:13:75 brd ff:ff:ff:ff:ff:ff
4: virbr0-nic: <BROADCAST, MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN mode DEFAULT group default qlen 1000 link/ether 52:54:00:82:13:75 brd ff:ff:ff:ff:ff:ff

Since the above did not show a "wl..." interface I wondered if my wireless device would even show up by issuing a lscpi command. I can confirm that it "IS" there as the output from issuing that command is as follows...

03:00:0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)
05:00:0 Network controller: Realtek Semiconductor Co., Ltd. RTL8822BE 802.11a/b/g/n/ac Wifi adapter

Issuing lscpi -v to get a bit more information on the Wifi adapter device shows the following...

05:00:0 Network Controller: Realtek Semiconductor Co., Ltd. RTL8822BE 802.11a/b/g/n/ac Wifi Adapter
Subsystem: Lenovo Device b024
Flags: fast devsel, IRQ 255
I/O ports at b000 [disabled] [size=256]
Memory at f2100000 (64bit, non-prefetchable) [disabled] [size=64k]
Capabilities: <access denied>

I'm also attaching the complete output from dmesg as well.

I've also gone in and took a look at /lib/firmware/rtlwifi to see if the firmware for my wifi adapter was there and it is. This was recommended from a similar discussion. I can see the rtl8822befw.bin file there. However, I'm not too sure how to proceed knowing that it's there. A colleague referred me to a ubuntu post suggesting sudo rmmod ideapad_laptop. However, running that command leads to...

rmmod: ERROR: Module ideapad_laptop is not currently loaded

So i'm stuck and could use some further advice and expertise.

[EDIT: Per request]
Here is the output of lspci -nn | grep 8822

05:00:0 Network Controller [0280]: Realtek Semiconductor Co., Ltd. RTL8822BE 802.11a/b/g/n/ac WiFi adapter [10ec:b822]

Attachments

Responses

Please could you provide the output from:

lspci -nn | grep 8822

Thanks

Sure thing, please see [EDIT] section in post.

Hi Shane,

Unfortunately the RHEL8 kernel does not support your device. There is a rtl8822be driver, but it's in staging (meaning it's experimental) and Red Hat do not build / support these drivers.

You do however have some options so all is not lost. I will try to build you a driver based on the driver code in staging and make it available via the elrepo repository (http://elrepo.org). I will post back here later if I have something for you to test.

Phil

This is very kind of you. Thanks and I'll stay tuned.

I have built you a driver in the form of a kmod package and uploaded it to elrepo.org. The driver is taken from the 4.18 kernel staging area. The driver is:

kmod-r8822be-0.0-1.el8_0.elrepo.x86_64.rpm

and should be available from elrepo.org shortly once mirror sites have synchronised.

https://elrepo.org/linux/elrepo/el8/x86_64/RPMS/kmod-r8822be-0.0-1.el8_0.elrepo.x86_64.rpm

If you install elrepo as described on elrepo.org website, you can install the package with:

dnf install kmod-r8822be

and will automatically receive updates to the driver through dnf/yum as they become available.

You should be able to load the driver with 'modprobe r8822be' and see if it is loaded with 'lsmod | grep r8822be'

The output from dmesg (or /var/log/messages) should show the driver is loaded and should also show loading of any required firmwares. At this point you should be able to configure and use your wireless device.

Please would you report back how it works for you. Output from all of the above would be useful.

Phil

Hi Phil ~ I'll be sure to get back with you. Thanks ~S

Long story short the kmod is working great! However, I was unable to install via the method you mentioned. I installed/enabled elrepo as it suggests from their site which is...

sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
sudo yum install https://www.elrepo.org/elrepo-release-8.0-2.el8.elrepo.noarch.rpm
sudo yum install kmod-r8822be

The command sudo yum install kmod-r8822be just resulted in "not found". I then went about running a sudo yum update system wide and after several packages were installed I then tried running the above commands again. This somehow resulted in a db5 cannot read database error. Since my database was corrupted I wasn't sure how to fix this issue so I reimaged my computer all over again.

This time around I went directly to the link you provided and downloaded the rpm before even running a sudo yum update just so I could make sure it worked. After downloaded it I ran the command sudo rpm -i kmod-r8822be.... This installed it and then I ran sudo modprober8822be which loaded without any issues. I verified as you suggested via the following command...

lsmod | grep r8822be

which provided the following output...

r8822be          778240     0
mac80211        839680     1     r8822be
cfg80211          745472      2    mac80211, r8822be

Since then I have restarted my system to ensure the wifi still works properly and it is. Since you added to the elrepo for Centos8/RHEL8 how can we port it over to the elrepo for Centos7/RHEL7? I hate to even ask since you've went above and beyond already but wanted to kindly ask.

Hi Shane,

Great news the driver works as expected for you on RHEL8.

RHEL7 uses a Wifi stack from kernel-4.14 so I should be able to port r8822be from there for RHEL7. It's late here now so I'll see if I can get that done tomorrow for you. Would you be able to test a kmod-r8822be driver package on el7?

Happy to help :-)

Sure thing, be happy to. I assume that my subscription can be used with older RHEL's? It mentions something like that here as a FAQ halfway down the list. If that's the case then no problem I'll test it for you tomorrow once it's been ported. I can also test on CentOS7 if you wish. Thanks~S

Hi Shane,

Backporting the code to the EL 7 kernel (3.10.x) may or may not work. One immediate solution would be to use ELRepo's kernel-ml. If you are running CentOS, kernel-4.14 and kernel-4.19 are available. See this CentOS bug entry for details.

[Update] Looks like it is possible to backport the driver for EL7. It will be done tomorrow.

Hey thanks Akemi! I'll look for it tomorrow. Really appreciate the help guys.

Hi Shane,

I have backported the driver for el7 and it will be available from the elrepo repository shortly (currently syncing to mirror sites):

https://elrepo.org/linux/elrepo/el7/x86_64/RPMS/kmod-r8822be-0.0-1.el7_6.elrepo.x86_64.rpm

As CentOS7 is compatible with RHEL7 the driver should work with either, so you can test with either. Again, I'd appreciate some feedback when you are able.

Please note that Wifi drivers often break and need rebuilding against new point releases, so we may need to rebuild the driver for el7.7 and el8.1 once they are released. If the driver stops working after an update, please feel free to file a bug request at elrepo.org/bugs and either Akemi or I will fix it.

Regards,

Phil

Hey Philip ~

I'm a bit confused to which kernel I should be running/testing against for this kmod. Forgive me for this novice of a question but with CentOS7/RHEL7 I can test with "either" the latest kernel-ml or kernel-lt correct?

I'm confused with what branches as well as with what versions I should be testing against. The same question applies when testing on RHEL8. If you wouldn't mind could you clarify here a bit

Thanks~S

Hi Shane,

I have also released an updated kmod-r8822be-0.0-2.el8_0.elrepo.x86_64.rpm package for el8 which fixes 2 security issues (2 NULL pointer dereferences) with patches backported from a later kernel.

If you have elrepo configured, you can update with:

yum update kmod-r8822be

Regards,

Phil

Philip & Akemi ~

I can confirm that kmod-r8822be-0.0-1.el7_6.elrepo.x86_64.rpm is working with RHEL76 with the 3.10 kernel.

<sudo yum install kmod-r8822be>
<sudo modprobe r8822be>
<lsmod | grep r8822be>
 r8822be               705244  0                                                  
 mac80211              718956  1 r8822be                                          
 cfg80211              632335  2 mac80211,r8822be

<sudo reboot>
<dmesg | grep r8822be>
 [    6.523456] r8822be: loading out-of-tree module taints kernel.                
 [    6.530087] r8822be: module verification failed: signature and/or required key missing - tainting kernel
 [    6.537591] r8822be 0000:05:00.0: enabling device (0000 -> 0003)              
 [    6.573426] r8822be: Using firmware rtlwifi/rtl8822befw.bin                   
 [    6.624122] r8822be: rtlwifi: wireless switch is on                           
 [    6.624240] r8822be 0000:05:00.0: irq 143 for MSI/MSI-X

However, when updating to the latest long term kernel-lt-4.4 with rhel76 it does not work. Would you be able to provide the steps you used to build the kmod if I want to use the latest long term kernel for el7_6 or is there a better solution here for running later kernels with this driver?

[EDIT UPDATE]

FYI, I went to this guys github page and was able to build the driver and load the module rtl8822be with rhel76 running the kernel-lt-4.4. His readme instructions pretty much explained everything that was needed. I had to switch to his extended branch though before building and loading the module. After loading it I received the following information...

<uname -a>
Linux rhel76 4.4.186-1.el7.elrepo.x86_64 #1 SMP Sun Jul 21 04:06:52 EDT 2019 x86_64 x86_64 x86_64 GNU/Linux

<lsmod | grep rtl8822be>
rtl8822be              81920  0 
halmac                143360  1 rtl8822be
phydm_mod             860160  1 rtl8822be
btcoexist             434176  1 rtl8822be
rtl_pci                32768  1 rtl8822be
rtlwifi               167936  5 phydm_mod,btcoexist,rtl_pci,halmac,rtl8822be

<reboot>
<dmesg | grep rtl8822be>
[  191.313972] rtl8822be 0000:05:00.0: enabling device (0000 -> 0003)
[  191.346129] rtl8822be: Using firmware rtlwifi/rtl8822befw.bin
[  191.353828] rtl8822be 0000:05:00.0 wlp5s0: renamed from wlan0

I guess this is a temporary solution for those wanting to run kernel-lt-4.4 with rhel76.

Hi Shane,

Great that the driver is working for el7 with the stock distro kernel.

Unfortunately elrepo kmod packages are not compatible with non-distro kernels, including our own kernel-ml and kernel-lt packages.

One of the advantages of using a kmod package with the distro kernel is the driver should continue to seamlessly "just work" across kernel updates whereas building the module yourself for other kernels (e.g, kernel-lt) will require the module to be rebuilt for each and every kernel update.

Regards,

Phil

Hi philip, facing the same issue but the adapter is realtek RTL8723DE on my hp laptop running rhel 7.7 . Kindly help.

Hi Paul,

In order to help, we would first need to know the device ID of the device. Please post the output from 'lspci -nn' showing the output for your Realtek adapter.

Thanks,

Phil

Hi Philip, Thanks for your prompt reply. The output for lspci -nn is:- 00:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers [8086:5904] (rev 02) 00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 620 [8086:5916] (rev 02) 00:04.0 Signal processing controller [1180]: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem [8086:1903] (rev 02) 00:08.0 System peripheral [0880]: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th Gen Core Processor Gaussian Mixture Model [8086:1911] 00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller [8086:9d2f] (rev 21) 00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Thermal subsystem [8086:9d31] (rev 21) 00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-LP CSME HECI #1 [8086:9d3a] (rev 21) 00:17.0 RAID bus controller [0104]: Intel Corporation 82801 Mobile SATA Controller [RAID mode] [8086:282a] (rev 21) 00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 [8086:9d14] (rev f1) 00:1c.5 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port #6 [8086:9d15] (rev f1) 00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point LPC Controller/eSPI Controller [8086:9d4e] (rev 21) 00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-LP PMC [8086:9d21] (rev 21) 00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-LP HD Audio [8086:9d71] (rev 21) 00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-LP SMBus [8086:9d23] (rev 21) 01:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15) 02:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. RTL8723DE 802.11b/g/n PCIe Adapter [10ec:d723] Hope this will give a clear picture

According to the device ID [10ec:d723], I see that your device needs the rtl8723de driver. A request to provide this driver was filed at ELRepo's bug tracker #915. Short answer is the following: "The source code available for RTL8723DE does not build on EL7. There is a slight chance we can offer the driver for EL 8.0 (kernel 4.18). However there is no guarantee that the code still builds when the OS is updated to EL8.1."

The "best" (or plausible) solution is to buy an inexpensive wiki adapter that is known to work with RHEL 7.

Hi, thanks for the reply. already bought a wifi adapter and its working fine. But many will be facing issue with this adapter and mine is a brand new one. In windows there is no issue at all, so any other solutions will be appreciated. thanks in advance

Please try this link may be work for you.. https://access.redhat.com/discussions/4058171