mirror of
https://github.com/wessel-novacustom/clevo-keyboard.git
synced 2024-11-15 03:34:01 +01:00
a8230d47f6
- For clevo interfaces - For tuxedo_io from tuxedo_cc_wmi
93 lines
2.7 KiB
Bash
Executable file
93 lines
2.7 KiB
Bash
Executable file
#!/bin/sh
|
|
# Copyright (c) 2020 TUXEDO Computers GmbH
|
|
|
|
set -e
|
|
|
|
module=module-name
|
|
version=x.x.x
|
|
|
|
|
|
NAME=${module}
|
|
PACKAGE_NAME=${NAME}
|
|
|
|
# From dkms standard postinst
|
|
# Copyright (C) 2002-2005 Flavio Stanchina
|
|
# Copyright (C) 2005-2006 Aric Cyr
|
|
# Copyright (C) 2007 Mario Limonciello
|
|
# Copyright (C) 2009 Alberto Milone
|
|
DEB_NAME=$(echo $PACKAGE_NAME | sed 's,_,-,')
|
|
CVERSION=`dpkg-query -W -f='${Version}' $DEB_NAME | awk -F "-" '{print $1}' | cut -d\: -f2`
|
|
ARCH=`dpkg --print-architecture`
|
|
|
|
dkms_configure () {
|
|
for POSTINST in /usr/lib/dkms/common.postinst "/usr/share/$PACKAGE_NAME/postinst"; do
|
|
if [ -f "$POSTINST" ]; then
|
|
"$POSTINST" "$NAME" "$CVERSION" "/usr/share/$PACKAGE_NAME" "$ARCH" "$2"
|
|
return $?
|
|
fi
|
|
echo "WARNING: $POSTINST does not exist." >&2
|
|
done
|
|
echo "ERROR: DKMS version is too old and $PACKAGE_NAME was not" >&2
|
|
echo "built with legacy DKMS support." >&2
|
|
echo "You must either rebuild $PACKAGE_NAME with legacy postinst" >&2
|
|
echo "support or upgrade DKMS to a more current version." >&2
|
|
return 1
|
|
}
|
|
|
|
# End dkms standard postinst
|
|
|
|
case "$1" in
|
|
configure)
|
|
# Run standard dkms build/install for all kernels with headers installed
|
|
dkms_configure
|
|
|
|
# Attempt to (re-)load module immediately, fail silently if not possible at this stage
|
|
|
|
# Also stop tccd service if running before
|
|
echo "Check tccd running status"
|
|
if systemctl is-active --quiet tccd.service; then
|
|
TCCD_RUNNING=true
|
|
else
|
|
TCCD_RUNNING=false
|
|
fi
|
|
|
|
if $TCCD_RUNNING; then
|
|
echo "Stop tccd temporarily"
|
|
systemctl stop tccd 2>&1 || true
|
|
fi
|
|
|
|
echo "(Re)load modules if possible"
|
|
rmmod tuxedo_io > /dev/null 2>&1 || true
|
|
rmmod clevo_wmi > /dev/null 2>&1 || true
|
|
rmmod clevo_acpi > /dev/null 2>&1 || true
|
|
rmmod tuxedo_keyboard > /dev/null 2>&1 || true
|
|
|
|
modprobe tuxedo_keyboard > /dev/null 2>&1 || true
|
|
modprobe clevo_wmi > /dev/null 2>&1 || true
|
|
modprobe clevo_acpi > /dev/null 2>&1 || true
|
|
modprobe tuxedo_io > /dev/null 2>&1 || true
|
|
|
|
# Restart tccd after reload if it was running
|
|
if $TCCD_RUNNING; then
|
|
echo "Start tccd again"
|
|
systemctl start tccd 2>&1 || true
|
|
fi
|
|
|
|
# Install default config if none exist already
|
|
if [ ! -f "/etc/modprobe.d/tuxedo_keyboard.conf" ]; then
|
|
cp -f /usr/share/tuxedo-keyboard/tuxedo_keyboard.conf /etc/modprobe.d/tuxedo_keyboard.conf
|
|
fi
|
|
|
|
;;
|
|
|
|
abort-upgrade|abort-remove|abort-deconfigure)
|
|
;;
|
|
|
|
*)
|
|
echo "postinst called with unknown argument \`$1'" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
exit 0
|