この質問は、Ubuntu 14.04で/usr/bin/Xorg
を直接実行することに関するものです。
そして、私はXdummyが存在することを知っていますが、nvidia GPUでダミードライバーを適切に動作させることができなかったため、これはオプションではありません。
システム全体のxorg.conf
と/usr/lib/xorg/modules
をコピーして、少し変更しました。 (xorg.conf
でもModulePath
と指定)
ルートとして次のコマンドを実行すると正常に動作します。
Xorg -noreset +extension GLX +extension RANDR +extension RENDER -logfile ./16.log -config ./xorg.conf :16
しかし、それをroot以外のユーザーとして実行すると(ログファイルのアクセス許可はOK)、このエラーが発生します。
(EE)
Fatal server error:
(EE) xf86OpenConsole: Cannot open virtual console 9 (Permission denied)
(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 "./16.log" for additional information.
(EE)
(EE) Server terminated with error (1). Closing log file.
SudoなしでXorgを実行するのを手伝ってくれませんか?
Xの実行を許可されているユーザーを特定するには、
dpkg-reconfigure x11-common
Rootのみ、コンソールユーザーのみ、またはanybodyの3つのオプションがあります。エントリは/etc/X11/Xwrapper.config
にあります。
Debian 9およびUbuntu 16.04以降、このファイルは存在しません。 xserver-xorg-legacy
をインストールすると、ファイルが再び表示され、その内容を次のように変更する必要があります。
allowed_users=console
に:
allowed_users=anybody
needs_root_rights=yes
Xの起動時に使用する仮想端末も指定する必要があります。指定しない場合、エラーが発生する可能性があります。例えば:
Xorg :8 vt8
Xは、入力デバイス(マウスとキーボード)と、出力用のモニターとグラフィックスカードにアクセスする必要があります。
非ルートXでこれを実現するには、Xorg
のグループをroot
からinput
に変更し、setgitビットを設定して、ユーザーをグループvideo
:
chown root:input /usr/lib/xorg/Xorg
chmod g+s /usr/lib/xorg/Xorg
adduser YOURUSERNAME video
(代わりに、ユーザーをvideo
とinput
の両方に追加することもできますが、お勧めしません。グループinput
のユーザーは、他のユーザーの入力をスパイできます。たとえば、GUI Xは、おそらくconsole/ttyに入力されたrootパスワードをスパイする可能性があります。)