Ich habe heute meinen Tumbleweed VDR Client auf den neuesten Stand gebracht habe, und dabei auch das Script zum Bauen der Module für Kernel 6.4.x etwas anpassen müssen.
Falls es Jemand braucht - hier die aktuelle Version. Bei Fehlern oder Änderungswünchen bitte melden!
Bash
#!/bin/bash
# ======================================================================
#
# script for building and installing the module for the TTS2-6400 DVB
# card on openSUSE systems
#
# rev. 0.01 - 20.10.2022 - Michael Hirmke (development@mike.franken.de)
# - first public version
#
# rev. 0.02 - 02.04.2023 - Michael Hirmke (development@mike.franken.de)
# - improved handling of return values
#
# rev. 0.03 - 27.08.2023 - Michael Hirmke (development@mike.franken.de)
# - a few changes for kernel 6.4.x
#
# rev. 0.04 - 28.08.2023 - Michael Hirmke (development@mike.franken.de)
# - new DEBUG parameter
# - kernel version taken from running kernel, if -v isn't provided
#
# ======================================================================
fUsage() {
action="$1"
case "$action" in
5) $ECHO "$VERSION"
exit 0
;;
esac
$ECHO
case "$action" in
4) $ECHO "wrong parameter!";;
3) $ECHO "mutual exclusive parameters!";;
2) $ECHO "missing parameter!";;
1) $ECHO "unknown parameter!";;
esac
$ECHO "\tusage:\t$my_name [ -D <level>][ -h][ -v <kver>][ -V]"
$ECHO
$ECHO "\t\t-D <level> debugging level;"
$ECHO "\t\t 0 - no debugging (default);"
$ECHO "\t\t 1 - \"set -x\" activated;"
$ECHO "\t\t 2 - all important commands are prepended by"
$ECHO "\t\t \"$ECHO\";"
$ECHO "\t\t 3 - 1 and 2 combined."
$ECHO "\t\t-h displays this help message."
$ECHO "\t\t-v <kver> kernel version like 5.14.21-150400;"
$ECHO "\t\t if empty, the version of the running kernel"
$ECHO "\t\t is used."
$ECHO "\t\t-V displays version number and date."
$ECHO
exit $action
} # // end fUsage( .. )
VERSION="version 0.04 / 28.08.2023"
LANG=C; export LANG
ECHO="/bin/echo -e"
ECHON="/bin/echo -n"
# just testing
DEBUG=0
TESTEXEC=""
while getopts D:hv:V OPTION # {
do
case "$OPTION" in
D) DEBUG=$OPTARG;;
h) fUsage 0;;
v) KERNELVER=$OPTARG;;
V) fUsage 5;;
*) fUsage 4;;
esac
done # }
shift `expr "$OPTIND" - 1`
[ -z $KERNELVER ] && KERNELVER=$( uname -r | sed -e "s/\-default$//" )
KERNELMAINVER=$( $ECHO "$KERNELVER" | cut -d. -f 1,2 )
case "$DEBUG" in # {
0) ;;
1) set -x ;;
2) TESTEXEC=$ECHO ;;
3)
TESTEXEC=$ECHO
set -x
;;
esac # }
ret=0
# 1. installing kernel source rpms
zypper se -i kernel-source || $TESTEXEC zypper in -y kernel-source
ret=$?
if [ $? -eq 0 ]
then
zypper se -i kernel-devel || $TESTEXEC zypper in -y kernel-devel
ret=$?
fi
# 2. downloading patch
if [ $? -eq 0 ]
then
wget -O /tmp/saa716x-${KERNELMAINVER}.diff \
https://github.com/s-moch/linux-saa716x/compare/v${KERNELMAINVER}...saa716x-${KERNELMAINVER}.diff
ret=$?
fi
# 3. patching kernel
if [ $? -eq 0 ]
then
cd "/usr/src/linux-${KERNELVER}" \
&& $TESTEXEC patch -p1 </tmp/saa716x-${KERNELMAINVER}.diff
ret=$?
fi
# 4. modifying kernel configuration
if [ $ret -eq 0 ]
then
$ECHO " ... "
$ECHO " BT8XX GPIO abuser (GPIO_BT8XX) [N/m/y/?] (NEW) N "
$ECHO " Support for SAA716x family from NXP/Philips (SAA716X_SUPPORT) [N/y/?] (NEW) y "
$ECHO " SAA7160/1/2 based Budget PCIe cards (DVB only) (DVB_SAA716X_BUDGET) [N/m/?] (NEW) N "
$ECHO " SAA7160/1/2 based Hybrid PCIe cards (DVB + Analog) (DVB_SAA716X_HYBRID) [N/m/?] (NEW) N "
$ECHO " SAA7160/1/2 based Full Fledged PCIe cards (DVB_SAA716X_FF) [N/m/?] (NEW) m "
$ECHO " ...
$ECHO " configuration written to .config
$TESTEXEC make oldconfig
ret=$?
fi
# 6. compiling modules
if [ $ret -eq 0 ]
then
$ECHO " Warnings like "
$ECHO " \"Skipping BTF generation for <...> due to unavailability of vmlinux\" "
$ECHO " can be ignored."
# KBUILD_MODPOST_WARN=1 new for kernel 6.4.x
# (otherwise the build will fail)
$TESTEXEC make scripts prepare modules_prepare \
&& $TESTEXEC make -C . M=drivers/media/pci/saa716x KBUILD_MODPOST_WARN=1
ret=$?
fi
# 7. installing modules
if [ $ret -eq 0 ]
then
$ECHO " Modules are installed into"
$ECHO " /lib/modules/${KERNELVER}-default/extra/"
$ECHO " starting with kernel 6.4.x into"
$ECHO " /lib/modules/${KERNELVER}-default/updates/"
$ECHO " (https://www.suse.com/support/kb/doc/?id=000018455)"
$TESTEXEC make -C . M=drivers/media/pci/saa716x modules_install
ret=$?
fi
# 8. generating module list
# (should happen in topic 7, but often fails there)
$TESTEXEC /sbin/depmod -a
exit $ret
# ======================================================================
#
# 2022-2023 - Michael Hirmke (development@mike.franken.de)
#
# ======================================================================
Alles anzeigen