New Raspberry Pi 400

Great! Glad to heard all of my time yesterday was not wasted. I now have to put my thinking hat on and figure out how to redo some packages. The main issue is the linux-firmware package. We do not maintain it but we do not want outdated firmware for the pi wifi either. It may also be needed for some monitors and maybe other things at the same time.

If you have bluetooth headphones create this file. This should fix another issue in another thread.

sudo nano /usr/share/alsa/cards/RPi-WM8804.conf

<confdir:pcm/iec958.conf>
RPi-WM8804.pcm.iec958.0 {
    @args [ CARD AES0 AES1 AES2 AES3 ]
    @args.CARD {
        type string
    }
    @args.AES0 {
        type integer
    }
    @args.AES1 {
        type integer
    }
    @args.AES2 {
        type integer
    }
    @args.AES3 {
        type integer
    }
    type hooks
    slave.pcm {
        type hw
        card $CARD
    }
}

I found the alsa config file already there.

OK. I did not know that.

I received my pi 400 DEV unit and some bluetooth headphones. For those who do not have the wifi and bluetooth working by now in a nutshell here is what to do for the pi400 for wifi and bluetooth and will keep you in step when the upgraded packages make it down to the testing and stable branches:

Switch to the unstable branch if you are not there:

sudo systemctl disable brcm43438.service
sudo pacman -S firmware-raspberrypi            #Installs new firmware for the pi400
sudo pacman -S -dd brcm-patchram-plus-pi400    #Install bluetooth service for the pi400
sudo systemctl enable attach-bluetooth-pi400.service

I did a test on my pi400 using my bluetooth headphones and it worked good.

4 Likes

I followed your instructions and did a reboot.
It works like a charm.
Thank you very much Darksky

1 Like

Hey there,

I have the same issue here on 20.10 xcfe and PI 400. Tried to follow the steps, but couldn’t download the drivers with the given link above. They are not available anymore.

Is there any updated image with the right set of driver for the raspberry?

Thanks a lot!

okay, Bluetooth is working now (thanks to Darksky).

sudo systemctl disable brcm43438.service
sudo pacman -S firmware-raspberrypi            #Installs new firmware for the pi400
sudo pacman -S -dd brcm-patchram-plus-pi400    #Install bluetooth service for the pi400
sudo systemctl enable attach-bluetooth-pi400.service 

But wifi is still missing. I even copied the files from the raspberry OS image to the folders named in the post above, but couldn’t get it run.

I will keep trying.

1 Like

The pi 400 wifi firmware is in the firmware-raspberrypi 6-1.4 package which you should have installed. With it installed the wifi should show up on reboot.

Thanks for your reply. I’ve 6-1.4 installed.
Honestly I need to admit that I’m new to manjaro and not very common to linux at all.

So I probably expected to see some kind of wifi utility/wizard in the taskbar, which scans and displays every wifi nearby.

After adding a wifi connection “manually”, it works fine! (Settings->Advanced Network Configurations).

I’m just a stupid beginner. Sorry bothering you.
Anyway I really like manjaro!

Take care!
Pille

Network Manager should be on the taskbar.

EDIT: firmware-raspberrypi-6-1.5 breaks wifi. revert back to 6-1.4

I’m on a raspberry pi 400 running Manjaro sway. I’m completely up to date on the unstable branch, and I followed the steps suggested to try and get wifi up…

sudo systemctl disable brcm43438.service
sudo pacman -S firmware-raspberrypi            #Installs new firmware for the pi400
sudo pacman -S -dd brcm-patchram-plus-pi400    #Install bluetooth service for the pi400
sudo systemctl enable attach-bluetooth-pi400.service 

But to no avail. On reboot systemctl reports that attach-bluetooth-pi400.service was loaded, but under active and sub they both say failed. And for what it’s worth, a wlan0 device isn’t showing when I run ip -a. I also do have bcm2711-rpi-400.dtb in /boot (but it is not being pointed at directly in config.txt). Any suggestions?

See Significant wifi speed increase with latest firmware - #4 by popsulfr (aka my fault :stuck_out_tongue: )

Basically do

$ sudo mkdir -p /usr/lib/firmware/updates
$ sudo ln -s ../bcm/brcm /usr/lib/firmware/updates/brcm

and it should all work again.

1 Like

Actually the method above was used initially after transitioning from the pi-bluetooth package to the brcm-patchram-plus because of scratchy bluetooth headphone audio. At the time the pi 400 and the pi3b had to have manual intervention to have bluetooth.

Since then @Strit built a script that will automatically load the right bluetooth firmware for the right board at boot with the brcm-patchram-plus package.

bluetooth-script

These packages will be removed from the repo as they will not be used anymore:

pi-bluetooth
brcm-patchram-plus-pi3
brcm-patchram-plus-pi400

You really need to convert over to the brcm-patchram-plus package:

sudo rm -r /usr/lib/firmware/updates   # Removes the directory and link you just made
sudo systemctl disable attach-bluetooth-pi400.service
sudo pacman -S brcm-patchram-plus firmware-raspberrypi
sudo systemctl enable attach-bluetooth.service
sudo reboot

Without the symlink wifi is broken.

It will be if you are using the brcm-patchram-plus-pi400 package. Need to convert over to the brcm-patchram-plus package.

I am using brcm-patchram-plus. The wifi firmware is loaded independently from the bluetooth and the kernel doesn’t know to look into /usr/lib/firmware/bcm/brcm.

Let me boot my pi 400 up and look. I was only checking for bluetooth yesterday. I might put the wifi firmware back in firmware/updates then if that is the case. I will have to think on it. The RPi people evidently does their own linux-firmware package. I can not dump the latest pi’s firmware in firmware like they do as there will be a conflict. But at the same time the linux-firmware has some different firmware with the same name and different md5sums that gets picked up first in /firmware/brcm as some one reported on the forum.

Well I am confused as everything is working here:

I am also confused lol I checked multiple times to make sure.

Dec 15 01:20:35 rpi400 kernel: brcm-pcie fd500000.pcie: host bridge /scb/pcie@7d500000 ranges:
Dec 15 01:20:35 rpi400 kernel: brcm-pcie fd500000.pcie:   No bus range found for /scb/pcie@7d500000, using [bus 00-ff]
Dec 15 01:20:35 rpi400 kernel: brcm-pcie fd500000.pcie:      MEM 0x0600000000..0x063fffffff -> 0x00c0000000
Dec 15 01:20:35 rpi400 kernel: brcm-pcie fd500000.pcie:   IB MEM 0x0000000000..0x00ffffffff -> 0x0400000000
Dec 15 01:20:35 rpi400 kernel: brcm-pcie fd500000.pcie: link up, 5.0 GT/s PCIe x1 (SSC)
Dec 15 01:20:35 rpi400 kernel: brcm-pcie fd500000.pcie: PCI host bridge to bus 0000:00
Dec 15 01:20:36 rpi400 kernel: brcmstb-i2c fef04500.i2c:  @97500hz registered in polling mode
Dec 15 01:20:36 rpi400 kernel: brcmstb-i2c fef09500.i2c:  @97500hz registered in polling mode
Dec 15 01:20:36 rpi400 kernel: brcmfmac: F1 signature read @0x18000000=0x15294345
Dec 15 01:20:36 rpi400 kernel: brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43456-sdio for chip BCM4345/9
Dec 15 01:20:36 rpi400 kernel: usbcore: registered new interface driver brcmfmac
Dec 15 01:20:36 rpi400 kernel: brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43456-sdio.bin failed with error -2
Dec 15 01:20:37 rpi400 kernel: brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50

The firmware load of brcm/brcmfmac43456-sdio.bin fails for me. wlan0 is completely missing for me

$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
    link/ether dc:a6:32:e0:9e:2f brd ff:ff:ff:ff:ff:ff

Are you sure you don’t have any firmware overrides in your /usr/lib/firmware/brcm ?

Currently installed version of linux-firmware :

local/linux-firmware 20201120.bc9cd0b-1
    Firmware files for Linux

After looking that is exactly what happened. I do not remember ever doing it. I wiped the directory and reinstalled the linux-firmware and the pi400 *43456* firmware was not there.

Looking like all of my work yesterday is down the drain and so far I can not see how to over ride linux-firmware installl with it’s pi firmware with different md5sums with out maintaining the linux-firmware package myself.