DirectFB 1.3.0 を ubuntu 8.04 (VMware上) で動かす : system=x11 (OpenGLを offにする)

DirectFB 1.3.0 を ubuntu 8.04 (VMware上) で動かす : system=x11 (OpenGLを offにしてみる)

ubuntuには、libdirectfb-1.0-0 がすでに入っています。
ここでは DirectFB を tar ballからinstall しますが、
libdirectfb-1.0-0に依存するものがある場合、それらはどうなるかを確認していません。
試される場合はご自身の責任でお試しください。
VMwareの場合は試す前にスナップショットをとっておくのもよいかもしれません。
「DirectFB 1.3.0 を ubuntu 8.04 (VMware上) で動かす : system=sdl (その1)」
で、なにかのパッケージが入っていると x11 が動かなくなってしまったのでもう一回挑戦。

そのときに、
#ifdef USE_GLX
     dfb_surface_pool_initialize( core, &glxSurfacePoolFuncs, &shared->glx_pool );
#endif
とかこまれているところでおかしなことになってることがわかったので、ここを避ける。

configureの引数を次のようにすると、
$ ./configure --enable-sdl=yes --with-gfxdrivers=none --enable-debug=yes

…

Building Graphics Drivers:
  3Dfx Voodoo               no
  ATI Mach64                no
  ATI Rage 128              no
  ATI Radeon                no
  Cirrus EP9X               no
  Intel i810                no
  Intel i830                no
  Matrox                    no
  NeoMagic                  no
  NSC Geode                 no
  nVidia                    no
  Renesas SH7722            no
  S3 Savage                 no
  SiS 315                   no
  TI Davinci                no
  TI OMAP                   no
  TVIA CyberPro             no
  VIA CLE266                no
  VIA UniChrome             no
  VMWare                    no
  --
  OpenGL                    no (GLX: no)
GLXははずれたように思える。

これをコンパイルして動かしてみる。
$ make
$ sudo make install
$ dfbinfo

   ~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.3.0 |~~~~~~~~~~~~~~~~~~~~~~~~~~
        (c) 2001-2008  The world wide DirectFB Open Source Community
        (c) 2000-2004  Convergence (integrated media) GmbH
      ----------------------------------------------------------------

(*) DirectFB/Core: Single Application Core. (2009-04-15 23:41) [ DEBUG ]
(*) Direct/Thread: Started 'X11 Input' (644) [INPUT OTHER/OTHER 0/0] <8388608>...
(*) DirectFB/Input: X11 Input 0.1 (directfb.org)
(*) DirectFB/Genefx: MMX detected, but disabled by option 'no-mmx'
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  144 (GLX)
  Minor opcode of failed request:  5 (X_GLXMakeCurrent)
  Serial number of failed request:  18
  Current serial number in output stream:  18
(*) DirectFB/Genefx: MMX detected, but disabled by option 'no-mmx'
とでているのは、~/.directfbrc に no-mmx と書いているからです。
ちょっとすすんだのかな?
あれ?おかしいな。。。 configure の結果をみると、OpenGL は no のはずなのに、
なぜ GLX や X_GLXMakeCurrent がよばれる??

ああ、前にinstall したときの、
/usr/local/lib/directfb-1.3-0/gfxdrivers
の下に so が残ってて、それらがうまいこと呼ばれてしまったのですね。。。

うーん、どうしたらいいだろう。
ひとまず、
$ ./configure
$ make
$ sudo make install
$ sudo make uninstall
とすると、/usr/local/lib/directfb-1.3-0 以下はもろもろのディレクトリだけになった。
ちょっと試すだけなので、まぁこれでよしとしちゃいます。

今回ここで得た教訓は、
「install する前に uninstall しておいたほうがよさそう。」
ということでしょうか。。。当たり前といえば当たり前ですかね。。。

なかば反則的な方法ではありましたが気を取り直して。。。
この間失敗した、sdl をつけて、OpenGL を no にするようにやってみる。

~/.directfbrc は

system=x11
no-mmx

と書かれている
$ ./configure --enable-sdl=yes --with-gfxdrivers=none --enable-debug=yes

…

Building System Modules:
  Linux FBDev support       yes
  Generic /dev/mem support  yes
  X11 support               yes                 -I/usr/X11R6/include    -L/usr/X11R6/lib -lX11 -lXext
  OSX support               no                    
  SDL support               yes                 -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/SDL      -lSDL 
  VNC support               no                    

…

Building Graphics Drivers:
  3Dfx Voodoo               no
  ATI Mach64                no
  ATI Rage 128              no
  ATI Radeon                no
  Cirrus EP9X               no
  Intel i810                no
  Intel i830                no
  Matrox                    no
  NeoMagic                  no
  NSC Geode                 no
  nVidia                    no
  Renesas SH7722            no
  S3 Savage                 no
  SiS 315                   no
  TI Davinci                no
  TI OMAP                   no
  TVIA CyberPro             no
  VIA CLE266                no
  VIA UniChrome             no
  VMWare                    no
  --
  OpenGL                    no (GLX: no)

…

$ make
$ sudo make install
$ dfbinfo

   ~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.3.0 |~~~~~~~~~~~~~~~~~~~~~~~~~~
        (c) 2001-2008  The world wide DirectFB Open Source Community
        (c) 2000-2004  Convergence (integrated media) GmbH
      ----------------------------------------------------------------

(*) DirectFB/Core: Single Application Core. (2009-04-27 17:44) [ DEBUG ]
(*) Direct/Thread: Started 'X11 Input' (2241) [INPUT OTHER/OTHER 0/0] <8388608>...
(*) DirectFB/Input: X11 Input 0.1 (directfb.org)
(*) DirectFB/Genefx: MMX detected, but disabled by option 'no-mmx'
(*) DirectFB/Graphics: Generic Software Rasterizer 0.6 (directfb.org)
(*) DirectFB/Core/WM: Default 0.3 (directfb.org)
(*) X11/Window: Creating 1024x 768 RGB32 window...
(*) X11/Display: Using XShm.


Screen (00) X11 Primary Screen              (primary screen)
   Caps:

     Layer (00) X11 Primary Layer               (primary layer)
        Type:    GRAPHICS
        Caps:    SURFACE


Input (00) X11 Input                       (primary keyboard)
   Type: KEYBOARD MOUSE JOYSTICK
   Caps: KEYS AXES BUTTONS
   Min. Keycode: 8
   Max. Keycode: 255
   Max. Axis: 0
   Max. Button: 0
お!動いた!

DirectFB-examples-1.2.0 を動かしてみる。
$ ./configure
$ make
$ sudo make install
/usr/local/bin の下に、df_* ができた。

df_andi, df_dok, df_porter が動いた。ちょっとうれしい。

df_fireが動かない。。。
$ ./df_fire

   ~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.3.0 |~~~~~~~~~~~~~~~~~~~~~~~~~~
        (c) 2001-2008  The world wide DirectFB Open Source Community
        (c) 2000-2004  Convergence (integrated media) GmbH
      ----------------------------------------------------------------

(*) DirectFB/Core: Single Application Core. (2009-04-27 17:44) [ DEBUG ]
(*) Direct/Thread: Started 'X11 Input' (4228) [INPUT OTHER/OTHER 0/0] <8388608>...
(*) DirectFB/Input: X11 Input 0.1 (directfb.org)
(*) DirectFB/Genefx: MMX detected, but disabled by option 'no-mmx'
(*) DirectFB/Graphics: Generic Software Rasterizer 0.6 (directfb.org)
(*) DirectFB/Core/WM: Default 0.3 (directfb.org)
(*) X11/Window: Creating 1024x 768 RGB32 window...
(*) X11/Display: Using XShm.
(#) DirectFBError [IDirectFB::CreateSurface() failed]: Not supported!
(*) X11/Window: Creating 1024x 768 RGB32 window...
(*) X11/Display: Using XShm.
うーん。。。




トップページへ

鮫洲曙町会ホームページ