diff --git a/packages/linux-firmware/kernel-firmware/package.mk b/packages/linux-firmware/kernel-firmware/package.mk index d9078b8a86..596093cd58 100644 --- a/packages/linux-firmware/kernel-firmware/package.mk +++ b/packages/linux-firmware/kernel-firmware/package.mk @@ -24,6 +24,7 @@ PKG_LICENSE="other" PKG_SITE="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/" PKG_URL="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/snapshot/$PKG_VERSION.tar.gz" PKG_SOURCE_DIR="$PKG_VERSION" +PKG_NEED_UNPACK="${PROJECT_DIR}/${PROJECT}/packages/${PKG_NAME} ${PROJECT_DIR}/${PROJECT}/devices/${DEVICE}/packages/${PKG_NAME}" PKG_DEPENDS_TARGET="toolchain" PKG_SECTION="linux-firmware" PKG_SHORTDESC="kernel-firmware: kernel related firmware" @@ -34,9 +35,11 @@ PKG_TOOLCHAIN="manual" makeinstall_target() { FW_TARGET_DIR=$INSTALL/$(get_full_firmware_dir) - FW_LISTS="${PKG_DIR}/firmwares/any.dat ${PKG_DIR}/firmwares/${TARGET_ARCH}.dat" - FW_LISTS+=" ${PROJECT_DIR}/${PROJECT}/${PKG_NAME}/firmwares/any.dat" - [ -n "${DEVICE}" ] && FW_LISTS+=" ${PROJECT_DIR}/${PROJECT}/devices/${DEVICE}/${PKG_NAME}/firmwares/any.dat" + if find_file_path firmwares/kernel-firmware.dat; then + FW_LISTS="${FOUND_FILE}" + else + FW_LISTS="${PKG_DIR}/firmwares/any.dat ${PKG_DIR}/firmwares/${TARGET_ARCH}.dat" + fi for fwlist in ${FW_LISTS}; do [ -f ${fwlist} ] || continue @@ -59,7 +62,10 @@ makeinstall_target() { done < ${fwlist} done - # The following file is installed by brcmfmac_sdio-firmware-rpi + # The following files are RPi specific and installed by brcmfmac_sdio-firmware-rpi instead rm -fr $FW_TARGET_DIR/brcm/brcmfmac43430*-sdio.bin rm -fr $FW_TARGET_DIR/brcm/brcmfmac43455*-sdio.bin + + # Cleanup - which may be project or device specific + find_file_path scripts/cleanup.sh && ${FOUND_PATH} ${FW_TARGET_DIR} || true }