2024-06-11 18:06:54 +02:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
# created by Tobias Powalowski <tpowa@archlinux.org>
|
|
|
|
. /usr/lib/archboot/common.sh
|
2024-06-11 18:10:55 +02:00
|
|
|
_APPNAME=${0##*/}
|
|
|
|
_MODULE_DIR="/usr/lib/modules/${_RUNNING_KERNEL}"
|
2024-06-11 18:06:54 +02:00
|
|
|
_FIRMWARE="/lib/firmware"
|
|
|
|
_usage () {
|
2024-06-12 22:39:54 +02:00
|
|
|
echo -e "\e[1mCheck Firmware And Modules Archboot Environment\e[m"
|
|
|
|
echo -e "\e[1m---------------------------------------------------------------\e[m"
|
|
|
|
echo "Check modules on firmware depends and existence in environment."
|
|
|
|
echo ""
|
|
|
|
echo -e "usage: \e[1m${_APPNAME} run\e[m"
|
2024-06-11 18:06:54 +02:00
|
|
|
exit 0
|
|
|
|
}
|
|
|
|
[[ -z "${1}" || "${1}" != "run" ]] && _usage
|
2024-06-18 17:51:06 +02:00
|
|
|
for i in $(fd -u -t f '.ko' "${_MODULE_DIR}"); do
|
2024-06-11 18:06:54 +02:00
|
|
|
modinfo -F firmware "${i}" >>modules.txt
|
|
|
|
done
|
2024-06-18 17:51:06 +02:00
|
|
|
fd -u -t f 'zst' "${_FIRMWARE}" >firmware.txt
|
2024-06-11 21:30:51 +02:00
|
|
|
cp firmware.txt firmware.orig.txt
|
2024-06-11 18:06:54 +02:00
|
|
|
while read -r i; do
|
|
|
|
sed -i -e "s#${i}##g" firmware.txt
|
|
|
|
done < modules.txt
|
2024-06-11 21:30:51 +02:00
|
|
|
grep -v -E 'amd|amss|atmel|ath[0-9]|board-2|brcm|cs42l43|htc_*|i915|imx|intel|iwlwifi|libertas|m3\.bin|mediatek|mrvl|mwl.*|mt7650|nvidia|radeon|regdb|rsi|rt[0-9][0-9]*|rtl|rtw8[8-9]|slicoss|ti-connect|ti_*|vpu_*|/.zst' firmware.txt > fw-error.txt
|
|
|
|
if [[ -s fw-error.txt ]]; then
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
exit 0
|