이것은 키보드 백라이트용 드라이버입니다("드라이버"라고 부르죠?)..
가능하다면 소스 코드를 사용하여 드라이버에 대해 자세히 알아보고 싶습니다.
그러나 코드를 살펴보기 전에 코드를 설치하고 어떻게 작동하는지 확인하고 싶었습니다. 이렇게 하면 실제로 "편집-재설치-시도"를 순환하여 변경 사항의 효과를 확인할 수 있습니다.
글쎄요, 드라이버를 설치할 수 없어서 사이드 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 변수에 추가할 수도 있습니다.
마지막으로 링크된 프로젝트의 추가 정보에 따르면 루트가 아닌 사용자로 프로그램을 실행하려면 Plugdev 그룹의 구성원이어야 합니다. 다음 명령을 사용하여 Plugdev에 속해 있는지 확인 id -Gn <your username here>
하고, Plugdev가 나열되어 있는지 확인할 수 있습니다. Plugdev에 속하지 않은 경우 를 사용하여 그룹에 자신을 추가할 수 있습니다 usermod -a -G plugdev <your username>
. 안타깝게도 사용자를 그룹에 추가하려면 루트가 필요하지만 그 이후에는 루트 액세스가 필요하지 않습니다.
편집: 또한 /etc/udev/rules.d 디렉토리에 쓸 수 없으므로 make install에는 sudo가 필요합니다.