2009/10/31(土)VMware Player 3.0.0

VMware Workstation 7.0/Player 3.0が正式リリースされていたのでメインマシンに入れてみた。

入れるのは当然x86_64 Linux版。

#large: is not allow

インストール

VMware Player 2.5以降と同様に簡単なインストーラーになっていた。

vmp300-1.png

ダウンロードしたVMware Playerのバイナリ*1に対して、実行権限を与えてroot権限でキックするだけ。これだけでGUIのインストーラーが立ち上がるだけというWindowsライクなインストーラーなので非常に楽。

実際にはこんな感じでインストーラーを起動させました@Kubuntu 9.04

$ chmod 755 ./VMware-Player-3.0.x-build.arch.bundle
$ sudo ./VMware-Player-3.0.x-build.arch.bundle

これだけです。

*1 : VMware-Player-3.0.x-build.arch.bundleという命名記法。buildにはビルド番号、archにはi386とかx86_64とか入ります。

VMware Player 3.0.0 の新機能

ソースはこのへん

サポートOSが増えました

  • Windows 7 (Home Basic, Home Premium, Business, Enterprise, Ultimate)
  • Windows Server 2008 R2
  • Debian 5
  • Ubuntu 9.04
  • CentOS 5.3, RHEL 5.3, Oracle Enterprise Linux 5.3
  • openSUSE 11.x, SLES 11.x
  • Mandriva 2009

Windows 7や2008 R2のサポートとかは正直どうでも良くDebianが正式にサポートされたのは非常に嬉しい。

仮想マシンがPlayerだけで作れるようになりました

vmp300-2.png

当然、VMware ToolsもPlayerからインストールできるようになっていますし、作成した後の仮想マシンのパラメータ変更も可能です。
……こんなに大盤振る舞いで大丈夫ですか?VMwareさん。

ALSAに対応しました

vmp300-3.png

ようやくサウンド出力がALSAに対応しました。個人的に一番嬉しい改善です。
やっとAmarokで音楽を再生している状態でも、ゲストOSの音が鳴るようになりました。

ゲストOSがWindows XPの時のビデオ関連のパフォーマンスが改善されました

vmp300-4.png

とりあえず、東方永夜抄のリプレイを再生してみました。
キャプチャ時に48.0fpsまで落ちてしまっていますが、通常は60fpsで実行可能です。
Wineで動作に不具合があるゲームもこれで(ry

と、いうわけで

VMware Player 3.0非常にお勧めですよ~

1つのNICに複数のIPアドレスをアサインする

2009/10/18 PC::Linux/BSD

Linuxで1つの物理NICに複数のIPアドレスをアサインする方法に関するメモ。

環境

以下の環境で試してみました。

  • Kubuntu 9.04/amd64
    • Kernel: 2.6.28-15-generic

この環境でのifconfigの出力は以下の通り。

$ ifconfig
eth0      Link encap:イーサネット  ハードウェアアドレス xx:xx:xx:xx:xx:xx
          inetアドレス:192.168.xxx.xxx  ブロードキャスト:192.168.xxx.255  マスク:255.255.255.0
          inet6アドレス: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 範囲:グローバル
          inet6アドレス: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 範囲:リンク
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1
          RXパケット:2224992 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:1592433 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:1000
          RXバイト:2753802229 (2.7 GB)  TXバイト:552776890 (552.7 MB)
          割り込み:16

lo        Link encap:ローカルループバック
          inetアドレス:127.0.0.1  マスク:255.0.0.0
          inet6アドレス: ::1/128 範囲:ホスト
          UP LOOPBACK RUNNING  MTU:16436  メトリック:1
          RXパケット:7135 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:7135 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:0
          RXバイト:4808865 (4.8 MB)  TXバイト:4808865 (4.8 MB)

別ネットワークのIPアドレスを割り当てる

ifconfigで仮想的なインターフェイス(eth0:0)をeth0に対して割り当て、eth0:0に対して172.16.0.1/16を割り当ててみる。
このような機能をIPエイリアスと呼ぶらしい。

$ sudo ifconfig eth0:0 172.16.1.1 netmask 255.255.0.0 broadcast 172.16.255.255
$ ifconfig
eth0      Link encap:イーサネット  ハードウェアアドレス xx:xx:xx:xx:xx:xx
          inetアドレス:192.168.xxx.xxx  ブロードキャスト:192.168.xxx.255  マスク:255.255.255.0
          inet6アドレス: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 範囲:グローバル
          inet6アドレス: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 範囲:リンク
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1
          RXパケット:2224992 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:1592433 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:1000
          RXバイト:2753802229 (2.7 GB)  TXバイト:552776890 (552.7 MB)
          割り込み:16

eth0:0    Link encap:イーサネット  ハードウェアアドレス 00:14:5e:1e:26:92
          inetアドレス:172.16.1.1  ブロードキャスト:172.16.255.255  マスク:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1
          割り込み:16

lo        Link encap:ローカルループバック
          inetアドレス:127.0.0.1  マスク:255.0.0.0
          inet6アドレス: ::1/128 範囲:ホスト
          UP LOOPBACK RUNNING  MTU:16436  メトリック:1
          RXパケット:7261 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:7261 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:0
          RXバイト:4817685 (4.8 MB)  TXバイト:4817685 (4.8 MB)

定義したIPエイリアスを削除する

eth0をダウンさせるのと同様にeth0:0をダウンさせればいい。

$ sudo ifconfig eth0:0 down
$ ifconfig
eth0      Link encap:イーサネット  ハードウェアアドレス xx:xx:xx:xx:xx:xx
          inetアドレス:192.168.xxx.xxx  ブロードキャスト:192.168.xxx.255  マスク:255.255.255.0
          inet6アドレス: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 範囲:グローバル
          inet6アドレス: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 範囲:リンク
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1
          RXパケット:2224992 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:1592433 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:1000
          RXバイト:2753802229 (2.7 GB)  TXバイト:552776890 (552.7 MB)
          割り込み:16

lo        Link encap:ローカルループバック
          inetアドレス:127.0.0.1  マスク:255.0.0.0
          inet6アドレス: ::1/128 範囲:ホスト
          UP LOOPBACK RUNNING  MTU:16436  メトリック:1
          RXパケット:7261 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:7261 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:0
          RXバイト:4817685 (4.8 MB)  TXバイト:4817685 (4.8 MB)

これでネットワークの移行が楽になる。

参考

ITmedia Linux Tips「1枚のNICに複数のIPアドレスを割り当てたい」

Wineでのフォント調整

2009/10/05 PC::Linux/BSD

Wineのデフォルト状態では日本語が正しく表示されない(□で表示される)場合が多い。
これを調整した時のメモ。

環境

  • Kubuntu 9.04/amd64
    • Wine 1.1.30

レジストリによる調整

HKEY_CURRENT_USER\Software\Wine\Fonts\Replacements
以下に置き換え対象のフォントをゴリゴリと登録する。

例)
"MS Pゴシック"="VL Pゴシック"

私は以下のようにレジストリファイルを作成してインポートしています。
wine-font.txt:レジストリファイルのダウンロード(拡張子を.txt→.regへ変更して下さい)

REGEDIT4

[HKEY_CURRENT_USER\Software\Wine\Fonts\Replacements]
"Courier New"="Courier New"
"Comic Sans MS"="Comic Sans MS"
"FixedSys"="IPAゴシック"
"Lucida Sans Unicode"="Lucida Sans"
"Microsoft Sans Serif"="DejaVu Sans"
"MS Pゴシック"="VL Pゴシック"
"MS PGothic"="VL Pゴシック"
"MS P明朝"="IPA P明朝"
"MS UI Gothic"="VL Pゴシック"
"MS ゴシック"="VL ゴシック"
"MS Gothic"="VL ゴシック"
"MS 明朝"="IPA明朝"
"Small fonts"="VL ゴシック"
"System"="VL ゴシック"
"Terminal"="VL Pゴシック"
"Verdana"="VL Pゴシック"

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
"Courier New"="Courier New"
"Comic Sans MS"="Comic Sans MS"
"Verdana"="VL Pゴシック"

[HKEY_CURRENT_USER\Control Panel\Desktop]
"FontSmoothing"="2"

これでもまだ文字化けする場合

lsof を利用して利用しているフォントを調査する。以下はCrystalMark 2004R3 を動作させた時の結果。

$ lsof | grep Crystal | grep ttf
CrystalMa (中略) /usr/share/wine/fonts/tahoma.ttf

上記によると/usr/share/wine/fonts/tahoma.ttfが利用されているらしい。
このtahoma.ttfに日本語が含まれていないのが問題っぽい。と、いうことで「 ttt:(FreeBSD) wineでPicasa2を動かしたら文字化けしたので、気合で修正」を参考に以下のように修正。

  • /usr/share/wine/fonts/tahoma.ttf を /usr/share/wine/fonts.bak/tahoma.ttf へ移動
  • VL Pゴシックのシンボリックリンクを /usr/share/wine/fonts/tahoma.ttf へ作成(必要ないかも)

これでTahomaを指定されていた部分も正常に表示されるようになりました。

wine-fontfix.jpg

このときのlsofの結果は次の通り。

$ lsof | grep ttf | grep Crystal
CrystalMa (中略) /usr/share/fonts/truetype/msttcorefonts/Arial.ttf
CrystalMa (中略) /usr/share/fonts/truetype/vlgothic/VL-PGothic-Regular.ttf

参考

2009/09/29(火)CrystalMark 2004R3 on IntelliStation Z Pro

PC

どこかの記事に触発されて、メインマシンのベンチマークを取ってみましたw

環境

  • IBM IntelliStation Z Pro (9228-LNJ)
  • CPU: Intel Woodcrest Xeon X5160 (Dual-core 3.0GHz, 4MB L2)
  • RAM: FB-DIMM DDR2-667 8GB (8x1GB)
  • GPU: nVidia Quadro FX1500 (PCI-Ex16, 256MB)
    • 1600x1200, 24bit color
  • HDD: HGST HDT72505 (SATA II, 500GB, ext3)
  • OS: Kubuntu 9.04/amd64
    • Kernel: 2.6.28-15-generic
    • KDE 4.2.2
    • Wine 1.1.29
  • CrystalMark 2004R3 0.9.126.452

Wine on Kubuntu 9.04/amd64

cm2k4r3-090929.png

  • うちの環境ではSysInfo*を何かしなくても動きました
  • D2Dテストは動作しませんでした

詳細

Mark204187
ALUFibonacci10562
Napierian5035
Eratosthenes3683
QuickSort7021
ALU Total26323
FPUMikoFPU2890
RandMeanSS20680
FFT4825
Mandelbrot4558
FPU Total32975
MEMRead3906 (3906.97MB/s)
Write2377 (2377.26MB/s)
Read/Write2348 (2348.25MB/s)
Cache3835 (38359.37MB/s)
MEM Score Total12488
HDDSequential Read16391 (2178.32MB/s)
Sequential Write2270 (56.75MB/s)
Random Read 512K17852 (2470.45MB/s)
Random Write 512K3084 (77.12MB/s)
Random Read 64K17636 (2427.29MB/s)
Random Write 64K2513 (62.83MB/s)
HDD Total59746
GDIText4899
Square1059
Circle2784
BitBlt736
GDI Total9478
D2DSprite 100 (0.00FPS)
Sprite 1000 (0.00FPS)
Sprite 5000 (0.00FPS)
Sprite 10000 (0.00FPS)
Sprite 50000 (0.00FPS)
Sprite 100000 (0.00FPS)
D2D Total0
OGLScene1 (Line)42107 (42107)
Lines (x1000)0 (9763170)
CPU0 (1024)
Scene2 (Polygon)21070 (21070)
Polygons (x1000)0 (1479755)
CPU0 (512)
OGL Total63177

Kubuntu 9.04におけるVMware Server Consoleのキーバインド調整

2009/09/22 PC::VMware

Kubuntu 9.04でVMware Server Consoleを導入したら多くのキーが、本来とは異なる挙動をするようになっていたため、ついカッとなって作りました。

環境

  • ホスト
    • Debian GNU/Linux 4.0/i386
    • VMware Server 1.0.6
  • クライアント
    • Kubuntu 9.04/amd64
    • VMware Server Console 1.0.9
  • 動作用確認仮想マシン
    • Kubuntu 9.04/i386

キーバインド書き換え部

  • ~/.vmware/preferences に追加することで利用できます
    • xkeymap.languageの行の後あたりに追加するといいのではないでしょうか*1
  • 109キーボード全てのキーについて再定義しています
  • 個人的趣向により、CapsLockと左Ctrlを入れ替えています
xkeymap.language = jp106
# ファンクション
xkeymap.keycode.9	= 0x001	# Escape
xkeymap.keycode.67	= 0x03b	# F1
xkeymap.keycode.68	= 0x03c	# F2
xkeymap.keycode.69	= 0x03d	# F3
xkeymap.keycode.70	= 0x03e	# F4
xkeymap.keycode.71	= 0x03f	# F5
xkeymap.keycode.72	= 0x040	# F6
xkeymap.keycode.73	= 0x041	# F7
xkeymap.keycode.74	= 0x042	# F8
xkeymap.keycode.75	= 0x043	# F9
xkeymap.keycode.76	= 0x044	# F10
xkeymap.keycode.95	= 0x057	# F11
xkeymap.keycode.96	= 0x058	# F12
# 最上段
xkeymap.keycode.49	= 0x029 # Zenkaku_Hankaku
xkeymap.keycode.10	= 0x002 # 1
xkeymap.keycode.11	= 0x003 # 2
xkeymap.keycode.12	= 0x004 # 3
xkeymap.keycode.13	= 0x005 # 4
xkeymap.keycode.14	= 0x006 # 5
xkeymap.keycode.15	= 0x007 # 6
xkeymap.keycode.16	= 0x008 # 7
xkeymap.keycode.17	= 0x009 # 8
xkeymap.keycode.18	= 0x00a # 9
xkeymap.keycode.19	= 0x00b # 0
xkeymap.keycode.20	= 0x00c # minus "-"
xkeymap.keycode.21	= 0x00d # asciicircum "^"
xkeymap.keycode.132	= 0x07d # backslash (BS左の\)
xkeymap.keycode.22	= 0x00e # BackSpace
# 2段目
xkeymap.keycode.23	= 0x00f # Tab
xkeymap.keycode.24	= 0x010 # q
xkeymap.keycode.25	= 0x011 # w
xkeymap.keycode.26	= 0x012 # e
xkeymap.keycode.27	= 0x013 # r
xkeymap.keycode.28	= 0x014 # t
xkeymap.keycode.29	= 0x015 # y
xkeymap.keycode.30	= 0x016 # u
xkeymap.keycode.31	= 0x017 # i
xkeymap.keycode.32	= 0x018 # o
xkeymap.keycode.33	= 0x019 # p
xkeymap.keycode.34	= 0x01a # at "@"
xkeymap.keycode.35	= 0x01b # bracketleft "["
xkeymap.keycode.36	= 0x01c # Return
# 3段目
xkeymap.keycode.66	= 0x01d	# Caps_Lock -> Control_L
xkeymap.keycode.38	= 0x01e # a
xkeymap.keycode.39	= 0x01f # s
xkeymap.keycode.40	= 0x020 # d
xkeymap.keycode.41	= 0x021 # f
xkeymap.keycode.42	= 0x022 # g
xkeymap.keycode.43	= 0x023 # h
xkeymap.keycode.44	= 0x024 # j
xkeymap.keycode.45	= 0x025 # k
xkeymap.keycode.46	= 0x026 # l
xkeymap.keycode.47	= 0x027 # semicolon ";"
xkeymap.keycode.48	= 0x028 # colon ":"
xkeymap.keycode.51	= 0x02b # bracketright "]"
# 4段目
xkeymap.keycode.50	= 0x02a # Shift_L
xkeymap.keycode.52	= 0x02c # z
xkeymap.keycode.53	= 0x02d # x
xkeymap.keycode.54	= 0x02e # c
xkeymap.keycode.55	= 0x02f # v
xkeymap.keycode.56	= 0x030 # b
xkeymap.keycode.57	= 0x031 # n
xkeymap.keycode.58	= 0x032 # m
xkeymap.keycode.59	= 0x033 # comma ","
xkeymap.keycode.60	= 0x034 # period "."
xkeymap.keycode.61	= 0x035 # slash "/"
xkeymap.keycode.97	= 0x073 # kana_RO
xkeymap.keycode.62	= 0x036 # Shift_R
# 最下段
xkeymap.keycode.37	= 0x03a	# Control_L -> Caps_Lock
xkeymap.keycode.133	= 0x15b # Super_L (Win_L)
xkeymap.keycode.64	= 0x038 # Alt_L
xkeymap.keycode.102	= 0x07b # Muhenkan
xkeymap.keycode.65	= 0x039 # Space
xkeymap.keycode.100	= 0x079 # Henkan_Mode
xkeymap.keycode.101	= 0x070 # Hiragana_Katakana
xkeymap.keycode.108	= 0x138 # Alt_R (Meta_R)
xkeymap.keycode.134	= 0x15c # Super_R (Win_R)
xkeymap.keycode.135	= 0x15d # Menu (App)
xkeymap.keycode.105	= 0x11d # Control_R
# アローキー部
xkeymap.keycode.107	= 0x137 # PrintScreen
xkeymap.keycode.78	= 0x046 # ScrollLock
xkeymap.keycode.127	= 0x100 # Pause
xkeymap.keycode.118	= 0x152 # Insert
xkeymap.keycode.119	= 0x153 # Delete
xkeymap.keycode.110	= 0x147 # Home
xkeymap.keycode.115	= 0x14f # End
xkeymap.keycode.112	= 0x149 # Prior (PageUp)
xkeymap.keycode.117	= 0x151 # Next (PageDown)
xkeymap.keycode.113	= 0x14b # Left
xkeymap.keycode.116	= 0x150 # Down
xkeymap.keycode.114	= 0x14d # Right
xkeymap.keycode.111	= 0x148 # Up
# テンキー部
xkeymap.keycode.77	= 0x045 # NumLock (Pointer_EnableKeys)
xkeymap.keycode.106	= 0x135 # KP_Divide (/)
xkeymap.keycode.63	= 0x037 # KP_Multiply (*)
xkeymap.keycode.82	= 0x04a # KP_Subtract (-)
xkeymap.keycode.86	= 0x04e # KP_Add (+)
xkeymap.keycode.104	= 0x11c # KP_Enter
xkeymap.keycode.87	= 0x04f # KP_End (1)
xkeymap.keycode.88	= 0x050 # KP_Down (2)
xkeymap.keycode.89	= 0x051 # KP_Next (3)
xkeymap.keycode.83	= 0x04b # KP_Left (4)
xkeymap.keycode.84	= 0x04c # KP_Begin (5)
xkeymap.keycode.85	= 0x04d # KP_Right (6)
xkeymap.keycode.79	= 0x047 # KP_Home (7)
xkeymap.keycode.80	= 0x048 # KP_Up (8)
xkeymap.keycode.81	= 0x049 # KP_Prior (9)
xkeymap.keycode.90	= 0x052 # KP_Insert (0)
xkeymap.keycode.91	= 0x053 # KP_Delete (.)

*1 : 掲載した書き換え部には、一応xkeymap.languageの行も記載していますので、適用時には重複しないように注意して下さい。

関連記事