Broken WiFi on RPi after 14 Jan 21 update

Hello

Today’s update seems to have broken the bcm2835 wifi driver. Installed wpa_supplicant to investigate; am currently SSH-ing in via Ethernet.

I tried

Blockquote

$ sudo pacman -Syu
[sudo] password for :
:: Synchronising package databases…
core.db failed to download
extra.db failed to download
community.db failed to download
error: failed retrieving file ‘community.db’ from mirrors.gethosted.online : Could not resolve host: mirrors.gethosted.online
warning: too many errors from mirrors.gethosted.online, skipping for the remainder of this transaction
error: failed retrieving file ‘core.db’ from mirrors.gethosted.online : Could not resolve host: mirrors.gethosted.online
error: failed retrieving file ‘extra.db’ from mirrors.gethosted.online : Could not resolve host: mirrors.gethosted.online
error: failed retrieving file ‘community.db’ from www.mirrorservice.org : Could not resolve host: www.mirrorservice.org
warning: too many errors from www.mirrorservice.org, skipping for the remainder of this transaction
error: failed retrieving file ‘extra.db’ from www.mirrorservice.org : Could not resolve host: www.mirrorservice.org
error: failed retrieving file ‘core.db’ from www.mirrorservice.org : Could not resolve host: www.mirrorservice.org
error: failed retrieving file ‘extra.db’ from mirror.cyberhost.uk : Could not resolve host: mirror.cyberhost.uk
warning: too many errors from mirror.cyberhost.uk, skipping for the remainder of this transaction
error: failed retrieving file ‘core.db’ from mirror.cyberhost.uk : Could not resolve host: mirror.cyberhost.uk
error: failed retrieving file ‘community.db’ from mirror.cyberhost.uk : Could not resolve host: mirror.cyberhost.uk
error: failed to synchronize all databases (invalid url for server)
[ ~]$

Blockquote

So:

Blockquote

$ inxi -N
Network:
Device-1: bcm2835-mmc driver: mmc_bcm2835
Device-2: bcm2711-genet-v5 driver: bcmgenet

Blockquote

And

Blockquote

$ wpa_supplicant -B -i wlp2s0 -D mmc_bcm2835 -c /etc/wpa_supplicant/wpa_supplicant.conf
Successfully initialized wpa_supplicant
wlp2s0: Unsupported driver ‘mmc_bcm2835’

$ wpa_supplicant -B -i wlan0 -D bcmgenet -c /etc/wpa_supplicant/wpa_supplicant.conf
Successfully initialized wpa_supplicant
wlan0: Unsupported driver ‘bcmgenet’

Blockquote

And connecting directly by Ethernet to the router gave the same result for pacman -Syu.

Blockquote

However, $ ping 0.0.0.0 shows good return packets!

Ping Gateway not:

Blockquote

$ ping 192.168.1.254
PING 192.168.1.254 (192.168.1.254) 56(84) bytes of data.
From 169.254.100.100 icmp_seq=1 Destination Host Unreachable
From 169.254.100.100 icmp_seq=5 Destination Host Unreachable
^C
— 192.168.1.254 ping statistics —
9 packets transmitted, 0 received, +2 errors, 100% packet loss, time 8177ms
pipe 4

Blockquote

Ports 80 and 53 are open and dns is enabled in firewalld.

How can I clear this issue?

Tks
R

I do not use wifi but did you look at wpa_supplicant - ArchWiki ?
They don’t need “-D driver” which is optional.

And they also say

-D driver - Optionally specify the driver to be used. For a list of supported drivers see the output of wpa_supplicant -h.

Have you checked your interface name ?

The plot thickens unfortunately. The information below is a very shortened version of all commands and results to set a scene.

output of wps -h indicated a particular driver but specifying this in place of the bcm driver did not change the problem.

The interface name is correct.

I can connect to the over RealVNC server or use it with a display.

I cannot connect direct from the pi to my router via Ethernet with any different results from the not-properly-functioning-but-apparently-not-dead wifi. I need to keep the static wifi address in order reliably to use the realvnc connection.

I can’t system update because I have no wifi and can’t either connect to router or do a bridge to my laptop via ethernet (see below).

I have a backup via timeshift but cannot restore because it’s throwing segfaults.

Interestingly perhaps the timeshift json file did not have a UUID for parent device, but it did backup. Inserting the UUID for my SSD didn’t make any difference - still segfaulting.

This is utterly weird. I used to be able to connect headless to the RPi via VNC and use the pi’s wifi to update it.

As mentioned before I don’t have ifconfig (thought it would be standard package and didn’t install it). The laptop from which I vnc to the pi is x86 so I can’t just FISH the pkg over and install it.

I have tried to create a netctl bridge to my laptop following the wiki but can’t get that working either. Getting interface is already up messages and can’t resolve because I apparently need to use ifconfig to reset the config after stopping.

I seem to be fighting on a number of fronts.

What would be the best FIRST thing to try to resolve?

Tks

R

Oh just one more thing …

When trying to connect via wifi I am again getting the same behaviour from FIrefox and Chromium that I described in an earlier post at

And in addition of course pacman doesn’t connect to the mirrors either.

That seemed to be solved when I added the static wifi address for the pi (which is used by realvnc when connecting via wifi) to the wifi configuration in Network Manager. But is it possible there is another underlying cause … ?

Happy to post outputs of any recommended commands.

Tks

“could not resolve host” errors are usually caused by DNS issues.

Try seeing if you can ping 8.8.8.8 from the pi. If you can, your issue is related to DNS. If you can’t, the issue is in the connection itself.

Cannot ping 8.8.8.8 or 1.1.1.1.

Can ping 0.0.0.0.

Tks R

And 443? mirror.cyberhost.uk is an HTTPS server.

443 wasn’t in the list, though https was enabled in firewall. I also added 443 explicitly, but no difference.

In firewalld is it necessary to add ports (eg 53) to open for all networks and hosts in addition to selecting the relevant services (eg dns) for the selected zone? I am assuming not, but this could be a mistake.

Tks

R

And Angry IP scan from the laptop shows:

on ethernet (while pi is connected via realvnc)

ports 2,80

filtered ports 5004-5009

HTTP proxy 80:HTTP/1/1 200 OK

On wifi the Rpi is not showing at all though its NM is showing as connected.

HtH.

R

And another thing - I have just discovered the firewall tab in Settings. If I disable this via the tab the firewalld system tray icon disappears. However the configuration settings in the KDE Settings seem completely different to those in the configuration reached from the system tray. Default settings are to allow incoming and outgoing connections, but I don’t at all understand the connections tab.

R

What’s got you stumped? Maybe you can post a picture.

Where’s 443?

The question is why 443 is not there, when it’s set in firewalld. BTW I turned firewalld off and repeated the IP Scan. The results are the same. I also scanned the gateway, which has open ports 53,80,443 and filtered ports 22,808. Not sure if that last should be 8080.

The full list of services enabled in firewalld is

dhcp (port 67 not found by A_IP) ,
dhcpv6 (547 not found),
dhcpv6-client (546 not found) (not sure if those last two are required)
dns (53, not found),
dns-over-tls (853, not found),
git (9418, not found),
http (80, found),
https (443, found),
mdns (5353 not found),
samba-client (137 and 138 not found),
ssh (22 found),
vncserver-x11-serviced (realvnc) (5000-5009 found).

So it appears that enabling the service in firewalld is not setting the corresponding port automatically (these are all set in both permanent and runtime).

The list of ports explicitly added for all hosts and networks is

22 tcp,
53 tcp and udp,
443 tcp ,
5000-5009 tcp and udp (realvnc) of which Angry IP only finds 5004-5009)

found on the scan, but so are 22 (SSH) and 80 (HTTP) which are not added explicitly but belong to configured services as per above.

There seems to be no consistency here. 22 is set both explicitly and under configured services, and appears on the scan. 553 and 443 are set similarly but do not. 80 is not set explicitly but still appears.

So I am wondering whether the KDE firewall is interfering, or perhaps in control instead of firewalld. I have tried turning if off, but that also turns off firewalld in systray. Similarly systemctl stop firewalld turns off the KDE firewall, so they seem to be the same service. However, the firewall configuration screen in KDE Settings is completely different from that which appears when the systray icon is right-clicked.

Here is the picture of the KDE firewall Connections tab you requested:

And here is the Settings page

I have checked that I still have the Timeshift package, so could reinstall that from cache. However, I seem to have network issues so will defer doing that and try to fix this.

Tks,

R

Do you have ip? It looks like it is replacing ifconfig. No ifconfig Package? / Applications & Desktop Environments / Arch Linux Forums

Have you tried starting from a cold boot (not reboot–complete shutdown, wait a few seconds, then boot)?

How is the Pi listed on the DHCP menu of your router interface?

ifconfig is in the net-tools package.

https://archlinux.org/news/deprecation-of-net-tools/

Hi all

1

OOPS

Hi all. I do have ip, and ip addr shows my ethernet and wifi connections as configured in Network Manager. Both are lifted.

I can’t find a dhcp interface on my router management page, but the static ip address is listed as there, but off. So it is correct on the configuration has been present on the router.

Angry ip scan does not find it at all, for any ports. NM reports that it is connected, but with limited connectivity.

Tks
R

Do you have crda installed and your country code configured for it. Plasma has some weird firewall and I can not see the connected device with nmap here. I hardly use plasma though.

https://wiki.archlinux.org/title/Network_configuration/Wireless#Respecting_the_regulatory_domain

1 Like

Well that was illuminating and ultimately successful.

crda was installed and country code correctly set.

The last post in the thread suggested comparing with a known successful installation, which I did.

As a result I removed some of the services selected in firewalld and all of the explicitly configured ports. The firewall is now set up as in my working instance.

I then had to change the firewall zone for wlan0 and eth0 to be the same -previously eth0 had been public and wlan0 home.

Then pinging it with Angry ip (A_ip) reset it to working! Strangely, as before pinging it it was not connecting to the router.

Now it is showing as connected to the router, but still not connected to the internet.

AngryIP then returned

open ports 22,80
filtered ports 53,5004-5009
proxy 80 HTTP/1.1 200 OK

So 443 https was not set, despite https being set in the list of services.

I added 443 in firewalld via the system tray. No difference.

dns was not set, despite being selected in the list.

I added 53 explicitly, no difference.

So according to firewalld, 22,53,80 and 443 are all set, but according to A_ip only 22,80,5004-5009 are open.

I then tried adding 443 via the command line. It worked.

$ firewall-cmd --zone=home --list-ports 
443/tcp

So i tried adding 53 via cli

$ firewall-cmd --permanent --zone=home --add-port=53/tcp
success

[richardh@richard-RPi ~]$ firewall-cmd --zone=home --list-ports
443/tcp

But it’s not listed.

Did I get that wrong?

[richardh@richard-RPi ~]$ firewall-cmd --permanent --zone=home --add-port=53/tcp
Warning: ALREADY_ENABLED: 53:tcp
success

No.

[richardh@richard-RPi ~]$ firewall-cmd --zone=home --list-ports
443/tcp

So it’s there but not listed. And still neithe 53 or 443 show in A_ip.

So I wondered whether wpa_supplicant could be interfering with this, and sure enough it was running. So I stopped it. But no change, Then I disabled it, but that just started it again. So I masked it.

And then, even though i have a wifi profile configured in Network Manager, I didn’t have a wifi connection at all. Even one which won’t connect to the internet.

So I have unmasked wpa_supplicant for now. And am back to where I started, with a working unable-to-connect-to-the-internet connection, ports 443 and 53 set in firewalld and not visible on A_ip.

I did notice on the way through that wpa_supplicant seemed to be configured with country code IE. I am GB.

So i set country=GB in /etc/wpa_supplicant/wpa_supplicant.conf.

You may recall that I had installed wpa_supplicant because NM was not giving me a connection.

I hadn’t set country=IE so it wasn’t a total surprise that setting country=GB didn’t make any difference.

For any of you still following this, what next? I have no idea.

In case anyone suggests removing wpa_supplicant, which seems to be taking control without adding any value (seen that before) can you confirm / advise whether

$ sudo pacman -R wpa_supplicant

is correct to remove just the installed package without removing required dependencies and without removing it from cache?

Tks

R

Is this IP address the same as the one your computer thinks it is assigned (output of ip address)?

Is your image on an SD card? I wonder if you can flash another SD card with something (doesn’t matter what, RaspberryPi OS or whatever) and see if it will connect. That would tell you if it is a hardware issue.