diff --git a/debian/system76-dkms.install b/debian/system76-dkms.install index 3db00e7..336a893 100644 --- a/debian/system76-dkms.install +++ b/debian/system76-dkms.install @@ -1 +1 @@ -etc/modules-load.d +usr/share/initramfs-tools diff --git a/debian/system76-dkms.triggers b/debian/system76-dkms.triggers new file mode 100644 index 0000000..6c9f454 --- /dev/null +++ b/debian/system76-dkms.triggers @@ -0,0 +1 @@ +activate update-initramfs diff --git a/usr/share/initramfs-tools/hooks/system76-dkms b/usr/share/initramfs-tools/hooks/system76-dkms new file mode 100644 index 0000000..0465b60 --- /dev/null +++ b/usr/share/initramfs-tools/hooks/system76-dkms @@ -0,0 +1,50 @@ +#!/bin/sh + +OPTION=FRAMEBUFFER +PREREQ="" + +prereqs() +{ + echo "$PREREQ" +} + +case $1 in +# get pre-requisites +prereqs) + prereqs + exit 0 + ;; +esac + +. /usr/share/initramfs-tools/hook-functions + + +# Copy entire subtrees to the initramfs as long as they match a pattern +copy_modules_dir_filter() +{ + local kmod exclude + local dir="$1" + shift + local pattern="$1" + shift + + if ! [ -d "${MODULESDIR}/${dir}" ]; then + return; + fi + if [ "${verbose}" = "y" ]; then + echo "Copying module directory ${dir}" + if [ $# -ge 1 ]; then + echo "(excluding $*)" + fi + fi + while [ $# -ge 1 ]; do + exclude="${exclude:-} -name $1 -prune -o " + shift + done + for kmod in $(find "${MODULESDIR}/${dir}" ${exclude:-} -name "$pattern*.ko" -print); do + manual_add_modules $(basename ${kmod} .ko) + done +} + +copy_modules_dir_filter updates/dkms system76 + diff --git a/etc/modules-load.d/system76-dkms.conf b/usr/share/initramfs-tools/modules.d/system76-dkms.conf similarity index 100% rename from etc/modules-load.d/system76-dkms.conf rename to usr/share/initramfs-tools/modules.d/system76-dkms.conf