2 日前にシステムを更新しましたが、startx systemd スクリプトが起動に失敗したことに気付きました。これは、Arch がデフォルトで tty1 で起動したことが原因であるようです。tty7 に切り替えて startx systemd スクリプトを再起動すると、systemd スクリプトが tty7 を指定しているためと思われますが、正常に動作します。2 日前は動作していたのに、"startx" コマンドだけを実行すると、次のエラーが発生します。
(==) Log file: "/home/XXXXX/.local/share/xorg/Xorg.0.log", Time: Wed Feb 10 19:13:22 2016
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
(EE)
Fatal server error:
(EE) parse_vt_settings: Cannot open /dev/tty0 (No such file or directory)
(EE)
(EE)
Please consult the The X.Org Foundation support
at http://wiki.x.org
for help.
(EE) Please also check the log file at "/home/XXXXX/.local/share/xorg/Xorg.0.log" for additional information.
(EE)
(EE) Server terminated with error (1). Closing log file.
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error
Couldn't get a file descriptor referring to the console
以下は systemd スクリプトからの関連スニペットです:
TTYPath=/dev/tty7
ExecStart = /usr/bin/xinit /usr/bin/dbus-launch --exit-with-session /usr/bin/kodi-standalone -- :0 -nolisten tcp vt7
Restart = on-abort
StandardInput = tty
通常、システムは tty7 で起動し、GUI アプリは tty7 が指定されているかどうかに関係なく問題なく起動しますが、現在 startx はデフォルトで tty0 を使用しようとしますが、これは存在しないようです。デフォルトの動作に変更があったのでしょうか? これを解決するにはどうすればよいでしょうか?
答え1
ようやく原因が分かりました。Kodi に必要な Xwrapper.config を編集し、それ以降は要件をテストするために変更を加えました。更新によって何かが変更され、再び必要になったに違いありません。
sudo nano /etc/X11/Xwrapper.config
allowed_users=anybody
needs_root_rights = yes // no value caused issues
sudo startx はオプションなしでも動作しましたが、実行して終了すると tty7 に切り替えることができなくなります。
私の理解では、startx には root 権限は必要ないので、なぜそれが必要なのかまだわかりません。