i3을 입력하여 X를 시작하려고 하면 startx /usr/bin/i3
다음 오류 메시지가 나타납니다.
(EE) xf86OpenConsole: Cannot open virtual console 7 (Permission denied)
루트로 부팅하거나 /dev/tty7을 chowning한 후 부팅하면 startx
문제를 해결할 수 있지만(예상된 입력이 작동하지 않고 터미널 전환도 안 됨) 올바른 접근 방식이라고 생각하지 않습니다.
Sway와 Weston은 완벽하게 작동하는데 X는 왜 똑같이 작동하지 않습니까?
답변1
startx
내 시스템(Fedora)에서는 잘 작동합니다. 그러나 Gentoo Wiki의 오래된 페이지에는 이를 실행하는 다른 방법이 언급되어 있습니다:
startx /usr/bin/i3 -- vt1
1
로그인한 "터미널"의 번호입니다. 터미널에 있지 않은 경우 1
그에 따라 명령을 조정하십시오.
분명히 이로 인해 Permission denied
오류가 수정되었고 X가 시작될 수 있었습니다.
startx
왜 명시적으로 전달해야 하는지 이해가 되지 않습니다 . Gentoo가 Fedora와 다른 작업을 수행하는 이유를 이해할 수 없습니다. 아 글쎄. 최소한 열려는 시도를 중지 startx
/ 중지해야 합니다 . 그것은 확실히 현대적인 작업 방식이 아니며 당신을 위한 것도 아닙니다.Xorg
tty7
답변2
Cannot open virtual console (Permission denied)
권한 문제로 인해 발생할 수도 있습니다 /dev/ttyX
.
예를 들어 openSUSE MicroOS에 로그인하기 전:
$ ls -l /dev/tty1
crw--w---- 1 root tty /dev/tty1
하지만 로그인 후:
$ ls -l /dev/tty1
c--xr-xr-T 1 $USER tty /dev/tty1
유틸리티 login
는 사용자가 입력할 수 있도록 TTY 소유자를 변경하고 있습니다. 그러나 이 경우에는 권한도 변경되어 더 이상 읽기 및 쓰기가 허용되지 않습니다! 따라서 startx
장치에 쓸 수 없어 권한 거부 오류가 표시됩니다.
해결책
이전에 TTY를 변경할 수 있는 권한입니다 startx
. 내 .zprofile
:
# Auto-start Xorg when logging in on TTY1
check_tty() {
local temp=$(tty)
echo ${temp:5}
}
if [ $(check_tty) = "tty1" ]; then
chmod 1600 /dev/tty1 # Notice the permission change before startx
exec startx
fi
가능한 이유
문제의 정확한 원인을 찾을 수 없습니다. systemd-logind
나에게도 동일한 소유권 문제가 있다는 사실과 관련이 있을 수 있습니다.이 보고서그리고이것실패했을 때 startx
.
나는 또한 PAM과 udev를 조사했지만 실제로 스키마를 변경하는 것은 아무것도 없는 것 같습니다 /dev/tty
!1155