summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZoltan Boszormenyi <zboszor@gmail.com>2025-10-17 11:12:37 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2025-10-27 11:37:42 +0000
commite77f9b70911f514e977cf3916130a75cf5432fa0 (patch)
tree4388bf8df9a219bbf8b1da0308b55397235d7851
parentcdcd128aae02ee6edb051ea92ba7f4ccf091bbad (diff)
downloadpoky-e77f9b70911f514e977cf3916130a75cf5432fa0.tar.gz
linux-firmware: Fix removing unlicensed firmware if compression is used
If FIRMWARE_COMPRESSION is set, the newly added code to remove unlicensed firmware fails with: | Remove unlicensed firmware: acenic/tg1.bin | rm: cannot remove '.../work/all-oe-linux/linux-firmware/20250917/image/usr/lib/firmware/acenic/tg1.bin': No such file or directory This is because the code does not consider that the file may be compressed. Fix it by factoring out the code to construct the compressed file name suffix from do_install:append() into a python function and also use it for the actual file names listed in REMOVE_UNLICENSED. (From OE-Core rev: 79fc52e2d729bf30a901055a9864280d3055bbeb) (From OE-Core rev: ecfb4494a9bc23cb1b1532cff32d67d4384ded3e) Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-kernel/linux-firmware/linux-firmware_20251011.bb16
1 files changed, 10 insertions, 6 deletions
diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_20251011.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_20251011.bb
index a9e8935f93..bb40c68670 100644
--- a/meta/recipes-kernel/linux-firmware/linux-firmware_20251011.bb
+++ b/meta/recipes-kernel/linux-firmware/linux-firmware_20251011.bb
@@ -472,6 +472,14 @@ def fw_compr_suffix(d):
472 compr = 'zst' 472 compr = 'zst'
473 return '-' + compr 473 return '-' + compr
474 474
475def fw_compr_file_suffix(d):
476 compr = d.getVar('FIRMWARE_COMPRESSION')
477 if compr == '':
478 return ''
479 if compr == 'zstd':
480 compr = 'zst'
481 return '.' + compr
482
475do_compile() { 483do_compile() {
476 : 484 :
477} 485}
@@ -489,7 +497,7 @@ do_install() {
489 # Remove all unlicensed firmware 497 # Remove all unlicensed firmware
490 for file in ${REMOVE_UNLICENSED}; do 498 for file in ${REMOVE_UNLICENSED}; do
491 echo "Remove unlicensed firmware: $file" 499 echo "Remove unlicensed firmware: $file"
492 rm ${D}${nonarch_base_libdir}/firmware/$file 500 rm ${D}${nonarch_base_libdir}/firmware/$file${@fw_compr_file_suffix(d)}
493 path_to_file=$(dirname $file) 501 path_to_file=$(dirname $file)
494 while [ "${path_to_file}" != "." ]; do 502 while [ "${path_to_file}" != "." ]; do
495 num_files=$(ls -A1 ${D}${nonarch_base_libdir}/firmware/$path_to_file | wc -l) 503 num_files=$(ls -A1 ${D}${nonarch_base_libdir}/firmware/$path_to_file | wc -l)
@@ -1386,11 +1394,7 @@ FILES:${PN}-sd8897 = " \
1386do_install:append() { 1394do_install:append() {
1387 # The kernel 5.6.x driver still uses the old name, provide a symlink for 1395 # The kernel 5.6.x driver still uses the old name, provide a symlink for
1388 # older kernels 1396 # older kernels
1389 COMPR=$(echo ${@fw_compr_suffix(d)} | tr -d '-') 1397 ln -fs sdsd8997_combo_v4.bin${@fw_compr_file_suffix(d)} ${D}${nonarch_base_libdir}/firmware/mrvl/sd8997_uapsta.bin${@fw_compr_file_suffix(d)}
1390 if [ -n "$COMPR" ]; then
1391 COMPR=".$COMPR"
1392 fi
1393 ln -fs sdsd8997_combo_v4.bin$COMPR ${D}${nonarch_base_libdir}/firmware/mrvl/sd8997_uapsta.bin$COMPR
1394} 1398}
1395FILES:${PN}-sd8997 = " \ 1399FILES:${PN}-sd8997 = " \
1396 ${nonarch_base_libdir}/firmware/mrvl/sd8997_uapsta.bin* \ 1400 ${nonarch_base_libdir}/firmware/mrvl/sd8997_uapsta.bin* \