XDMCP
このページでは "X Display Manager Control Protocol" (XDMCP) を使ってリモートセッションを実現する方法を説明します。パラメータについては GDM のドキュメントを見て下さい: [1]。
目次
グラフィカルログインの設定
XDM
/etc/X11/xdm/xdm-config
を開いて以下をコメントアウトしてください:
DisplayManager.requestPort: 0
以下のようになります:
!DisplayManager.requestPort: 0
次に /etc/X11/xdm/Xaccess
を編集して全てのホストでログインウィンドウを表示できるようにしてください。以下のようになっている行を見て下さい:
* #any host can get a login window
行頭のハッシュ記号 '#' を削除してください。
ネットワークインターフェイスが複数ある場合は以下のように行を追加します:
LISTEN 192.168.0.10
192.168.0.10 はサーバーの IP アドレスに置き換えて下さい。
設定後 X サーバーと xdm デーモンを再起動してください。
GDM
/etc/gdm/custom.conf
を編集して以下を記述:
[xdmcp] Enable=true Port=177
そして Gnome Display Manager を再起動:
# systemctl restart gdm
inittab を使っている場合、root で他の tty にログインして以下を実行:
# telinit 3 # telinit 5 && exit
KDM
Xdmcp 機能のサポートはあまり安定していません。LightDM を使うほうが簡単です。
kdmrc (/opt/kde/share/config/kdm/kdmrc
[KDE 3x] または /usr/share/config/kdm/kdmrc
[KDE 4x]) を編集して以下のように記述してください:
[Xdmcp] Enable=true
変更を適用するには X サーバーを再起動する必要があります:
# systemctl restart kdm
LightDM
/etc/lightdm/lightdm.conf
を編集して以下を記述:
[XDMCPServer] enabled=true port=177
そして LightDM を再起動:
# systemctl restart lightdm
SLiM
SLiM は Xdmcp をサポートしていません。
LAN 上のリモートマシンから X にアクセス
以下のコマンドでネットワーク上の 192.168.0.10 のコンピュータのログインマネージャにアクセスすることができます。TCP と UDP ストリームが開きます。SSH 接続でログインマネージャにアクセスすることはできません。
# Xnest -query 192.168.0.10 -geometry 1280x1024 :1
もしくは、Xnest で描画が更新されない問題が起こる場合、Xephyr を使用:
# Xephyr -query 192.168.0.10 -screen 1280x1024 -br -reset -terminate :1
もしくは、ランレベル3の場合:
# X -query your_server_ip
Xserver がモニターを認識して適切な解像度が設定されるはずです。
上述のように XDMCP のアクセスを許可したら、/etc/X11/xdm/Xservers
を編集して以下をコメントアウト:
#:0 local /usr/bin/X :0
root で XDM を起動して下さい。例: xdm -config /etc/X11/xdm/archlinux/xdm-config
。
シンクライアントの設定
dhcp と tftp サーバーを設定する必要があります。Dnsmasq が両方のサーバーの働きをします。ネットワークブートイメージは thinstation プロジェクトを見て下さい。ネットワークカードが PXE をサポートしていない場合、Etherboot を試すことができます。
GUI ベースのクライアント
- remmina
- Xming for Windows
トラブルシューティング
Session declined: Maximum Number of Sessions Reached
/etc/gdm/custom.conf
を編集して最大セッション数を追加してください:
[xdmcp] Enable=true MaxSessions=2
ログイン画面や GNOME にチラつきが発生する
ログイン画面が何度も作成されて反応しない場合、リモートマシンの GNOME Shell にアクセスしようとしています。ワイヤレスで接続されているなど、ネットワークの速度が原因です。GNOME Shell を無効化/アンインストールしてください:
# pacman -R gnome-shell