カテゴリー別アーカイブ: Linux

CentOS 6.0 でのマルチモニタ設定 その2 (CentOS 6.0 64bit)

CentOS 6.0 でのマルチモニタ設定 その1 (CentOS 6.0 64bit)」からの続きです。

2. AMD (旧ATI) Graphics Driver の設定

2.1. マルチディスプレイ構成

CentOS 6.0 へのバージョンアップと同時に、デュアルディスプレイ環境をマルチディスプレイ (トリプルディスプレイ以上) 環境に変更すべく、ビデオカード (SAPPHIRE HD6450 1G DDR3 PCI-E HDMI/DVI-D/VGA) を増設しました。
オンボードの Radeon HD 4200 ではディスプレイ2枚までしか対応できないからです。

その前段階として、以下のようにディスプレイを接続して環境構築を行っています。

[SAPPHIRE HD6450] ----- HDMI ----- [ディスプレイ1 (1920x1080)]
[onboard HD4200] ----- DVI-D ---- [ディスプレイ2 (1280x1024)]

将来的にはそれぞれにディスプレイを1枚ずつ追加する予定です。

(*) この構成がトラブルの元でした。。。

2.2. Catalyst Control Center の起動

ディスプレイの配置は Catalyst Control Center から設定します。
「アプリケーションランチャ」の「アプリケーション」から「設定」-「AMD Catalyst Control Center」を選択します。

20111015_01

左メニューの「ディスプレイ マネージャ」を選択すると、接続しているディスプレイを確認することができます。
HD 6450 に接続しているディスプレイ1 (左図) は認識していますが、HD 4200 に接続しているディスプレイ2 (右図) は「未知のディスプレイ」となっています。

ディスプレイ1 (HD 6450 に接続) ディスプレイ2 (HD 4200 に接続)
20111015_02 20111015_03

ディスプレイ2 を有効にするために、「未知のディスプレイ」の右上をクリックし、「マルチディスプレイ」から「単一ディスプレイ デスクトップ (マルチディスクトップ)」を選択します。

変更内容 変更後 (要 BIOS設定)
20111015_04 20111015_05

X を再起動してもディスプレイ2 が有効にならない (右図のように「未知のディスプレイ」のまま) 場合は、BIOS を変更する必要があります。

2.3. BIOS 変更

Catalyst Control Center で設定しても、増設した HD 6450 と onboard の HD 4200 のいずれか片方しか有功とならない場合は、BIOS が排他設定となっている可能性があります。

M3A785GMH/128M の場合、デフォルトは増設したビデオカードが有功となる設定であったため、両方を同時に使用可能となるように設定しました。

20111015_06

変更内容

  • 「Share Memory」を「Auto」以外に変更 (今回は「512 MB」を指定)
  • 「Surround View」を「Enabled」に変更

このマザーボードでは、「Share Memory」が「Auto」の場合は「Surround View」は有効にならないという制限があるので注意が必要です。

(*) この制限事項が分からず、数日悩みました。
(*) マニュアルの和訳から漏れていた (英語のマニュアルには記載があった) ことが、今回の最大のトラップでした。。。

2.4. BIOS 変更後の再設定

BIOS 変更後に Catalyst Control Center を起動すると、ディスプレイ2 が今度は認識されています。

20111015_07 20111015_08

ディスプレイの配置を変更したい場合は、該当のディスプレイをドラッグすることで任意の配置に変更することが可能です。

20111015_09

ディスプレイの配置が決まったところで、左メニューの「モニターオプション」-「Xinerama」から Xinerama を有効にします。

20111015_10 20111015_11

X を再起動して、すべての設定は完了です。

3. 画面イメージ

すべての設定が完了した時の画面イメージです。
右が HD 6450 (増設ビデオカード) に接続しているディスプレイ1 (1920x1080)、左が HD 4200 (onboard) に接続しているディスプレイ2 (1280x1024) です。

20111015_12

20111015_13

現在はもう一枚ディスプレイを追加し、トリプルディスプレイとしています。

HD 6450 (増設ビデオカード) に、2枚目のディスプレイを縦 (1080x1920) に接続しています。
1280x1024 のディスプレイ2 はディスプレイ1 の上に移動しました。

左下は MacBook Air、右下は iPad2 です。

20111015_14

ピグ中

20111015_15

ディスプレイの接続

[SAPPHIRE HD6450] --+-- HDMI ----- [ディスプレイ1 (1920x1080)] (中央)
  +--DVI-D ----- [ディスプレイ3 (1080x1920)] (左)
[onboard HD4200] ----- DVI-D ----- [ディスプレイ2 (1280x1024)] (上)

ディスプレイの設置

ディスプレイの設置には、4画面対応のモニタアームを使用しました。

4画面設置可能な
モニタアーム
1画面設置可能なモニタアーム(左)と
追加用アーム(右)

[ END ]

CentOS 6.0 でのマルチモニタ設定 その1 (CentOS 6.0 64bit)

先日、Domain-0 (Xen の ホスト) を CentOS 5.6 から CentOS 6.0 にバージョンアップし、仮想化環境も KVM に移行したのはお伝え済みですが、マルチモニタ設定関連で悩んだのでその備忘録です。

悩んだのは以下の2点です。

  • Graphics Driver のコンパイルエラー
  • オンボード Graphics Chip と 増設したビデオカードの同時使用

(*) 前者は前回構築時の作業手順をメモっていれば回避できました。。。

1. AMD (旧ATI) Graphics Driver のインストール

M3A785GMH/128M に搭載されているオンボード Graphics Chip は AMD 785GRadeon HD 4200 です。
後述する増設ビデオカードも Radeon HD 6450 と同じ AMD (旧ATI) Radeon シリーズなので、AMD から Graphics Driver (Display Driver) をダウンロード及びインストールします。

1.1. Graphics Driver Radeon HD シリーズのダウンロード

AMD の Graphics Driver ダウンロードサイトから HD 4200 と HD 6450 の Graphics Driver (Display Driver) をダウンロードします。

ダウンロード時に指定した項目は次の通りです。

Step 1: 「Desktop Graphics」
Step 2: 「Radeon HD Series」
Step 3: 「Radeon HD 6xxx Series PCIe」
Step 4: 「Linux x86_64」

Step 3 で 「Radeon HD 4xxx Series PCIe」を選択してもダウンロードできるファイルは同一でしたので、ここでは「Radeon HD 6xxx Series PCIe」を選択しています。

20111014_01

Step 5 の「Display Results」アイコンを選択すると、ダウンロード画面に遷移します。
インストールしたタイミング (9/3) では Rev. 11.8 でしたが、9/28 に最新の Rev. 11.9 がリリースされたようです。

(*) 不自由を感じていないため、現時点でバージョンアップはしていません。。。

20111014_02

「Download」リンクを選択すると Graphics Driver (Display Driver) のダウンロードが始まります。
ファイル名は ati-driver-installer-11-8-x86.x86_64.run で 75,754,239byte でした。

1.2. 必要パッケージの確認

Graphics Driver (Display Driver) をコンパイルするためには、少なくとも下記のパッケージが必要となります。

  • kernel-headers
  • kernel-devel
  • gcc
  • libdrm-devel

rpm -qa または yum list installed でパッケージのインストール有無を確認してください。

以下は yum list installed での確認例です。

# yum list installed | grep kernel
abrt-addon-kerneloops.x86_64
dracut-kernel.noarch   004-33.2.el6_0   @updates
kernel.x86_64          2.6.32-71.el6    @anaconda-CentOS-201106060106.x86_64/6.0
kernel.x86_64          2.6.32-71.29.1.el6
kernel-firmware.noarch 2.6.32-71.29.1.el6
# yum list installed | grep gcc
libgcc.x86_64          4.4.4-13.el6     @anaconda-CentOS-201106060106.x86_64/6.0
# yum list installed | grep drm
libdrm.x86_64          2.4.20-2.el6     @anaconda-CentOS-201106060106.x86_64/6.0

1.3. 必要パッケージのインストール

不足しているパーケージを yum コマンドでインストールします。

# yum install kernel-headers kernel-devel gcc libdrm-devel

~ 略 ~

Installed:
  gcc.x86_64 0:4.4.4-13.el6
  kernel-devel.x86_64 0:2.6.32-71.29.1.el6
  kernel-headers.x86_64 0:2.6.32-71.29.1.el6
  libdrm-devel.x86_64 0:2.4.20-2.el6

Dependency Installed:
  cloog-ppl.x86_64 0:0.15.7-1.2.el6     cpp.x86_64 0:4.4.4-13.el6
  glibc-devel.x86_64 0:2.12-1.7.el6_0.5 glibc-headers.x86_64 0:2.12-1.7.el6_0.5
  mpfr.x86_64 0:2.4.1-6.el6             ppl.x86_64 0:0.10.2-11.el6

Complete!

1.4. インストーラの起動とインストール

ダウンロードしたファイルに実行権を付与し、インストーラを起動します。

# ls
ati-driver-installer-11-8-x86.x86_64.run
# chmod a+x ati-driver-installer-11-8-x86.x86_64.run
# ./ati-driver-installer-11-8-x86.x86_64.run

Options には「Install Driver 8.8.81 on X.Org 6.9 or later 64-bit」を選択し、「Continue」ボタンを選択します。

20111014_03

使用許諾は一読し、問題なければ「Agree」ボタンを選択します。

20111014_04

インストールモードには「Automatic」を選択し、「Continue」ボタンを選択します。

20111014_05

しばらくするとインストール完了画面に遷移します。
インストールログの出力場所が表示されています。(ここでは「/usr/share/ati」配下)
「Exit」ボタンを選択するとインストーラは終了します。

20111014_06

1.5. インストールログの確認

このインストーラ、困ったことに Driver のコンパイルに失敗してもメッセージを出してくれません。
インストールが正常に完了したかどうかは、別途インストールログを確認する必要があります。

(*) このログのチェックを怠った (忘れていた) ため、約1日悩みました。。。

インストールログは /usr/share/ati 配下の fglrx-install.log です。

# ls /usr/share/ati/
KernelVersionList.txt  amdcccle  drv.list            km.list       postun_drv.sh  preun_km.sh
LICENSE.TXT            cp.list   fglrx-install.log   lib64         postun_km.sh
amd-uninstall.sh       doc.list  fglrx-uninstall.sh  postun_cp.sh  preun_doc.sh

(*) アンインストーラ (fglrx-uninstall.sh) もここにあります。

インストールログ (fglrx-install.log) の最後が次のようになっていれば、Driver のインストールは成功していると思います。

build succeeded with return value 0
duplicating results into driver repository...
done.
You must change your working directory to /lib/modules/fglrx
and then call ./make_install.sh in order to install the built module.
- recreating module dependency list
- trying a sample load of the kernel modules
done.
[Reboot] Kernel Module : dracut

CentOS 6.0 でのマルチモニタ設定 その2 (CentOS 6.0 64bit)」に続きます。

[ END ]

alternatives コマンドを使用した java バージョンの切り替え

JDK 1.6.x のインストール (CentOS 5.5 64bit)」の「3.3. /usr/bin 配下のリンク先変更」において、/usr/bin 配下の java のリンク先を切り替えることにより実行される java のバージョン切り替えを実現しました。

が、alternatives (または update-alternatives) コマンドを用いることで、よりスマートに java バージョンの切り替えが実現できるようです。

今回は JDK (java) に関連する部分のみの手順に限定させていただきますので、alternatives の詳細については以下のサイトをご参照ください。

@see 「コマンドを便利に切り替える update-alternatives 使いこなし講座

1. 現在の設定確認

1.1. alternatives 設定

alternatives で java コマンドの設定状況を確認します。

# alternatives --config java

2 プログラムがあり 'java' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
   2           /usr/lib/jvm/jre-1.4.2-gcj/bin/java

/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java が有効となっていて、そのほかに /usr/lib/jvm/jre-1.4.2-gcj/bin/java が登録されていることがわかります。

1.2. java 設定

java コマンドを実行すると、CentOS のデフォルトでは /usr/bin 配下の java が起動します。この実体は、以下が示すように /etc/alternatives/java となっています。

# ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 4月 18 18:11 java -> /etc/alternatives/java

/ect/alternatives/java は「1.1. alternatives 設定」となっていますので、結果として /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java が動作することになります。

# java -version
java version "1.6.0_0"
OpenJDK Runtime Environment (IcedTea6 1.6) (rhel-1.11.b16.el5-x86_64)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)

2. インストールした JDK の登録

新たに JDK をインストールしても alternatives には登録されません。
登録を行う場合には --install オプションを使用します。

# alternatives --install /usr/bin/java java /usr/java/default/bin/java 16021
  • 第1パラメータの「/usr/bin/java」は実行するリンクを指定します。
  • 第2パラメータの「java」は登録対象のグループを指定します。
  • 第3パラメータの「/usr/java/default/bin/java」は実際に実行するコマンドのパスを指定します。
    細かくバージョン管理を行いたい場合は「/usr/java/jdk1.6.0_21/bin/java」のように登録した方がよいかもしれません。
  • 第4パラメータの「16021」は優先度を指定します。今回は JDK1.6.0_21 ですので「16021」としました。

alternatives で登録結果を確認します。

# alternatives --config java

3 プログラムがあり 'java' を提供します。

  選択       コマンド
-----------------------------------------------
 + 1           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
   2           /usr/lib/jvm/jre-1.4.2-gcj/bin/java
*  3           /usr/java/default/bin/java

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:3

「/usr/java/default/bin/java」が追加されていることが確認できます。
ただ、このままでは「1」が有効となっているので、「3」を入力して Enter キーで決定します。

3. 動作確認

前項の設定が有効となっているか確認します。

# java -version
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode)

[ END ]