i3と入力してXを起動しようとすると、startx /usr/bin/i3
次のエラーメッセージが表示されます。
(EE) xf86OpenConsole: Cannot open virtual console 7 (Permission denied)
rootで起動したり/ 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