VMwareでX Window Systemの解像度を正しく設定する方法
VMwareでゲストOSを構築する際に、解像度の設定が正しく反映されずにとても悩んでいました。 Ubuntu Serverを構築した時はXRandRで設定して、誤魔化していました。 XRandRで設定する場合は、ディストリビューションやウインドウマネージャによってはログイン画面の解像度がくずれたりする現象を確認しており、この対策を模索していました。 色々試して分かったのは、X.Org Serverを直接設定してしまうのが最適解だということです。 ただしVMwareなので、一般的なディスプレイの設定をしても反映されず、VMware専用の設定を記述しなければいけません。 その設定について記載します。
検証環境
仮想化ソフトウェア | VMware Workstation 7.1.3 |
ホストOS | Windows 7 Ultimate (64bit) |
ゲストOS | Debian GNU/Linux 6.0.0(64bit) |
ゲストOS | Fedora 14(64bit) |
ゲストOS | FreeBSD 8.1 RELEASE(64bit) |
ゲストOS | Ubuntu 10.10 (64bit) |
X.Org Serverの設定
設定ファイルが最初存在しないので雛形を生成します。 生成する際にXを停止しておかないと、設定ファイルの生成に失敗します。 よって、シングルユーザモードやテキストログインモードで起動するか、ランレベルを変更して設定します。 私はテキストログインモードで起動し、rootユーザでログインして設定しました。
# Xorg -configure # mv /root/xorg.conf.new /etc/X11/xorg.conf # vi /etc/X11/xorg.conf
Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Monitor Model" ### For VMware HorizSync 1-10000 VertRefresh 1-10000 ### 04:03 ModeLine "800x600" 100 800 900 1000 1100 600 700 800 900 ModeLine "1024x768" 100 1024 1100 1200 1300 768 800 900 1000 ModeLine "1600x1200" 100 1600 1700 1800 1900 1200 1300 1400 1500 ### 05:04 ModeLine "1280x1024" 100 1280 1300 1400 1500 1024 1100 1200 1300 ### 16:09 ModeLine "1600x900" 100 1600 1700 1800 1900 900 1000 1100 1200 ModeLine "1920x1080" 100 1920 2000 2100 2200 1080 1100 1200 1300 ### 16:10 ModeLine "1280x800" 100 1280 1300 1400 1500 800 900 1000 1100 ModeLine "1440x900" 100 1440 1500 1600 1700 900 1000 1100 1200 ModeLine "1680x1050" 100 1680 1700 1800 1900 1050 1100 1200 1300 ModeLine "1920x1200" 100 1920 2000 2100 2200 1200 1300 1400 1500 EndSection Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" ― 省略 ― SubSection "Display" Viewport 0 0 Depth 24 Modes "1440x900" EndSubSection EndSection
ハイライトしている記述が追記箇所です。 MonitorとScreenのセクションを抜粋しています。 MonitorのセクションのHorizSyncとVertRefreshがVMwareでは重要な部分となります。 ModeLineについては必要な解像度の部分だけの記述でもOKです。 Screenのセクションで実際に使用する解像度を指定します。 この場合だと1440x900を指定しています。 私は初め以下のように、MonitorのセクションでModeLineを記述せずに解像度情報の自動認識を狙いました。 /etc/X11/xorg.conf
Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Monitor Model" ### For VMware HorizSync 1-10000 VertRefresh 1-10000 EndSection Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" ― 省略 ― SubSection "Display" Viewport 0 0 Depth 24 Modes "1440x900" EndSubSection EndSection
この場合だとディストリビューションによって正確な表示の可否が分かれました。 解像度の情報を直接記述する最初の方法が無難であると言えます。 とりあえず主要なディストリをゲストOSとしてインストールして検証したので、この方法なら他のディストリでも通用すると思います。
Ubuntuでの設定(2011年02月25日追記)
2番目の方法で動作を確認しました。ModeLineを記述しなくても、正しく表示されます。 検証環境はOSがUbuntu 10.10、ディスプレイマネージャはGDM、デスクトップ環境はGNOMEです。