Ralink RT2790 Wireless, Wifi "Unavailable", Ubuntu 24.04.4

Ubuntu Version: 24.04.4 LTS

Desktop Environment: GNOME

Problem Description:
Wifi is marked “Unavailable”, available networks are visible but trying to connect to them yields no results. This has been the case ever since I switched to Ubuntu months ago, I eventually gave up because Ethernet worked without issue. However, now I’m trying out self hosting and this makes things a lot trickier when the machine you want the server on is unable to connect to the local network :melting_face:

Screenshots or Error Messages:

Results from ./wireless-info: https://dpaste.com/2C5JUYMLH

What I’ve Tried:

  • Installing the correct drivers (could not find)

I searched for compatible drivers and found nothing for the specific Wifi adapter. I was unsuccessful to find the correct model, it may be a case of it just not existing or being compatible.

  • Searching for any similar issue (no close results)

Have you tried the “Additional Drivers” tab on the “Software & Updates” app? There might be some firmware missing.

That results in “Server not found”.

What do you mean by that? Isn’t it connected to the LAN using Ethernet?

The package containing the firmware your need (the driver is already in the linux kernel) can be found on the Debian repo. It is called firmware-misc-nonfree (and/or maybe firmware-mediatek).

I’m not 100% sure that it contains the right firmware tho :sweat_smile: . Some Debian article lists this package as the right one for the RT2790 but I cannot find the right file by looking directly inside the package. You should try and tell us if it solves it.

sudo apt install firmware-ralink
sudo modprobe rt2800pci
sudo reboot

Either you load the module with modprobe or you reboot and expect it to be loaded automatically. Why do both?

I downloaded and extracted the package, then I ran into this error while trying to install it:

sudo apt install firmware-misc-nonfree
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package firmware-misc-nonfree is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'firmware-misc-nonfree' has no installation candidate

I tried on a VM running 24.04 LTS and it installed right away. Which file did you download?

The file is firmware-misc-nonfree_20260410-1_all.deb:

SHA256SUM : ba42482d681109447736eb3b018058c548992121ca91456cb989a80a0fd8af83

One shouldn’t install packages from Debian, unless as a last resort. It looks as if @pavlos has the right idea. And I really think you should check the “Additional Drivers” tool, because it’s supposed to do all that stuff for you. Only if that doesn’t show any available driver or firmware should one resort to lower level tools.

E: Package 'firmware-misc-nonfree' has no installation candidate

I strongly advise against this, but you need to direct apt to the actual .deb file, otherwise it will try to find a package by that name in the official repositories.

If you want a command line version of “Additional Drivers”:

sudo ubuntu-drivers install

Yeah, the idea is to download the firmware. The issue is that the package firmware-ralink doesn’t exist for Ubuntu 24.04.

Since the WiFi card is legacy, I doubt that downloading the firmware elsewhere than the Ubuntu repo will cause any issue. The associated driver is integrated to the kernel for years.

Oh, indeed it doesn’t, but I think it must be in linux-firmware* somewhere, because the new structure of firmware packages is only to not have one whopping linux-firmware package everybody downloads even if they only need a tiny fraction of it.

A cursory apt-file search rt2800 | cut -d: -f1 | uniq turns up lots of linux-modules-extra-* packages. That’s precisely why ubuntu-drivers exists; to find the right package to install for the given hardware.

I doubt the firmware is actually missing. I am thinking OP didn’t check the box to do that during the installation process, so might still be missing that step.

P.S.: firmware-ralink doesn’t even exist in 26.04. Where did you get that idea, @pavlos?

OP can easily check that.

@just-some-fern check inside /lib/firmware for rt2860.bin, from what I read, it should be the one containing the firmware for the RT2790 (if it’s here).

I searched the content of linux-firmware and it appears to contain the rt2860.bin.

@just-some-fern you should try installing it.

$ apt-file search rt2860 | cut -d: -f1 | uniq
linux-firmware

Good catch @peterwhite23

That’s an old virtual package from the debian repo.

1 Like

But the more I’m thinking of this, the more I doubt it’s a driver/firmware issue; linux-firmware is guaranteed to be installed because it’s a dependeny of linux-image-generic. Maybe it’s a radio issue:

rfkill

and

nmcli

Please! :wink:

If the wifi card is blocked by rfkill, is it still possible that it scans the available networks?

Because at the beginning of the thread, OP said he can see the available networks in the GUI but not connect to them.

I’m not sure what are the possibilities with rfkill

I’m not quite sure, but I was reminded lately by someone on this forum that there might also be hardware kill switches.

$ rfkill
ID TYPE DEVICE    SOFT      HARD
 0 wlan phy0   blocked unblocked

My WiFi is soft-blocked by a Fn combo. There is a HARD indicator, but I’m not so sure if it actually can be a relied upon to show if the antenna has power; looks like an opportunity to cut corners, which manufacturers all too often do.

1 Like

I checked /lib/firmware and indeed found rt2860.bin.zst

Results from rfkill:

rfkill
ID TYPE DEVICE SOFT HARD
0 wlan phy0 unblocked unblocked

Results from nmcli:

nmcli
eno1: connected to Profile 1
        "Intel I219-V"
        ethernet (e1000e), 4A:DB:73:FB:50:1A, hw, mtu 1500
        ip4 default
        inet4 192.168.1.95/24
        route4 192.168.1.0/24 metric 100
        route4 default via 192.168.1.254 metric 100

lo: connected (externally) to lo
        "lo"
        loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
        inet4 127.0.0.1/8
        inet6 ::1/128

wlp2s0: disconnected
        "Ralink RT2790 1T/2R"
        wifi (rt2800pci), 00:22:5F:12:D1:3B, hw, mtu 1500

DNS configuration:
        servers: 192.168.1.254
        interface: eno1

Use “nmcli device show” to get complete information about known devices and“nmcli connection show” to get an overview on active connection profiles.  Consult nmcli(1) and nmcli-examples(7) manual pages for complete usage details.

@just-some-fern, can you check if it’s the same on another OS, right now? It would be an odd coincidence for sure, but let’s be extra sure the hardware actually does work. And if so, see if the live installer shows the same issue, if you still have it handy.

I also seem to remember instances, when one needed to reboot into “other OS” to get some quirky devices out of limbo.

So the driver is not missing, the firmware is not missing and the device is not soft blocked or hard blocked.

@just-some-fern Can you check dmesg and reload the kernel module?

You sudo dmesg in one terminal and on the other:

sudo modprobe -r rt2800pci
sudo modprobe rt2800pci

I believe, in dmesg you should see when you reload the kernel module + which firmware gets loaded.

After that, I don’t have much more ideas, other than checking on another OS like @peterwhite23 said

FYI, journalctl -kb (--dmesg --boot) is the more powerful equivalent, because dmesg is limited on buffer size; plus, no sudo. Can even add --priority=err, to only get errors, etc.

1 Like

I only have Ubuntu on this computer. I don’t easily have access to another OS, but I know before I switched over from Windows that the Wifi definitely worked.

Thanks for that tip :wink: