젠투에서 X를 시작하려고 할 때 가상 콘솔 7을 열 수 없습니다(권한 거부됨)

젠투에서 X를 시작하려고 할 때 가상 콘솔 7을 열 수 없습니다(권한 거부됨)

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/ 중지해야 합니다 . 그것은 확실히 현대적인 작업 방식이 아니며 당신을 위한 것도 아닙니다.Xorgtty7

답변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

관련 정보