Wifi not recognized with 9.1 on Ideapad

I just installed Rocky Linux 9.1 on my Lenovo ideapad with secureboot enabled and my networking hardware was not recognized. There’s nothing in dmesg but lspci -nnk indicates that this is a Realtek Broadcom 5762 device. How can I get online?

Your lspci command should show the device ID as xxxx:yyyy. Can you share that?

Like this?

$ lspci | grep Realtek

02:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device b852

Not quite. You need to use a flag -nn as you did earlier.

lspci -nn

1 Like

I think the “Broadcom 5762” tag might be a red herring i.e., the video card. I’m not familiar with this command. Anyway here’s my grep for “Net” plus some surrounding context.

$ lspci -nnk | grep -A1 Net 
02:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. Device [10ec:b852]
	Subsystem: Lenovo Device [17aa:4853]

Additionally, there is a sticker on the back that says “Contains RTL8852BE module” with some FCC verbiage following. So that is probably the wireless chipset.

I found these github repos, but I suspect they are somewhat inimical to my purposes.

This one is retired + read-only, and I need to disable SecureBoot. (Can I re-enable SecureBoot after installing it?)

This one requires doing special kernel stuff:

This branch was created from the version merged into the wireless-drivers-next repo, which is in the 5.16 kernel. IF YOU USE DRIVERS FROM THIS REPO FOR KERNELS 5.16+, YOU MUST BLACKLIST THE KERNEL VERSIONS!!! FAILING TO DO THIS WILL RESULT IN ALL MANNER OF STRANGE ERRORS.

This code will build on any kernel 5.7 and newer as long as the distro has not modified any of the kernel APIs. IF YOU RUN UBUNTU, YOU CAN BE ASSURED THAT THE APIs HAVE CHANGED. NO, I WILL NOT MODIFY THE SOURCE FOR YOU. YOU ARE ON YOUR OWN!!!

I’m not averse to creating a custom kernel once but I intend this to be a stable installation for a non-techie family member. What happens when I’m not around and it automatically updates? How do I blacklist a kernel version as opposed to a module?

Regarding PCI 10ec:b852:17aa:4853 (your device), according to this page:

it works in Fedora 36 etc. Therefore, I suggest you test-install ELRepo’s kernel-ml. There is a good chance the device is recognized.

Thanks for that useful website! It is a bit confusing because they will list the same version and distribution but with different results. I presume that means that support changes over time.

I’m also new to the ELRepo website. If I understand correctly, the methodology is to install the relevant kernel via that repo, but then in the future remove the configuration under /etc/yum.... once the 9.x version of Rocky Linux “catches up”?

My plan was to configure DNF to update from the Rocky/RHEL repos automatically.

I have successfully installed kernel-ml package from ELRepo but I obviously missed a step because when I reboot, it says I need to load the new kernel first. The new kernel is the top of the boot menu now, but it doesn’t load.

Not sure how you installed kernel-ml but it’s basically a two step procedure:

# dnf install elrepo-release
# dnf --enablerepo=elrepo-kernel install kernel-ml

Re-running those commands indicate that they are both installed. At this point kernel-ml is 6.x. Running uname -msr indicates kernel version 5.x is actually being used. When I reboot now, I am not presented with a screen to select which kernel to use (as I recall from using Fedora thirtysomething this is always a choice with that distro). Instead, I am presented with the decryption window before regular boot.

I also did some mok configuration as outlined on the ELRepo page about SecureBoot so I don’t think that is the problem.

So I need to figure out how to use the ELRepo kernel I installed without bricking the system.

Running grubby --info=ALL shows that the 6.x kernel is at index 0, the 5.14 kernel is at index 1.

index=0
kernel="/boot/vmlinuz-6.2.10-1.el9.elrepo.x86_64"
args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rl_rocky-swap rd.luks.uuid=luks-784d62b9-b4e4-4853-80a2-07cb641d1b37 rd.lvm.lv=rl_rocky/root rd.lvm.lv=rl_rocky/swap rhgb quiet $tuned_params"
root="/dev/mapper/rl_rocky-root"
initrd="/boot/initramfs-6.2.10-1.el9.elrepo.x86_64.img $tuned_initrd"
title="Rocky Linux (6.2.10-1.el9.elrepo.x86_64) 9.1 (Blue Onyx)"
id="d6c9073287694609b67aba84e022cce6-6.2.10-1.el9.elrepo.x86_64"
index=1
kernel="/boot/vmlinuz-5.14.0-162.22.2.el9_1.x86_64"
args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rl_rocky-swap rd.luks.uuid=luks-784d62b9-b4e4-4853-80a2-07cb641d1b37 rd.lvm.lv=rl_rocky/root rd.lvm.lv=rl_rocky/swap rhgb quiet $tuned_params"
root="/dev/mapper/rl_rocky-root"
initrd="/boot/initramfs-5.14.0-162.22.2.el9_1.x86_64.img $tuned_initrd"
title="Rocky Linux (5.14.0-162.22.2.el9_1.x86_64) 9.1 (Blue Onyx)"
id="d6c9073287694609b67aba84e022cce6-5.14.0-162.22.2.el9_1.x86_64"
index=2
kernel="/boot/vmlinuz-5.14.0-162.6.1.el9_1.x86_64"
args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rl_rocky-swap rd.luks.uuid=luks-784d62b9-b4e4-4853-80a2-07cb641d1b37 rd.lvm.lv=rl_rocky/root rd.lvm.lv=rl_rocky/swap rhgb quiet $tuned_params"
root="/dev/mapper/rl_rocky-root"
initrd="/boot/initramfs-5.14.0-162.6.1.el9_1.x86_64.img $tuned_initrd"
title="Rocky Linux (5.14.0-162.6.1.el9_1.x86_64) 9.1 (Blue Onyx)"
id="d6c9073287694609b67aba84e022cce6-5.14.0-162.6.1.el9_1.x86_64"
index=3
kernel="/boot/vmlinuz-0-rescue-d6c9073287694609b67aba84e022cce6"
args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rl_rocky-swap rd.luks.uuid=luks-784d62b9-b4e4-4853-80a2-07cb641d1b37 rd.lvm.lv=rl_rocky/root rd.lvm.lv=rl_rocky/swap rhgb quiet"
root="/dev/mapper/rl_rocky-root"
initrd="/boot/initramfs-0-rescue-d6c9073287694609b67aba84e022cce6.img"
title="Rocky Linux (0-rescue-d6c9073287694609b67aba84e022cce6) 9.1 (Blue Onyx)"
id="d6c9073287694609b67aba84e022cce6-0-rescue"

I figured out how to set the default kernel with the grubby tool, and then I rebooted and got the familiar screen which selects which kernel to use. This time I noted the error when trying to use the kernel-ml kernel. There’s at least two errors. Here’s the output:

error: ../../grub-core/kern/efi/sb.c:182:bad shim signature.
error: ../../grub-core/loader/i386/efi/linux.c:259:you need to load the kernel first.

I should note that i386 is not the correct platform, this is 64 bit. And the “you need to load the kernel first” is after trying to load the kernel.

So looks like there is a misconfiguration with ELRepo either through their action or mine.

Here’s my elrepo config under /etc/yum.repos.d/

### Name: ELRepo.org Community Enterprise Linux Repository for el9
### URL: https://elrepo.org/

[elrepo]
name=ELRepo.org Community Enterprise Linux Repository - el9
baseurl=http://elrepo.org/linux/elrepo/el9/$basearch/
	http://mirrors.coreix.net/elrepo/elrepo/el9/$basearch/
	http://mirror.rackspace.com/elrepo/elrepo/el9/$basearch/
	http://linux-mirrors.fnal.gov/linux/elrepo/elrepo/el9/$basearch/
mirrorlist=http://mirrors.elrepo.org/mirrors-elrepo.el9
enabled=1
countme=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org

[elrepo-testing]
name=ELRepo.org Community Enterprise Linux Testing Repository - el9
baseurl=http://elrepo.org/linux/testing/el9/$basearch/
	http://mirrors.coreix.net/elrepo/testing/el9/$basearch/
	http://mirror.rackspace.com/elrepo/testing/el9/$basearch/
	http://linux-mirrors.fnal.gov/linux/elrepo/testing/el9/$basearch/
mirrorlist=http://mirrors.elrepo.org/mirrors-elrepo-testing.el9
enabled=0
countme=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org

[elrepo-kernel]
name=ELRepo.org Community Enterprise Linux Kernel Repository - el9
baseurl=http://elrepo.org/linux/kernel/el9/$basearch/
	http://mirrors.coreix.net/elrepo/kernel/el9/$basearch/
	http://mirror.rackspace.com/elrepo/kernel/el9/$basearch/
	http://linux-mirrors.fnal.gov/linux/elrepo/kernel/el9/$basearch/
mirrorlist=http://mirrors.elrepo.org/mirrors-elrepo-kernel.el9
enabled=0
countme=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org

[elrepo-extras]
name=ELRepo.org Community Enterprise Linux Extras Repository - el9
baseurl=http://elrepo.org/linux/extras/el9/$basearch/
	http://mirrors.coreix.net/elrepo/extras/el9/$basearch/
	http://mirror.rackspace.com/elrepo/extras/el9/$basearch/
	http://linux-mirrors.fnal.gov/linux/elrepo/extras/el9/$basearch/
mirrorlist=http://mirrors.elrepo.org/mirrors-elrepo-extras.el9
enabled=0
countme=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org

presumably basearch is messed up somewhere?

I should have noticed that you have secure boot enabled. Unfortunately kernel-ml is not SB-able. You need to disable it to install it.

Can I turn it back on once the 9.x branch catches up to my hardware?

Just thinking out loud here… obviously the virtue of Rocky Linux is the stability and testedness of the distro. Perhaps for my particular hardware, one of the distros that already has the requisite support is a better idea, strictly because the benefit of SecureBoot combined with the hardware support. Given that my goal for this particular machine is “set it and forget it” so to speak.

Support for 8852BE was added to the upstream (kernel.org) kernel quite recently (kernel-6.2). This has to be backported to the RHEL (hence Rocky) kernel. I doubt it will happen any time soon.

I’m installing Rocky Linux on an older machine in the mean time. Thanks.