Skip to content
Snippets Groups Projects

rcg: fix module symvers discovery

Merged Jameson Rollins requested to merge jameson.rollins/advligorts:fix-find-modsym into master
1 unresolved thread
1 file
+ 35
27
Compare changes
  • Side-by-side
  • Inline
#!/bin/bash -e
#!/usr/bin/env python3
MOD=$1
if [ -z "$MOD" ] ; then
echo "Must specify module" >&2
exit 1
fi
import os
import sys
import subprocess
modsym=
try:
modname = sys.argv[1]
except IndexError:
exit("usage: {} <modname>".format(sys.argv[0]))
mbufstat=$(dkms status -m ${MOD})
if [ ! -z "${mbufstat}" ] ; then
mmodvers=`echo ${mbufstat} | awk '{print $2}' | sed 's/.$//'`
mkvers=`echo ${mbufstat} | awk '{print $3}' | sed 's/.$//'`
march=`echo ${mbufstat} | awk '{print $4}' | sed 's/.$//'`
mtestpath="/var/lib/dkms/${MOD}/${mmodvers}/${mkvers}/${march}/Module.symvers"
if [ -f $mtestpath ] ; then
modsym=$mtestpath
fi
else
mtestpath="/var/cache/${MOD}/Module.symvers"
if [ -f $mtestpath ] ; then
modsym=$mtestpath
fi
fi
uname = os.uname()
modstat = subprocess.run(
['dkms', '-k', uname.release, 'status', modname],
capture_output=True, text=True,
)
if modstat.returncode == 0 and modstat.stdout:
modstat = modstat.stdout.split(':')[0].split(', ')
if len(modstat) >= 4:
modvers = modstat[1]
mkvers = modstat[2]
march = modstat[3]
modsym = os.path.join(
'/var/lib/dkms',
modname,
modvers,
mkvers,
march,
'Module.symvers',
)
if os.path.exists(modsym):
print(modsym)
exit()
if [ -z "$modsym" ] ; then
echo "'$MOD' modsym not found" >&2
exit 2
fi
modsym = os.path.join('/var/cache', modname, 'Module.symvers')
if os.path.exists(modsym):
print(modsym)
exit()
echo ${modsym}
exit("Module '{}' symvers file could not be found.".format(modname))
Loading