問題の症状
- Cygwin-XでXを起動すると、一瞬XWin.exeが起動されるが、すぐに終了してしまう。
- ログ(/var/log/xwin/XWin.0.log)は以下のようになっており、"winClipboardProc - winClipboardFlushWindowsMessageQueue trapped WM_QUIT message, exiting main loop."というメッセージの出力の通り、WM_QUITメッセージによりメインループを抜けてしまっている。
Welcome to the XWin X Server
Vendor: The Cygwin/X Project
Release: 1.16.3.0
OS: CYGWIN_NT-6.1 hostname 1.7.33-2(0.280/5/3) 2014-11-13 15:47 x86_64
OS: Windows 7 Service Pack 1 [Windows NT 6.1 build 7601] (Win64)
Package: version 1.16.3-1 built 2014-12-30
XWin was started with the following command line:
/usr/bin/XWin :0 -multiwindow -nolisten tcp -auth
/cygdrive/c/Users/username/.serverauth.7540
ddxProcessArgument - Initializing default screens
winInitializeScreenDefaults - primary monitor w 1920 h 1200
winInitializeScreenDefaults - native DPI x 96 y 96
[ 403.995] (II) xorg.conf is not supported
[ 403.995] (II) See http://x.cygwin.com/docs/faq/cygwin-x-faq.html for more information
[ 403.995] LoadPreferences: /cygdrive/c/Users/0000119109/.XWinrc not found
[ 403.995] LoadPreferences: Loading /etc/X11/system.XWinrc
[ 403.995] LoadPreferences: Done parsing the configuration file...
[ 403.995] winDetectSupportedEngines - DirectDraw4 installed, allowing ShadowDDNL
[ 403.995] winDetectSupportedEngines - Returning, supported engines 00000015
[ 403.995] winSetEngine - Multi Window or Rootless => ShadowGDI
[ 403.995] winScreenInit - Using Windows display depth of 32 bits per pixel
[ 404.011] winAllocateFBShadowGDI - Creating DIB with width: 1920 height: 1200 depth: 32
[ 404.011] winFinishScreenInitFB - Masks: 00ff0000 0000ff00 000000ff
[ 404.011] winInitVisualsShadowGDI - Masks 00ff0000 0000ff00 000000ff BPRGB 8 d 24 bpp 32
[ 404.011] MIT-SHM extension disabled due to lack of kernel support
[ 404.026] XFree86-Bigfont extension local-client optimization disabled due to lack of shared memory support in the kernel
[ 404.026] glWinSelectGLimplementation: Loaded 'cygnativeGLthunk.dll'
[ 404.026] (II) AIGLX: Testing pixelFormatIndex 1
[ 404.136] GL_VERSION: 3.3.0 - Build 8.15.10.2712
[ 404.136] GL_VENDOR: Intel
[ 404.136] GL_RENDERER: Intel(R) HD Graphics 4000
[ 404.136] (II) AIGLX: enabled GLX_SGI_make_current_read
[ 404.136] (II) AIGLX: enabled GLX_MESA_copy_sub_buffer
[ 404.136] (II) AIGLX: enabled GLX_SGI_swap_control and GLX_MESA_swap_control
[ 404.136] (II) AIGLX: enabled GLX_SGIX_pbuffer
[ 404.136] (II) AIGLX: enabled GLX_ARB_multisample and GLX_SGIS_multisample
[ 404.136] (II) 66 pixel formats reported by wglGetPixelFormatAttribivARB
[ 404.136] (II) AIGLX: Set GLX version to 1.4
[ 404.136] (II) 21 fbConfigs
[ 404.136] (II) ignored pixel formats: 0 not OpenGL, 6 RBGA float, 3 RGBA unsigned float, 0 unknown pixel type, 36 unaccelerated
[ 404.136] (II) GLX: Initialized Win32 native WGL GL provider for screen 0
[ 404.229] winPointerWarpCursor - Discarding first warp: 960 600
[ 404.229] (--) 5 mouse buttons found
[ 404.229] (--) Setting autorepeat to delay=500, rate=31
[ 404.791] (II) Loading US keyboard layout.
[ 404.791] (--) Windows keyboard layout: "E0210411" (00000411) "ATOK 2012", type 7
[ 404.791] (--) Found matching XKB configuration "Japanese"
[ 404.791] (--) Model = "jp106" Layout = "jp" Variant = "none" Options = "none"
[ 404.791] Rules = "base" Model = "jp106" Layout = "jp" Variant = "none" Options = "none"
[ 404.853] winInitMultiWindowWM - DISPLAY=:0.0
[ 404.853] winMultiWindowXMsgProc - DISPLAY=:0.0
[ 404.884] winProcEstablishConnection - winInitClipboard returned.
[ 404.884] winInitMultiWindowWM - XOpenDisplay () returned and successfully opened the display.
[ 404.884] winClipboardThreadProc - DISPLAY=:0.0
[ 404.884] OS maintains clipboard viewer chain: yes
[ 404.884] winMultiWindowXMsgProc - XOpenDisplay () returned and successfully opened the display.
[ 404.884] winClipboardProc - XOpenDisplay () returned and successfully opened the display.
[ 405.134] winClipboardProc - winClipboardFlushWindowsMessageQueue trapped WM_QUIT message, exiting main loop. <=== ここ!
[ 405.134] winClipboardProc - XDestroyWindow succeeded.
[ 405.134] winClipboardIOErrorHandler!
[ 405.134] winMultiWindowXMsgProcIOErrorHandler!
[ 405.134] winInitMultiWindowXMsgProc - Caught IO Error. Exiting.
[ 405.134] winDeinitMultiWindowWM - Noting shutdown in progress
[ 405.134] (EE) Server terminated successfully (0). Closing log file.
調査の結果わかったこと
- HOMEディレクトリに自前の.startxwinrcを用意していると問題が発生する
- デフォルトの/etc/X11/xinit/startxwinrcのスクリプトが走れば起動する
- スクリプトで起動している/usr/bin/fbpanelの有無で再現性が変わる
解決方法
二通りの解決方法があります。- Xwin.exeを直起動する
- Cygwin-Xのアイコン(ショートカット)のプロパティを開き、「リンク先」を以下のように変更すればよい。
- (デフォルト)C:\cygwin64\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; /usr/bin/startxwin"
- (修正後)C:\cygwin64\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; /usr/bin/XWin.exe :0 -multiwindow"
- この方法だとHOMEディレクトリ以下の.startxwinrcがロードされないので注意してください(.xinitrc, .Xclientsもロードされない模様)。
- 自前の.startxwinrcで/usr/bin/fbpanelを起動する
- fbpanelを起動すると画面左上の最前面に常にXアイコンが表示される状態になり、非常にジャマです。fbpanelを使いたい!という人以外には、この方法はおすすめしません。
参考情報
いずれも自分の環境では解決には至りませんでしたが、参考まで。- X does not start after cygwin upgrade
- Re: cygwin 1.7 startxwin failing due to "winMultiWindowXMsgProc - another window manager is running. Exiting."
- Problems using startxwin.bat
(2016/11/08追記)
cygwinを最新版(2.6.0)にアップデートしたところ、インストールしたままのデフォルトの状態でXサーバーが起動できるようになっていることが分かりました。逆に、本エントリで紹介しているXWin.exeを直に起動する手順を実行するとXサーバーの起動に失敗する(いつまでまっても起動されない)のでご注意を。
0 件のコメント:
コメントを投稿