Cygwin 環境の構築:X11を動かす

  1. Cygwin Setupによるインストール
  2. 環境設定
  3. inetutilsの設定
  4. X11を動かす
  5. Cygwin Setupによるアップデート
Cygwin/XFree86 も Cygwin Setup でインストールできるようになりました。

はじめに

Cygwin/XFree86のページを見ましょう。

ダウンロード

適当なミラーサイトの xfree/xc-4-binaries/4.1.0 以下を落としましょう。
$ mkdir /tmp/x
$ cd /tmp/x
$ wget -r -np -nd ftp://mirrors.rcn.net/pub/sourceware/cygwin/xfree/xc-4-binaries/4.1.0/
60MB近くあります。

インストール

ダウンロードしたディレクトリで、
$ cd /tmp/x
$ bunzip2 extract.exe.bz2
$ cp extract.exe /bin
$ ./Xinstall.sh
で、適当に答えていけばOK(たぶん、全部yes)。 /usr/X11R6 以下にインストールされます。一部 /etc に。

                Welcome to the XFree86 4.1.0 installer

You are strongly advised to backup your existing XFree86 installation
before proceeding.  This includes the /usr/X11R6 and /etc/X11
directories.  The installation process will overwrite existing files
in those directories, and this may include some configuration files
that may have been customised.

If you are installing a version different from 4.1.0, you
may need an updated version of this installer script.

Do you wish to continue? (y/n) [n] y
Checking which OS you're running...
uname reports 'CYGWIN_NT-5.0' version '1.3.2(0.39/3/2)', architecture 'i686'.

...

Do you want to install Xfsrv.tgz (font server)? (y/n) [y] y
Do you want to install Xnest.tgz (Nested X server)? (y/n) [y] y
Do you want to install Xprog.tgz (programmer support)? (y/n) [y] y
Do you want to install Xprt.tgz (X print server)? (y/n) [y] y
Do you want to install Xvfb.tgz (Virtual framebuffer X server)? (y/n) [y] y
Do you want to install Xf100.tgz (100dpi fonts)? (y/n) [y] y
Do you want to install Xfcyr.tgz (Cyrillic fonts)? (y/n) [y] y
Do you want to install Xflat2.tgz (Latin-2 fonts)? (y/n) [y] y
Do you want to install Xfnon.tgz (Some large fonts)? (y/n) [y] y
Do you want to install Xfscl.tgz (Scaled fonts (Speedo and Type1))? (y/n) [y] y
Do you want to install Xhtml.tgz (Docs in HTML)? (y/n) [y] y
Do you want to install Xjdoc.tgz (Docs in Japanese)? (y/n) [y] y
Do you want to install Xps.tgz (Docs in PostScript)? (y/n) [y] y

...

You appear to have a termcap file: /etc/termcap
This should be edited manually to replace the xterm entries
with those in /usr/X11R6/lib/X11/etc/xterm.termcap

Note: the new xterm entries are required to take full advantage
of new features, but they may cause problems when used with
older versions of xterm.  A terminal type 'xterm-r6' is included
for compatibility with the standard X11R6 version of xterm.

You appear to have a terminfo directory: /usr/lib/terminfo
New xterm terminfo entries can be installed now.

Note: the new xterm entries are required to take full advantage
of new features, but they may cause problems when used with
older versions of xterm.  A terminal type 'xterm-r6' is included
for compatibility with the standard X11R6 version of xterm.

Do you wish to have the new xterm terminfo entries installed
now (y/n)? [n] y

Installing new terminfo entries for xterm.

On some systems you may get warnings from tic about 'meml'
and 'memu'.  These warnings can safely be ignored.

tic: Can't open /usr/X11R6/lib/X11/etc/xterm.terminfo

If you are going to use rstart and /usr/X11R6/bin isn't in the
default path for commands run remotely via rsh, you will need
a link to rstartd installed in /usr/bin.

Do you wish to have this link installed (y/n)? [n] y
Creating link from /usr/X11R6/bin/rstartd to /usr/bin/rstartd

Installation complete.

XServer

Cygwin/XFree86にはXサーバも含まれています。 個人的には他のXサーバ(例えば、ASTEC-X)をお薦めしますが、Cygwin/XFree86のXサーバそこそこ使えます(昔に比べればずっと安定してます)。
まず、に起動スクリプト(別に使わなくてもいいけど・・)。
$ cd /tmp/x
$ tar zxvf startup-scripts.tgz
$ cp startxwin.* /usr/X11R6/bin
バッチファイルでもシェルスクリプトでも好きなほうを使ってください。 Windowsからならバッチファイル、Cygwinからならどちらでも。 どちらのファイルも修正すべき点は CYGWIN_ROOT のみです。 CYGWIN_ROOTをCYGWINがインストールしているルートディレクトリを指定してください。 まぁ、/usr/X11R6/binにパスが通っていればOKなんだけどね。
で、起動は
$ startxwin.sh
Agent pid 1536
ddxProcessArgument ()
ddxProcessArgument () - screen - argc: 5 i: 1
winDetectSupportedEngines () - Windows NT/2000
winDetectSupportedEngines () - DirectDraw installed
winDetectSupportedEngines () - Allowing PrimaryDD
winDetectSupportedEngines () - DirectDraw4 installed
winDetectSupportedEngines () - Returning, supported engines 0000001f
winSetEngine () - Using Shadow DirectDraw NonLocking
winAdjustVideoModeShadowDDNL () - Using Windows display depth of 24 bits per pixel
winCreateBoundingWindowWindowed () - WindowClient w 1018 h 714 r 1018 l 0 b 714 t 0
winAllocateFBShadowDDNL () - lPitch: 3056
winInitVisualsShadowDDNL () - Masks 00ff0000 0000ff00 000000ff BPRGB 8 d 24
winCreateDefColormap () - Deferring to fbCreateDefColormap ()
で、終了する時は Windowsアプリケーションと同じように Alt+F4。
ところで、CygwinのXサーバはXF86Configとかは見ません。 /etc/X11/XF86Configを一生懸命いじっても、日本語キーボードにはなりません。 日本語キーボードにしたい場合は、xmodmapを使う必要があります。 また、日本語キーボードに対応したマップも必要です。 マップはLinuxなどから
xmodmap -pke
とすればOK。だけど、いちいちそんなことするのも面倒だ!とか Xの動いてるマシンなんか近くにないんじゃ!という人のために、 ここに置いておきました。
xmodmap xmodmap.jp
とすればOKです。ちなみに、Xサーバ(XWin)には標準以外に次のような オプションがあります。
-screen scr_num width height スクリーン番号、スクリーンサイズの指定
-engine engine_type_id       描画エンジンの指定
                              1 - GDI blitter         1
                              2 - DirectDraw blitter  2
                              4 - DirectDraw4 blitter 4
-fullscreen                  フルスクリーンモード
-depth bits_per_pixel        色数(フルスクリーンモード&DirectDraw時のみ)
-refresh rate_in_Hz          リフレッシュレート(同上)
-emulate3buttons [timeout]   3モードボタンのエミュレーションとそのタイムアウト
-[no]winkill                 Xサーバの終了方法にWindowsの方法(Alt+F4)を使う(使わない)
-[no]unixkill                Xサーバの終了方法にXの方法(Ctrl+Alt+Backspace)を使う(使わない)

次は、、
  1. Cygwin Setupによるインストール
  2. 環境設定
  3. inetutilsの設定
  4. X11を動かす
  5. Cygwin Setupによるアップデート
ページの先頭へ