48 lines
1.7 KiB
Bash
Executable File
48 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 '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")
|
|
|
|
if [ ! -f /etc/ld.so.conf.d/llvm${CLANG_VER}.conf ]; then
|
|
echo "$LLVM_DIR" > /etc/ld.so.conf.d/llvm${CLANG_VER}.conf
|
|
ldconfig
|
|
fi
|
|
|
|
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
|