WiFi no longer works

I updated on Pinebook Pro and now WiFi no longer works

Hm, we didn’t change anything in the wifi setup for the older Pinebook Pro batches.

Can you post the output of dmesg | grep brcm please.

After updating the output was blank but after reverting to stable the output was:

[waddon1@Iridium ~]$ dmesg | grep brcm
[    8.000568] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43456-sdio for chip BCM4345/9
[    8.001926] usbcore: registered new interface driver brcmfmac
[    8.008891] brcmfmac mmc0:0001:1: Direct firmware load for brcm/brcmfmac43456-sdio.pine64,pinebook-pro.bin failed with error -2
[    8.138416] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43456-sdio for chip BCM4345/9
[    8.150815] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/9 wl0: Feb 11 2020 11:54:51 version 7.45.96.61 (be7af2d@shgit) (r745790) FWID 01-a41d86bd es7.c5.n4.a3
[    8.718106] Bluetooth: hci0: BCM4345C5 'brcm/BCM4345C5.hcd' Patch

If the output is blank, then the wifi hardware does not exist. If it was a software issue, it would have complained about a missing .txt file.

My wireless on my PBP still works fine with the latest testing update (…well after the initial reboot after the update it would not find the wifi network…but a second reboot and since it has been fine). It must be something more specific…

WiFi and bluetooth work fine on stable branch

Tried connecting via usb to my phone and using network through that which usually works. But network connections are not working at all.

Battery information also is not working

This sounds like your system is not loading any kernel modules.

What’s the output of lsblk?

[waddon1@Iridium ~]$ lsblk
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
mmcblk2      179:0    0  58.2G  0 disk
├─mmcblk2p1  179:1    0 213.6M  0 part
└─mmcblk2p2  179:2    0    58G  0 part /
mmcblk2boot0 179:32   0     4M  1 disk
mmcblk2boot1 179:64   0     4M  1 disk

This explains it. Your boot partition is not mounted. Please add this to your /etc/fstab file above the bottom line.

LABEL=BOOT_MNJRO  /boot   vfat    defaults,noexec,nodev,showexec    0   0

And replace LABEL=BOOT_MNJRO with the output of:

lsblk -o NAME,PARTUUID | grep mmcblk2p1 | awk '{print $2}'

like this:

PARTUUID=<output> /boot   vfat    defaults,noexec,nodev,showexec    0   0

And reboot.

It still doesn’t appear to be working. Boot is definitely being mounted but networking is still not functional

You likely need to re-install the kernel now to update the files on the boot partition.

sudo pacman -Syu linux

All seems to be working again now. Any idea why this happened? I was able to reliably reproduce after multiple reinstalls of the OS.

I’m not sure why, but I think I know what happened.

The /boot partition somehow got removed from your /etc/fstab, which results in it not being mounted at boot.

But the firmware (u-boot) still boots the kernel from the first partition it sees, if it’s mounted or not, so it would still load the kernel.

Then when you update the kernel package, it places new files in /boot. In your case it still was not mounted, so it just got placed in the folders. So the new kernel files are in /boot, while the first partition (the boot partition) has old files.

So u-boot boots the old kernel binary from the first partition and then tries to look in /usr/lib/modules/<old-kernver> for the modules that go with it. But since it looks for modules from the old kernel, those no longer exists as there is now only /usr/lib/modules/<new-kernver> available after the update. So it fails to load the modules, like wifi/bt, battery and many others.

By adding the boot partition to /etc/fstab again, you make sure that the kernel that gets loaded, is the same as the one in /usr/lib/modules/<old-kernver>, so modules can load.

1 Like

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