2013年10月13日 星期日

用 VRDP 連線 VirtualBox 虛擬機(一):外觀調整、聲音轉送

在發表『解決「不能以 rdesktop 連接遠端的 VirtualBox 虛擬機」的問題』一文之後,深覺 rdesktop-vrdp 的功能非常強大,值得好好研究一下。由它的『輔助資訊』說明中,可以明顯看出,
[SiB@Celeron-D ~]$ rdesktop-vrdp
rdesktop: A Remote Desktop Protocol client.
Version 1.7.0. Copyright (C) 1999-2011 Matthew Chapman et al.
Modified for VirtualBox by Oracle Corporation
See http://www.rdesktop.org/ for more information.

Usage: rdesktop-vrdp [options] server[:port]
   -u: user name
   . . . . .
   -5: use RDP version 5 (default)
[SiB@Celeron-D ~]$
在用 rdesktop-vrdp 與 VirtualBox 虛擬機連線的相關設定、調整中,大致上可分為:
  • 調整 VirtualBox「虛擬機」的設定
  • 用 rdesktop-vrdp 建立連線時,加入參數
兩大類。相關的設定也不一定在同一部電腦進行,注意例子中的『 提示文字(prompt)』,Celeron-D 表示是在「本地電腦」操作,而 Core-i7 則表示在「遠端電腦」的主機上操作。「虛擬機」在本文的操作中完全是被動的,不須在內部做任何設定。

注意:「虛擬機」顯示設定的『伺服器埠』預設值為 3389,如果遠端的「主機電腦」是安裝 Windows 系統,這個預設值一定不能與遠端主機的 Windows 的『遠端桌面』相同,否則連線不會成功。

一、改變 rdesktop-vrdp 連線後視窗的外觀、大小

(1) 改變視窗的標題

當有建立很多連線時,如何方便地辨識不同的連線視窗,除了將每個連線的桌布設為不同外,最好是每個視窗有自己的標題。rdesktop-vrdp 的『 -T 』這個參數就是用在這個目的,
[SiB@Celeron-D ~]$  rdesktop-vrdp 192.168.10.17:3389 -T "VM_test"
其中,192.168.10.17 為「虛擬機」所在「主機」的網路位址,3389 為「虛擬機」顯示的『伺服器埠』之埠號,『 -T "VM_test"』是設定『視窗標題』的參數, VM_test 則為「虛擬機」建立連線後的『視窗標題』。

註一:預設的『視窗標題』為「虛擬機」所在「主機」的網路位址。
註二:要更改『視窗標題』只能先斷線、再連線時的命令中修改,斷線時遠端「虛擬機」的執行不受影響。

(2) 改變視窗的大小

要改變用 rdesktop-vrdp 建立連線後視窗大小,即使在「虛擬機」安裝 Guest Additions 也不能像在『主機』上改變「虛擬機」視窗大小時,「虛擬機」的螢幕大小會自動調整。要設定「虛擬機」的螢幕大小,要從「虛擬機」所在的「主機」上調整,假設「虛擬機」己經用 headless 模式開啟,且已用 rdesktop-vrdp 建立連線。則調整「虛擬機」螢幕大小的命令為:
[SiB@Core-i7 ~]$ VBoxManage controlvm VM_test setvideomodehint 1280 948 16
其中,VM_test 是「虛擬機」的名稱,『 1280 940 16 』分別為「虛擬機」螢幕的『寬』『高』『色彩深度(Color depth)』。色彩深度是指『每個像素使用幾個位元(或色階)表示』。設定的結果會立即反應在 rdesktop-vrdp 的視窗,所以使用者可即時判斷這個設定是否適當。
  若不想每次開啟「虛擬機」後都調整一次螢幕大小,可在用上述命令微調到滿意狀態的設定值時,直接將螢幕大小數值設定在「虛擬機」的參數中,
[SiB@Core-i7 ~]$ VBoxManage setextradata "VM_test" "CustomVideoMode1" "1280x948x16"
若設定欄位(如:「虛擬機」的名稱)中無空白字元,則『 " " 』這個引號可以省略如下,
[SiB@Core-i7 ~]$ VBoxManage setextradata VM_test CustomVideoMode1 1280x948x16
其中,VM_test 是「虛擬機」的名稱,1280x940x16 分別為「虛擬機」螢幕的『寬x高x色彩深度』。以後開啟「虛擬機」時,螢幕大小就預設為這個設定值。

:更改『視窗大小』前,遠端「虛擬機」要先安裝 Guest Additions,請參考先前 "在以 headless 模式啟動之 VirtualBox VM 安裝 Guest Additions" 的發文。

(3) 使用『全螢幕』視窗

如果要長時間使用「虛擬機」,不須在不同連線視窗時常切換,則可在建立連線時使用『全螢幕』參數,
[SiB@Celeron-D ~]$  rdesktop-vrdp 192.168.10.17:3389 -f
其中,192.168.10.17 為「虛擬機」所在「主機」的網路位址,3389 為「虛擬機」顯示的『伺服器埠』之埠號,『 -f 』將建立連線後的視窗切換為『全螢幕』的參數。
  在『全螢幕』操作有一種遠端「虛擬機」在『本地』執行的錯覺,但是,萬一又想切回『視窗』形態時,只要同時按下 [Ctrl]-[Alt]-[Enter] 這個按鍵組合,就可以切換回『視窗』形態了。

二、rdesktop-vrdp 連線時啟用『聲音轉送』功能的參數設定

在「虛擬機」中播放多媒體,是有點不太需要。但是,系統運作時的一些警示聲響,通常是在提醒使用者有重要事項須立即注意、處理。所以,能將遠端「虛擬機」的聲音重導至「本地電腦」,對「虛擬機」的使用者而言也是一項重要的設定。
[SiB@Celeron-D ~]$ padsp rdesktop-vrdp 192.168.10.17:3389 -r sound
其中,192.168.10.17 為「虛擬機」所在「主機」的網路位址,3389 為「虛擬機」顯示的『伺服器埠』之埠號,『 -r sound 』是將聲音重導的參數。
  特別要提一下 padsp,這是當「本地電腦」為 Linux 系統時,為了將遠端「虛擬機」重導而來的聲音,併入「本地電腦」的 PulseAudio 音效系統的介面程式。先建立介面,再將重導的聲音併入本地音效系統。

三、rdesktop-vrdp 連線時併用多個參數

當連線時這些參數都要同時設定時,可以合併多個參數。
[SiB@Celeron-D ~]$ padsp rdesktop-vrdp 192.168.10.17:3389 -f -r sound -T "VM_test"
想要更簡單些,也可將整的命令縮短,詳細請參考之前的發文『用較短的命令,加快建立由 SSH 重導之 VNC 連線』。

已測試版本:

  • 主  機:Fedora 19  +  VirtualBox 4.2.18  +  Extension Pack 
  • 虛  擬  機:Fedora 19  +  VirtualBox Guest Additions 4.3 Beta 3
         Windows XP  +  VirtualBox Guest Additions 4.1.10
  • 本地電腦:Fedora 19  +  VirtualBox 4.2.18

參考資料:

沒有留言:

張貼留言

感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)