Osamu Sayama's Weblog
VirtualBox OSE
VirtualBox OSE (OSE) を久々にビルドしてみたのですのが、svn のバージョンが 9000 台だったのがもう 11000 台になっているんですね。前は確か QT4 は必須ではなかったのですが、今は QT4 は必須になってましたので、qt-x11-opensource-src-4.3.5.tar.gz を持ってきてビルドしました。1つ Solaris default の gcc 3.x だと以下のようなエラーでビルドが止まってしまう問題があるらしく (nv_95 の 64bit 環境) 、ここに書いてあるように src/gui/Makefile から -O2 を削除することで対処しました。
error: inconsistent operand constraints in an `asm'
ちなみに qt4 のビルドに使ったのは以下です。
./configure -v -platform solaris-g++-64 -prefix /opt/qt4-64 \
-I/usr/include \
-I/usr/X11/include \
-I/usr/X11/share/include \
-I/usr/sfw/include
あとは
% env LD_LIBRARY_PATH='/opt/qt64/lib:/opt/qt4-64/lib' ./configure --with-qt-dir=
/opt/qt64 --with-qt4-dir=/opt/qt4-64 --build-libxml2 --build-libxslt
% source <whre>/env.sh
% kmk
% mkdir -p tools/solaris.amd64/qt/v3.3.8
% ln -s /opt/qt64/* tools/solaris.amd64/qt/v3.3.8
% kmk packing
で out/solaris.amd64/release/bin/VirtualBox-1.6.51_OSE-SunOS-amd64-r11414.tar.gz ができました。ちょっと使ってみると起動 script が /usr/bin/VirtualBox3 になってました。Frontends/VirtualBox4 で build もしているし、 Qt4 base がデフォルトになるのでしょうか...
*注) いったんインストールした後に 1.6.4 を再度インストールすると
Could not load settings
アクセスできません。
とかのエラーで仮想マシンが起動できなくなりました。VirtualBox Machine Configuration の xml ファイルから該当する設定を削除すれば(今回は HardwareVirtExNestedPaging, GuestProperties/) よいです。
Posted at 10:07午後 8 21, 2008 by sayama in Solaris x86 | 投稿されたコメント[0]
VirtualBox on nevada 95
nevada に SunRay インストールして使っているマシンがあるのですが、nevada 95 にあげたら VirtualBox が
ERROR: 0 bytes read from child process
なるエラーをはいて動かなくなりました... search してみると
http://www.virtualbox.org/ticket/1840
なる report が VirtualBox のほうにすでに登録されてまして、ここの VBoxSVC を入れ替える workaround でとりあえず動くようになりました。どうも PSARC/2008/342 Further SID support の変更が影響しているようで、リンカー絡みの問題のようです...
Posted at 11:30午前 8 04, 2008 by sayama in Solaris x86 | 投稿されたコメント[0]
VirtualBox with host interface on OpenSolaris
今まで VMware とかで構成するのが多かった仮想テスト環境ですが最近 OpenSolaris (nv_93 base) + VirtualBox に移行しています。PXE ブートも使えるので、仮想マシンを1つ Solaris 10 u5 で構成しこれをインストールサーバーにする。それで新たに仮想マシンを作成して、これに PXEブートでインストールといったことが簡単に行えます (この図の Solaris 3 は PXE + JumpStart でインストール中です)。
外部のホストと接続するにはホストインターフェース経由が必要なのですが、OpenSolaris だと crossbow project の恩恵が受けられて vnic が使用できます。ホストインターフェースを使用する場合は、root で起動するか、もしくは net_rawaccess の privilege を与えないとだめなのですが (ppriv で確認しましたがさらに proc_priocntl, sys_net_config も必要のような...)、私は pfexec VitrulBox で Primary Administorator で実行してます。OpenSolaris のホストインターフェースの設定はいたって簡単で、以下の図のように
- 「割り当て」でホストインタフェースを選択する
- MAC アドレスを適当に指定する
- 設定アプリケーションを指定する
これだけです。設定アプリケーションとは
% cat /export/home/sayama/vnic/sol2.vnic
#!/bin/bash
/usr/lib/vna myk0 00:a1:a2:ca:ca:a3
exit 0
なる vna (注 : private interface です...) を呼ぶスクリプトです。ここで指定する MAC アドレスは GUI で指定したものと同じになる必要があります (また、スクリプトにはあらかじめ実行権を与えておく)。/usr/lib/vna は実行する度に vnic を stdout に返すのですが、設定アプリケーションを使うことで動的にこの値を構成できて管理がらくになります。あとは必要な仮想マシンの分だけ設定アプリケーションを用意しておけばよいです。SunRay サーバーを2台の仮想マシンにインストールしてフェイルオーバーグループの構成とかも問題なく使用できてますので、なかなかよいです。
Posted at 10:52午後 7 24, 2008 by sayama in Solaris x86 | 投稿されたコメント[2]
unzip for non-ascii file name
Current unzip command in OpenSolaris cannot handle a non-ascii file name used in Windows world. If such a file is included in zip file, created file itself is garbled. This is inconvenient because localized file name is often used in Localized Windows. When searching the information from the web, I found that Ubuntu has already the patch for this problem (here). I tried to make build SUNWunzip with this patch in sfw workspace. A file encoding created by Windows zip can be specified by -O option (Also a file encoding created by Unix zip seems to be specified by -I option). For example, zip file created by Japanese windows can convert by -O cp932 (or PCK, SJIS) option like the following.

I filed this as 6719511 but not fixed yet. So I attached the pacakge I made build (here). Please use it until this CR is integrated.
Posted at 10:51午後 7 24, 2008 by sayama in English | 投稿されたコメント[0]
SCIM for opensolaris
テスト用ですがもうじき OpenSolaris からダウンロードできる scim のパッケージがアナウンスされました。pkg コマンドだとうまくとれなかったので sunvirtuallab から tar ファイルを持ってきて pkgadd で SUNWscim-root, SUNWscim, SUNWscim-anthy をインストールしました。あとはこのアナウンスに従って .profile (nevada で dtlogin 経由の場合は .dtprofile ) に export GTK_IM_MODULE=scim を加えて(non GTK アプリの場合は export XMODIFIERS=@im=SCIM も必要)、/etc/X11/gdm/Xsession を編集して、再度 login し直せば scim-anthy で使えるようになります。半角全角キーは最初使えないので <control> + <space> でパレットを出して SCIM 設定を起動して、ホットキーとして半角全角キーを設定すると次回以降から使えるようになります。nevada の場合は /usr/openwin/lib/locale/common/imsscript/S505multi を /etc/scim/xsession にリンクにすればよいかと思います。
% gtar xvf scim-i386.tar
% cd i386
% for i in *.bz2
do
gtar xjf $i
done
% pfexec /usr/sbin/pkgadd -d . SUNWscim-root SUNWscim SUNWscim-anthy
% cat ~/.profile
export GTK_IM_MODULE=scim
export XMODIFIERS=@im=SCIM
% env LC_ALL=C diff -u /etc/X11/gdm/Xsession.org /etc/X11/gdm/Xsession
--- /etc/X11/gdm/Xsession.org Sat Jul 19 08:09:50 2008
+++ /etc/X11/gdm/Xsession Sat Jul 19 08:10:45 2008
@@ -223,6 +223,10 @@
if [ -f /etc/iiim/xsession ]; then
. /etc/iiim/xsession
fi
+#Startup Input methods (scim)
+if [ -f /etc/scim/xsession ]; then
+ . /etc/scim/xsession
+fi
#Startup XIM stuff
if [ "x$XMODIFIERS" = "x" ]; then
if [ -f "$HOME/.xim" ]; then
Posted at 11:48午後 7 17, 2008 by sayama in Input Method | 投稿されたコメント[4]
Sun Ray Software 4 Update 3 with PC keyboard
Sun Ray Software 4 Update 3 Beta の案内がでていたのでちょっと使ってみました。今回の目玉は Multimedia サポートですが、とりあえずサーバーを nevada にインストールして、家で使っている SunRay2 の GUI firmware を更新。確か keyboard の country code が設定できるのを思い出し GUI メニューをあけて Advanced -> Country Code が確かにありました。日本語 106/109 キーボードの場合これを 15 に設定しておけば終了です。うれしいのは firmware の更新のみで 4.0 のサーバーにつなげたときも正しく日本語キーボードとして認識されるようになるので、今まで PC キーボードで keytable.map とか書き換えて使っていた方は firmware 更新してみるとうれしいかもしれません。
Posted at 09:48午後 7 10, 2008 by sayama in Desktop | 投稿されたコメント[0]
zfs root for grub
*** Nevada 96 で直りました... ***
nevada で luactivate に locale に依存したバグ (6714234) があるようで BE がうまく切り替わりません (それと grub のメニューにも追加されない)。zpool status の出力に依存してパースしていたようで、とりあえず以下の変更を入れると動くようです (/usr/sbin/luactivate にも同様なとこあるので mirror しているとか該当しそうな場合はこっちも直してください)。
% diff /usr/lib/lu/lulib.org /usr/lib/lu/lulib
227c227
< blob=`zpool status "$lgzd_pool"`
---
> blob=`env LC_ALL=C zpool status "$lgzd_pool"`
あるいは、zpool に bootfs なるプロパティがありましてデフォルトではこれで指定されたとこからブートします。
# zpool get bootfs rpool
NAME PROPERTY VALUE SOURCE
rpool bootfs rpool/ROOT/opensolaris-2 local
逆にこの値を書き換えることで切り替えることができます。
# zpool set bootfs=' rpool/ROOT/opensolaris-3' rpool
また、grub menu にも bootfs なるキーワードが追加されまして、ここでも指定可能です。ここで指定された方が zpool の property より優先されるようです。基本的には beadm activate や luactivate コマンドの中で自動的に設定されるのものです 。
# cat /rpool/boot/grub/menu.lst
:
title Solaris 2008.11 snv_91 X86
findroot (pool_rpool,0,a)
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS
module$ /platform/i86pc/$ISADIR/boot_archive
:
title opensolaris-2
bootfs rpool/ROOT/opensolaris-2
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS
module$ /platform/i86pc/$ISADIR/boot_archive
また findroot はどの signature の root を探すかを指定するコマンドです。pool_rpool だと rpool という signature をサーチし、その signature が見つかった partition に対して root をセットします。
Posted at 11:04午前 6 26, 2008 by sayama in Solaris x86 | 投稿されたコメント[0]
sunray bandwidth limit
SunRay2 で WAN 接続で使っていたりすると、YouTube などの動画画面にアクセスすると描画が急に重くなったりします。これはサーバーから動画の UDP パケットが大量に投げられるが処理しきれずに Lost パケットになってしまう。特にこの大量のパケットによってマウスやキーボード、音声のパケットまでもがうまく受け付けられなくなってしまって不便です。utcapture で見てみると Lost packet が数十パーセントとかになっているのがわかります。この現象はサーバー側のネットワークがクライアントのネットワークに比べて速いときにおきるようで、基本的にはサーバー側でパケットの量を調整しているらしいのですが、ヘビーパケット用には最適になっていないようです。こんなときに 4.0 の GUI firmware メニューに Advanced -> Bandwidth Limit というのがあります。これは Bandwidth を bps 単位で指定します (ThinGuy の bandwidth が参考になります) 。たとえば 1Mbps でしたら 1024000 と指定する。私の環境はケーブルで使っていて vpn 接続だとだいたい平均 10Mbps ぐらいなので、これ以下にすればだいぶ lost packet がへります。8Mbps 以下にすると描画の compression が on になるようで、確かに 8Mbps 以下にしたほうが動画がスムーズです。当初 7Mbps ぐらいに設定 して使っていましたが音声のノイズが少し気になりいまは 4Mbps (4096000) に設定して使ってます。あまり下げすぎると今度は全体のパフォーマンスが下がるので、4-8 Mbps あたりで調整して使えばよいかと思います。動画はそこそこの動きですが、キーボードやマウスもスムーズに使え音声 (動画を隠して音声だけにして計ると平均帯域は約 0.8Mbps) もしっかり聞こえてなかなかよいです。
1280x1024 の解像度で firefox で Sun Ray Presentation にアクセスして、ethereal で計測したグラフを以下に示します。上が何も設定しないときで、peak で 2000000bytes/s (16Mbps) を越えていますが、設定後は 400000bytes/s (3.2Mbps) ぐらいに収まっています。
Posted at 08:50午後 6 23, 2008 by sayama in Desktop | 投稿されたコメント[2]
zfs root on nevada 90
そういえば nevada 90からインストーラが zfs rootに対応しています。ただし、text installer と jump startのみが対応です。text installerのほうを選ぶと以下のようなメニューが追加されていて zfsを選べるようになります。
zfs pool の名前や zfs root のデータセット名やサイズが指定できます。jumpstart のプロファイルは pool なるキーワードが追加されています。pool では プール名、pool サイズ、スワップサイズ、dump デバイスサイズ、デバイス名を指定します。また bootenv installbe で bename 指定します。以下の例だと pool 名 rpool でデバイス c0d0s0 からスワップサイズ 1g, dump デバイス 1g でサイズは auto でそのデバイスの最大サイズを bename として solaris を指定しています。
pool rpool auto 1g 1g c0d0s0
bootenv installbe bename solaris
Posted at 10:35午後 6 13, 2008 by sayama in Solaris x86 | 投稿されたコメント[0]
cifs server on nevada 90
Nevada b90にアップグレードしたら cifs server に client からアクセスできなくなってしまいました。。。いろいろと検索してみると Solaris_CIFS_Service_Troubleshooting に以下の workaround がのってました。
# svccfg -s idmap setprop config/default_domain = astring: any-value
# svcadm refresh idmap
idmap show -c unixuser:<uid> で usid がでないときはこれをチェックしたほうがよさそうです。
Posted at 10:51午後 6 08, 2008 by sayama in Solaris x86 | 投稿されたコメント[0]
VirtualBox 1.6.2
VirtualBox 1.6.2 がでましたね。個人的にうれしいのは Solaris での Hostインターフェースがなぜか 1.6.0 だと動かない guest OS があったのですが 1.6.2では動くようになりました。Changelog に
o Networking: fixed a host interface networking regression introduced in 1.6.0
というのがあったのでこれでしょうか。。。今のとこいい感じで動いていますので、1.6.0 の Hostインターフェースで問題あったかたは 1.6.2 を使ってみるとよいかもしれません。
Posted at 10:51午後 6 08, 2008 by sayama in Solaris x86 | 投稿されたコメント[0]
Japanese font quality
Ubuntu の日本語フォントはアンチエイリアスかけても複雑な文字もボケが少なくて見やすいなーと思って調べてみましたが、Solaris に入っている HG や ipafont でも hinting を on にするとと同様に少し読みやすくなるようです。
これが hinting off のときの IPAfont
こちらが on のとき。メニューの「端末」の端の字とかけっこうくっきりみえます。
変更方法は、このパッチを /etc/fonts にあてて (nevada b85 以降用)、hinting を on にし(もともと日本語のバランスが悪くなるとかで off になっていたと思うのですが、最近の freetype では改善したのでしょうか。。)、embedded bitmap を常に使わないので false にしておく。あとはデスクトップの背景の設定からフォント -> 詳細 -> 線幅の補正で細身を選びます。ただ、ipafont だとJIS X 0201 の英数文字がアンバランスになってしまいます。HG フォントを使うか、IPA の場合は IPA モナーを持ってきてインストールしたほうがいいかもしれません。
Posted at 08:58午後 4 10, 2008 by sayama in Desktop | 投稿されたコメント[0]
ipafont and anthy
nevada b86 から ipafont と libanthy が入りました。もともと indiana 用をターゲットにしたものですが、nevada でも入ってます。nevada では HG フォントが入っているので、こちらを今までどうりデフォルトと考えていたのですが、どうも ipafont がデフォルトになってしまってます。HG フォントを使いたい方は、明示的に指定するか、SUNWttf-ipafont というパッケージを pkgrm してから fc-cache -f でもとに戻ると思います。また、libanthy が入って iiimf の anthy le 経由で anthy を日本語入力として利用可能です。iiim-properties で日本語入力として anthy を追加してください。iiimf/anthy は scim/anthy 経由の入力に比べるとパレットやカラー表示などがなくて寂しく感じますが、、、いずれ scim も indiana で使えるようになると scim/anthy 経由で使えるようになるでしょう。。。
Posted at 07:53午後 4 02, 2008 by sayama in Input Method | 投稿されたコメント[0]
gtk-update-icon-cache
結構前のビルドからある問題のようですが、build85 にしたら自分のマシンでもおきるようになったので書いておきます。症状は JDS のセッションにログインできなくなったり (gnome-session が crash とか)、あるいは gnome パネルが落ちてしまったりとかいろいろあるようです。とりあえず、JDS 環境にログインしてみておかしな症状になった場合で core ファイルに gtk-update-icon とかあったら 6631419 に書いてある以下の方法でいちど cache を作り直してみるとよいかもしれません。
for d in /usr/share/icons/*; do
[ -d $d ] &&
gtk-update-icon-cache --force $d;
done
Posted at 10:46午後 3 14, 2008 by sayama in Desktop | 投稿されたコメント[0]
パッチ 120012-14 と日本語106キーボード
Solaris 10 11/06 で日本語106キーボードが正しく認識されないという問題があり、
# eeprom kbd-type='Japanese(106)'
で設定して(もしくは /boot/solaris/bootenv.rc を編集) して使っている人も多いかと思います。ただ、最近のパッチ (120012-14) を入れると英語キーボード配列に戻ってしまうことがあるようで、これは Solaris 10 8/07 で日本語106キーボードの名前が Japanese(106) から Japanese に変わったこと、また kbd-type というプロパティ名も keyboard-layout に変わったのだが、このパッチがリリースされて影響しているようです。。。もし日本語106キーボードを使っていて
# kbd -l
layout が 15 以外になった場合は、
# eeprom keyboard-layout='Japanese'
してからリブートすると直ると思うので、おかしい場合は試してみてください。
Posted at 08:45午前 10 15, 2007 by sayama in Solaris x86 | 投稿されたコメント[0]