# We need to load a different file to test request_firmware_into_buf # I believe the issue is firmware loaded cached vs. non-cached # with same filename is bungled. # To reproduce rename this to test-firmware.bin
TEST_FIRMWARE_INTO_BUF_FILENAME=test-firmware-into-buf.bin
# Kselftest framework requirement - SKIP code is 4.
ksft_skip=4
print_reqs_exit()
{ echo"You must have the following enabled in your kernel:" >&2 cat $TEST_DIR/config >&2
exit $ksft_skip
}
test_modprobe()
{ if [ ! -d $DIR ]; then
print_reqs_exit fi
}
check_mods()
{
local uid=$(id -u) if [ $uid -ne 0 ]; then echo"skip all tests: must be run as root" >&2
exit $ksft_skip fi
trap "test_modprobe" EXIT if [ ! -d $DIR ]; then
modprobe test_firmware fi if [ ! -f $PROC_CONFIG ]; then if modprobe configs 2>/dev/null; then echo"Loaded configs module" if [ ! -f $PROC_CONFIG ]; then echo"You must have the following enabled in your kernel:" >&2 cat $TEST_DIR/config >&2 echo"Resorting to old heuristics" >&2 fi else echo"Failed to load configs module, using old heuristics" >&2 fi fi
}
if [ "$HAS_FW_LOADER_COMPRESS_XZ" = "yes" ]; then if ! which xz 2> /dev/null > /dev/null; then
HAS_FW_LOADER_COMPRESS_XZ="" fi fi if [ "$HAS_FW_LOADER_COMPRESS_ZSTD" = "yes" ]; then if ! which zstd 2> /dev/null > /dev/null; then
HAS_FW_LOADER_COMPRESS_ZSTD="" fi fi
}
verify_reqs()
{ if [ "$TEST_REQS_FW_SYSFS_FALLBACK" = "yes" ]; then if [ ! "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then echo"usermode helper disabled so ignoring test"
exit 0 fi fi if [ "$TEST_REQS_FW_UPLOAD" = "yes" ]; then if [ ! "$HAS_FW_UPLOAD" = "yes" ]; then echo"firmware upload disabled so ignoring test"
exit 0 fi fi
}
setup_tmp_file()
{
FWPATH=$(mktemp -d)
FW="$FWPATH/test-firmware.bin" echo"ABCD0123" >"$FW"
FW_INTO_BUF="$FWPATH/$TEST_FIRMWARE_INTO_BUF_FILENAME" echo"EFGH4567" >"$FW_INTO_BUF"
NAME=$(basename "$FW") if [ "$TEST_REQS_FW_SET_CUSTOM_PATH" = "yes" ]; then echo -n "$FWPATH" >/sys/module/firmware_class/parameters/path fi
}
__setup_random_file()
{
RANDOM_FILE_PATH="$(mktemp -p $FWPATH)" # mktemp says dry-run -n is unsafe, so... if [[ "$1" = "fake" ]]; then rm -rf $RANDOM_FILE_PATH
sync else echo"ABCD0123" >"$RANDOM_FILE_PATH" fi echo $RANDOM_FILE_PATH
}
test_finish()
{ if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then echo"$OLD_TIMEOUT" >/sys/class/firmware/timeout fi if [ "$TEST_REQS_FW_SET_CUSTOM_PATH" = "yes" ]; then if [ "$OLD_FWPATH" = "" ]; then # A zero-length write won't work; write a null byte
printf '\000' >/sys/module/firmware_class/parameters/path else echo -n "$OLD_FWPATH" >/sys/module/firmware_class/parameters/path fi fi if [ -f $FW ]; then rm -f "$FW" fi if [ -f $FW_INTO_BUF ]; then rm -f "$FW_INTO_BUF" fi if [ -d $FWPATH ]; then rm -rf "$FWPATH" fi
proc_restore_defaults
}
kconfig_has()
{ if [ -f $PROC_CONFIG ]; then if zgrep -q $1 $PROC_CONFIG 2>/dev/null; then echo"yes" else echo"no" fi else # We currently don't have easy heuristics to infer this # so best we can do is just try to use the kernel assuming # you had enabled it. This matches the old behaviour. if [ "$1" = "CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y" ]; then echo"yes" elif [ "$1" = "CONFIG_FW_LOADER_USER_HELPER=y" ]; then if [ -d /sys/class/firmware/ ]; then echo yes else echo no fi fi fi
}
Messung V0.5
¤ Dauer der Verarbeitung: 0.16 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.