Posts by Synerworks

    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:

    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.

    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.