Looking for help with Wireless networking on Ubuntu 25.04

I posted about this more than 30 days ago… I’m trying again because I didn’t get a resolution.

Ubuntu Version:
Ubuntu 25.04

bswilson@doctordre:~$ uname -a
Linux doctordre 6.14.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Sun Apr  6 15:05:05 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

bswilson@doctordre:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 25.04
Release:	25.04
Codename:	plucky

Desktop Environment (if applicable):
GNOME

Problem Description:
When I boot my computer, WiFi is not enabled. EVERY time I reboot, I have to run the following commands as root to enable Wireless networking:

# rfkill unblock wlan
# ip link set wlp8s0 up

Relevant System Information:
Now, a disclaimer… I built this computer myself. But I do know that the hardware is functional; it’s just that NetworkManager doesn’t seem to recognize my hardware!

$ sudo lshw -C network
  *-network                 
       description: Wireless interface
       product: RTL8852BE PCIe 802.11ax Wireless Network Controller
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: pci@0000:08:00.0
       logical name: wlp8s0
       version: 00
       serial: 60:ff:9e:09:e7:5c
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=rtw89_8852be driverversion=6.14.0-15-generic firmware=N/A ip=192.168.86.22 latency=0 link=yes multicast=yes wireless=IEEE 802.11
       resources: irq:68 ioport:e000(size=256) memory:fc600000-fc6fffff
$
$ nmcli device
DEVICE  TYPE      STATE      CONNECTION 
enp9s0  ethernet  unmanaged  --         
lo      loopback  unmanaged  --         
wlp8s0  wifi      unmanaged  --        
$
$ nmcli radio wifi
enabled
$
$ lspci |grep -i network
08:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8852BE PCIe 802.11ax Wireless Network Controller
$

Screenshots or Error Messages:
Here is what my networking environment looks like immediately after I reboot and log into my GNOME desktop:

bswilson@doctordre:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: enp9s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 60:cf:84:ce:10:4a brd ff:ff:ff:ff:ff:ff
    altname enx60cf84ce104a
3: wlp8s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 60:ff:9e:09:e7:5c brd ff:ff:ff:ff:ff:ff
    altname wlx60ff9e09e75c
    inet 192.168.86.22/24 metric 600 brd 192.168.86.255 scope global dynamic wlp8s0
       valid_lft 52477sec preferred_lft 52477sec
    inet6 fe80::62ff:9eff:fe09:e75c/64 scope link proto kernel_ll 
       valid_lft forever preferred_lft forever

…and here’s what Network Manager shows:

What I’ve Tried:
I have written a little script that runs the commands I need to enable my network adapter… Here’s the contents of the script:

bswilson@doctordre:~$ sudo cat /root/fix-network.sh
#! /bin/bash
rfkill unblock wlan
ip link set wlp8s0 up

I usually run that manually, because when I try to add it to root’s CRON using the @reboot parameter, it still doesn’t work (probably because it is trying to run too soon in the boot process). I just run it manually.

Does ANYONE have any idea here? Here are the details about my network adapter and driver and such:

Realtek RTL8852BE PCIe 802.11ax Wireless Network Controller
Realtek RTL8852BE 802.11ax Wireless LAN Driver
Driver: rtw89_8852be

Thanks!


I am not sure if this helps at all or not but hopefully it does. If your script works and brings up the network interface you can always create a systemd service file and put in the [Unit] part After=network.target network-online.target
This should wait to execute your script until network manager comes online. You can find more about the systemd service files and the after variable here Ubuntu Manpage: systemd.service - Service unit configuration

2 Likes

Thank you! I will give this a shot and report back.

Great news! Thanks to @rawrmonster, I have been able to ensure that my wireless network adapter starts up and binds to an IP address at boot time.

Following these instructions (https://www.slingacademy.com/article/ubuntu-how-to-create-a-custom-systemd-service/#viewing-logs), I was able to configure a systemd service that looks like this:

bswilson@doctordre:/etc/systemd/system$ cat fix-network.service 
[Unit]
Description=Bring up WiFi after boot
After=network.target network-online.target

[Service]
Type=simple
ExecStart=/usr/local/bin/fix-network.sh

[Install]
WantedBy=multi-user.target

The 3rd line of this file, beginning with “After” is the part @rawrmonster advised me to try. And it works great!

The only thing that is still not working properly, is that NetworkManager still does not recognize my network adapter. But perhaps future Ubuntu updates will be able to do so.

:slight_smile:

3 Likes

I am really glad that worked for you. I wish I really knew how to solve the real issue instead of just how to run a script during a specific part of the boot process.

You should be able to do this without a systemd unit by simply telling the kernel to always make rfkill come up in unblocked state by adding rfkill.default_state=1 to your kernel cmdline in /etc/default/grub to GRUB_CMDLINE_LINUX_DEFAULT= and running update-grub

1 Like

Thank you, @ogra - I didn’t know that was an option! I will play around with both “solutions”.

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.