コメント |
|
|
> <まとめ>
> VineLinux4.0を使用。
> Mesa6.5.2をmake linux-x86でコンパイルし、インストールを行った。
> AdvVisual1.0内のclientフォルダーのMakefileで、以下のように修正した。
> "CC = g++-2.95.3"
> "LIBS = -lGLw -lOSMesa -lGLU -lGL -lXm -lXt -lX11 -lXext -lpthread -lm"
> makeを行うと、Vine3.2では問題無くコンパイルされるが、Vine4.0においては以
> 下のエラーメッセージが出る。
> /usr/X11R6/lib/libOSMesa.so: undefined reference todriDispatchRemapTable'
通りすがりの者です。
そもそもMesa6.5.2をmake install?した時点で、
Vine4.0の問題ではなくなっているような気がするんですが、
OpenGLだったら、XOrg-glとXOrg-gl-develパッケージを
インストールして使う訳にはいかないんでしょうか? |
|
|
|
> そもそもMesa6.5.2をmake install?した時点で、
> Vine4.0の問題ではなくなっているような気がするんですが、
> OpenGLだったら、XOrg-glとXOrg-gl-develパッケージを
> インストールして使う訳にはいかないんでしょうか?
お返事していただき、ありがとうございます。
はじめは、パッケージに libOSMesa.so が入っているのを知らずにMesaをインストールしておりました。
最近、再インストールを行い、
XOrg-gl, XOrg-gl-devel, Xgl, freeglut, freeglut-devel
のパッケージによってコンパイルに必要な環境が整うことを知りましたが、結果は同じでした。
お手数をお掛け致しますが、よろしくお願いいたします。
# その他にインストールしたパッケージは以下のものだったと記憶しております。
# gcc295, gcc295-c++, openMotif, openMotif-devel
# コンパイルを行ったファイルは、
# http://adventure.q.t.u-tokyo.ac.jp/jp/ [^]
# の中の ADVENTURE_Visual というソフトです。 |
|
|
|
> XOrg-gl, XOrg-gl-devel, Xgl, freeglut, freeglut-devel
> のパッケージによってコンパイルに必要な環境が整うことを知りましたが、結果
> は同じでした。
>
そうですか…なるほど…
これを根本的に解決するのは難しそうですね。>識者の方
以下、私だったらこういうことを試してみるという程度のことを書きます。
もし実行される場合は自己責任でお願いします。
要するにVine3.2のXOrg-glパッケージに入っている
/usr/X11R6/lib/libOSMesa.so.4.0 では、
driDispatchRemapTable が、undefined symbolになってないから、
Vine3.2ではコンパイル出来たということらしいので、
XOrg-gl-6.8.2-0vl7.10.i386.rpm と、
XOrg-gl-devel-6.8.2-0vl7.10.i386.rpm をダウンロードして、
rpm -Uvh --oldpackage XOrg-gl-6.8.2-0vl7.10.i386.rpm XOrg-gl-devel-6.8.2-0vl7.10.i386.rpm
で、コンパイルする時だけ古いパッケージをインストールしておいて、
コンパイルが成功したらapt-get update ; apt-get upgrade で元に戻す。
# たぶん戻せると思いますが、戻らなかったら同じように手動で^^;
Vine3.2の環境がもはや手元に無く、コンパイル出来ないとどうしても困る
のでしたら、試してみてはいかがでしょうか? |
|
|
|
onoderaです。
> > XOrg-gl, XOrg-gl-devel, Xgl, freeglut, freeglut-devel
> > のパッケージによってコンパイルに必要な環境が整うことを知りましたが、結果
> > は同じでした。
>
> これを根本的に解決するのは難しそうですね。>識者の方
はい。ご理解していただきありがとうございます。
> 要するにVine3.2のXOrg-glパッケージに入っている
> /usr/X11R6/lib/libOSMesa.so.4.0 では、
> driDispatchRemapTable が、undefined symbolになってないから、
> Vine3.2ではコンパイル出来たということらしいので、
> XOrg-gl-6.8.2-0vl7.10.i386.rpm と、
> XOrg-gl-devel-6.8.2-0vl7.10.i386.rpm をダウンロードして、
> rpm -Uvh --oldpackage XOrg-gl-6.8.2-0vl7.10.i386.rpm XOrg-gl-devel-6.8.2-0vl7.10.i386.rpm
> で、コンパイルする時だけ古いパッケージをインストールしておいて、
> コンパイルが成功したらapt-get update ; apt-get upgrade で元に戻す。
> # たぶん戻せると思いますが、戻らなかったら同じように手動で^^;
助言していただき、とてもうれしく思います。
早速試してみようと思ったのですが、Vine3.2の環境はあるのでそちらでコンパイルしてみました。
# カーネルもXOrgもバージョンが異なるため、実行はできないものと考えていました。
試してみたのですがVine3.2でコンパイルしたものは、Vine4.0の環境で実行させると同じエラーメッセージがでるようです。 |
|
|
|
onoderaです。
> > > XOrg-gl, XOrg-gl-devel, Xgl, freeglut, freeglut-devel
> > > のパッケージによってコンパイルに必要な環境が整うことを知りましたが、結果
> > > は同じでした。
>
> > 要するにVine3.2のXOrg-glパッケージに入っている
> > /usr/X11R6/lib/libOSMesa.so.4.0 では、
> > driDispatchRemapTable が、undefined symbolになってないから、
> > Vine3.2ではコンパイル出来たということらしいので、
> > XOrg-gl-6.8.2-0vl7.10.i386.rpm と、...
私はXOrg6.9.0のバグと考えていたため、助言からXOrg6.8.2にすればよいのではないかと思いました。
それで、Vine3.2のSRCRPMから
XOrg-6.8.2-0vl7.7.src.rpm
をいただき、
# rpm --rebuild XOrg-6.8.2-0vl7.7.src.rpm
としてみたのですが、以下のエラーメッセージが出てしまいました。
お手数をお掛け致しておりますが、なにか助言をいただければと思います。
gcc -m32 -c -O2 -m32 -march=i386 -mcpu=i686 -pipe -fno-strict-aliasing -ansi -p
edantic -Wall -Wpointer-arith -Wundef -I../../../exports/include/X11 -
I../../../extras/Mesa/include -I../../../include/extensions -
I../../../lib/GL/glx -I../../../extras/Mesa/src/mesa/main -
I../../../extras/Mesa/src/mesa/glapi -I../../../extras/Mesa/src/mesa/
drivers/x11 -I../../../extras/Mesa/src/mesa/x86 -I../../
../programs/Xserver/hw/xfree86/os-support -I../../../extras/drm/sh
ared -I../../../programs/Xserver/GL/dri -I../../.. -I../../../export
s/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -
D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SO
URCE -D_GNU_SOURCE -DFUNC
PROTO=15 -DNARROWPROTO -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API -DGLXEXT -D
XF86DRI -DGLX_DIRECT_RENDERING -DGLX_USE_DLOPEN -DGLX_USE_MESA -DXF86VIDMODE
-DDEFAULT_DRIVER_DIR=\"/usr/X11R6/lib/modules/dri\" -DUSE_X86_ASM
-DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API clientattrib.c
In file included from ../../../extras/drm/shared/drm.h:41,
from ../../../programs/Xserver/hw/xfree86/os-support/xf86drm.h:
39,
from ../../../extras/Mesa/include/GL/internal/dri_interface.h:4
8,
from glxclient.h:82,
from clientattrib.c:39:
/usr/include/linux/config.h:1:2: #error "Compilation aborted. Please read the FA
Q for linux-libc-headers package."
/usr/include/linux/config.h:2:2: #error "(can be found at http://ep09.pld-linux. [^]
org/~mmazur/linux-libc-headers/doc/)"
make[5]: *** [clientattrib.o] Error 1
make[5]: Leaving directory `/usr/src/vine/BUILD/XOrg-6.8.2/xc/lib/GL/glx'
make[4]: *** [all] Error 2
make[4]: Leaving directory `/usr/src/vine/BUILD/XOrg-6.8.2/xc/lib/GL'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/usr/src/vine/BUILD/XOrg-6.8.2/xc/lib'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/usr/src/vine/BUILD/XOrg-6.8.2/xc'
make[1]: *** [World] Error 2
make[1]: Leaving directory `/usr/src/vine/BUILD/XOrg-6.8.2/xc'
make: *** [World] Error 2
make: Leaving directory `/usr/src/vine/BUILD/XOrg-6.8.2/xc'
エラー: /var/tmp/rpm-tmp.67064 の不正な終了ステータス (%build) |
|
|
|
> 私はXOrg6.9.0のバグと考えていたため、助言からXOrg6.8.2にすればよいのでは
> ないかと思いました。
> それで、Vine3.2のSRCRPMから
> XOrg-6.8.2-0vl7.7.src.rpm
> をいただき、
> # rpm --rebuild XOrg-6.8.2-0vl7.7.src.rpm
> としてみたのですが、以下のエラーメッセージが出てしまいました。
> お手数をお掛け致しておりますが、なにか助言をいただければと思います。
>
> In file included from ../../../extras/drm/shared/drm.h:41,
> from ../../../programs/Xserver/hw/xfree86/os-support/xf86drm.h:39,
...
> from clientattrib.c:39:
> /usr/include/linux/config.h:1:2: #error "Compilation aborted. Please
> read the FAQ for linux-libc-headers package."
> /usr/include/linux/config.h:2:2: #error "(can be found at http://ep09.pld-linux.org/~mmazur/linux-libc-headers/doc/ [^])"
> make[5]: *** [clientattrib.o] Error 1
もう試せることはほとんど試されているようで私が助言出来そうなことも
あまり無いようですね。このエラーメッセージもよくわかりませんが、
extras/drm/shared/drm.h の中でlinux/config.hが宣言されていて、
それがエラーになっているっぽいですね。
linux/config.hは、glibc-kernheadersパッケージに入っているので、
glibc-kernheadersパッケージはインストールされていますか?
# もしかしたらパッチが必要なのかも。XOrg-6.9.0-0vl23.src.rpmには、
# linux/config.hの宣言を削除するパッチが入っています。
それとVine3.2の最新のXOrgソースパッケージは、たぶん、
XOrg-6.8.2-0vl7.10.src.rpmです。updates以下にあります。
それはそれとして、XOrgをビルドし直すのも大変そうなので、
http://dri.freedesktop.org/snapshots/ [^]
↑ここにあるdriモジュールとdrmカーネルモジュールとドライバーのセットは
どうでしょうか?
お使いになられているビデオチップ用のソースをダウンロードして、
例えば、mach64-20060403-linux.i386.tar.bz2 だとして、
展開したmach64-20060403-linux.i386/の中にinstall.shがあって、
rootで、./install.sh を実行してENTERしていくだけで、
/usr/X11R6/lib/modules/dri/mach64_dri.so
/usr/X11R6/lib/modules/drivers/ati_drv.so
/usr/X11R6/lib/modules/drivers/atimisc_drv.so
/lib/modules/2.6.16-0vl66/kernel/drivers/char/drm/drm.ko
/lib/modules/2.6.16-0vl66/kernel/drivers/char/drm/mach64.ko
がインストールされます。
古いモジュールは頭にdri-old.が付いて残されているので、
うまくいかなくても元に戻せます。
インストールして、うまくXが立ち上がれば、
driモジュールの中に、driDispatchRemapTableのシンボルがあるので、
実行バイナリを例えば、
LD_PRELOAD=/usr/X11R6/lib/modules/dri/mach64_dri.so /usr/local/bin/XXXXX
のように起動出来るようになると思います。
ただ、正常に動作するかどうかはやってみないとわかりません。
たぶん、リンクも、
LD_PRELOAD=/usr/X11R6/lib/modules/dri/mach64_dri.so gcc ...
のようにやれば、エラーにならない筈です。
試す場合は、とりあえずstartxで起動するようにして、うまくいったら、
ディスプレイマネージャーに切り替えるようにした方が良いです。
もうすでに試されていたら、ごめんなさい。ではでは。 |
|
|
|
onoderaです。
> extras/drm/shared/drm.h の中でlinux/config.hが宣言されていて、
> それがエラーになっているっぽいですね。
> linux/config.hは、glibc-kernheadersパッケージに入っているので、
> glibc-kernheadersパッケージはインストールされていますか?
> # もしかしたらパッチが必要なのかも。XOrg-6.9.0-0vl23.src.rpmには、
> # linux/config.hの宣言を削除するパッチが入っています。
はい、glibc-kernheadersパッケージはインストールされていました。
パッチ、ですか。Synapticで「全てアップグレード」はしてみましたが、結果は同じでした。
> それとVine3.2の最新のXOrgソースパッケージは、たぶん、
> XOrg-6.8.2-0vl7.10.src.rpmです。updates以下にあります。
情報ありがとうございます。
でも、これも同じエラーがでるようです...。
> それはそれとして、XOrgをビルドし直すのも大変そうなので、
> http://dri.freedesktop.org/snapshots/ [^]
> ↑ここにあるdriモジュールとdrmカーネルモジュールとドライバーのセットは...
DRIですが、特にこれといったチップはないと思うので(VESAで設定されています)、
commonをダウンロードしてみました。
commonだからでしょうか、Xが起動しなくなってしまうようです。
いろいろと情報を提供していただきありがとうございました。 |
|
|
|
残念ながら良い対処方法が見付かっていません
が、その後他の方からのリプライも付いていま
せんので、却下としておきます。
ハラダ |
|
|
|
onodera です。
xfsを起動させることによって 回避できることが分かりました。
# /sbin/chkconfig xfs on
としたあと、再起動を行いました。
いろいろな情報をいただき ありがとうございました。 |
|