mirror of https://gitee.com/openkylin/dkms.git
45 lines
1.1 KiB
Bash
Executable File
45 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# We're passed the version of the kernel being installed
|
|
inst_kern=$1
|
|
|
|
uname_s=$(uname -s)
|
|
|
|
_get_kernel_dir() {
|
|
KVER=$1
|
|
case ${uname_s} in
|
|
Linux) DIR="/lib/modules/$KVER/build" ;;
|
|
GNU/kFreeBSD) DIR="/usr/src/kfreebsd-headers-$KVER/sys" ;;
|
|
esac
|
|
echo "$DIR"
|
|
}
|
|
|
|
_check_kernel_dir() {
|
|
DIR=$(_get_kernel_dir "$1")
|
|
case ${uname_s} in
|
|
Linux) test -e "$DIR/include" ;;
|
|
GNU/kFreeBSD) test -e "$DIR/kern" && test -e "$DIR/conf/kmod.mk" ;;
|
|
*) false ;;
|
|
esac
|
|
}
|
|
|
|
case "${uname_s}" in
|
|
Linux)
|
|
header_pkg="linux-headers-$inst_kern"
|
|
kernel="Linux"
|
|
;;
|
|
GNU/kFreeBSD)
|
|
header_pkg="kfreebsd-headers-$inst_kern"
|
|
kernel="kFreeBSD"
|
|
;;
|
|
esac
|
|
|
|
if [ -x /usr/lib/dkms/dkms_autoinstaller ]; then
|
|
exec /usr/lib/dkms/dkms_autoinstaller start "$inst_kern"
|
|
fi
|
|
|
|
if ! _check_kernel_dir "$inst_kern" ; then
|
|
echo "dkms: WARNING: $kernel headers are missing, which may explain the above failures." >&2
|
|
echo " please install the $header_pkg package to fix this." >&2
|
|
fi
|