Skip to content

Commit

Permalink
Debian: Add post install script
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
Abderrazzak Mahraye authored and pulkomandy committed Sep 16, 2024
1 parent 2639a39 commit bb8093c
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 1 deletion.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ pts/tty0tty
.pydevproject

# debian packaging artifacts
debian/*
debian/.debhelper/
debian/tty0tty-dkms/
debhelper/*
files
*-dkms.debhelper.log
Expand Down
40 changes: 40 additions & 0 deletions debian/postinst
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit bb8093c

Please sign in to comment.