[[diary/Kojima]]

・Mesa-7.5.2

昨日の続きで、xorg-server-1.6 用に
[[libdrm-2.4.14:ftp://plamo.linet.gr.jp/pub/Plamo-test/for-4.7x/xorg-server-1.6/libdrm-2.4.14-i586-P1.tgz]]、
[[libXi-1.3:ftp://plamo.linet.gr.jp/pub/Plamo-test/for-4.7x/xorg-server-1.6/libXi-1.3-i586-P1.tgz]] 、
[[Mesa-7.5.2:ftp://plamo.linet.gr.jp/pub/Plamo-test/for-4.7x/xorg-server-1.6/Mesa-7.5.2-i586-P1.tgz]]
をビルドしてみました。

一応、手元のTPX60sでは

 OpenGL vendor string: Tungsten Graphics, Inc
 OpenGL renderer string: Mesa DRI Intel(R) 945GM GEM 20090712 2009Q2 RC3 x86/MMX/SSE2
 OpenGL version string: 1.4 Mesa 7.5.2

で動いている感じ。
-一応提供されているすべてのpackages をupdateしました。で、intelをこちらでもcompileしてみましたが、

/usr/X11R7/include/xorg/shmint.h:27:35: error: X11/extensions/shmstr.h: そのようなファイルやディレクトリはありません

/usr/X11R7/include/xorg/shmint.h:34: error: expected declaration specifiers or '...' before 'ShmFuncsPtr'

In file included from uxa.c:37:

uxa-priv.h:344: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'uxa_shm_funcs'

uxa.c: In function 'uxa_driver_init':

uxa.c:528: error: 'uxa_shm_funcs' undeclared (first use in this function)

uxa.c:528: error: (Each undeclared identifier is reported only once

uxa.c:528: error: for each function it appears in.)

uxa.c:528: error: too many arguments to function 'ShmRegisterFuncs'


となってこけてしまいます。shmstr.hがない事が問題なのですが、これはどのpackagesで提供
されているのでしょう? 何故、kojimaさんのところではcompileが通るでしょうか?

あと、desktop effectがどうしても有効になりません。たとえば、
Terminalで背景が半透明にならない。
KDEでdesktop effectsを有効に出来ないなどです。。。
Kojimaさんの所は出来ますか? 何かupdateされていないpackageがあるのかな? -- [[Honda]] &new{2009-10-05 (月) 11:40:39};
-おっと失礼。ftpに置いているパッケージに xextproto-7.1.1-i586-P1.tgz が混じってました(_ _) 手元ではこれではダメだったから 7.0.5 に戻してたんだけど、パッケージをFTPに送った時に、7.1.1 も混じってしまったようです。 -- [[kojima]] &new{2009-10-05 (月) 12:42:01};
-手元ではデスクトップ効果は使ってなかったので気がつかなかったけど、確かに「コンポジティングを再開」しようとすると、「コンポジティングは他のアプリケーションによって一時停止されました」旨のポップアップが出て、無効化されますね。ウィンドウマネージャがチェックしているようだけど、何を見ているんだろ? -- [[kojima]] &new{2009-10-05 (月) 12:53:59};
-これだけのversion upでほとんどのsoftwareが動くのですからたいしたものだと思います。ただ、vlcなどはundefined symbol: _xcb_lock_ioで動きませんね(vlc -vvで確認). どうも_xcb_lock_ioはこれではcover出来ないみたです。kdebase_workspaceのcompileもこれでやはりこけてしまいました(xklavierを更新するとOK). まああ、このあたりは個別に対応すると良いのでたいした事ではありません。問題はcomposite周りかなあああ。 Mesa 3Dや3D gamesはちゃんと動くので、composite周りだと思うのですけどね。。。 -- [[Honda]] &new{2009-10-05 (月) 13:00:15};
-一応、こんなパッチで xextproto-7.1.1 でもコンパイルできそうです > xf86-video-intel-2.9 

 *** ../xf86-video-intel-2.9.0/uxa/uxa-priv.h	2009-09-22 07:08:34.000000000 +0900
 --- ./uxa/uxa-priv.h	2009-10-05 13:50:15.000000000 +0900
 ***************
 *** 328,336 ****
   /* XXX these come from shmint.h, which isn't exported by the server */
   
   #ifdef HAVE_XEXTPROTO_71
 ! #include "shmint.h"
 ! #else
   
   void
   ShmRegisterFuncs(ScreenPtr pScreen, ShmFuncsPtr funcs);
   
 --- 328,357 ----
   /* XXX these come from shmint.h, which isn't exported by the server */
   
   #ifdef HAVE_XEXTPROTO_71
 ! /* Up to xextproto 7.1, these were provided in shmstr.h */
 ! typedef struct _ShmFuncs {
 !     PixmapPtr (* CreatePixmap)(ScreenPtr pScreen,
 !                                int       width,
 !                                int       height,
 !                                int       depth,
 !                                char      *addr);
 !     void      (* PutImage)(DrawablePtr  dst,
 !                            GCPtr        pGC,
 !                            int          depth,
 !                            unsigned int format,
 !                            int          w,
 !                            int          h,
 !                            int          sx,
 !                            int          sy,
 !                            int          sw,
 !                            int          sh,
 !                            int          dx,
 !                            int          dy,
 !                            char        *data);
 ! } ShmFuncs, *ShmFuncsPtr;
 
 + extern ShmFuncs uxa_shm_funcs;
 + #else
   void
   ShmRegisterFuncs(ScreenPtr pScreen, ShmFuncsPtr funcs);
  
まぁ、構造体の定義を一つ持ってきただけなので、動作が変わるようなものではないようです-- [[kojiam]] &new{2009-10-05 (月) 14:12:02};
-_xcb_lock_io根が深いです。compileをしようとすると、例えば、 gtk+ -> pangoでだめ。 pangoとcairoのcompile -> carioがrsvgを認識しない。 -> librsvgの再compile ああ。。。 また、vlcはcompileは通るもののmisc/notify**.soでの依存がとれず、libnotifyを再compileしないとだめ。。。mltermもcompile出来ない。表面上は依存がとれているように見えるのに。。ううむ、これは。。。 -- [[honda]] &new{2009-10-05 (月) 14:22:17};
-http://www.gentoo.org/proj/en/desktop/x/x11/libxcb-1.4-upgrade-guide.xmlの指示の後半もまじめにやらないとダメなのかも。。。これでも多分不足だろうなああ。。 -- [[Honda]] &new{2009-10-05 (月) 14:25:52};
-Xorgとintelはダメダメ (怒り) -- [[Honda]] &new{2009-10-05 (月) 14:29:06};
-最近の X はバージョンアップするほど劣化していくのが定説だからなぁ。。sigh.. -- [[kojima]] &new{2009-10-05 (月) 20:13:30};
-それから、最近だと、*.la ファイルは無くして、ライブラリの依存関係はpkg-configだけで管理する方が確実かもしれない。 -- [[kojima]] &new{2009-10-05 (月) 20:20:31};
-_xcb_lock_ioですが、libxcb.soにあったものが1.4ではなくなっているから困ってしまうので、libxcb-xlib.soは元のを持ってくるのではなくて、空の関数呼び出しにしたものをcompileしたものにしませんか? もともと、xcb_connect_tの構造体が大きくかわっているので、もしこれらの関数が本当に呼びだされていたら不正書き込みになりますし。 -- [[Honda]] &new{2009-10-05 (月) 21:02:18};
-libxcb-xlib.soを空関数からなるものに置き換えてみました。OKOK. vlcも再compileの必要はなくなりました。また、compile時もxcb_lock_ioでこけることはなくなりました。あとは徐々にversion up毎に依存が減って行くわけですね。のこるはKDEのdesktop effectですが。。。さてさて -- [[Honda]] &new{2009-10-05 (月) 21:09:16};
-一応いけそうな目算がたったので、Nvidiaのmachineもupしました。 Nvidia製のdriverならばdesktop effect OKですな。。。 どういうことでしょうか? -- [[Honda]] &new{2009-10-05 (月) 21:39:37};
-解決しました。答えは、すべてがそろったのち(mesaも) xorg_serverを再compile! これで動きます。 -- [[Honda]] &new{2009-10-06 (火) 01:15:20};

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS