No available wifi networks shortly after booting up (part 2)

This is a continuation of an unsolved problem here. Long story short, when I boot up my machine, it connects to the wifi for a few seconds then it fails and can no longer see any wifi networks. I have to USB hotspot through my phone to use this laptop.

Running ip_link gives

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: enp3s0f4u2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether aa:70:94:93:e2:fb brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN mode DORMANT group default qlen 1000
    link/ether f2:5d:7d:58:1c:41 brd ff:ff:ff:ff:ff:ff permaddr e0:0a:f6:84:86:e5

and lspci -v | grep Network -A 6 gives

01:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device b852
	Subsystem: Lenovo Device 4853
	!!! Unknown header type 7f
	I/O ports at 2000 [size=256]
	Memory at fd600000 (64-bit, non-prefetchable) [size=1M]
	Kernel driver in use: rtw89_8852be
	Kernel modules: rtw89_8852be, rtw_8852be

I noticed this Unknown header type 7f and that doesn’t seem good at all.

But running more commands from that thread:
rfkill list:

0: hci0: Bluetooth
	Soft blocked: no
	Hard blocked: no
1: ideapad_wlan: Wireless LAN
	Soft blocked: no
	Hard blocked: no
2: ideapad_bluetooth: Bluetooth
	Soft blocked: no
	Hard blocked: no
3: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no

inxi -Na

Network:
  Device-1: Realtek vendor: Lenovo driver: rtw89_8852be v: kernel
    modules: rtw_8852be pcie: speed: Unknown lanes: 63 link-max: gen: 6
    speed: 64 GT/s port: 2000 bus-ID: 01:00.0 chip-ID: 10ec:b852
    class-ID: 0280

sudo modprobe 8852be

modprobe: FATAL: Module 8852be not found in directory /lib/modules/6.5.3-arch1-1

inxi -Faz | eos-sendlog – http://ix.io/4GoJ


sudo depmod -a | grep 8852be

kernel/drivers/net/wireless/realtek/rtw89/rtw89_8852be.ko.zst: updates/dkms/rtw_8852b.ko.zst updates/dkms/rtw89pci.ko.zst updates/dkms/rtw89core.ko.zst kernel/net/mac80211/mac80211.ko.zst kernel/lib/crypto/libarc4.ko.zst kernel/net/wireless/cfg80211.ko.zst kernel/net/rfkill/rfkill.ko.zst
updates/dkms/rtw_8852be.ko.zst: updates/dkms/rtw_8852b.ko.zst updates/dkms/rtw89pci.ko.zst updates/dkms/rtw89core.ko.zst kernel/net/mac80211/mac80211.ko.zst kernel/lib/crypto/libarc4.ko.zst kernel/net/wireless/cfg80211.ko.zst kernel/net/rfkill/rfkill.ko.zst
alias pci:v000010ECd0000B85Bsv*sd*bc*sc*i* rtw89_8852be
alias pci:v000010ECd0000B852sv*sd*bc*sc*i* rtw89_8852be
alias pci:v000010ECd0000B85Bsv*sd*bc*sc*i* rtw_8852be
alias pci:v000010ECd0000B852sv*sd*bc*sc*i* rtw_8852be

I have tried and currently have installed https://github.com/lwfinger/rtw89 but that hasn’t solved it.

When I originally had this problem (when I got my laptop), I solved it with the above github repo. But then several months ago, it just stopped working and hasn’t since and I am losing my mind with this :slight_smile:

What’s the output of

lsmod | grep 8852

I’m suspecting you should blacklist the kernel driver.

The output of lsmod | grep 8852 is

rtw89_8852be           12288  0
rtw_8852b             360448  1 rtw89_8852be
rtw89pci               86016  1 rtw89_8852be
rtw89core             651264  2 rtw89pci,rtw_8852b
cfg80211             1335296  3 rtw89core,mac80211,rtw_8852b

Thanks!
Have you blacklisted kernel’s wifi driver? Not sure if the output tells that since I don’t have this wifi chip.

I remember trying that before and there wasn’t any noticeable result but I don’t know if I did it completely correctly. I know that would be in /etc/modprobe.d/blacklist.conf, right? What would I be blacklisting?

@manuel
If it’s not working with the kernel module should the OP try the following?

https://aur.archlinux.org/packages/rtw89-dkms-git

1 Like

Not sure about the name, but you can find it out whit this:

  • uninstall the AUR driver (rtw89-dkms-git) if it is installed
  • reboot
  • give command:
lspci -k | grep -A4 Network

This should show kernel’s wifi module on the last line. That is the one to blacklist in the file you mentioned. See the Arch wiki about blacklisting if you are not sure about the syntax.

Then reinstall the AUR driver and reboot.

The AUR driver should work after blacklisting kernel’s own driver (at least the driver’s source code page says so).

I uninstalled the driver and rebooted and lspci -k | grep -A4 Network gave

01:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device b852
	Subsystem: Lenovo Device 4853
	Kernel driver in use: rtw89_8852be
	Kernel modules: rtw89_8852be, rtw_8852be

so I blacklisted both rtw89_8852be and rtw_8852be. Then when I tried to reinstall rtw89-dkms-git, I got multiple

Module version  for rtw89*.ko.zst
exactly matches what is already found in kernel 6.5.3-arch1-1.
DKMS will not replace this module.
You may override by specifying --force.

where * was pci, core, a, etc and the error:

Error! Installation aborted.
==> WARNING: `dkms install --no-depmod rtw89/r557.1283764 -k 6.5.3-arch1-1' exited 6

Strange. Maybe the AUR driver is the same as the kernel driver after all? If so, then you probably need to remove the blacklisting.
Sorry that I can’t be much more helpful as I don’t have experience about that chip.

But maybe @ricklinux (or someone else?) has ideas about useful kernel parameters?

Has it been tried blacklisting rtw_8852be and using the kernel module not the dkms version installed? I would think the kernel module is the same rtw89_8852be? :thinking:

Edit: Or Maybe remove the module rtw_8852be with modprobe and then use modprobe to load rtw89_8852be without dkms version installed.

I haven’t tried this. How would I go about doing this?

If you’ve uninstalled the dkms version first see if it works or not after rebooting. If not then try using modprobe to remove rtw_8852be

sudo modprobe -r rtw_8852be

sudo modprobe rtw89_8852be

See if that makes it work or not.

Or the other option is just blacklisting rtw_8852be here:

/etc/modprobe.d/blacklist.conf

add

blacklist rtw_8852be

Save the file and reboot.

Just so I understand, blacklisting prevents a module from being loaded by the machine and modprobe -r allows the user to unload a module (and modprobe by itself loads it)?

I was playing around with the combo of loading and unloading rtw_8852be and rtw89_8852be and now lspci -k | -grep -A4 Network returns nothing and I can no longer load rtw89_8852be. I literally did nothing except play with sudo modprobe (-r) and /etc/modprobe.d/blacklist.conf.

(The AUR package, rtw89-dkms-git is not installed but the github repo is.)

How and from where exactly did you install the driver?

I installed it from the github repo here. I just followed the instructions in the readme.

(I am now distracted by the fact that my bluetooth has completely broken too, guess when it rains, it pours…)

There seems to be a BT driver available in the AUR too: rtw89bt-dkms-git.

I take it that you didn’t use AUR, but downloaded the driver from github directly, right?

All in all, I’d recommend to install from the AUR instead of downloading the driver manually. That way you’ll easily get updates too.

So, maybe you could start from scratch, uninstall/remove all stuff related to the wifi driver (downloaded blobs, blacklists, etc.) and start again, one step at a time. Write down the steps too, so you (and us) can verify each step.

Maybe this way things it starts working. It is all in the details! :wink:

So I uninstalled the drivers from the repo and I don’t have the AUR package installed. If I run find /lib/modules/6.5.3-arch1-1/ -type f -name '*.ko', I get

/lib/modules/6.5.3-arch1-1/kernel/drivers/net/wireless/realtek/rtw89/rtw_8851b.ko
/lib/modules/6.5.3-arch1-1/kernel/drivers/net/wireless/realtek/rtw89/rtw_8851be.ko

which are 8851, not 8552…

And now if I installed the AUR package (this time without those errors), the 8852 don’t show up – I can’t activate them with sudo modprobe and they don’t show up with the above find command.

(my blacklist file is also empty of anything related to this)

Did you reboot?
Does command

lsmod | grep 885[1-2]

show anything useful?

It should run on the built in kernel module according to the wiki?

Edit: You’ve already shown it here.

Ok so lsmod | grep 8852 is back to showing what it originally did.

So does this mean I shouldn’t need to have the AUR package installed?