トップ «前の日記(2009年01月20日) 最新 次の日記(2009年01月26日)» 編集

Masa's blog

検索キーワード:

2009年01月25日 vmware player qemu-img gcc-4 [長年日記]

_ vmware player qemu-img gcc-4

VMware Playerを使う場合QEMUに含まれるqemu-imgを使って仮想ディスクを作る事が多いと思われるが、gcc-4でのQEMUのビルドはサポートされておらず、実際コンパイラーの内部エラーらしき障害でコンパイルに失敗する。

gcc -Wall -O2 -g -fno-strict-aliasing  -fno-reorder-blocks  -fno-gcse  -fno-tree-ch  -fno-optimize-sibling-calls  -fno-crossjumping  -fno-align-labels  -fno-align-jumps  -fno-align-functions  -fno-section-anchors -mpreferred-stack-boundary=2 -fomit-frame-pointer   -I. -I.. -I/home/m-ito/tmp/qemu-0.9.1/target-i386 -I/home/m-ito/tmp/qemu-0.9.1 -MMD -MP -DNEED_CPU_H -I/home/m-ito/tmp/qemu-0.9.1/linux-user -I/home/m-ito/tmp/qemu-0.9.1/linux-user/i386 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I/home/m-ito/tmp/qemu-0.9.1/fpu  -DHAS_AUDIO -DHAS_AUDIO_CHOICE -I/home/m-ito/tmp/qemu-0.9.1/slirp -c -o op.o /home/m-ito/tmp/qemu-0.9.1/target-i386/op.c
/home/m-ito/tmp/qemu-0.9.1/target-i386/ops_sse.h: In function 'op_pshufw_mmx':
/home/m-ito/tmp/qemu-0.9.1/target-i386/ops_sse.h:593: error: unable to find a register to spill in class 'GENERAL_REGS'
/home/m-ito/tmp/qemu-0.9.1/target-i386/ops_sse.h:593: error: this is the insn:
(insn:HI 16 15 17 2 /home/m-ito/tmp/qemu-0.9.1/target-i386/ops_sse.h:588 (set (strict_low_part (subreg:HI (reg/v:DI 63 [ r ]) 0))
        (mem/s/j:HI (plus:SI (mult:SI (reg:SI 64)
                    (const_int 2 [0x2]))
                (reg/v/f:SI 59 [ s ])) [0 <variable>._w S2 A16])) 40 {*movstricthi_1} (insn_list:REG_DEP_TRUE 52 (insn_list:REG_DEP_TRUE 11 (insn_list:REG_DEP_TRUE 15 (nil))))
   (expr_list:REG_DEAD (reg:SI 64)
       (nil)))
/home/m-ito/tmp/qemu-0.9.1/target-i386/ops_sse.h:593: confused by earlier errors, bailing out
make[1]: *** [op.o] Error 1
make[1]: Leaving directory `/home/m-ito/tmp/qemu-0.9.1/i386-linux-user'
make: *** [subdir-i386-linux-user] Error 2

Google大先生に聞いてみると、

  • QEMUのバイナリを探してインストールする。
  • gcc-3をインストールしてQEMUをビルドする。

などの対策が見受けられる。

しかし、単に仮想ディスクを作りたいだけならqemu-0.9.1 + gcc-4.2.3な環境で

./configure --disable-gcc-check && make qemu-img

qemu-imgだけをビルドできた。

_ VMware Player 2.5.1 is different from 1.0.x

VMware Player 2.5.1をインストールして驚いた事は、

  • インストーラがX Window Systemに対応していた。もちろんコンソールで起動する事も可能。
  • インストールディレクトリの指定ができず、インストーラの決め打ちになっていた。
  • インストール先どころか、一切の質問無しでインストールが終ってしまった。以前はネットワークの利用形態(NAT or Bridge etc)を聞いてきたのだが...。
  • ホストOSを再起動したらvmwareのバックエンドが自動起動するように/etc/rc.d/以下が書き変わっていた。

ちなみに、

  • /etc/vmware/以下が設定等の格納先
  • /etc/rc.d/init.d/vmwareがバックエンドの起動スクリプト

_ vmplayer LANG=ja_JP.eucJP fail

VMware player 2.5.1

LC_ALL=ja_JP.eucJP
export LC_ALL

な設定だと、

NOT_REACHED /build/mts/release/bora-126130/bora/lib/unicode/unicodeSimpleTypes.c:2315

と言われて起動しない。

LC_ALL=C vmplayer hogehoge.vmx

だとオッケー。

_ delegated

自宅のdelegatedfirefoxに対して

<plaintext>
Bad Response:
Services for your host[xx.xx.xx.xx] are suspended now on a suspicion of intruder.

みたいなメッセージを返してリクエストを受け付けてくれなくなった。理由はともかく、こんな場合は /var/spool/delegate-nobody/adm/shutout/以下に拒否られているIPアドレスがファイル名となってファイルができているので、それを削除すると復旧する。ちみに、ファイルの中にいちおう拒否った理由が書かれている。今回の場合は QUITとだけ書かれていたので意味不明。

_ delegated SIGSEGV

とかなんとか言ってる打ちに、拒否理由=SIGSEGVで、わらわら拒否られ始めた。/var/log/syslogを眺めてみると、

memory.c:100: bad pmd xxxxxxxx

のようなメッセージが出ている。メモリーかスワップエリアの障害らしい...。このところ色々調子が良くないのは、このせいだったのかも。

とりあえず、リブートで様子見とするが、

mkswap -c /dev/スワップパーティション

で、チェック付でスワップを作り直してみよう...。