#navi(Setup) #contents ---- PC-XServerの設定を行いMS-Windowsから便利に X Window System を利用する。 &br;一台のunixホストを複数のMS-Windowsクライアントから利用するような用途で便利。 -[[link集/OS系#Cygwin]] -[[link集/OS系#Other_XServer]] ~このページでの定義 -Host側PC :unix Like OSを実行しているPC/WS。 -Client側PC:WindowsOSを実行しているPC。 ~Host側PCから見た空けるべきポート番号 -SrcPort = TCP:6000(X11)+ディスプレイ番号 -DstPort = UDP:177(xdmcp) -DstPort = TCP:7100(xfs) *Host側の設定 [#Host] **[[Linux全般>link集/OS系/Linux]] [#Host_LinuxCommon] CentOS 4.2 の場合(SELinux無し) ***DisplayManagerの設定 [#Host_LinuxCommon_DispMgr] +Xaccessの設定 # vi /etc/X11/xdm/Xaccess 下記の行が有効になっている事を確認する。 * CHOOSER BROADCAST #any indirect host can get a chooser +どのDisplayManagerが使われているかチェックする # ps -aux | grep -e dm 一般的には下記の内のどれか --xdm([[X Display Manager:http://www.x.org]]) --gdm(GNOME Display Manager) --kdm(KDE Display Manager) --wdm([[WINGs Display Manager:http://www.windowmaker.info/projects.php?show=applications]]) --LightDM(Ubuntu Linux等) +DisplayManagerの設定変更(コマンドで設定) ++xdm # ps -aux | grep -e xdm xdm-configの設定 # vi /etc/X11/xdm/xdm-config 「DisplayManager.requestPort」の変更~ (修正前) DisplayManager.requestPort: 0 (修正後) !DisplayManager.requestPort: 0 ++gdm # ps -aux | grep -e gdm gdm.confの編集 # vi /etc/X11/gdm/gdm.conf [xdmcp]セクションの変更~ (修正前) Enable=false #Port=177 (修正後) Enable=true Port=177 ++kdm # ps -aux | grep -e kdm kdmrcの編集 ~一般的な場合 # vi /etc/kde/kdm/kdmrc SuSE Linux 9.2 の場合 # vi /opt/kde3/share/config/kdm/kdmrc [Xdmcp]セクションの変更~ (修正前) Enable=false (修正後) Enable=true ++LightDM # ps -aux | grep -e lightdm lightdm.confの編集 $ sudo vi /etc/lightdm/lightdm.conf (変更内容) [SeatDefaults] greeter-session=unity-greeter user-session=ubuntu xserver-allow-tcp=true (追加) [XDMCPServer] (追加) enabled=true (追加) +DisplayManagerの設定変更(GUIで設定) ~下記のGNOMEメニューを開く [アプリケーション] - [システム設定] - [ログイン画面] &ref(XDMCP_GUI.png,noimg,本画面ではgdmの設定のみ可能。); #br +設定の反映 ~TeraTermPro等のターミナルから下記コマンドを実行する。 &br;但しこの方法では「init 3」で固まりうまく行かない場合もある # init 3; sleep 20; init 5 +設定の反映 ~上記の方法では駄目ならばログイン画面で下記操作を実行し、 [Ctrl] + [Alt] + [BackSpace] Xを強制終了→自動でXの再起動させる。 #br +listen状態のチェック # netstat -an | grep -e 177 こんな感じ udp 0 0 0.0.0.0:177 0.0.0.0:* ***FontServerの設定 [#Host_LinuxCommon_xfs] +xfsの設定 # vi /etc/X11/fs/config (修正前) no-listen = tcp (修正後) #no-listen = tcp +フォント設定 ~[[フォントの登録>link集/OS系/Linux/Tips#Common_Font]] +FontServerの再起動 # /etc/init.d/xfs stop # /etc/init.d/xfs start +listen状態のチェック # netstat -an | grep -e 7100 こんな感じ tcp 0 0 0.0.0.0:7100 0.0.0.0:* LISTEN ***その他の設定 [#Host_LinuxCommon_Other] -起動レベルの変更 # vi /etc/inittab 起動レベルを「5」に変更 id:5:initdefault: -ポート番号の解放 ++各ポート番号のサービス名のチェック # vi /etc/services ++TCPWrapperの設定 # vi /etc/hosts.allow # vi /etc/hosts.deny ++iptablesの設定(Redhat向け) ~設定の編集 # vi /etc/sysconfig/iptables (追加) ~&color(RED){※REJECT定義している行よりも上に記述する}; -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 177 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6000 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 7100 -j ACCEPT 設定の反映 # /etc/init.d/iptables stop # /etc/init.d/iptables start **その他の設定 [#Host_Other] #ls2(Setup/PC-XServer/Host/,title) ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// *Client側の設定 [#Client] :Windows XP SP2/Windows Server 2003 SP1以降での注意事項|Firewallが有効な場合は、当然下記ポート番号を開ける必要有り。 --TCP:6000(X11)+ディスプレイ番号 --UDP:177(xdmcp) --TCP:7100(xfs) **Cygwin [#Client_Cygwin] +Cygwinのインストール ~「[[Setup/Cygwin]]」の手順通りに行う。但しパッケージに下記のインストールオプションを追加する。 ~「All > X11」の下記のものにチェックマークを付ける xorg-server: X.Org X servers font-XXXX &ref(CygwinSetup2.png,nolink); &ref(CygwinSetup3.png,nolink); +「XWin.exe」の実行 ~自ホスト名は「hostname」コマンドで取得(「`」は「Shift + @」で入力) ~Cygwinのフォント利用 # XWin.exe \ :0 \ -query WWW.XXX.YYY.ZZZ \ -from `hostname` \ -screen 0 1280 1024 ホストPC(IP:WWW.XXX.YYY.ZZZ)のフォントをxfs経由で利用 # XWin.exe \ :0 \ -fp tcp/WWW.XXX.YYY.ZZZ:7100 \ -query WWW.XXX.YYY.ZZZ \ -from `hostname` \ -screen 0 1280 1024 現在のクライアントのデスクトップサイズに「XWin.exe」を合わせたい場合は、下記のように指定する。 -screen 0 Shellスクリプトにする場合の例 #!/bin/sh DISPLAYNO=0 SCREENNO=0 TARGET_HOST=WWW.XXX.YYY.ZZZ XWin.exe \ :${DISPLAYNO} \ -fp tcp/${TARGET_HOST}:7100 \ -query ${TARGET_HOST} \ -from `hostname` \ -screen ${SCREENNO} \ -logfile /tmp/Xwin${DISPLAYNO}.log +入力が英語キーボード配列になってしまう場合 ++引数にキーボード配列の指定を追加する。 # XWin.exe \ :0 \ -fp tcp/WWW.XXX.YYY.ZZZ:7100 \ -query WWW.XXX.YYY.ZZZ \ -from `hostname` \ -screen 0 1280 1024 \ -xkblayout jp \ -xkbmodel jp106 ++レイアウトの選択ダイアログが出た場合は「Xの設定を使う」を選択する。 ~&ref(Cygwin_XKB.png,nolink); ++それでもおかしい場合は、GNOMEなら下記メニューより設定を変更する。 ~&ref(Cygwin_XKB2.png,nolink); +Cygwinの起動省略(コンソールウィンドウ有り) ~いちいちCygwinを起動してシェルを実行するのは面倒。 ++「XWin.exe」の起動スクリプトを「runXWin.sh」として自分のホームディレクトリに配置 ++直接起動を行うバッチファイルを作成し、Cygwinのフォルダにでも入れておく。 @ECHO OFF SET CYGWIN_PATH=C:\cygwin CD /D %CYGWIN_PATH%\bin bash --login -c ~/runXWin.sh ++上記で作成したバッチファイルのショートカットを作成し、プロパティで実行時の大きさを「最小化」に設定して実行。 ~動作ログはCygwinの/tmpフォルダに「XWin.log」として作成される。 ++(゚Д゚) ウマ〜 #br +Cygwinの起動省略(コンソールウィンドウ無し) ~いちいちCygwinを起動してシェルを実行するのは面倒。コンソールウィンドウが表示されるのも邪魔。 &br;Cygwinの「run.exe」を使用して「XWin.exe」「XWin_GL.exe」を呼び出すバッチファイルを作成する。 @ECHO OFF SET CYGWIN_PATH=C:\cygwin SET DISPLAYNO=0 SET SCREENNO=0 SET TARGET_HOST=WWW.XXX.YYY.ZZZ SET ARG_PARAM= SET ARG_PARAM=%ARG_PARAM% :%DISPLAYNO% SET ARG_PARAM=%ARG_PARAM% -fp tcp/%TARGET_HOST%:7100 SET ARG_PARAM=%ARG_PARAM% -query %TARGET_HOST% SET ARG_PARAM=%ARG_PARAM% -from %COMPUTERNAME% SET ARG_PARAM=%ARG_PARAM% -screen %SCREENNO% 1280 1024 SET ARG_PARAM=%ARG_PARAM% -logfile /tmp/Xwin%DISPLAYNO%.log SET ARG_PARAM=%ARG_PARAM% -xkblayout jp SET ARG_PARAM=%ARG_PARAM% -xkbmodel jp106 SET ARG_PARAM=%ARG_PARAM% -clipboard REM 環境変数「PATH」にCygwinのbinを登録 SET PATH=%CYGWIN_PATH%\bin;%CYGWIN_PATH%\usr\X11R6\bin;%PATH% run.exe XWin_GL.exe %ARG_PARAM% +接続結果 ~&ref(:MyDocument/XServer/CentOS42.png,noimg,CentOS 4.2 の場合); +所見 ~CentOS4.2/IRIX6.5に接続した場合、ログアウト処理に時間が掛かる場合があるがそれ以外は特に問題はなく快適に使用可能。通信負荷はあまり感じられなく、快適かどうかはHost側のPCの性能に依存するものと思われる。X-WindowのScreenSaverが起動するとかなりCPUリソースを喰う模様。とりあえず最小化しておけば問題はない。 +Tips --利用中にマウスカーソルが消えてしまった場合 ~Windows側のCygwinのタスクアイコンの右クリックメニューに「Show Cursor」があるので、それを選択すると表示されるようになる。 --Linuxからのログアウトが遅い ~[[ASTEC-X > FAQ > Windows ファイアウォール関連の問題:http://www.astec-x.com/FAQ/xp_sp2_fw.html#problem]] --DirectXなプログラムとの相性 ~XWin.exeはDirectDrawを利用している為、FullScreenなDirectXプログラムやHLSLなShaderを利用しているDirectXプログラムとは相性が悪い・・・というか落ちる。 **Xming [#Client_Xming] +Xmingのインストール ++[[SourceForgeのプロジェクトページ:http://sf.net/projects/xming]]にアクセスする。 ++%%最新版の%%インストーラ([[Xming-20060328-setup.exe:http://sf.net/project/showfiles.php?group_id=156984&package_id=175377&release_id=405337]])を取得する。 ++2007年以降のものは有償化されているので、PublicDomainの最終版のインストーラ([[Xming-6-9-0-31-setup.exe:http://sourceforge.net/projects/xming/files/Xming/6.9.0.31/Xming-6-9-0-31-setup.exe/download]])を取得する。 ~参考:[[Document/SourceForge.net]] &br;&color(red){※CentOS 4.x との接続において、「Xming-20060412-setup.exe」以降のバージョンを利用すると、キーボード入力が常にカタカナ入力になってしまう悲惨な状況になるので注意が必要。その為に古いバージョンを利用する。}; &br;&color(red){※「Xming-6-9-0-20-setup.exe」以降のバージョンのインストールにはWindowsXP以降が必要。}; ++インストーラを実行し、インストールを行う。 ~インストール時には、「.xlaunch」への関連付けを有効にしておいた方が良い。 &br;接続先のFontServerを利用する場合はFontパッケージをインストール必要はない。 &br;[[フォントパッケージ:http://www.straightrunning.com/XmingNotes/#head-122]]には下記のものがある。 ---%%Xming-fonts-20051117-setup.exe%% ---%%Xming-100dpi-setup.exe%% ---%%Xming-75dpi-setup.exe%% ---%%Xming-cyrillic-setup.exe%% ---Xming-fonts-6-9-0-6-setup.exe +スタートメニューの [Xming] -> [XLaunch] を実行し、ウィザードにより接続先の指定を行う。 ~Cygwinと同様にする場合は、[[ここを参考:http://www.straightrunning.com/XmingNotes/#head-131]]に下記の通りにする。 ++[Select Display Settings] ~&ref(:MyDocument/XServer/XmingConfig001.png,noimg); ++[Select How to start Xming] ~&ref(:MyDocument/XServer/XmingConfig002.png,noimg); ++[Configure a remote xdmcp connection] ~&ref(:MyDocument/XServer/XmingConfig003.png,noimg); ++[Specify parameter settings] ~→FontServer名及び画面解像度(解像度を指定しない場合は現在のClientPCの画面解像度になる)の指定 &br;&ref(:MyDocument/XServer/XmingConfig004.png,noimg); ~入力が英語キーボード配列になってしまう場合は「Additional parameters〜」の引数にキーボード配列の指定を追加する。 -xkblayout jp -xkbmodel jp106 ++[Configuration complete] ~→「Save configuration」ボタンを押下し、設定ファイル(〜.xlaunch)を保存する。 &br;&ref(:MyDocument/XServer/XmingConfig005.png,noimg); ++最後に保存した設定ファイル(〜.xlaunch)を実行する。 ~動作ログはWindowsのTEMPフォルダに「Xming.0.log」として作成される。 +接続結果 ~&ref(:MyDocument/XServer/turbo10d.png,noimg,TurboLinux10D の場合); +所見 ~CentOS4.2に接続した場合、妙に重くなっていく・・・。IRIX6.5では特に問題はなさそうだった。 **X-Deep/32 [#Client_XDeep32] &color(red){※本アプリの X Window System のライブラリはバージョンが古いので最近のUTF-8ロケールなLinuxディストリビューションには向かない}; +X-Deep/32のインストール ++[[プロジェクトページ:http://www.pexus.com/Download/download.html]]にアクセスする。 ++最新版のインストーラ(xdp40Full.exe)を取得する。 ++インストーラよりインストールを行う。 #br +「X-Deep/32」を実行する。自分のサブネットを選択する。 ~&ref(:MyDocument/XServer/XDeep32_IRIX1.png,noimg); +メニューより「X-Server Options」を選択する。 ~&ref(:MyDocument/XServer/XDeep32_IRIX2.png,noimg); +「XDMCP」タブの「Configure LocalXDM Chooser」ボタンを押下する。 ~&ref(:MyDocument/XServer/XDeep32_IRIX3.png,noimg); +接続対象のホスト名/IPアドレスを入力する。OKボタンを押下し設定を反映する。 ~&ref(:MyDocument/XServer/XDeep32_IRIX4.png,noimg); +プログラムの再度起動を促されるので再起動する。 +追加したホストを選択し「Connect」ボタンを押下する。 ~&ref(:MyDocument/XServer/XDeep32_IRIX5.png,noimg); +接続結果 ~&ref(:MyDocument/XServer/XDeep32_IRIX6.png,noimg,IRIX6.5 の場合); +所見 ~Cygwin/Xmingを使った方が便利・・・orz **TeraTerm [#Client_TeraTermPro] ローカルPC-X Serverと連携する方法。SSH経由なのでXDMCPはあまり関係ないかも知れない。 +TeraTermのインストール ++[[SourceForgeのプロジェクトページ:http://sourceforge.jp/projects/ttssh2]]にアクセスする。 ~参考:[[Document/SourceForge.jp]] ++インストーラを実行し、インストールを行う。 #br +Cygwin/Xmingのどちらかのインストール ~インストール手順は上の手順を参照方。 #br +TeraTermでSSH転送設定の変更 ++メニューの [設定] - [SSH転送] を開く。 ++[リモートのXアプリケーションをローカルのXサーバに表示する]にチェックを入れる。 ~&ref(TeraTermPro_SSHtransmit.png,noimg,SSHポート転送); ++メニューの [設定] - [設定の保存] で変更内容を保存する。 #br +ローカルのPC-X Serverを起動する --Cygwinの場合 $ startx --Xmingの場合 ~スタートメニューの「Xming」を実行する。 +TeraTermから利用したいXアプリケーションを起動する $ xev #navi(Setup)