Raspberry Pi Zero 2 W

  • I've just tried LibreELEC-RPi2.arm-11.0-nightly-20211210-7f19d9f.img and it won't boot, I just get the rainbow splash screen.

    LibreELEC-RPi2.arm-11.0-nightly-20211202-53a5e7f.img boots and seems to work apart from I have lots of issues with wifi dropping out and the LE settings not remembering the PSK. Is there a more stable nightly that anyone is using?

    From what I've read, this is basically a stripped down under-clocked RPi3. Would the stable LE9 work or is there some kind of hack we can do to get it working with this more stable code base?

  • Da Flex I can do that but for which bug! The latest I can't even boot from it so it's not going to be much to report. I've got the second most recent nightly, 20211207 working but I'm still seeing some packet loss and I can't even install TVHeadend for some reason.

    I'm going to try rpi OS to see if the wifi issue is hardware related.

  • Da Flex I can do that but for which bug! The latest I can't even boot from it so it's not going to be much to report. I've got the second most recent nightly, 20211207 working but I'm still seeing some packet loss and I can't even install TVHeadend for some reason.

    I'm going to try rpi OS to see if the wifi issue is hardware related.

    I only once tested LE on my pzw2 because I don't intend to use it for that purpose. I just tested for curiosity. However I can confirm that 20211207-6638105 (the only build I tested) has wifi issues. In fact many other distros also gave me wifi problems. Even raspbian buster gave me unusable wifi.

    So I don't think you have a hardware problem. I think in general support for pzw2 is just not ready due to supply issues. Developers don't own one yet.

  • Been running LE9 for a while on the Pi Zero 2 W, it is effectively a PI3 in a PI0 body, with a different chipid designated for the new silicon. While the BCM43430 wireless has been changed to BCM43436, it will operate pretty much the same as a Pi3B. If you are using a wired ethernet setup, not much is needed to do in order to get it working. If you are going to use a wireless setup, the posted BCM43436 firmware can be used to overwrite the BCM43430 firmware in the LE9 package.

    Grab both the posted LE9 and LE11 images for the Pi3 ...

    - https://releases.libreelec.tv/LibreELEC-RPi2.arm-9.2.8.img.gz

    - https://test.libreelec.tv/LibreELEC-RPi2…-7f19d9f.img.gz

    Create the images onto your SD cards so that you can copy the necessary files to get LE9 booting. This can either be done by replacing all the system files from the LE11 release being merged into the LE9 release or just the core components simply impacting the VCOS from booting due to the unfamiliar chipid.

    Minimal way:

    - Copy "bcm2710-rpi-3-b.dtb" the LE9 SD card to "bcm2710-rpi-zero-2.dtb".

    - Copy "fixup.dat" and "start.elf" from the LE11 SD card to the LE9 SD card.

    LE9 will boot and operate just like it does on the Pi3B, less wireless support since the BCM43436 firmware is missing in the package.

    Another way:

    - Copy to merge all the system files from the LE11 SD card over to the LE9 SD card, everything in the "overlays" folder, all the "*.dtb" files, "bootcode.bin", "fixup.dat", "start.elf" in the root directory since the latest drops contain the necessary components supporting the current chips.

    LE9 will now also work, less of course the wireless capabilities due to the firmware issue.

    To fix the wireless issue, the "SYSTEM" file from the LE9 SD card will need to be amended. The LE9 release recognizes the sister BCM43436 as a BCM43430 device, however the binary firmware to drive it is not present. Latest Linux kernels with the BCM43436 firmwares are correctly recognized and load their appropriate drivers, but the legacy LE9 kernel does not. No big deal, the BCM43430 firmware can be simply replaced with the BCM43436 firmware and repackaged.

    This process will require at least getting RaspiOS setup, then unpacking the squashfs "SYSTEM" file, copying the BCM43436 firmware files over the BCM43430 firmware files, and then repacking the squashfs "SYSTEM" file.

    This approach voids the md5 signature, obviously, but corrects the short-coming until a "refresh" of the LE9 is considered, if ever.

    For example:

    ##############################################

    # LibreELEC #

    # https://libreelec.tv #

    ##############################################

    LibreELEC (official): 9.2.8 (RPi2.arm)

    raspi02w:~ # dmesg

    [ 0.000000] Booting Linux on physical CPU 0x0

    [ 0.000000] Linux version 4.19.127 (jenkins@tsuboi) (gcc version 8.3.0 (GCC)) #1 SMP Tue Jul 6 19:08:28 CEST 2021

    [ 0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d

    [ 0.000000] CPU: div instructions available: patching division code

    [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache

    [ 0.000000] OF: fdt: Machine model: Raspberry Pi Zero 2 W Rev 1.0

    [ 0.000000] Memory policy: Data cache writealloc

    .....

    [ 7.122700] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/2

    [ 7.122962] usbcore: registered new interface driver brcmfmac

    [ 7.308994] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/2

    [ 7.309113] brcmfmac: brcmf_c_process_clm_blob: no clm_blob available (err=-2), device may have limited channels available

    [ 7.310568] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM43430/2 wl0: Oct 9 2020 14:44:32 version 9.88.4.65 (test) (f149b32@shgit) (r679549) FWID 01-f40f3270

    [ 7.876896] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready

    [ 7.876917] brcmfmac: brcmf_cfg80211_set_power_mgmt: power save enabled

    [ 8.678789] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready

    While the low memory footprint impacts the Pi Zero 2 W running on LE9, it behaves better than when it is running on the Pi Zero W by a mile.

  • FYI: there's no need to unsquash/update/squash SYSTEM to add/update wifi firmware, simply drop it in /storage/.config/firmware/brcm (you need to create that directory first) and reboot

    so long,

    Hias

  • Synerworks that's awesome! Thanks for the guide! I knew someone would've hacked together a working LE build for it. I got as far as the LE logo in my attempts earlier 😄

    Does the memory issue cause many problems? I only need it to act as a tvheadend client, so only watching live TV, do you think this will be a problem?

    trent

    Thanks for confirming the issue! I guess they are new and not exactly ideal for LE due to the lack of memory so there is no rush to get them supported. The pi hut in the UK has them in stock, limited to one per order though. I've got a spare one I'd be willing to donate if any Devs want to play drop me a pm 🙂

  • FYI: there's no need to unsquash/update/squash SYSTEM to add/update wifi firmware, simply drop it in /storage/.config/firmware/brcm (you need to create that directory first) and reboot

    so long,

    Hias

    While this approach is great for one-offs, I find cutting several images from the same template it would become tedious unless restoring from backups.

  • Synerworks  HiassofT You're both legends! Got it working and it works great so far!

    I'll see if I can summarise what I did to get it working as I was a bit confused by a couple of things:


    1. Download LE9: https://releases.libreelec.tv/…LEC-RPi2.arm-9.2.8.img.gz
    2. Download LE11 Nightly: https://test.libreelec.tv/Libr…y-20211210-7f19d9f.img.gz
    3. Copy "bcm2710-rpi-3-b.dtb" from the LIBREELEC partition on the LE11 SD card to the same partition on the LE9 SD but rename to "bcm2710-rpi-zero-2.dtb".
    4. Copy "fixup.dat" and "start.elf" from the LIBREELEC partition on the LE11 SD card to the same partition on the LE9 SD card, overwriting the existing files.


    Now this is where I had experiment a little as I wasn't quite sure what was going on in your screenshot Synerworks. I decided the method suggested by HiassofT was a bit easier than booting a RPi OS SD and setting up samba to get the files off.

    1. With the help of Linux installation insert the RPi OS and go to the mounted folder /media/.../rootfs/usr/lib/firmware/brcm and run this command: sudo mv brcmfmac43436-sdio.txt ~/brcmfmac43430-sdio.txt
    2. Then the other fw file needed: sudo mv brcmfmac43436-sdio.bin ~/brcmfmac43430-sdio.bin
    3. Then reinsert the LE9 SD Card and copy the two files over to /media/.../STORAGE/.config/firmware/brcm
    4. Boot and enjoy!
  • The earlier screenshot simply shows the differences on the squashfs based "SYSTEM" file from the original LE9 distribution and after being updated with the BCM43436 firmware when overwriting the BCM43430 .TXT and .BIN files, just what is required should be evident. This approach was meant to yield a more permanent solution when going forward as deploying LE9 on several SD cards for Pi Zero 2s without having to go through the same laborious process as discussed other than copying an updated SYSTEM file, one-and-done.

    The process can in fact be easier, without the added baggage of other components, using the actual LE9 SD media to get the job done. When the "SYSTEM" file is missing, LibreELEC will drop you to a shell prompt, all the necessary firmware preparations can be done from there.

    - Fetch the two BCM43436 files and put them directly on the newly created LE9 SD card including the changes as previously documented and then renaming them to "*43430*". For example at the GitHub repo https://github.com/RPi-Distro/fir…ree/buster/brcm

    - Boot the SD card in the Pi Zero 2 first so that the storage partition can at least be expanded.

    - Next, to get to the LE9 shell prompt, rename the "SYSTEM" file on the SD card to something else and power it up.

    - After the prompt, with the failure in booting message, the storage partition can be mounted, the required directories created, and firmware files copied over.

    - To complete the steps, the renamed "SYSTEM" file should be changed back so that LE9 can startup normally.

    Illustration as reference:

  • Synerworks that's awesome! Thanks for the guide! I knew someone would've hacked together a working LE build for it. I got as far as the LE logo in my attempts earlier 😄

    Does the memory issue cause many problems? I only need it to act as a tvheadend client, so only watching live TV, do you think this will be a problem?

    trent

    Thanks for confirming the issue! I guess they are new and not exactly ideal for LE due to the lack of memory so there is no rush to get them supported. The pi hut in the UK has them in stock, limited to one per order though. I've got a spare one I'd be willing to donate if any Devs want to play drop me a pm 🙂

    Running just the TVheadend client on LE8 would be better choice on the Pi Zero 2, the base in-use memory footprint is less than half that of LE9 so leaving enough to be reasonable. Plus LE11 is almost 1.5x that of LE8, so I would expect that the 512MB ceiling would certainly become a problem.

  • Running just the TVheadend client on LE8 would be better choice on the Pi Zero 2, the base in-use memory footprint is less than half that of LE9 so leaving enough to be reasonable. Plus LE11 is almost 1.5x that of LE8, so I would expect that the 512MB ceiling would certainly become a problem.

    Thanks for that info, I'll consider it if things don't go well with LE9. So far it's running nicely with only 30% memory usage. (100mb/339mb)

    The earlier screenshot simply shows the differences on the squashfs based

    Thanks for the explanation! That is indeed another way to get the job done. I was going to suggest fetching the files from the RPi Github but I had an already flashed SD with buster on it so I just used that. Your new method would require a Keyboard being attached as well which not everyone has.

    I've just created a base image of the RPi0-2 LE9 with the correct drivers and then I can just replicate that as needed.

  • Just managed to follow Synerworks latest post above successfully with one minor addition. I also copied brcmfmac43436-sdio.clm_blob into the /storage/.config/firmware/brcm folder (re-naming it brcmfmac43430-sdio.clm_blob) to remove a dmesg error.

    (I had previously associated this missing file with not getting any wireless network adapters detected, but I guess that must have been finger trouble elsewhere)

    Edited once, last by metaron (December 12, 2021 at 5:46 PM).

  • Just managed to follow Synerworks latest post above successfully with one minor addition. I also copied brcmfmac43436-sdio.clm_blob into the /storage/.config/firmware/brcm folder (re-naming it brcmfmac43430-sdio.clm_blob) to remove a dmesg error.

    (I had previously associated this missing file with not getting any wireless network adapters detected, but I guess that must have been finger trouble elsewhere)

    The clm_blob is not "essential" for getting wireless working, once the regulatory domain is set with the LibreELEC configuration tool, all is good. The correct "FIX" for the Pi Zero 2 would be to add the BCM43436 firmware to the LE9.2.8 build release and update "brcmfmac" to correctly identify it on loading. As I had pointed out, not likely to happen since LibreELEC has long moved on. Without another working cut, the applied approach still enables even the legacy LE7, LE8, and LE9 releases to be tested/used on the Pi Zero 2.

    As originally pointed out, I prefer to use the modified squashfs "SYSTEM" file for all legacy releases with the replaced firmware and put a ZIP archive together including the required VCOS components for simplicity. When needing to create the media with the LibreELEC.USB-SD.Creator, just unZIPing the changes to the card takes less than a second, no biggie, so it does not bother me whether a refresh ever occurs or not.

    ** OK, as suspected, stick with what is at hand ... https://github.com/LibreELEC/LibreELEC.tv/issues/5971

    Edited once, last by Synerworks: Got the facts. (December 12, 2021 at 11:45 PM).

  • Thanks for that info, I'll consider it if things don't go well with LE9. So far it's running nicely with only 30% memory usage. (100mb/339mb)

    Thanks for the explanation! That is indeed another way to get the job done. I was going to suggest fetching the files from the RPi Github but I had an already flashed SD with buster on it so I just used that. Your new method would require a Keyboard being attached as well which not everyone has.

    I've just created a base image of the RPi0-2 LE9 with the correct drivers and then I can just replicate that as needed.

    Knowing that the path forward on LE9 and earlier has come to an end, you may want to keep the changes persistent as you require. Re-doing the steps every time the cards are trashed, getting media built and setup for others, that are less tech savvy, is just a lot of work not needed every time. The patch to the squashfs "SYSTEM" file is much more easily manageable, without any further mistakes to cause unnecessary grief from manual typos. While it is fairly trivial when you work in a full development environment, with all the resources necessary to do the job, the corrections can be completed in just a few steps.

    I will simply have to assume that most people will not have much to work with other than their Pi Zero 2, or any other RPi model for that matter, so the steps needed to take over and above what has been discussed can be reused pretty much to re-cut the "SYSTEM" file.

    Any RPi with the "lite" version of RaspiOS can be used to temporarily make these changes. In addition, two components also need to be pre-fetched to add support to RaspiOS in order to work with squashfs, unless it has already been installed, plus, it does not need to be live on the network for any package updates nor additions, unless you want to.

    - As usual, RaspiOS can be obtained from: https://www.raspberrypi.com/software/operating-systems/ and should be installed as documented.
    - I, in this example, used: https://downloads.raspberrypi.org/raspios_lite_a…-armhf-lite.zip, but the desktop versions will work too, your choice.

    Use the imager tool to create the downloaded RaspiOS SD card. The compression library and squashfs-tools debian packages should also be downloaded and put on the RaspiOS SD card as well after it has been built but before booting so that it will be ready for use.

    - These packages can be obtained from the debian FTP repo and should be saved directly onto the newly created RaspiOS SD card:

    https://ftp.us.debian.org/debian/pool/main/l/lzo2/liblzo2-2_2.10-2_armhf.deb

    https://ftp.us.debian.org/debian/pool/main/s/squashfs-tools/squashfs-tools_4.4-2+deb11u1_armhf.deb

    Also copy from your LE9 SD card the two previously obtained BCM43436 firmware files renamed to "*43430*" and the "SYSTEM" file that you want modified onto the RaspiOS SD card. With all the pieces in place, boot it and login.

    Just a note, all further volatile operations should be done as "root".

    - Use the debian package manager to install the LZO compression library and squashfs-tools directly off the RaspiOS SD card.

    - Create a temporary folder to mount the squashfs "SYSTEM" file and mount it to extract the contents from it.

    - Copy all the read-only squashfs files from the temporary mount onto the storage volume of the RaspiOS SD card.

    - The squashFS "SYSTEM" file can then be unmounted and the wireless firmware files copied over.

    - Delete the original copy of the "SYSTEM" file from the RaspiOS SD card and then rebuild the squashfs "SYSTEM" file back onto the RaspiOS SD card by using the installed "mksquashfs" command.

    Lastly, run "sync" to make sure the RaspiOS SD card is fully written and then reboot. Remove the RaspiOS SD card and copy the updated "SYSTEM" file back onto your LE9 SD card and any further LibreELEC installations that you plan to use on Pi Zero 2s. Don't forget to include the VCOS components which are necessary to boot, as previously discussed.

  • Hello,

    really impressiv all the knowledge around in this forum.

    Sadly it won't work for me, followed the instructions from Morphy but failed to get Wifi working

    Checked with PI light OS, Wifi works, so ensured no issue of the chip.

    Is there a way to geht the tweaked Installation for the SD card to run it with the pi zero 2w?

    After 8 hours try and error i give up, but kearned mich about Linux commands, even to enable terminal in libreelc :)

    Kind regards

    Detlef