From f3ecec38aa8ae4137b1a0e11b925d0e736e8ffda Mon Sep 17 00:00:00 2001 From: "Peter A. Bigot" Date: Thu, 10 May 2018 19:33:45 -0500 Subject: linux-firmware: restore and merge bluez-firmware The attempt to Raspbian updated firmware blobs in packages separate from linux-firmware introduced unresolvable conflicts with the standard linux-firmware roll-up package. Revert to using an augmented linux-firmware recipe that overrides and adds firmware from two Raspbian repositories that have up-to-date images. Closes #244 Signed-off-by: Peter A. Bigot --- .../linux-firmware/linux-firmware-raspbian.bb | 55 ---------------- .../linux-firmware/linux-firmware_%.bbappend | 77 ++++++++++++++++++++++ 2 files changed, 77 insertions(+), 55 deletions(-) delete mode 100644 recipes-kernel/linux-firmware/linux-firmware-raspbian.bb create mode 100644 recipes-kernel/linux-firmware/linux-firmware_%.bbappend (limited to 'recipes-kernel') diff --git a/recipes-kernel/linux-firmware/linux-firmware-raspbian.bb b/recipes-kernel/linux-firmware/linux-firmware-raspbian.bb deleted file mode 100644 index d11a53b..0000000 --- a/recipes-kernel/linux-firmware/linux-firmware-raspbian.bb +++ /dev/null @@ -1,55 +0,0 @@ -SUMMARY = "Firmware files for use with Linux kernel" -SECTION = "kernel" - -LICENSE = "Firmware-broadcom_bcm43xx" - -LIC_FILES_CHKSUM = "file://LICENCE.broadcom_bcm43xx;md5=3160c14df7228891b868060e1951dfbc" - -INHIBIT_DEFAULT_DEPS = "1" - -# These are not common licenses, set NO_GENERIC_LICENSE for them -# so that the license files will be copied from fetched source -NO_GENERIC_LICENSE[Firmware-broadcom_bcm43xx] = "LICENCE.broadcom_bcm43xx" - -SRCREV = "86e88fbf0345da49555d0ec34c80b4fbae7d0cd3" -PV = "0.0+git${SRCPV}" - -SRC_URI = "git://github.com/RPi-Distro/firmware-nonfree" - -UPSTREAM_VERSION_UNKNOWN = "1" - -S = "${WORKDIR}/git" - -inherit allarch - -CLEANBROKEN = "1" - -do_compile() { - : -} - -do_install() { - install -d ${D}${nonarch_base_libdir}/firmware/brcm - cp ./LICENCE.broadcom_bcm43xx ${D}${nonarch_base_libdir}/firmware - cp -r ./brcm/brcmfmac43430* ${D}${nonarch_base_libdir}/firmware/brcm - cp -r ./brcm/brcmfmac43455* ${D}${nonarch_base_libdir}/firmware/brcm -} - -PACKAGES = " \ - ${PN}-broadcom-license \ - ${PN}-bcm43430 \ - ${PN}-bcm43455 \ - " - -LICENSE_${PN}-bcm43430 = "Firmware-broadcom_bcm43xx" -LICENSE_${PN}-bcm43455 = "Firmware-broadcom_bcm43xx" -LICENSE_${PN}-broadcom-license = "Firmware-broadcom_bcm43xx" -FILES_${PN}-broadcom-license = "${nonarch_base_libdir}/firmware/LICENCE.broadcom_bcm43xx" -FILES_${PN}-bcm43430 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430*" -FILES_${PN}-bcm43455 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43455*" -RDEPENDS_${PN}-bcm43430 += "${PN}-broadcom-license" -RDEPENDS_${PN}-bcm43455 += "${PN}-broadcom-license" - -# Firmware files are generally not ran on the CPU, so they can be -# allarch despite being architecture specific -INSANE_SKIP = "arch" diff --git a/recipes-kernel/linux-firmware/linux-firmware_%.bbappend b/recipes-kernel/linux-firmware/linux-firmware_%.bbappend new file mode 100644 index 0000000..34d2b67 --- /dev/null +++ b/recipes-kernel/linux-firmware/linux-firmware_%.bbappend @@ -0,0 +1,77 @@ +# Augments upstream linux-firmware with additional and updated images +# from Raspbian: +# https://github.com/RPi-Distro/firmware-nonfree +# https://github.com/RPi-Distro/bluez-firmware + +LICENSE_append_rpi = "\ + & Firmware-cypress \ +" + +LIC_FILES_CHKSUM_append_rpi = "\ + file://LICENCE.cypress;md5=cbc5f665d04f741f1e006d2096236ba7 \ +" +NO_GENERIC_LICENSE[Firmware-cypress] = "LICENCE.cypress" + +SRC_URI_append_rpi = " \ + git://github.com/RPi-Distro/firmware-nonfree;destsuffix=raspbian-nf;name=raspbian-nf \ + git://github.com/RPi-Distro/bluez-firmware;destsuffix=raspbian-bluez;name=raspbian-bluez \ +" + +SRCREV_raspbian-nf = "86e88fbf0345da49555d0ec34c80b4fbae7d0cd3" +SRCREV_raspbian-bluez = "e28cd7ee8615de33aa7ec2b41d556af61a4a2707" +SRCREV_FORMAT_rpi = "default+raspbian-nf+raspbian-bluez" + +do_install_append_rpi() { + install -d ${D}${nonarch_base_libdir}/firmware/brcm/ + + # Replace outdated linux-firmware files with updated ones from + # raspbian firmware-nonfree. Raspbian adds blobs and nvram + # definitions that are also necessary so copy those too. + for fw in brcmfmac43430-sdio brcmfmac43455-sdio ; do + install -m 0644 ${WORKDIR}/raspbian-nf/brcm/${fw}.* ${D}${nonarch_base_libdir}/firmware/brcm/ + done + + # Add missing Cypress Bluetooth files from raspbian bluez-firmware + for fw in BCM43430A1.hcd BCM4345C0.hcd ; do + install -m 0644 ${WORKDIR}/raspbian-bluez/broadcom/${fw} ${D}${nonarch_base_libdir}/firmware/brcm/ + done +} + +# NB: Must prepend, else these become empty and their content is left in +# the roll-up package which precedes them. +PACKAGES_prepend_rpi = "\ + ${PN}-bcm43455 \ + ${PN}-cypress-license \ + ${PN}-bcm43430a1-hcd \ + ${PN}-bcm4345c0-hcd \ +" + +# For additional Broadcom +LICENSE_${PN}-bcm43455 = "Firmware-broadcom_bcm43xx" + +FILES_${PN}-bcm43430_append_rpi = " \ + ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt \ +" +FILES_${PN}-bcm43455 = " \ + ${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.* \ +" + +RDEPENDS_${PN}-bcm43455 += "${PN}-broadcom-license" + +# For additional Cypress +FILES_${PN}-cypress-license = "\ + ${nonarch_base_libdir}/firmware/LICENCE.cypress \ +" + +LICENSE_${PN}-bcm43430a1-hcd = "Firmware-cypress" +LICENSE_${PN}-bcm4345c0-hcd = "Firmware-cypress" + +FILES_${PN}-bcm43430a1-hcd = " \ + ${nonarch_base_libdir}/firmware/brcm/BCM43430A1.hcd \ +" +FILES_${PN}-bcm4345c0-hcd = " \ + ${nonarch_base_libdir}/firmware/brcm/BCM4345C0.hcd \ +" + +RDEPENDS_${PN}-bcm43430a1-hcd += "${PN}-cypress-license" +RDEPENDS_${PN}-bcm4345c0-hcd += "${PN}-cypress-license" -- cgit v1.2.3-54-g00ecf