From bb8093cfce706d6e60fee88d2578e8590f1b4bfe Mon Sep 17 00:00:00 2001 From: Abderrazzak Mahraye Date: Fri, 31 May 2024 14:54:20 +0000 Subject: [PATCH] Debian: Add post install script This DKMS script will be run when the package is installed. It will run the standard DKMS build steps (compiling the module against the current kernel version), and will additionally: - Load the module immediately - Configure the module to be loaded automatically at boot This is not handled by default by DKMS, because usually, kernel modules are associated with some hardware, and the hardware detection in the kernel will be enough to load the module. But, in the case of tty0tty, there is no associated hardware, and so, the module must be explicitly loaded. --- .gitignore | 3 ++- debian/postinst | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100755 debian/postinst diff --git a/.gitignore b/.gitignore index bb302dd..7327e6c 100644 --- a/.gitignore +++ b/.gitignore @@ -26,7 +26,8 @@ pts/tty0tty .pydevproject # debian packaging artifacts -debian/* +debian/.debhelper/ +debian/tty0tty-dkms/ debhelper/* files *-dkms.debhelper.log diff --git a/debian/postinst b/debian/postinst new file mode 100755 index 0000000..a905b88 --- /dev/null +++ b/debian/postinst @@ -0,0 +1,40 @@ +#!/bin/sh +set -e +# Automatically added by dh_dkms/3.0.10-8+deb12u1 +# The original file can be found in template-dkms-mkdeb/debian/postinst +# in the DKMS tarball, check it for copyright notices. + +DKMS_NAME=tty0tty +DKMS_PACKAGE_NAME=$DKMS_NAME-dkms +DKMS_VERSION=1.2 + +postinst_found=0 + +case "$1" in + configure) + for DKMS_POSTINST in /usr/lib/dkms/common.postinst /usr/share/$DKMS_PACKAGE_NAME/postinst; do + if [ -f $DKMS_POSTINST ]; then + $DKMS_POSTINST $DKMS_NAME $DKMS_VERSION /usr/share/$DKMS_PACKAGE_NAME "" $2 + postinst_found=1 + break + fi + done + if [ "$postinst_found" -eq 0 ]; then + echo "ERROR: DKMS version is too old and $DKMS_PACKAGE_NAME was not" + echo "built with legacy DKMS support." + echo "You must either rebuild $DKMS_PACKAGE_NAME with legacy postinst" + echo "support or upgrade DKMS to a more current version." + exit 1 + fi + # Load the tty0tty kernel module immediately + if ! lsmod | grep -q tty0tty; then + modprobe tty0tty + fi + # Ensure the module loads on boot + if ! grep -q "^tty0tty$" /etc/modules-load.d/tty0tty.conf; then + echo tty0tty >> /etc/modules-load.d/tty0tty.conf + fi + ;; +esac +# End automatically added section +exit 0