はまりまくりんぐ。
VMWare Fusion Beta 3 環境での Xorg 環境ではまっていたわけですが、やはり 64 bit kernel 下では、/usr/X11/bin/amd64/Xorg が起動しています。
これは、起動している Xorg に pldd コマンドを実行してみればわかります。
これが、64 bit Xorg が起動しているとき。
amd64 配下のものを呼び出しているのがわかります。
32bit object と 64 bit object を混在して扱えないという仕様のためこれで決め打ちできたりしますね。
--
# pldd `pgrep Xorg`
606: /usr/X11/bin/Xorg :0 -depth 24 -nolisten tcp -nobanner -auth /var/dt/A
/lib/amd64/libc.so.1
/usr/X11/lib/X11/xserver/amd64/libXfont.so.1
/lib/amd64/libsocket.so.1
/lib/amd64/libnsl.so.1
/usr/X11/lib/modules/amd64/libpcidata.so
/usr/sfw/lib/amd64/libgcc_s.so.1
/usr/X11/lib/modules/extensions/amd64/libdbe.so
/usr/X11/lib/modules/extensions/amd64/libextmod.so
/usr/X11/lib/modules/fonts/amd64/libtype1.so
/usr/X11/lib/modules/drivers/amd64/vmware_drv.so
/usr/X11/lib/modules/input/amd64/mouse_drv.so
/usr/X11/lib/modules/input/amd64/keyboard_drv.so
/usr/X11/lib/modules/amd64/libvgahw.so
/usr/X11/lib/modules/amd64/libfb.so
/usr/X11/lib/modules/amd64/libshadowfb.so
/usr/X11/lib/modules/amd64/libramdac.so
/lib/amd64/libm.so.2
/usr/X11/lib/amd64/libXau.so.6
/usr/lib/amd64/libproject.so.1
/lib/amd64/libsecdb.so.1
/lib/amd64/libproc.so.1
/lib/amd64/librtld_db.so.1
/lib/amd64/libelf.so.1
/lib/amd64/libctf.so.1
--
というわけで、64 bit 環境下では 64 bit Xorg が動作していることがわかりますた。
で、もう一度おさらいして・・・
何が問題かというと、VMWare Fusion Beta 3 にて提供されている VMWare Tools の
一部は、64 bit kernel に対応しているものの、X 環境で重要となる Video driver
と mouse driver は、32 bit object なわけです。
なので、Xorg の 64 bit binary 下では、動作しません。
特に mouse driver については、シームレスに動作させるためには必要でし。
VMWare Tools に付属する driver ではなく、標準の driver でも一応は動作しますが、動きに優雅さがない! (by Ladios Sopp)
64 bit module が提供されるのを待つしかないでしょうと。
で、前向きに考えて、Solaris x86 に限っては、32 bit kernel もサポートしているので、64 bit kernel 下で動作している時に、64 bit Xorg ではなく 32 bit Xorg を動かしてしまえば問題ないじゃないかと。
いまのところ、特に 64 bit Xorg が使えなくて困ることはないかなと。
ということで!
64 bit kernel 下で 32 bit Xorg を動かしてしまおうと。
...
や、やり方、わかんねぇー(;´Д`)
まずは、Xorg の 64 bit 化について調べてみると、これにきちんと全て書いてありますたっ!
PSARC 2007/051 Xorg server upgrade to 7.2
http://www.opensolaris.org/os/community/arc/caselog/2007/051/onepager/
/usr/X11/bin/Xorg は、isaexec (3C) を使って、起動するべき binary を選択して
いるとのこと。
#64 bin kernel なら、amd64/ 配下の binary を。
32 bit なら、i386/ 配下の binary を
これは、SMF 使ってて x11-server manifest の options/server で指定されている。
なので、64 bit kernel のときに、32 bit な Xorg を起動したい場合は、下記の
ように x11-server の設定を変更することで可能。
# svccfg -s x11-server setprop options/server=/usr/X11/bin/i386/Xorg
これで、再起動すると、/usr/X11/bin/i386/Xorg が起動する。
こっちは、/usr/X11/bin/i386/Xorg が起動しているとき。
amd64 がつかない、PATH となっていまつ。
--
# pldd `pgrep Xorg`
1761: /usr/X11/bin/i386/Xorg :0 -depth 24 -nolisten tcp -nobanner -auth /var
/lib/libc.so.1
/usr/X11/lib/X11/xserver/libXfont.so.1
/lib/libsocket.so.1
/lib/libnsl.so.1
/usr/X11/lib/modules/libpcidata.so
/usr/sfw/lib/libgcc_s.so.1
/usr/X11/lib/modules/extensions/libdbe.so
/usr/X11/lib/modules/extensions/libextmod.so
/usr/X11/lib/modules/fonts/libtype1.so
/usr/X11/lib/modules/drivers/vmware_drv.so
/usr/X11/lib/modules/input/mouse_drv.so
/usr/X11/lib/modules/input/keyboard_drv.so
/usr/X11/lib/modules/libvgahw.so
/usr/X11/lib/modules/libfb.so
/usr/X11/lib/modules/libshadowfb.so
/usr/X11/lib/modules/libramdac.so
/lib/libm.so.2
/usr/X11/lib/libXau.so.6
/usr/X11/lib/X11/xserver/libfontenc.so.1
/usr/lib/libproject.so.1
/lib/libsecdb.so.1
/lib/libproc.so.1
/lib/librtld_db.so.1
/lib/libelf.so.1
/lib/libctf.so.1
#
--
というわけで、これで、64 bit kernel 下で、32 bit Xorg が動作するようになりますた。
あとは、VMWare Tools のインストールですが、実は、これにも罠があったりするわけですが。
vmware-tools-distrib/bin/vmware-config-tools.pl の中で Xorg の version check が、
あるため途中で、abort しちゃいます。
こちらの回避策が参考になりました。
新井隆浩 WEB - VMware Fusion Beta3
http://arai.cocolog-nifty.com/topics/2007/04/vmware_fusion_b.html
