2010/12/09

[軟體][Linux] VirtualBox 4.0 Beta 1 釋出, Ubuntu 使用者嘗鮮說明

注意:這篇說明是寫給 VirtualBox 4.0 Beta 1 在 Ubuntu 上面的嘗鮮者,所以需要具備一些細節的知識。

不建議非技術人員或生產人員輕易嘗試,可能會毀掉你的 epc 或工作的環境。

動機:

  • USB 2.0 EHCI 控制器和 RDP 服務器移入到 Extension Pack,不再包含在發佈版本當中,保證了 VirtualBox 是完全的開源軟件。USB 1.1 OHCI 控制器一直是核心部件,兩者的區別在於傳輸速度。(使用打印機和網銀 USB key 需要注意。)
  • 全新設計的用戶界面,增加了 NAT 端口轉發的 GUI 設置界面。
  • 增加 Open Virtualization Format Archive (OVA 格式)的支持。
  • 支持在 32bit host 上的虛擬機使用 1.5GB/2GB 內存。
  • 增加 ICH9 的 3 個 PCI 設備的支持。
  • 支持虛擬機使用 Intel HD Audio 音頻設備。(Windows 7 Guest 不再需要額外找 Realtek AC97 驅動。)
  • 增加 iSCSI、VMDK、VHD 和 Parallels 鏡像的異步 I/O 特性;允許 VHD 和 VDI 的大小縮放。
  • 增加自動更新 Guest Addition 功能
  • 引入 copy-and-paste 的特性。
  • 編程語言:API 增加標準 Java 語言的本地和遠程的支持。
  • 增加 Scale Mode 適應分辨率不高的全屏程序。


確認有足夠的動機之後,我們就開始來安裝,要做的事情如下:

  • 安裝 libstdc++5
  • 安裝 virtualbox 4.0 beta 1 的 deb
  • 安裝 extension pack
  • 修改 usb dev 的 rule
安裝 libstdc++5 的部份很簡單,因為 ubuntu 10.04 已經都換到 libstdc++6 了,所以套件倉庫已找不到這個套件了,我們要另外加來源才能安裝。(當然不建議手動安裝,修改 symbolic link,所以還是用 deb 來安裝)
把這行加到 /etc/apt/sources.list 的最後
 deb http://cz.archive.Ubuntu.com/ubuntu jaunty main universe  
然後再 sudo apt-get update; sudo apt-get install libstdc++5

就可以安裝好 libstdc++5 了。

安裝 virtualbox 4.0 beta 1 的部份也很簡單,先下載  deb 的包裝。記得要找自已的版本代號, 10.04 是 lucid , 10.10 就是 maverick 。
然後是 sudo apt-get purge virtualbox; dpkg -i  virtualbox-4.0_4.0.0~beta1-68572~Ubuntu~lucid_i386.deb
再來是安裝 extension pack ,這邊應該是 oracle 有搞一點專利或保留的部份。一樣先下載檔案,然後在桌面上雙點就可以。(我不知道為什麼 console 底下 chmod +x 不能執行,這邊好像有玄機,所以改天可以再去查一下)
跑到這邊,應該沒事了,你的 virtualbox 已經可以跑了。不過 usb 在 virtualbox 3.2 的版本還可以動作的,到這個昇級完了又不能動了,一樣是老問題,所以先檢查 group 設定,確定這個使用者有在 vboxusers 裡面,以前有寫過,所以就不多提。
不過這次,光這樣還不行,不知道是我的情況比較特別,還是真的是 vbox 的開發人員的疏失,在 usb dev 的 rules 裡面看到了錯誤,所以再修正:
--- /etc/udev/rules.d/10-vboxdrv.rules 2010-12-09 10:18:13.000000000 +0800
+++ /home/anton/10-vboxdrv.rules 2010-12-09 10:15:44.000000000 +0800
@@ -1,5 +1,5 @@
KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="root", MODE="0600"
-SUBSYSTEM=="usb_device", ACTION=="add", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers"
-SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers"
-SUBSYSTEM=="usb_device", ACTION=="remove", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
-SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
+SUBSYSTEM=="usb_device", ACTION=="add", RUN=/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}" vboxusers
+SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN=/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}" vboxusers
+SUBSYSTEM=="usb_device", ACTION=="remove", RUN=/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
+SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN=/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"

簡單的說,就是這條 rule 的 RUN 參數指定的時候雙引號沒有括好,所以這條 rule 一定會失敗,失敗了 vbox 就加不了這個 node ,也就不能好好使用 usb device 了。
--
參考資料:
linux toy 上的新聞:http://linuxtoy.org/archives/virtualbox-400-beta-1-%E5%8F%91%E5%B8%83.html
英文指南:如何處理錯誤訊息(Extension 跟 libstdc++5)
ubuntu 上面安裝 libstdc++5 的指南

沒有留言:

[Windows] git-bash 底下的工具

因為工作轉到 Windows 平台上的關係,所以很多工具改到 Windows 上面運作,跟著在 TortoiseGit 底下使用 git-bash 來維護自己的專案原始碼。結果就是裝了前面提過的 auto-hotkey 使用熱鍵來提昇自己的平台操作速度; 但除了 hotkey...