#!/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 'CONFIG_CC_VERSION_TEXT=' /lib/modules/$(uname -r)/build/.config 2>/dev/null | grep -o 'clang') if [ "$KERNEL_CC" = "clang" ]; then CLANG_VER=$(grep 'CONFIG_CC_VERSION_TEXT=' /lib/modules/$(uname -r)/build/.config 2>/dev/null | sed -n 's/.*clang version \([0-9]\+\).*/\1/p') 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 [ -n "$LLVM_LIB" ] && command -v "$CLANG_BIN" >/dev/null 2>&1; 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