[[diary/Kojima]]

・xorg-server-1.6 と libxcb-xlib

Plamo-4.7 に収録している libxcb(libxcb-1.1.91)には libxcb-xlib という小さなライブラリがあるのだけど、
libxcb-1.2 以降ではこのライブラリが削除されている。

libxcb-xlib 自体はそれほど重要なライブラリではないのだけれど、libXext.la で  dependecy libs に指定されてしまっているため、
libXext.la を参照するライブラリが芋づる式に libxcb-xlib.la を参照することになってしまっていて、X11R74 では多数のライブラリが
libxcb-xlib.so をリンクしてしまっている。

その結果、単純に libxcb-1.2 以降(最近では1.4までバージョンアップしている模様)にすると、本来 X11R74 に含まれている libxcb-xlib の機能は不要なライブラリが
軒並み libxcb-xlib が見つからない、というエラーになってしまう。また、*.la ファイルに libxcb-xlib の参照が入っているライブラリは
libxcb-xlib の無い状態で再ビルドしないと *.la ファイルの参照は消えない。

このあたりは libtools のバグというか mis-feature っぽいのだけど、xorg-server-1.6 以降にするには libxcb-1.2 以降が必要なので
何とかする必要がある。

google等で調べた結果、既存のライブラリを活かすためには libxcb-xlib.so.0.0.0 を残すとともに、*.la ファイルから 
libxcb-xlib.la の参照を削除しておけば(libxcb-xlib.so.0.0.0が存在していても)新しくビルドするライブラリには libxcb-xlib が不要になるようなので、libxcb-1.4 のパッケージに
古いlibxcb-xlib.so.0.0.0 を収めるとともに、initpkg で *.la にある libxcb-xlib.la への参照を
削除するようなコードを加えてみる。

こういう方針で作った xorg-server-1.6.4 と必要なライブラリ、ドライバを [[Plamo-test:ftp://plamo.linet.gr.jp/pub/Plamo-test/for-4.7x/xorg-server-1.6]]
に置いたので、興味ある人は試してみてください。

動作させるには、このディレクトリにあるファイル(ライブラリ、プロトタイプ、xorg-server 本体)すべてと drivers 以下にある 1.6.4 用のドライバ
が必要で、標準的な環境ではキーボード
([[xf86_input_keyboard-1.3.99.1-i586-P1.tgz:ftp://plamo.linet.gr.jp/pub/Plamo-test/for-4.7x/xorg-server-1.6/drivers/xf86_input_keyboard-1.3.99.1-i586-P1.tgz]])
とマウス
([[xf86_input_mouse-1.4.99.1-i586-P1.tgz:ftp://plamo.linet.gr.jp/pub/Plamo-test/for-4.7x/xorg-server-1.6/drivers/xf86_input_mouse-1.4.99.1-i586-P1.tgz]])
に加えて、ビデオチップごとのドライバ(intel系なら
[[xf86_video_intel-2.9.0-i586-P2.tgz:ftp://plamo.linet.gr.jp/pub/Plamo-test/for-4.7x/xorg-server-1.6/drivers/xf86_video_intel-2.9.0-i586-P2.tgz]], 
NVidia系なら 
[[xf86_video_nv-2.1.15-i586-P1.tgz:ftp://plamo.linet.gr.jp/pub/Plamo-test/for-4.7x/xorg-server-1.6/drivers/xf86_video_nv-2.1.15-i586-P1.tgz]])が必要になります。

ちゃんと動けば、xdpyinfo の結果が

 name of display:    :0.0
 version number:    11.0
 vendor string:    The X.Org Foundation
 vendor release number:    10604000 
 X.Org version: 1.6.4

となるはず。
-素晴らしい。 UXAがとうとう動きましたよ(intel)。 但し、付属のintelはcompileに失敗していて空でした。ええと、drmのversionが低いです。あと、xextprotoはversionが逆に上りすぎです(shmstr.hがなくなっていて困る).以上fixするとcompile出来て2DはOKです。3Dが動きませんが、これはMesaでしょうね。これからver upしてみます。 -- [[Honda]] &new{2009-10-05 (月) 02:44:03};
-でも、実はすでに xorg-server 1.7 が出てたりするんだよなぁ。 -- [[kojima]] &new{2009-10-05 (月) 07:10:19};
-おっと失礼、xf86_video_intel、コンパイルに失敗した方のをあげちゃってましたね。とりあえず [[P2:ftp://plamo.linet.gr.jp/pub/Plamo-test/for-4.7x/xorg-server-1.6/drivers/xf86_video_intel-2.9.0-i586-P2.tgz]]に直しておきました。 -- [[kojima]] &new{2009-10-05 (月) 09:00:47};
-ちなみに、手元でビルドし損ねたのは、表題にしている libxcb-xlib がらみだったと思ふ(libdrm は2.4.11のままでも通りそう) それでも2.4.14 が出てるから Mesa の前に更新しておこうか -- [[kojima]] &new{2009-10-05 (月) 09:02:41};
-Mesa-7.5.2 には libXi を更新する必要がありそう(extensions/Xinput.h の参照あり) -- [[kojima]] &new{2009-10-05 (月) 10:00:21};

#comment

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