Skip to content

Commit

Permalink
driver-check.sh: don't hardcode /boot for kernel-related files
Browse files Browse the repository at this point in the history
After usr merge, symvers.gz, System.map may reside under
/usr/lib/modules/$kver instead.

Fixes: bsc#1199873.
  • Loading branch information
mwilck committed Jun 1, 2022
1 parent 163ac8e commit eb6380d
Showing 1 changed file with 19 additions and 3 deletions.
22 changes: 19 additions & 3 deletions driver-check.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,22 @@ warnings=0
trap 'rm -rf "$tmp"' EXIT
tmp=$(mktemp -d)

find_usrmerge_boot() {
local filename=$1
local kver=$2
local ext=${3:+."$3"}
local f

for f in "/boot/$filename-$kver$ext" "/usr/lib/modules/$kver/$filename$ext"
do
if [ -e "$f" ]; then
echo "$f"
return
fi
done
echo "WARNING: find_usrmerge_boot: $filename$ext not found for kernel $kver" >&2
}

find_depmod() {
local _d

Expand Down Expand Up @@ -125,8 +141,8 @@ check_krel()
local krel=$1 system_map module_symvers msg res args bad=false
local mit_version

system_map="/boot/System.map-$krel"
module_symvers="/boot/symvers-$krel.gz"
system_map=$(find_usrmerge_boot System.map "$krel")
module_symvers=$(find_usrmerge_boot symvers "$krel" gz)
if ! test -e "$system_map"; then
error "$system_map not found"
bad=true
Expand All @@ -136,7 +152,7 @@ check_krel()
bad=true
fi
if $bad; then
explain "Each kernel must install /boot/System.map-\$version and /boot/symvers-\$version.gz to be able to check module dependencies."
explain "Each kernel must install System.map and symvers.gz to be able to check module dependencies."
return
fi
set -- $("$DEPMOD" --version | sed -rn 's/.* ([0-9]+)(\.([0-9]+)(\..*)?)?/\1 \3/p')
Expand Down

0 comments on commit eb6380d

Please sign in to comment.