Unusable Wi-Fi connection on Raspberry Pi Zero 2 W with Jammy
Hello.
I am using a Raspberry Pi Zero 2W for an IOT project. This device is in my garden and is connected to my Wi-Fi router. It sends a weather measure every minute via an HTTPS request.
This was working nice with Ubuntu 21.10. I recently upgraded to Ubuntu 22.04 (64 bits) and the Wi-Fi connection is now unusable.
I noticed this issue is related to the distance between the device and the Wi-Fi router. Indeed, when I put the device inside my house, the Wi-Fi connection is getting stable. When I noticed that, I was surprised and I wondered whether I could have damaged the device during the upgrade (I had to put the SD card to a Raspberry Pi 4 to run the upgrade to 22.04, the do-release-upgrade command crashed very quickly on the Pi Zero 2 for an out of memory issue as far as I remember). But I could double check that. I have another Pi Zero 2 W that I also upgraded from Ubuntu 21.10 and I tried to put it in my garden, where the other device is. And I get the exactly same behaviour. It works inside the house or really close to the house but not a little farther where my IOT project is.
You could tell me that it is simply too far in my garden, but it used to work perfectly with Ubuntu 21.10. Before deciding to install the device at this place, I checked that the wireless network of the Raspberry Pi Zero 2 W was powerful enough to work at this place. As far as I remember, I had a 3 MB/s connection, which is not very fast but clearly enough for what I need.
As far as I know, nothing else changed in the environment (still the same Wi-Fi router, still the same things in the garden between the router and the device).
I tried to reinstall the system from scratch to Ubuntu 22.04, in the case the issue was caused by a bug during the upgrade but I get the exactly same behaviour.
I wanted to try to reinstall Ubuntu 21.10 on a SD card and check whether it still works but the distribution is no longer available in the Pi imager tool, so I could not do this check. I am ok to do it if someone explains me how to install it. I can install Ubuntu 20.04 but as far as I know it does not support the Pi Zero 2 W.
I don't remember exactly, but it sounds like when I am close to the Wi-Fi router, the current throughput is lower than it used to be when I was running Ubuntu 21.10 (I can no longer measure that).
Here is an extract of the syslog that shows a disconnection and a new connection:
Jun 26 16:14:50 hostname wpa_supplicant[
Jun 26 16:14:50 hostname systemd-
Jun 26 16:14:50 hostname systemd-
Jun 26 16:14:50 hostname wpa_supplicant[
Jun 26 16:14:50 hostname systemd-
Jun 26 16:14:50 hostname systemd-
Jun 26 16:14:51 hostname wpa_supplicant[
Jun 26 16:14:51 hostname wpa_supplicant[
Jun 26 16:14:51 hostname wpa_supplicant[
Jun 26 16:14:52 hostname wpa_supplicant[
Jun 26 16:14:52 hostname wpa_supplicant[
Jun 26 16:14:53 hostname wpa_supplicant[
Jun 26 16:14:54 hostname wpa_supplicant[
Jun 26 16:14:54 hostname wpa_supplicant[
Jun 26 16:14:55 hostname wpa_supplicant[
Jun 26 16:14:55 hostname wpa_supplicant[
Jun 26 16:14:55 hostname wpa_supplicant[
Jun 26 16:14:55 hostname wpa_supplicant[
Jun 26 16:14:55 hostname wpa_supplicant[
Jun 26 16:14:55 hostname systemd-
Jun 26 16:14:55 hostname systemd-
Jun 26 16:14:55 hostname systemd-
Jun 26 16:14:55 hostname systemd-
Jun 26 16:14:55 hostname systemd-
This pattern occurs regularly and even when the logs claim that it is connected, the HTTPS requests fail. Sometimes (something like once every 2 or 3 days) an HTTPS request successes (that's very poor).
Note that I am using the netplan configuration suggested in this tutorial: https:/
The device is up-to-date (running kernel 5.15.0-1011-raspi).
I hope I will find a solution to fix this issue soon, otherwise I will have to use another distribution to get my project working again since I cannot even downgrade (no longer available). That's frustrating, Ubuntu is a nice distribution that I use on my desktop and my servers, and that's very comfortable to be also able to use it in smaller devices, it reduces significantly the learning curve.
Sorry for my very long message.
Thanks in advance!
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- Ubuntu Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- Benoit Sautel
- Solved:
- Last query:
- Last reply:
Related FAQ:
None Link to a FAQ
Revision history for this message
|
#1 |
Make sure you have the latest firmware. This may help
Revision history for this message
|
#2 |
Thanks actionparsnip for your answer!
All the packages are up-to-date, including the following ones starting with linux-firmware:
linux-firmware/
linux-firmware-
linux-firmware-
Are there any other packages containing the firmware or any firmware update mechanism that does not automatically run when updating the distribution via apt?
Revision history for this message
|
#3 |
What make and model is the WLAN device, and which driver is used (sudo lshw -C network)?
There are some drivers where you can set options. Maybe one of them has got a different default in the upgrade from 21.10 to 22.04, but you need the other value.
Revision history for this message
|
#4 |
Thanks for your answer.
Here is the output of the command regarding the Wireless interface:
description: Wireless interface
product: 43430
vendor: Broadcom
physical id: 1
bus info: mmc@1:0001:1
logical name: mmc1:0001:1
logical name: wlan0
serial: e4:5f:01:3d:17:42
capabilities: ethernet physical wireless
configuration: broadcast=yes driver=brcmfmac driverversion=9.88 firmware=
I am ok to try using another firmware version but I know neither how to see the other available firmware versions nor how to change the firmware version used. Same thing for the driver options. I don't know how to change the options and which options it could be relevant to try.
Could someone explain me how to do that?
Thanks a lot!
Revision history for this message
|
#5 |
The available driver options can be shown with the command
modinfo brcmfmac
Revision history for this message
|
#6 |
Thanks. Here is the full output of this command :
filename: /lib/modules/
license: Dual BSD/GPL
description: Broadcom 802.11 wireless LAN fullmac driver.
author: Broadcom Corporation
firmware: brcm/brcmfmac*
firmware: brcm/brcmfmac*
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac*
firmware: brcm/brcmfmac*
firmware: brcm/brcmfmac*
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
firmware: brcm/brcmfmac43
srcversion: 813928A1C422370
alias: usb:v04B4p0BDCd
alias: usb:v0A5Cp0BDCd
alias: usb:v043Ep3101d
alias: usb:v04B4pBD29d
alias: usb:v13B1p0039d
alias: usb:v0A5CpBD27d
alias: usb:v0A5CpBD1Fd
alias: usb:v0A5CpBD17d
alias: usb:v0A5CpBD1Ed
alias: pci:v000014E4d0
alias: pci:v000014E4d0
alias: pci:v000014E4d0
alias: pci:v000014E4d0
alias: pci:v000014E4d0
alias: pci:v000014E4d0
alias: pci:v000014E4d0
alias: pci:v000014E4d0
alias: pci:v000014E4d0
alias: pci:v000014E4d0
alias: pci:v000014E4d0
alias: pci:v000014E4d0
alias: pci:v000014E4d0
alias: pci:v000014E4d0
alias: pci:v000014E4d0
alias: pci:v000014E4d0
alias: pci:v000014E4d0
alias: pci:v000014E4d0
alias: pci:v000014E4d0
alias: pci:v000014E4d0
alias: pci:v000014E4d0
alias: sdio:c*v02D0d4355*
alias: sdio:c*v02D0dAAE8*
alias: sdio:c*v02D0dA804*
alias: sdio:c*v02D0d4373*
alias: sdio:c*v02D0d4359*
alias: sdio:c*v02D0d4356*
alias: sdio:c*v02D0d4354*
alias: sdio:c*v02D0dA9BF*
alias: sdio:c*v02D0d4345*
alias: sdio:c*v02D0dA9A6*
alias: sdio:c*v02D0d4339*
alias: sdio:c*v02D0d4335*
alias: sdio:c*v02D0dA9A4*
alias: sdio:c*v02D0dA962*
alias: sdio:c*v02D0dA94D*
alias: sdio:c*v02D0dA94C*
alias: sdio:c*v02D0d4334*
alias: sdio:c*v02D0d4330*
alias: sdio:c*v02D0d4329*
alias: sdio:c*v02D0d4324*
alias: sdio:c*v02D0dA887*
depends: brcmutil,cfg80211
intree: Y
name: brcmfmac
vermagic: 5.15.0-1011-raspi SMP preempt mod_unload modversions aarch64
sig_id: PKCS#7
signer: Build time autogenerated kernel key
sig_key: 56:36:3D:
sig_hashalgo: sha512
signature: BA:AA:A6:
74:EE:
90:7F:
53:77:
5B:FC:
F0:27:
E7:46:
02:15:
B4:3F:
D7:C2:
F6:F7:
A6:D1:
23:DD:
F8:92:
FF:98:
15:A4:
B0:55:
F9:EE:
FC:7B:
03:63:
1B:3B:
D3:4A:
90:0C:
89:A4:
71:99:
41:B9:
parm: txglomsz:Maximum tx packet chain size [SDIO] (int)
parm: debug:Level of debug output (int)
parm: p2pon:Enable legacy p2p management functionality (int)
parm: feature_
parm: alternative_
parm: fcmode:Mode of firmware signalled flow control (int)
parm: roamoff:Do not use internal roaming engine (int)
parm: iapp:Enable partial support for the obsoleted Inter-Access Point Protocol (int)
parm: ignore_
I guess parm are parameters. Is the alternative_fw_path parameter the one that enables us to use another firmware?
Which option should I change according to you? And why?
Thanks a lot for your help!
Revision history for this message
|
#7 |
I am sorry, but it seems that I was on a wrong track.
There is a known problem with the rtl8723be device and its driver which requires the ant_sel=2 option in some cases, to use the right antenna for gaining adequate connection.
Your device is different and uses a different driver, so that is not applicable here.
I am not aware of any parameter for the brcmfmac driver that could help in your case.
I recommend that you run the full https:/
Maybe that reveals something.
Revision history for this message
|
#8 |
Thanks a lot Manfred for your help.
Here is the result of the Wireless troubleshooting procedure. Note that it does not seem to be fully up-to-date. The wireless-tools package was missing, and everything related to NetworkManager no longer makes sense since as far as I know it was replaced by systemd-networkd.
Hope this will help to discover the cause of the issue. Note that I connect to the device using SSH over Wi-Fi, so I had to put it closer to the Wi-Fi access point. To do that, I had to shut it down and start it again inside the house. Why I tell that: because I am here in a situation in which the Wi-Fi is working.
sudo lshw -C network
*-interface:0
description: Wireless interface
product: 43430
vendor: Broadcom
physical id: 1
bus info: mmc@1:0001:1
logical name: mmc1:0001:1
logical name: wlan0
serial: e4:5f:01:5b:03:e5
rfkill list
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
1: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
sudo iwlist scan | grep -Ei 'chan|ssid'
lo Interface doesn't support scanning.
Note that the device is connected to SSID1 (channel 2).
cat /etc/network/
This file does not exist, instead, here is the output of ip a
2: wlan0: <BROADCAST,
link/ether e4:5f:01:5b:03:e5 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.6/24 metric 600 brd 192.168.0.255 scope global dynamic wlan0
valid_lft 41637sec preferred_lft 41637sec
inet6 2a01:e0a:
valid_lft 86292sec preferred_lft 86292sec
inet6 fe80::e65f:
And my netplan configuration (/etc/netplan/
network:
ethernets:
eth0:
dhcp4: true
wifis:
wlan0:
dhcp4: true
optional: true
SSID1:
version: 2
cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_
DISTRIB_
DISTRIB_
lspci -nnk | grep -iA2 net
empty
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
nmcli g
not installed, do we still use network manager? No as far as I know
sudo lshw -short
H/W path Device Class Description
=======
/0 bus Motherboard
/0/0 processor cpu
/0/0/0 memory 32KiB L1 Cache
/0/1 processor cpu
/0/1/0 memory 32KiB L1 Cache
/0/2 processor cpu
/0/2/0 memory 32KiB L1 Cache
/0/3 processor cpu
/0/3/0 memory 32KiB L1 Cache
/0/4 processor l2-cache0
/0/5 memory 414MiB System memory
/1 usb1 bus DWC OTG Controller
/2 mmc0 bus MMC Host
/2/aaaa /dev/mmcblk0 disk 31GB SC32G
/2/aaaa/1 /dev/mmcblk0p1 volume 256MiB Windows FAT volume
/2/aaaa/2 /dev/mmcblk0p2 volume 29GiB EXT4 volume
/3 mmc1 bus MMC Host
/3/1 generic SDIO Device
/3/1/1 mmc1:0001:1 network 43430
/3/1/2 mmc1:0001:2 generic 43430
/4 /dev/fb0 display BCM2708 FB
uname -a
Linux hostname 5.15.0-1011-raspi #13-Ubuntu SMP PREEMPT Thu Jun 2 11:44:34 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux
sudo updatedb
not found
sudo dmesg | grep -E '02:00|
[ 0.000000] efi: UEFI not found.
[ 0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.
[ 0.000000] Root IRQ handler: bcm2836_
[ 0.016468] CPU features: emulated: Privileged Access Never (PAN) using TTBR0_EL1 switching
[ 0.097246] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[ 0.108851] bcm2835-mbox 3f00b880.mailbox: mailbox enabled
[ 0.132577] raspberrypi-
[ 0.136600] raspberrypi-
[ 0.199561] bcm2835-dma 3f007000.dma: DMA legacy API manager, dmachans=0x1
[ 0.207701] usbcore: registered new interface driver usbfs
[ 0.207794] usbcore: registered new interface driver hub
[ 0.207879] usbcore: registered new device driver usb
[ 0.212831] clocksource: Switched to clocksource arch_sys_counter
[ 0.492592] bcm2708_fb soc:fb: FB found 1 display(s)
[ 0.506547] Console: switching to colour frame buffer device 90x30
[ 0.511865] bcm2708_fb soc:fb: Registered framebuffer for display 0, size 720x480
[ 0.618810] bcm2835-rng 3f104000.rng: hwrng registered
[ 0.646784] usbcore: registered new interface driver lan78xx
[ 0.646864] usbcore: registered new interface driver smsc95xx
[ 1.301460] ima: No TPM chip found, activating TPM-bypass!
[ 1.301565] ima: No architecture policies found
[ 1.313233] uart-pl011 3f201000.serial: cts_event_
[ 1.315978] bcm2835-aux-uart 3f215040.serial: there is not valid maps for state default
[ 1.319487] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[ 1.319950] bcm2835-power bcm2835-power: Broadcom BCM2835 power domains driver
[ 1.321828] mmc-bcm2835 3f300000.mmcnr: mmc_debug:0 mmc_debug2:0
[ 1.321847] mmc-bcm2835 3f300000.mmcnr: DMA channel allocated
[ 1.415292] mmc0: sdhost-bcm2835 loaded - DMA enabled (>1)
[ 1.443605] Checked W+X mappings: passed, no W+X pages found
[ 1.479627] mmc0: host does not support reading read-only switch, assuming write-enable
[ 2.707344] usb_phy_generic phy: supply vcc not found, using dummy regulator
[ 3.376112] dwc2 3f980000.usb: supply vusb_d not found, using dummy regulator
[ 3.376346] dwc2 3f980000.usb: supply vusb_a not found, using dummy regulator
[ 3.585011] dwc2 3f980000.usb: EPs: 8, dedicated fifos, 4080 entries in SPRAM
[ 3.585507] dwc2 3f980000.usb: DWC OTG Controller
[ 3.585557] dwc2 3f980000.usb: new USB bus registered, assigned bus number 1
[ 3.585627] dwc2 3f980000.usb: irq 51, io mem 0x3f980000
[ 3.586201] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.15
[ 3.586230] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 3.586254] usb usb1: Product: DWC OTG Controller
[ 3.586274] usb usb1: Manufacturer: Linux 5.15.0-1011-raspi dwc2_hsotg
[ 3.586294] usb usb1: SerialNumber: 3f980000.usb
[ 3.587394] hub 1-0:1.0: USB hub found
[ 26.509479] systemd[1]: Listening on multipathd control socket.
[ 26.642993] systemd[1]: Starting Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling...
[ 26.676245] systemd[1]: Condition check resulted in OpenVSwitch configuration for cleanup being skipped.
[ 26.823615] EXT4-fs (mmcblk0p2): re-mounted. Opts: discard,
[ 29.018681] bcm2835_
[ 29.109433] gpiomem-bcm2835 3f200000.gpiomem: Initialised: Registers at 0x3f200000
[ 29.244968] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[ 29.252641] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[ 29.255891] snd_bcm2835: module is from the staging directory, the quality is unknown, you have been warned.
[ 29.257846] bcm2835_audio bcm2835_audio: there is not valid maps for state default
[ 29.268517] bcm2835_v4l2: module is from the staging directory, the quality is unknown, you have been warned.
[ 29.281018] bcm2835_codec: module is from the staging directory, the quality is unknown, you have been warned.
[ 29.294825] bcm2835_isp: module is from the staging directory, the quality is unknown, you have been warned.
[ 29.295301] bcm2835-codec bcm2835-codec: Device registered as /dev/video10
[ 29.295371] bcm2835-codec bcm2835-codec: Loaded V4L2 decode
[ 29.311762] bcm2835-isp bcm2835-isp: Device node output[0] registered as /dev/video13
[ 29.312255] bcm2835-isp bcm2835-isp: Device node capture[0] registered as /dev/video14
[ 29.312651] bcm2835-isp bcm2835-isp: Device node capture[1] registered as /dev/video15
[ 29.314240] bcm2835-isp bcm2835-isp: Device node stats[2] registered as /dev/video16
[ 29.314289] bcm2835-isp bcm2835-isp: Register output node 0 with media controller
[ 29.314332] bcm2835-isp bcm2835-isp: Register capture node 1 with media controller
[ 29.314350] bcm2835-isp bcm2835-isp: Register capture node 2 with media controller
[ 29.314366] bcm2835-isp bcm2835-isp: Register capture node 3 with media controller
[ 29.321626] bcm2835-codec bcm2835-codec: Device registered as /dev/video11
[ 29.321694] bcm2835-codec bcm2835-codec: Loaded V4L2 encode
[ 29.333372] bcm2835-codec bcm2835-codec: Device registered as /dev/video12
[ 29.333436] bcm2835-codec bcm2835-codec: Loaded V4L2 isp
[ 29.336466] bcm2835-codec bcm2835-codec: Device registered as /dev/video18
[ 29.336526] bcm2835-codec bcm2835-codec: Loaded V4L2 image_fx
[ 29.339631] bcm2835-codec bcm2835-codec: Device registered as /dev/video31
[ 29.339711] bcm2835-codec bcm2835-codec: Loaded V4L2 encode_image
[ 29.340145] bcm2835-isp bcm2835-isp: Device node output[0] registered as /dev/video20
[ 29.341270] bcm2835-isp bcm2835-isp: Device node capture[0] registered as /dev/video21
[ 29.341808] bcm2835-isp bcm2835-isp: Device node capture[1] registered as /dev/video22
[ 29.342216] bcm2835-isp bcm2835-isp: Device node stats[2] registered as /dev/video23
[ 29.342273] bcm2835-isp bcm2835-isp: Register output node 0 with media controller
[ 29.342294] bcm2835-isp bcm2835-isp: Register capture node 1 with media controller
[ 29.342311] bcm2835-isp bcm2835-isp: Register capture node 2 with media controller
[ 29.342328] bcm2835-isp bcm2835-isp: Register capture node 3 with media controller
[ 29.342588] bcm2835-isp bcm2835-isp: Loaded V4L2 bcm2835-isp
[ 29.633831] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 29.635667] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 29.764162] brcmfmac: F1 signature read @0x18000000=
[ 29.861062] brcmfmac: brcmf_fw_
[ 29.862223] usbcore: registered new interface driver brcmfmac
[ 29.869156] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43
[ 30.030639] brcmfmac: brcmf_fw_
[ 30.030877] brcmfmac: brcmf_fw_
[ 30.080351] brcmfmac: brcmf_c_
[ 32.106717] brcmfmac: brcmf_cfg80211_
[ 33.572444] IPv6: ADDRCONF(
iwconfig
lo no wireless extensions.
wlan0 IEEE 802.11 ESSID:"SSID1"
Bit Rate=72.2 Mb/s Tx-Power=31 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
Link Quality=40/70 Signal level=-70 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:537 Invalid misc:0 Missed beacon:0
grep -E '80211|
/etc/modprobe.
/etc/modprobe.
/etc/modprobe.
/etc/modprobe.
/etc/modprobe.
/etc/modprobe.
/etc/modprobe.
/etc/modprobe.
/etc/modprobe.
/etc/modprobe.
/etc/modprobe.
/etc/modprobe.
/etc/modprobe.
/etc/modprobe.
/etc/modprobe.
cat /var/lib/
does not exist
sudo hwinfo --netcard
03: None 00.0: 0282 WLAN controller
[Created at pci.1030]
Unique ID: YFEq.Vu98QzaObUF
SysFS ID: /devices/
SysFS BusID: mmc1:0001:1
Hardware Class: network
Model: "ARM Ethernet controller"
Device: "ARM Ethernet controller"
Driver: "brcmfmac"
Driver Modules: "brcmfmac", "brcmfmac", "brcmfmac"
Device File: wlan0
Features: WLAN
HW Address: e4:5f:01:5b:03:e5
Permanent HW Address: e4:5f:01:5b:03:e5
Link detected: yes
WLAN channels: 1 2 3 4 5 6 7 8 9 10 11
WLAN frequencies: 2.412 2.417 2.422 2.427 2.432 2.437 2.442 2.447 2.452 2.457 2.462
WLAN encryption modes: WEP40 WEP104 TKIP CCMP
WLAN authentication modes: open sharedkey wpa-psk wpa-eap
Module Alias: "of:NmmcnrT(
Driver Info #0:
Driver Status: uio_pdrv_genirq is active
Driver Activation Cmd: "modprobe uio_pdrv_genirq"
Config Status: cfg=new, avail=yes, need=no, active=unknown
06: SDIO 00.0: 0280 Network controller
[Created at pci.1975]
Unique ID: 0DfK.dZc7syf8JZ2
Parent ID: tTVG.VoJli79_k95
SysFS ID: /devices/
SysFS BusID: mmc1:0001:1
Hardware Class: network
Model: "Broadcom BCM43430 WLAN card"
Vendor: sdio 0x02d0 "Broadcom Corp."
Device: sdio 0xa9a6 "BCM43430 WLAN card"
Driver: "brcmfmac"
Driver Modules: "brcmfmac", "brcmfmac", "brcmfmac"
Module Alias: "sdio:c00v02D0d
Driver Info #0:
Driver Status: brcmfmac is active
Driver Activation Cmd: "modprobe brcmfmac"
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #4 (MMC Controller)
ps -aux|grep -E 'wpa|icd|etwork'
root 577 0.0 1.0 16348 4492 ? Ss 07:42 0:00 /sbin/wpa_
systemd+ 640 0.0 0.9 16388 3912 ? Ss 07:43 0:00 /lib/systemd/
root 680 0.0 0.7 32984 3044 ? Ss 07:43 0:00 /usr/bin/python3 /usr/bin/
root 702 0.0 0.6 15252 2704 ? Ss 07:43 0:00 /sbin/wpa_
benoit 3806 0.0 0.4 6416 1848 pts/0 S+ 08:22 0:00 grep --color=auto -E wpa|icd|etwork
netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.0.254 0.0.0.0 UG 0 0 0 wlan0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
192.168.0.254 0.0.0.0 255.255.255.255 UH 0 0 0 wlan0
cat /etc/resolv.conf
nameserver 127.0.0.53
options edns0 trust-ad
search .
ls -lia /boot
total 112567
15 drwxr-xr-x 4 root root 4096 Jun 28 09:32 .
2 drwxr-xr-x 20 root root 4096 Jun 30 07:31 ..
16 -rw------- 1 root root 5181914 Apr 4 13:33 System.
5836 -rw------- 1 root root 5182744 Jun 2 00:37 System.
17 -rw-r--r-- 1 root root 245069 Apr 4 13:33 config-
5837 -rw-r--r-- 1 root root 245156 Jun 2 00:37 config-
8858 lrwxrwxrwx 1 root root 44 Jun 28 09:31 dtb -> dtbs/5.
5170 lrwxrwxrwx 1 root root 44 Jun 20 09:39 dtb-5.15.
5179 lrwxrwxrwx 1 root root 44 Jun 28 09:31 dtb-5.15.
127647 drwxr-xr-x 4 root root 4096 Jun 20 09:40 dtbs
1 drwxr-xr-x 3 root root 6656 Jan 1 1970 firmware
24 lrwxrwxrwx 1 root root 28 Jun 20 09:38 initrd.img -> initrd.
5169 -rw-r--r-- 1 root root 41806536 Jun 20 09:39 initrd.
8856 -rw-r--r-- 1 root root 41813525 Jun 28 09:30 initrd.
23 lrwxrwxrwx 1 root root 28 Apr 19 12:09 initrd.img.old -> initrd.
1802 lrwxrwxrwx 1 root root 25 Jun 20 09:38 vmlinuz -> vmlinuz-
25 -rw------- 1 root root 10375601 Apr 4 13:33 vmlinuz-
5844 -rw------- 1 root root 10382232 Jun 2 00:37 vmlinuz-
26 lrwxrwxrwx 1 root root 25 Apr 19 12:09 vmlinuz.old -> vmlinuz-
grep tmpfs /etc/fstab
nothing
ubuntu-
sudo apt remove net-tools
624 packages installed, of which:
616 receive package updates with LTS until 4/2027
This machine is not attached to an Ubuntu Advantage subscription.
See https:/
check-support-
Limited security support for one or more packages
Unfortunately, it has been necessary to limit security support for some
packages.
The following packages found on this system are affected by this:
* Source:binutils
Details: Only suitable for trusted content; see https://<email address hidden>
Affected binary packages:
- binutils (installed version: 2.38-3ubuntu1)
- binutils-
- binutils-
- libbinutils:arm64 (installed version: 2.38-3ubuntu1)
- libctf-nobfd0:arm64 (installed version: 2.38-3ubuntu1)
- libctf0:arm64 (installed version: 2.38-3ubuntu1)
sudo update-pciids
% Total % Received % Xferd Average Speed Time Time Time Current
100 296k 100 296k 0 0 204k 0 0:00:01 0:00:01 --:--:-- 204k
Done.
sudo lsmod
Module Size Used by
joydev 32768 0
cmac 16384 3
algif_hash 24576 1
algif_skcipher 20480 1
af_alg 32768 6 algif_hash,
bnep 32768 2
hci_uart 155648 1
btqca 24576 1 hci_uart
btrtl 24576 1 hci_uart
btbcm 28672 1 hci_uart
btintel 45056 1 hci_uart
bluetooth 716800 29 btrtl,btqca,
ecdh_generic 16384 2 bluetooth
ecc 36864 1 ecdh_generic
brcmfmac 421888 0
brcmutil 28672 1 brcmfmac
cfg80211 970752 1 brcmfmac
raspberrypi_hwmon 16384 0
bcm2835_isp 36864 0
bcm2835_codec 53248 0
bcm2835_v4l2 49152 0
v4l2_mem2mem 45056 1 bcm2835_codec
snd_bcm2835 36864 0
bcm2835_mmal_vchiq 40960 3 bcm2835_
videobuf2_vmalloc 20480 1 bcm2835_v4l2
snd_pcm 163840 1 snd_bcm2835
videobuf2_
videobuf2_memops 20480 2 videobuf2_
videobuf2_v4l2 32768 4 bcm2835_
snd_timer 45056 1 snd_pcm
videobuf2_common 81920 8 bcm2835_
videodev 286720 6 bcm2835_
bcm2835_gpiomem 16384 0
snd 126976 3 snd_bcm2835,
mc 73728 6 videodev,
vc_sm_cma 45056 2 bcm2835_
uio_pdrv_genirq 20480 0
uio 24576 1 uio_pdrv_genirq
sch_fq_codel 24576 2
dm_multipath 40960 0
drm 651264 0
ip_tables 36864 0
x_tables 61440 1 ip_tables
autofs4 49152 2
btrfs 1622016 0
blake2b_generic 24576 0
zstd_compress 229376 1 btrfs
raid10 73728 0
raid456 196608 0
async_raid6_recov 24576 1 raid456
async_memcpy 20480 2 raid456,
async_pq 20480 2 raid456,
async_xor 20480 3 async_pq,
async_tx 20480 5 async_pq,
xor 20480 2 async_xor,btrfs
xor_neon 16384 1 xor
raid6_pq 114688 4 async_pq,
libcrc32c 16384 2 btrfs,raid456
raid1 57344 0
raid0 24576 0
multipath 24576 0
linear 20480 0
spidev 24576 0
dwc2 315392 0
crct10dif_ce 20480 1
roles 20480 1 dwc2
udc_core 73728 1 dwc2
i2c_bcm2835 20480 448
spi_bcm2835 28672 0
phy_generic 20480 1
aes_arm64 16384 3
Revision history for this message
|
#9 |
Maybe that is the hint:
"brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43
What output do you receive for the command
ls -l /lib/firmware/
Maybe copying the three files named brcmfmac43436-
Revision history for this message
|
#10 |
Hum right, I did not notice this error and indeed, it could explain the issue.
As far as I understand, it cannot use the right firmware, and thus it uses a default one which is more generic and less performant? And this could explain the issue?
Those file do not exist:
lrwxrwxrwx 1 root root 31 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 36 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 385067 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 397312 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 348160 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 455745 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 403855 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 408682 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 479232 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 253748 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 1509 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 222126 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 451566 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 31 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 1693 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 1724 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 1689 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 569291 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 31 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 803 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 43 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 30 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 875 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 928 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 831 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 31 Feb 18 01:49 /lib/firmware/
lrwxrwxrwx 1 root root 31 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 36 Feb 18 01:49 /lib/firmware/
lrwxrwxrwx 1 root root 36 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 29 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 22 Feb 18 01:49 /lib/firmware/
-rw-r--r-- 1 root root 874 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 22 Feb 18 01:49 /lib/firmware/
lrwxrwxrwx 1 root root 44 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 29 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 29 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 29 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 29 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 1121 Jan 18 17:13 /lib/firmware/
-rw-r--r-- 1 root root 989 May 13 13:44 '/lib/firmware/
-rw-r--r-- 1 root root 382455 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 908 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 951 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 413934 Jan 18 17:13 /lib/firmware/
-rw-r--r-- 1 root root 11209 Jan 18 17:13 /lib/firmware/
-rw-r--r-- 1 root root 1613 Jan 18 17:13 /lib/firmware/
-rw-r--r-- 1 root root 428103 Jan 18 17:13 /lib/firmware/
-rw-r--r-- 1 root root 1092 Jan 18 17:13 /lib/firmware/
-rw-r--r-- 1 root root 2510 May 13 13:44 '/lib/firmware/
lrwxrwxrwx 1 root root 44 May 13 13:44 '/lib/firmware/
lrwxrwxrwx 1 root root 44 May 13 13:44 '/lib/firmware/
-rw-r--r-- 1 root root 1723 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 31 Feb 18 01:49 /lib/firmware/
lrwxrwxrwx 1 root root 31 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 36 Feb 18 01:49 /lib/firmware/
lrwxrwxrwx 1 root root 36 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 22 Feb 18 01:49 /lib/firmware/
lrwxrwxrwx 1 root root 49 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 22 Feb 18 01:49 /lib/firmware/
-rw-r--r-- 1 root root 1884 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 22 Feb 18 01:49 /lib/firmware/
lrwxrwxrwx 1 root root 22 Feb 18 01:49 /lib/firmware/
-rw-r--r-- 1 root root 1883 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 22 Feb 18 01:49 /lib/firmware/
-rw-r--r-- 1 root root 2074 Jan 18 17:13 /lib/firmware/
-rw-r--r-- 1 root root 495898 Jan 18 17:13 /lib/firmware/
-rw-r--r-- 1 root root 7163 Jan 18 17:13 /lib/firmware/
lrwxrwxrwx 1 root root 22 Feb 18 01:49 /lib/firmware/
lrwxrwxrwx 1 root root 22 Feb 18 01:49 /lib/firmware/
lrwxrwxrwx 1 root root 22 Feb 18 01:49 /lib/firmware/
-rw-r--r-- 1 root root 2053 Jan 18 17:13 /lib/firmware/
-rw-r--r-- 1 root root 626140 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 623304 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 30 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 35 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 30 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 35 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 2515 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 30 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 35 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 35 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 2610 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 557056 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 31 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 36 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 633817 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 595472 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 635449 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 1105361 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 1120971 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 623448 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 30 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 35 May 13 13:44 /lib/firmware/
-rw-r--r-- 1 root root 479232 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 31 May 13 13:44 /lib/firmware/
lrwxrwxrwx 1 root root 36 May 13 13:44 /lib/firmware/
There are some firmware files for several Raspberry Pi versions including the Raspberry Pi Zero W, but not the Raspberry Pi Zero 2 W.
I am going to try to install manually these files and I'll get back to you when that's done.
Really thanks Manfred, you help is awesome. It sounds like you are on the right way and you make me learn many things.
I was sure that the Raspberry Pi Zero 2 W was supported by Ubuntu 21.10 and I was just wondering whether it was still the case with Ubuntu 22.04 (even though that would be surprising if it was not the case). I could check that and yes, it is supported as explained here: https:/
Revision history for this message
|
#11 |
As promised, I just manually added the missing files and it works much better now, thanks!
I can now SSH to the device and my weather station is now back to work!
It sounds like it is still slower than it used to be with Ubuntu 21.10 but it is now usable. As far as I remember, using iperf between the device and my laptop, I had about 3Mb/s and now it is between 0.5 and 1 Mb/s. It may have nothing to do with the device, it could be also due to an object that was moved between the device and the access point and that would reduce the signal strength.
Knowing that the Raspberry Pi Zero 2 W is supported by Ubuntu 22.04, we should consider this issue as a bug, shouldn't we? In this case, I should report it in the linux-firmware-
Again, thanks a lot Manfred for your responsiveness and your help to solve this issue!
Revision history for this message
|
#12 |
Before we can confirm that as a solution I would like to re-check the loading of the firmware:
What output do you now get for the "dmesg ..." command?
And yes, I agree with everything else what you wrote.
This deserves a bug report for the linux-firmware-
Revision history for this message
|
#13 |
You are right, and it sounds like it is not working as well as I expected.
After adding the missing files yesterday, the wireless connection was working, even if it seemed slower than before. But in fact, it worked for about one hour and then my device went offline again. I could not connect to it using SSH (no route to host) and it stopped pushing its measures via HTTPS.
Here is the output of the syslog that shows there are still some connection / disconnection loops:
Jul 1 05:59:03 hostname wpa_supplicant[
Jul 1 05:59:03 hostname systemd-
Jul 1 05:59:03 hostname systemd-
Jul 1 05:59:03 hostname wpa_supplicant[
Jul 1 05:59:03 hostname systemd-
Jul 1 05:59:03 hostname systemd-
Jul 1 05:59:04 hostname wpa_supplicant[
Jul 1 05:59:04 hostname wpa_supplicant[
Jul 1 05:59:04 hostname wpa_supplicant[
Jul 1 05:59:05 hostname wpa_supplicant[
Jul 1 05:59:05 hostname wpa_supplicant[
Jul 1 05:59:06 hostname wpa_supplicant[
Jul 1 05:59:07 hostname wpa_supplicant[
Jul 1 05:59:07 hostname wpa_supplicant[
Jul 1 05:59:08 hostname wpa_supplicant[
Jul 1 05:59:08 hostname wpa_supplicant[
Jul 1 05:59:19 hostname wpa_supplicant[
Jul 1 05:59:24 hostname wpa_supplicant[
Jul 1 05:59:35 hostname wpa_supplicant[
Jul 1 05:59:41 hostname wpa_supplicant[
Jul 1 05:59:41 hostname wpa_supplicant[
Jul 1 05:59:41 hostname wpa_supplicant[
Jul 1 05:59:41 hostname wpa_supplicant[
Jul 1 05:59:41 hostname wpa_supplicant[
Jul 1 06:00:01 hostname wpa_supplicant[
Jul 1 06:00:01 hostname wpa_supplicant[
Jul 1 06:00:01 hostname wpa_supplicant[
Jul 1 06:00:02 hostname wpa_supplicant[
Jul 1 06:00:02 hostname wpa_supplicant[
Jul 1 06:00:02 hostname wpa_supplicant[
Jul 1 06:00:33 hostname wpa_supplicant[
Jul 1 06:00:33 hostname wpa_supplicant[
Jul 1 06:00:33 hostname wpa_supplicant[
Jul 1 06:00:34 hostname wpa_supplicant[
Jul 1 06:00:34 hostname wpa_supplicant[
Jul 1 06:01:35 hostname wpa_supplicant[
Jul 1 06:01:35 hostname wpa_supplicant[
Jul 1 06:01:35 hostname wpa_supplicant[
Jul 1 06:01:35 hostname wpa_supplicant[
Jul 1 06:01:35 hostname wpa_supplicant[
Jul 1 06:01:35 hostname wpa_supplicant[
Jul 1 06:01:35 hostname wpa_supplicant[
Jul 1 06:01:35 hostname wpa_supplicant[
Jul 1 06:01:35 hostname systemd-
Jul 1 06:01:35 hostname systemd-
Jul 1 06:01:35 hostname systemd-
Jul 1 06:01:35 hostname systemd-
Jul 1 06:01:36 hostname systemd-
Jul 1 06:01:56 hostname wpa_supplicant[
As requested, here is the output of the dmesg [...] command:
[ 0.000000] efi: UEFI not found.
[ 0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.
[ 0.000000] Root IRQ handler: bcm2836_
[ 0.016466] CPU features: emulated: Privileged Access Never (PAN) using TTBR0_EL1 switching
[ 0.097215] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[ 0.108826] bcm2835-mbox 3f00b880.mailbox: mailbox enabled
[ 0.132583] raspberrypi-
[ 0.136607] raspberrypi-
[ 0.199061] bcm2835-dma 3f007000.dma: DMA legacy API manager, dmachans=0x1
[ 0.207253] usbcore: registered new interface driver usbfs
[ 0.207346] usbcore: registered new interface driver hub
[ 0.207432] usbcore: registered new device driver usb
[ 0.212772] clocksource: Switched to clocksource arch_sys_counter
[ 0.491937] bcm2708_fb soc:fb: FB found 1 display(s)
[ 0.505932] Console: switching to colour frame buffer device 90x30
[ 0.511381] bcm2708_fb soc:fb: Registered framebuffer for display 0, size 720x480
[ 0.618466] bcm2835-rng 3f104000.rng: hwrng registered
[ 0.646570] usbcore: registered new interface driver lan78xx
[ 0.646649] usbcore: registered new interface driver smsc95xx
[ 1.299788] ima: No TPM chip found, activating TPM-bypass!
[ 1.299894] ima: No architecture policies found
[ 1.312016] uart-pl011 3f201000.serial: cts_event_
[ 1.315170] bcm2835-aux-uart 3f215040.serial: there is not valid maps for state default
[ 1.319465] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[ 1.319920] bcm2835-power bcm2835-power: Broadcom BCM2835 power domains driver
[ 1.321824] mmc-bcm2835 3f300000.mmcnr: mmc_debug:0 mmc_debug2:0
[ 1.321843] mmc-bcm2835 3f300000.mmcnr: DMA channel allocated
[ 1.417583] mmc0: sdhost-bcm2835 loaded - DMA enabled (>1)
[ 1.462207] Checked W+X mappings: passed, no W+X pages found
[ 1.483027] mmc0: host does not support reading read-only switch, assuming write-enable
[ 2.710425] usb_phy_generic phy: supply vcc not found, using dummy regulator
[ 3.367020] dwc2 3f980000.usb: supply vusb_d not found, using dummy regulator
[ 3.367280] dwc2 3f980000.usb: supply vusb_a not found, using dummy regulator
[ 3.576930] dwc2 3f980000.usb: EPs: 8, dedicated fifos, 4080 entries in SPRAM
[ 3.577365] dwc2 3f980000.usb: DWC OTG Controller
[ 3.577409] dwc2 3f980000.usb: new USB bus registered, assigned bus number 1
[ 3.577473] dwc2 3f980000.usb: irq 51, io mem 0x3f980000
[ 3.577984] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.15
[ 3.578010] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 3.578030] usb usb1: Product: DWC OTG Controller
[ 3.578047] usb usb1: Manufacturer: Linux 5.15.0-1011-raspi dwc2_hsotg
[ 3.578065] usb usb1: SerialNumber: 3f980000.usb
[ 3.579009] hub 1-0:1.0: USB hub found
[ 11.597140] systemd[1]: Listening on multipathd control socket.
[ 11.705318] systemd[1]: Starting Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling...
[ 11.736280] systemd[1]: Condition check resulted in OpenVSwitch configuration for cleanup being skipped.
[ 11.885961] EXT4-fs (mmcblk0p2): re-mounted. Opts: discard,
[ 11.941983] systemd[1]: Starting Device-Mapper Multipath Device Controller...
[ 11.995079] systemd[1]: Finished Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling.
[ 14.092651] bcm2835_
[ 14.212821] gpiomem-bcm2835 3f200000.gpiomem: Initialised: Registers at 0x3f200000
[ 14.258104] snd_bcm2835: module is from the staging directory, the quality is unknown, you have been warned.
[ 14.259910] bcm2835_audio bcm2835_audio: there is not valid maps for state default
[ 14.279735] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[ 14.295680] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[ 14.300502] bcm2835_v4l2: module is from the staging directory, the quality is unknown, you have been warned.
[ 14.311135] bcm2835_isp: module is from the staging directory, the quality is unknown, you have been warned.
[ 14.314184] bcm2835_codec: module is from the staging directory, the quality is unknown, you have been warned.
[ 14.353470] bcm2835-codec bcm2835-codec: Device registered as /dev/video10
[ 14.353634] bcm2835-codec bcm2835-codec: Loaded V4L2 decode
[ 14.362602] bcm2835-isp bcm2835-isp: Device node output[0] registered as /dev/video13
[ 14.363124] bcm2835-isp bcm2835-isp: Device node capture[0] registered as /dev/video14
[ 14.363723] bcm2835-isp bcm2835-isp: Device node capture[1] registered as /dev/video15
[ 14.363842] bcm2835-codec bcm2835-codec: Device registered as /dev/video11
[ 14.363887] bcm2835-codec bcm2835-codec: Loaded V4L2 encode
[ 14.364718] bcm2835-isp bcm2835-isp: Device node stats[2] registered as /dev/video16
[ 14.367059] bcm2835-isp bcm2835-isp: Register output node 0 with media controller
[ 14.367113] bcm2835-isp bcm2835-isp: Register capture node 1 with media controller
[ 14.367131] bcm2835-isp bcm2835-isp: Register capture node 2 with media controller
[ 14.367148] bcm2835-isp bcm2835-isp: Register capture node 3 with media controller
[ 14.372134] bcm2835-codec bcm2835-codec: Device registered as /dev/video12
[ 14.372216] bcm2835-codec bcm2835-codec: Loaded V4L2 isp
[ 14.374994] bcm2835-isp bcm2835-isp: Device node output[0] registered as /dev/video20
[ 14.375413] bcm2835-isp bcm2835-isp: Device node capture[0] registered as /dev/video21
[ 14.375786] bcm2835-isp bcm2835-isp: Device node capture[1] registered as /dev/video22
[ 14.376092] bcm2835-isp bcm2835-isp: Device node stats[2] registered as /dev/video23
[ 14.376124] bcm2835-isp bcm2835-isp: Register output node 0 with media controller
[ 14.376146] bcm2835-isp bcm2835-isp: Register capture node 1 with media controller
[ 14.376162] bcm2835-isp bcm2835-isp: Register capture node 2 with media controller
[ 14.376179] bcm2835-isp bcm2835-isp: Register capture node 3 with media controller
[ 14.377760] bcm2835-isp bcm2835-isp: Loaded V4L2 bcm2835-isp
[ 14.379166] bcm2835-codec bcm2835-codec: Device registered as /dev/video18
[ 14.379256] bcm2835-codec bcm2835-codec: Loaded V4L2 image_fx
[ 14.388362] bcm2835-codec bcm2835-codec: Device registered as /dev/video31
[ 14.388439] bcm2835-codec bcm2835-codec: Loaded V4L2 encode_image
[ 14.651230] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 14.663096] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 14.793328] brcmfmac: F1 signature read @0x18000000=
[ 14.823638] brcmfmac: brcmf_fw_
[ 14.824622] usbcore: registered new interface driver brcmfmac
[ 15.005682] brcmfmac: brcmf_fw_
[ 15.046178] brcmfmac: brcmf_c_
[ 17.127031] brcmfmac: brcmf_cfg80211_
[ 18.542276] IPv6: ADDRCONF(
I don't know why it worked better just after having manually installed the firmware files and then stopped working.
Should I report the bug now or we keep investigating here and I will report it when we know more about it?
Thanks again!
Revision history for this message
|
#14 |
There are two different issues.
The first one is the missing firmware. I guess that is sufficiently confirmed that a bug report can be created.
Note: A web search shows that there are two different versions (9.88.4.65 and 9.88.4.77), and the newer one did not correctly work.
https:/
https:/
The other problem (and the more severe for you) is that the WLAN connection is unstable.
I am already running out of ideas.
https:/
recommends tweaking voltage settings. Have you already tried that?
Revision history for this message
|
#15 |
Thanks again for your help!
I read the tickets you pointed with my poor level of knowledge regarding kernel and firmware.
I understand that the version 65 is right and the version 77 is buggy. But as far as I know, I am running the version 65 according to this line in the dmesg output:
[ 30.080351] brcmfmac: brcmf_c_
As far as I understand, I am not impacted by this issue, and you seem to agree.
I am going to report this firmware loading (caused by missing files) issue.
The issue 23 affects only the devices using the BCM43430/2 Wi-Fi chipset. My two Raspberry Pi Zero 2 W both have this chipset (according to this comment https:/
I just tried to set over_voltage to 2 and boot the device in my garden. It is is not reachable through the network, it also did not push any measure (should do that every minute). over_voltage does not seem to change anything. Before putting it in the garden, I booted it inside the house and it started normally.
I don't really know why this worked yesterday just after having manually added the missing firmware files.
Thanks again.
Revision history for this message
|
#16 |
I kept investigating this issue which is quite annoying. After more search, I found finally how to install Ubuntu 21.10 on my device. It is no longer proposed by Pi Imager but I could do that by downloading the Ubuntu 21.10 Raspberry Pi image and install it with Pi Imager from this file. This enabled me to discover that the Wi-Fi connection does not work better using Ubuntu 21.10.
I guessed that this issue could be due to the upgrade to Ubuntu 22.04 since the network became unstable nearly at the same time I upgraded. It now sounds like it is not the case.
This makes me thing that the cause of the issue is not probably a software regression but rather an environment change between the Wi-Fi access point and the device that could cause some interference. I don't think this is due to an hardware issue because I tried with another Raspberry Pi Zero 2W and I got the exactly same behavior. Between the access point and the device there is the house garage in which many things are stored, I am going to try to move metallic objects to see whether it changes anything or not. I also added recently another electric device (an electrical fence power) inside the waterproof box in which the Raspberry Pi is, it could generate some electromagnetic interference but it is working only during the night and the fact it is on or off does seem to change anything to this issue.
But there is still something I don't understand. When the device boots, the network works for a given duration between a few seconds and multiple hours (I can see that in the router monitoring interface). But at some point, the connection is lost and it is no longer able to connect again. This is quite strange and makes me think that there may be an hardware or software issue. Otherwise, why would the connection get back when I reboot? That's difficult to believe that I am lucky enough to boot the device just at the time the interference lowers.
Note that I am also going to answer to the associated bug in which I was asked to try some things (firmware update for instance) that does not seem to solve the issue.
Revision history for this message
|
#17 |
If nothing else helps solving your problem, then I could imagine trying some "hacks" as a workaround (if possible at all).
My idea is periodically (e.g. once every few minutes) running a job to
check whether network connection is available (e.g. with ping, curl or wget)
If network is unreachable, then restart networking
The tricky thing will be finding steps to bring the network back into function (if possible).
My first suggestion would be unloading and reloading the brcmfmac kernel module.
Revision history for this message
|
#18 |
Thanks Manfred for your answer. Indeed, this could be a solution, but that's a very dirty workaround.
I spent some time last week to improve the weather station, and since I did that the Wi-Fi connection is working normally (as it used to work).
I did multiple things:
- Add a new sensor (listen change events on a GPIO pin)
- Improve the software I wrote (I mainly improved its performance by making the recovery mechanism - that recovers the records that could not be sent because of network errors for instance - work less but smarter)
- Bring back the Raspberry Pi to inside the house to get it connected to the network (to be able to update the software)
After one week, the Wi-Fi connection is still working fine. I am very happy, but I still don't know why I got this issue. In the case it appears again, I will not know what to do to fix it, and that's not great.
It appears this has nothing to do with Ubuntu 22.04, sorry for having suspected it. It stopped working nearly at the same time as I upgraded the device and nothing in my investigation could prove that it did not come from Ubuntu (until I could reinstall Ubuntu 21.10 and see that it did no longer work).
Once again, thanks Manfred for your help! You learned me multiple things regarding the way the system loads Wi-Fi firmware.
Regarding the bug I created for the missing firmware file, it appears that this error message is not very important because it defaults to the right driver. Fixing this issue would not change the firmware used, but that would be nice to avoid having a "not important" error message in the kernel boot logs.