2008年9月11日 星期四

如何使用 Open Virtual Machine Tools

目前的工作需要同時使用 Windows 及 GNU/Linux 兩個作業系統,這幾個月來使用 VirtualBox 跑 GNU/Linux 一直很順利,但前幾個星期不知怎麼搞得,原本可以正常使用的 VirtualBox 1.6.2 卻莫名其妙老是出現錯誤訊息,即使移除再重新安裝也是一樣,偏偏手頭的工作正趕著進度,而 VMware Server 在 32 位元的 Vista Business 又總會使整個系統呈現無法回應的超高負載,只好先下載了試用版的 VMware Workstation。

不過當時下載的 VMware Workstation 6.0.4 在安裝了 Ubuntu 8.04 (Linux Kernel 2.6.24) 後,即使安裝了 VMware Tools,Shared Folders 仍不會被正確掛載,到 Google 爬文後,發現可以用 Open Virtual Machine Tools 解決這個問題。

Open Virtual Machine Tools (open-vm-tools) 是 VMware 公司在 2007 年 11 月 11 日的「VMworld 2007」會議上宣佈釋出的 VMware Tools 開放源碼實作。可以在以下的網站取得:使用 open-vm-tools 的方法非常簡單,編譯後取出生成的 vmblock、vmhgfs、vmmemctl、vmsync 及 vmxnet 等模組,用它們取代 VMware Workstaton's VMware Tools 所帶的模組,然後再執行 vmware-install.pl 安裝 VMware Workstaton's VMware Tools 就可以了。 首先編譯 open-vm-tools 之前需要先確認已經安裝以下的軟體套件:

一、當前 Linux Kernel 的 Headers 檔案。

apt-get install linux-headers-$(uname -r)
二、C/C++ 編譯器及 make 工具,由於為了平時使用的方便,所以我一向習慣將 GCC 3.x 版也都裝上。

apt-get install make gcc build-essential \
  gcc-3.3 g++-3.3 gcc-3.4 g++-3.4
三、Fortran 77 編譯器及 AWK。

apt-get install g77 gawk
四、GTK+ 開發套件。

apt-get install libgtk2.0-dev
五、X Window System (X11) 開發套件。

apt-get install xorg-dev
  實際上編譯 open-vm-tools 並不需要這麼完整的 X Window System 開發套件,如果磁碟空間有限,可以只安裝以下幾項:

apt-get install libx11-dev libxtst-dev libxrandr-dev \
  libxinerama-dev libxext-dev libxrender-dev \
  x11proto-xinerama-dev x11proto-xext-dev \
  x11proto-randr-dev x11proto-render-dev
六、libdnet、libicu、libproc 函式庫

apt-get install libdumbnet-dev libicu-dev libproc-dev
當安裝妥所有需要的軟體套件後,就可以開始編譯 open-vm-tools 了。

tar zxvf open-vm-tools-2008.07.01-102166.tar.gz

cd open-vm-tools-2008.07.01-102166

./configure

make
成功編譯完成後,接著要以 open-vm-tools 生成的 module 取代 VMware Workstaton's VMware Tools 的 module:

cd module/linux/

for i in *; do mv ${i} ${i}-only; tar -cf ${i}.tar ${i}-only; done

cd ../../..

mv -f open-vm-tools-2008.04.14-87182/modules/linux/*.tar \
  vmware-tools-distrib/lib/modules/source/
接著安裝 VMware Workstaton's VMware Tools 就可以了。

cd vmware-tools-distrib/

./vmware-install.pl
後記:

如果下載的 open-vm-tools 版本是 2008 年 8 月 8 日發佈的 2008.08.08-109361 版或目前最新的 2008.09.03-114782 版,則執行 configure 時會提示還需要 uriparser 函式庫的支援,不過即使用安裝 liburiparser-dev 後仍會出現以下的錯誤:
configure: error: uriparser library not found or is too old. Please
configure without Unity (using --disable-unity) or install the
liburiparser devel package.
這時只好改成執行 ./configure --disable-unity 關閉 uriparser 函式庫的需求。