VMware Server Consoleにおけるキーバインドのカスタマイズ

2008/10/05PC::VMware

LinuxではXmodmapでのキーバインドのカスタマイズはゲストOSには反映されません。生のキーコードがそのままゲストOSへ渡されているようですが、以下の手順にて変更することが可能です。

環境

以下の環境で確認しました

  • Kubuntu 8.04.1 日本語ローカライズド
  • キーボード: 日本語キーボード(jp106)
  • VMware Server 1.0.6
  • VMware Server Console 1.0.6

変更前のキーコード調査

xevなどで調査可能です。

KeyPress event, serial 32, synthetic NO, window 0x4600001,
    root 0x1e9, subw 0x0, time 191321504, (65,176), root:(2378,200),
    state 0x0, keycode 66 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

上記の場合はCapsLockを押した場合のイベントですが、キーコードは66であることがわかります。

VMware Server Consoleでのキーの割り当て

日本語キーボードでのVMware Server Consoleでのキーのコードは以下に記載されています。
/usr/lib/vmware/xkeymap/jp106

Escape                  = 0x001
1                       = 0x002
2                       = 0x003
3                       = 0x004
4                       = 0x005
5                       = 0x006
6                       = 0x007
7                       = 0x008
8                       = 0x009
9                       = 0x00a
0                       = 0x00b

上記は/usr/lib/vmware/xkeymap/jp106の抜粋ですが、Escapeは0x001ということがわかります。このリストから目当てのキーの機能とコードを探します。

実際に変更してみる

CapsLockと左Ctrlを入れ替える場合は次のようになります。

~/.vmware/preferencesに以下を追加する。

xkeymap.useKeycodeMapIfXFree86 = true
# CapsLock -> L_Control
xkeymap.keycode.66 = 0x01d
# L_Control -> CapsLock
xkeymap.keycode.37 = 0x03a

関連記事

[Linux] VMware Server Consoleで「\」「_」が入力できない問題への対応

2008/10/05PC::VMware

Linux環境にてVMware Server Consoleで「\」「_」のキー入力が無視されてしまうという問題への対処法。

~/.vmware/preferencesに以下を追加する。

xkeymap.useKeycodeMapIfXFree86 = true
xkeymap.keycode.211 = 0x073

発生した環境

  • Kubuntu 8.04 日本語ローカライズド
  • VMware Server 1.0.6
  • VMware Server Console 1.0.6
  • キーマップ: 日本語キーボード

参考

VMware Toolsのインストール @ Ubuntu 8.04 (Hardy) VM

2008/09/10PC::VMware

UbuntuのリポジトリにはVMware Toolsのパッケージが用意されているので、Debian VMにVMware Toolsをインストールする方法ではなく、aptで導入する方法が楽です。

導入するパッケージは以下の通り。

  • open-vm-tools
  • open-vm-tools-gui

導入するだけでVMware Toolsの基本機能及び、ゲストOSのウィンドウサイズへの追従などが自動的に有効になります。

動作確認環境

VMware環境
VMware Server 1.0.6
仮想マシンOS
Kubuntu 8.04.1 日本語ローカライズド

[Kubuntu/Ubuntu] VMware ServerでUSB機器を利用する

2008/08/31PC::VMware

Debianのサーバだけではなく、KubuntuのメインマシンにもVMware Serverを導入しているのだが、KubuntuマシンではどういうわけかUSBが利用できなかったので調べてみた。

環境

VMware Server環境1
Debian GNU/Linux 4.0(etch)
VMware Server環境2
Kubuntu 8.04.1 (Hardy Heron)
VMware Server
1.0.6
VMware Server Console
1.0.6

VMware ServerにおけるUSBデバイスの検出

VMware ServerはホストにUSBデバイス接続された際に、/proc/bus/usb/以下にUSBデバイスファイル*1が作成されることを期待しているようです。Debian etchではVMware Serverが期待するように/proc/bus/usb/以下にデバイスファイルが生成されますが、Kubuntuでは/dev/bus/usb/以下にデバイスファイルが生成され、/proc/bus/usb/以下には生成されません。このため、KubuntuをホストOSとする場合にVMware ServerはUSBデバイスを検出できず、結果としてゲストOSでUSBデバイスを利用できないということが起こっています。

*1 : 正式名称は何というのでしょうか?

解決策

/etc/init.d/mountdevsubfs.shを編集することで、/proc/bus/usb/以下にUSBデバイスファイル?が作成されるようにします。

#
# Magic to make /proc/bus/usb work
#
#mkdir -p /dev/bus/usb/.usbfs
#domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
#ln -s .usbfs/devices /dev/bus/usb/devices
#mount --rbind /dev/bus/usb /proc/bus/usb

上記部分のコメントを外す。

#
# Magic to make /proc/bus/usb work
#
mkdir -p /dev/bus/usb/.usbfs
domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
ln -s .usbfs/devices /dev/bus/usb/devices
mount --rbind /dev/bus/usb /proc/bus/usb

編集後に以下のコマンドを実行

$ sudo /etc/init.d/mountdevsubfs.sh

これでVMware Server Consoleで接続するとUSBデバイスが利用できるようになっているはずです。

参考

VMware Workstation 6.x/Player 2.xでの新機能

2008/01/09PC::VMware

VMware製品では基本的に同世代であれば仮想マシンレベルで同程度の機能を持つようです。
第6世代に相当するVMware Player 2.xがどのような新機能を持つのか調べるために、VMware Workstation 6.xの新機能について調べたときのメモです。

第6世代

  • VMware Workstation 6.x
  • VMware Player 2.x
  • VMware ACE 2.x
  • VMware Server 2.x*1

Workstation 6.x新機能

* :VMware Player 2.xでも有効であると思われるもの

Workstation ACE Editionへのアップグレードパス
ACE機能のライセンスを購入することによりACE固有の機能を持つ仮想マシンの作成が可能
Workstation IDEプラグイン(統合仮想デバッガ)
Visual Studio/EclipseとVMの間にインターフェイスが提供され、VM上でのプログラムのテスト、実行、デバッグを容易に実行可能
VIX 1.1 APIの提供
仮想マシン アクティビティの記録/再生の試験的サポート
一定期間内の仮想マシンの操作及び状態を記録、再生が可能
物理マシンから仮想マシンへの変換、およびインポート機能の強化(Windowsホストのみ)
強化されたVMware Converterの提供
バックグラウンドでの仮想マシンの実行
VMware Workstationを終了しても仮想マシンがバックグラウンドで動作させ続けることが可能
*マルチモニタディスプレイのサポート
VM上でマルチモニタ機能のサポート
*サポート可能なイーサネットアダプタ数の増加
5個@1VMから10個@1VMに
新しい64bitサウンドドライバ
新規作成の64bit Windows VMでオーディオハードウェアが構成されるようになる(VMware Tools)
*USB2.0デバイスのサポート
最大6個のUSB2.0ポートの提供
仮想マシンのVNCサーバ機能
VNCサーバをゲストOSに組み込まなくてもVNC機能の提供が可能
RAMサポートの強化
仮想マシン全体で利用できるRAMの制限が4GBから8GBに
*64bitゲストサポート強化
Intel EM64T VT対応CPUで実行される64bitゲストOSのサポートの強化
*ゲストOSからのバッテリステータスの監視
ホストのバッテリステータスをゲストOSからの監視のサポート
デバッグ情報収集機能の向上
*準仮想化Linuxカーネルのサポート
Xen対応LinuxカーネルをゲストOSで利用することでパフォーマンスの向上
仮想ディスクをホストOSで利用(Windows)
vmdk仮想ディスクファイルをホストOS(Windows)のドライブレターにマッピング可能
VMware Toolsの自動アップデート
共有フォルダの制限機能の強化
*ファイル共有及びコピーと貼り付け機能の強化
ゲストOSのサポートの拡大

*1 : VMware Server 2.xは第7世代仮想マシンとなるようです