如果可能的话,我最感兴趣的是使用源代码来了解有关驱动程序的更多信息。
然而,在深入研究代码之前,我想安装它并查看它的工作原理。这样我就可以真正循环“编辑-重新安装-尝试”来查看我的更改产生的效果。
好吧,我被困在方 1,因为我无法安装驱动程序。
说实话,我没有尝试过跑步sudo make install
,在这样做之前,我想了解一下我是否真的需要它,如果我确实需要它,请了解为什么。
我看到Makefile
有这个install
目标:
install:
mkdir -p ${DESTDIR}${BINDIR}
cp $(NAME) ${DESTDIR}${BINDIR}/
mkdir -p ${DESTDIR}${UDEVDIR}
cp *.rules ${DESTDIR}${UDEVDIR}/
上面有几行
BINDIR := /usr/bin
所以我很清楚,sudo
需要特权,因为DESTDIR
未设置,所以${DESTDIR}${BINDIR}
解析为/usr/bin
,需要sudo
写入。
${DESTDIR}
但是,如果首先有一个前缀,我想知道为什么我不应该运行make install DESTDIR=$HOME
或其他什么。
事实上,我尝试过,但是可执行文件roccat-vulcan
在运行时出现错误Unable to find keyboard
。也许它确实需要安装在/usr/bin
?
更新
正如答案中所建议的,我尝试使用 进行安装sudo make install BINDIR='/usr/local/bin'
,并成功执行以下操作输出:
mkdir -p /usr/local/bin
cp roccat-vulcan /usr/local/bin/
mkdir -p /etc/udev/rules.d
cp *.rules /etc/udev/rules.d/
但是,尝试运行该软件会出现错误。下面的输出roccat-vulcan -v
:
ROCCAT Vulcan for Linux [github.com/duncanthrax/roccat-vulcan]
Effect Color Table (change these with -c option)
colorIdx R G B Desc
------------------------------------------------
0 0 0 119 Base keyboard color (dark blue)
1 2303 0 -255 Typing color, initial key (over-red, under-blue)
2 2303 0 -143 Typing color, first neighbor key
3 2303 0 0 Typing color, second neighbor key
4 187 0 204 Ghost typing color, initial key
5 153 0 187 Ghost typing color, first neighbor key
6 85 0 170 Ghost typing color, second neighbor key
7 0 0 0 (null)
8 0 0 0 (null)
9 0 0 0 (null)
open_device(1e7d, 3098): No LED device found
open_device(1e7d, 307a): ignoring non-LED interface #0
open_device(1e7d, 307a): ignoring non-LED interface #1
open_device(1e7d, 307a): ignoring non-LED interface #2
open_device(1e7d, 307a): LED interface at USB path 1-3:1.3
open_device(1e7d, 307a): Unable to open LED interface 1-3:1.3
Error: Unable to find keyboard
答案1
${DESTDIR}${UDEVDIR}
不解析为 /usr/bin,${BINDIR}
但是。${DESTDIR}
用于调试安装。如果未指定,程序将安装在文件系统的根目录或/
路径中。您必须在没有设置${DESTDIR}
将程序安装到系统中的情况下运行该程序。
另外,如果您想将二进制文件安装在不同的位置,则必须设置BINDIR
为您拥有的目录,例如 $HOME 文件夹中的目录。 freedesktop 的人使用 $HOME/.local/bin/,你也可以。您还可以将 $HOME/.local/bin/ 添加到 PATH 变量,以便可以使用可执行文件而无需指定其完整路径。
最后,根据链接项目的自述文件,如果您想以非root身份运行该程序,您需要成为plugdev组的成员。您可以使用以下命令检查您是否是plugdev 的一部分id -Gn <your username here>
,并检查plugdev 是否已列出。如果您不在plugdev 中,您可以使用 将自己添加到该组中usermod -a -G plugdev <your username>
。不幸的是,您需要 root 才能将用户添加到组中,但之后您不应再需要任何 root 访问权限。
编辑:此外,由于您无法写入 /etc/udev/rules.d 目录,因此 make install 需要 sudo 。