Files
alr-repo/openrazer/postinstall-dkms.sh

43 lines
1.7 KiB
Bash
Executable File

#!/usr/bin/bash
VERSION="3.10.3"
MODULE="openrazer-driver"
DKMS_CONF="/usr/src/$MODULE-$VERSION/dkms.conf"
getent group plugdev >/dev/null || groupadd -r plugdev
dkms status -m $MODULE -v $VERSION >/dev/null 2>&1 || dkms add -m $MODULE -v $VERSION
if [ -f "$DKMS_CONF" ]; then
KERNEL_CC=$(grep -oP '(?<=CONFIG_CC_VERSION_TEXT=")[^"]*' /lib/modules/$(uname -r)/build/.config 2>/dev/null | awk '{print $1}')
if [[ "$KERNEL_CC" == "clang" ]]; then
CLANG_VER=$(grep -oP '(?<=CONFIG_CC_VERSION_TEXT=")clang version \K[0-9]+' /lib/modules/$(uname -r)/build/.config 2>/dev/null)
if [ -n "$CLANG_VER" ]; then
CLANG_BIN="clang-${CLANG_VER}"
LLVM_LIB=$(find /usr/lib* -path "*/llvm${CLANG_VER}/lib/libclang-cpp.so*" -print -quit 2>/dev/null)
if [ -x "$(command -v $CLANG_BIN)" ] && [ -n "$LLVM_LIB" ]; then
LLVM_DIR=$(dirname "$LLVM_LIB")
sed -i "s|KERNELDIR=/lib/modules/\${kernelver}/build|LD_LIBRARY_PATH=$LLVM_DIR:\$LD_LIBRARY_PATH KERNELDIR=/lib/modules/\${kernelver}/build|" "$DKMS_CONF"
sed -i "s|make driver|make driver CC=$CLANG_BIN LD=ld.lld|" "$DKMS_CONF"
fi
fi
fi
fi
dkms install -m $MODULE -v $VERSION -k $(uname -r) || true
cat << EOF
DKMS модули OpenRazer собраны для ядра $(uname -r).
Демону требуется добавить пользователя в группу \`plugdev\`:
# gpasswd -a \$USER plugdev
Включите systemd сервис демона OpenRazer:
# systemctl --user enable openrazer-daemon.service
Перезагрузитесь, чтобы изменения вступили в силу.
EOF