| #!/bin/bash |
| # Scan the /lib/firmware directory of the target and delete any firmware |
| # binaries that are not in our whitelist |
| |
| # A whitelist of entire directories or specific binary files. The trailing |
| # slash is required. |
| whitelist=( 'acenic/' |
| 'bnx2/' |
| 'bnx2x/bnx2x-e2-7.13.15.0.fw' |
| 'cxgb4/t4fw-1.16.63.0.bin' |
| 'cxgb4/t4fw.bin' |
| 'cxgb3/' |
| 'qed/qed_init_values_zipped-8.37.2.0.bin' |
| 'ql2500_fw.bin') |
| |
| if [ -z "${TARGET_DIR}" ] ; then |
| echo "TARGET_DIR not defined, setting to $1" |
| TARGET_DIR=$1 |
| fi |
| |
| files=$(find ${TARGET_DIR}/lib/firmware/*) |
| for file in ${files}; |
| do |
| if [ -d $file ] ; then |
| continue |
| fi |
| |
| found=0 |
| for item in ${whitelist[@]}; |
| do |
| if [ "${file/${item}}" != "${file}" ] ; then |
| found=1 |
| break |
| fi |
| done |
| |
| if [ "${found}" -ne "1" ] ; then |
| rm -v ${file} |
| fi |
| done |