Hyper-V Server 2012 R2環境でのFedora 20 MATE-Compiz Spin Live利用(RDP接続)

Hyper-V Server 2012 R2はWindows Server 2012 R2付属のHyper-Vサーバ機能に特化した無償の仮想化ソフトウェアです。
(Hyper-V Server 2012 R2の導入・活用手順については「無償のHyper-V Server 2012 R2利用」をご参照下さい)

2013年12月17日にFedora 20がリリースされましたがFedora 20にはHyper-V Server(2012 R2)環境で動作するようにHyper-VのLIS(Linux Integration Services) ver 3.5相当のコンポーネントがビルトインされています。
Hyper-VのLIS ver 3.5の正式リリースは2013年12月19日ですから「LIS 3.5相当」という表現を使用しています。
LIS 3.5の大きな特徴はフルHDの解像度1920x1080(かつ32ビットカラー)をサポートしたhyperv_fbカーネルドライバの搭載です。
hyperv_fbカーネルドライバを搭載しているFedora 20のユニークな特徴として「Hyper-V環境での3Dデスクトップサポート」があります。
しかもFedora 20にxrdp(RDPサーバ)を導入して他のPCからFedora 20にRDP接続した場合でもそのRDP接続画面内で3Dデスクトップ環境が何とか使えます。
(尚、hyperv_fbカーネルドライバを搭載しているCentOS 6.5の場合はHyper-V環境ではデスクトップ効果を有効にできません)
2013年6月にリリースされたFedora 19 MATE-Compiz Spin Liveでは「LIS 3.4相当」のものが内蔵されていましたが当然ながらhyperv_fbは含まれていません。
(Fedora 19 MATE-Compiz Spin LiveではCompiz Fusion Iconの[Compiz Options]で[Indirect Rendering]オプションを有効にした場合に3Dデスクトップがスムーズに利用できます)

ここではHyper-V Server 2012 R2環境でのFedora 20 MATE-Compiz Spin Live(英語版)のRDPサーバ環境構築を中心にその導入・利用方法について紹介致します。
今回使用したPCのハードウェア/ソフトウェア構成は以下の通りです。



  1. Fedora 20 MATE-Compiz Spin Live(英語版)の構成
    (1)ISOイメージファイル:Fedora-Live-MATE-Compiz-i686-20-1.iso(約700MB)
    (2)ユーザ:liveuser(自動ログインユーザでパスワードなし)、rootユーザもパスワードなし。
    (3)セッションマネジャ:mate-session
    (4)sshサーバ:未搭載
    (5)ファイアウォール機能:自動起動
    (6)hyperv_fbカーネルドライバが使用される条件:仮想マシンの設定でRemoteFX 3D ビデオアダプタを追加していないこと。
    (7)キーボードのタイプ:us
    (8)Fedora 20 MATE-Compiz Spin Liveのデフォルト起動ではデスクトップの画面解像度は1152x864です。

  2. 仮想マシンの定義
    (1)仮想マシンの名前:ここでは「HVSFedora20mate」としました。
    (2)仮想マシンの世代:第1世代
    (3)仮想マシンのネットワークアダプタ:デフォルトのネットワークアダプタ(レガシーネットワークアダプタではありません)
    (4)仮想マシンのDVDドライブイメージ:Fedora-Live-MATE-Compiz-i686-20-1.isoへのパスを指定。

  3. Fedora 20 MATE-Compiz Spin Liveの起動
    デスクトップの画面解像度を1152x864以外にしてカーネルをブートする手順は以下の通りです。
    (1)Fedora 20 MATE-Compiz Spin Live版のブート用カーネルの選択画面で「Start Fedora Live」を選択します。
    (2)「Start Fedora Live」を選択してTabキーを押下すると起動画面の下にカーネルパラメータが表示されて編集可能となります。
    (3)そのカーネルパラメタの最後に「video=hyperv_fb:1366x768」を追加してEnterキーを押すと編集したカーネルパラメータでブートされます。
    Hyper-V仮想マシンでのFedora 20 MATE-Compiz Spin Live版のデスクトップ例(解像度:1366x768)

    (4)カーネルパラメータに指定した画面解像度の値が許容範囲外(例:1920x1200)の場合は
    Screen resolution option is out of range」エラーとなり画面解像度は1152x864(32bpp)になります。
    (5)デフォルト解像度(1152x864)でのCompiz利用例


    ・実寸画像はこちらです。

    (ちなみにこちらは1280x1024の解像度指定時のCompiz利用例)

  4. キーボードタイプの設定変更
    liveuserのデスクトップが表示された直後に行った方がよいのはキーボードタイプの設定変更です。
    以下の手順でキーボードタイプを英語版レイアウトから日本語版レイアウトに変更します。
    (1)[System]メニューの[Preferences]-[Hardware]-[Keyboard]で「Keyboard Preferences」画面を開きます。
    (2)「Layouts」タブの中に「English (US)」が表示されます。
    (3)<Add>ボタンを押下して「Choose a Layout」画面での「By country」タブでCountryとして[Japan]を選択して<Add>ボタンを押下します。
    (4)「Keyboard Preferences」画面に戻って[English (US)]を削除(Remove)します。


    尚、一時的にキーボードタイプを変更したい場合は「system-config-keyboard jp106」コマンドでもOKです。

  5. RDP接続されるユーザの事前準備
    xrdp(RDPサーバ)は内部的にVNCサーバと接続して画面描画を行いますがVNCサーバを単独利用する場合と違ってvncpasswdの設定は不要です。
    RDP接続されるユーザの設定としてはそのユーザのホームディレクトリ(今回は/home/liveuser)に「.Xclients」ファイルを準備しておくだけでOKです。
    ※RDP接続されるユーザのLinuxパスワードが設定されていなくてもxrdpにログインできます。
    $ cd
    $ vi .Xclients ※以下の2行から成るファイル(/home/liveuser/.Xclients)を作成します。
    #!/bin/bash
    exec mate-session ※Fedora 20 MATE-Compiz Spin Liveのセッションマネジャ自体が「mate-session」のため。
    $ chmod 755 .Xclients ※必ず実行権限を付与して下さい。

  6. xrdp(RDPサーバ)の導入とRDPサービスの起動
    Fedora 20のxrdpパッケージはtigervnc-server-minimalパッケージを必要としますがFedora 20 MATE-Compiz Spin Liveにはtigervnc-server-minimalパッケージは既にインストールされています。
    このためFedora 20 MATE-Compiz Spin Liveへのxrdpパッケージの導入からそのRDPサービスの起動は以下の手順だけで済みます。
    $ su -
    # yum -y install xrdp
    # systemctl start xrdp.service (このコマンドでxrdp-sesmanサービスも自動起動されます)
    # firewall-cmd --zone=public --add-service=ms-wbt (これはRDPポート[3389/tcp]の開放を行うファイアウォールの設定です)

    ファイアウォールの確認はnmapのフロントエンドツールであるZenmap等(Windows版、Linux版どちらでもOK)で行えます。



  7. 他のマシンからのRDP接続
    (1)RDP接続クライアントからFedora 20 MATE-Compiz Spin Liveのアドレス指定でRDP接続を開始します。
    (2)「Login to xrdp」ダイアログでliveuser指定(パスワードなし)でRDP接続を開始します。
    (3)最初の接続では接続エラーとなることもありますがその場合は再接続すればOKとなることが多いようです。
    (4)「Connection Log」が以下のように表示されて、指定したユーザのMATEデスクトップ画面が表示されます。
    connecting to sesman ip 127.0.0.1 port 3350
    sesman connect ok
    sending login info to session manager,please wait...
    xrdp_mm_process_login_response:login successful for display
    started connecting
    connecting to 127.0.0.1 5910 ※場合によっては5911等になる場合もあります
    tcp connected
    security level is 2(1 = none,2 = standard)
    password ok
    sending share flag
    receiving server init
    receiving pixel format
    receiving name length
    receiving name
    sending pixel format
    sending encodings
    sending framebuffer update request
    sending cursor
    connection complete,connected ok
    ※xrdpにログインするとそのログインユーザのホームディレクトリに「.vnc/sesman_ユーザ名_passwd」ファイルが自動作成されます。

  8. 複数RDPクライントからの接続
    xrdpでは複数のRDPクライアントから同一ユーザでのRDP接続が可能です。
    (1)同一IPアドレス上の複数RDPクライアントからの接続では同じVNC用ポートが使用されて同じ画面がそれぞれのRDPクライアントに表示されます。
    (2)別々のIPアドレス上のRDPクライアント群からのRDP接続では別々のVNC用ポートが使用されて別々の画面が表示されます。
    二つの仮想マシン(Windows 7 Pro用HVSWin7ProとWindows 7 Ultmate用HVSWin7Ult)からの同時RDP接続例

  9. RDP接続されたFedora 20 MATE-Compiz Spin Liveでの3D デスクトップ環境
    RDP接続されたFedora 20 MATE-Compiz Spin Liveで以下の操作をすれば3D デスクトップ環境を利用できます。
    (1)[Applications]メニューの[Accessories]-[Compiz MATE Emerald]を起動。
    (2)[System]メニューの[Preferences]-[Look and Feel]-[CompizConfig Settings Manager]を起動します。
    (3)「CompizConfig Setting Manager」で適用する効果を指定します。
    ・RDP接続の中でのデスクトップキューブの例



    実寸画像はこちらです。

  10. RDP接続でのフルHDサイズ(1920x1080)利用
    Windows VistaマシンからFedora 20 MATE-Compiz Spin Liveの仮想マシンにRDP接続してみました。
    Fedora 20 MATE-Compiz Spin Liveの仮想マシンにRDP接続した場合、[System]メニューの[Preferences]-[Hardware]-[Monitors]での解像度一覧には1920x1200も表示されます。
    しかし1920x1200を選択するとRDP接続は消滅します。
    そこでフルHDサイズ(1920x1080)を選択してデスクトップキューブを利用してみました。



  11. iPhoneからFedora 20 MATE-Compiz Spin Liveの仮想マシンへのRDP接続
    iPhoneでのVPN環境を利用してiPhone用RDPクライアントからFedora 20 MATE-Compiz Spin Liveの仮想マシンにRDP接続してみました。
  12. GLX-Dockの利用
    Fedora 20 MATE-Compiz Spin LiveにMac OS Xのドックを模したGLX-Dock(Cairo-DockのOpenGL対応版)を導入してRDP接続環境でGLX-Dockを利用してみました。
  13. Fedora 20 MATE-Compiz Spin Liveから他のマシンへのRDP接続
    Fedora 20 MATE-Compiz Spin LiveからWindows 7 Ultimate SP1(RemoteFX 3D ビデオアダプタを追加したHyper-V仮想マシン「HVSWin7Ult」)にRDP接続してみました。
    Fedora 20のRDPクライアントはxfreerdp(freerdbパッケージ)です。
    以下のコマンドでfreerdpパッケージのインストールとHyper-V仮想マシン「HVSWin7Ult」への接続ができます。
    # yum -y install freerdp
    # xfreerdp --no-nla --rfx-mode video --composition -x lan -a 32 -u ユーザ名 -p パスワード HVSWin7Ult
    ※仮想マシン「HVSWin7Ult」側にはRemoteFX 3Dビデオアダプタが追加された状態で「--composition」オプション指定で接続してもAero表示にはなりません。



  14. 閑話休題:仮想マシンの中の別仮想マシン
    Hyper-V仮想マシンの中でのFedora 20 MATE-Compiz Spinの中で更に別の仮想マシン環境であるQEMUを使用してWindows XPをインストール・実行してみました。
    今回はlibvirt環境でのQEMU利用でネットワークは標準の仮想ブリッジ(virbr0)を使ってみました。
    手順は至って簡単で以下のステップの通りです。
    (1)Hyper-V仮想マシンの中でFedora 20 MATE-Compiz Spin Liveを起動して仮想ディスクに自分自身をインストールします。
    ※Hyper-Vの仮想ディスクにインストールしたFedora 20 MATE-Compiz Spinをここでは「HVSFedora20mate」と呼ぶことにします。
    (2)HVSFedora20mateにQEMUを導入します。
    (3)QEMUの仮想ディスクにWindows XPをインストールします。
    ※QEMUの仮想ディスクにインストールしたWindows XPをここでは「QEMUWinXP」と呼ぶことにします。
    (4)QEMU用仮想ディスクにインストールしたWindows XPを実行します。

    以下に各ステップについて説明します。