カテゴリー別アーカイブ: H/W

Apple Wireless Keyboard のキーコード (CentOS 6.3)

Apple Wireless Keyboard を CentOS 6.3 (Linux) で使用する」の補足です。

4. Apple Wireless Keyboard のキーコード (keycode)

CentOS 6.3 (64 bit) に Apple Wireless Keyboard を接続したときの、Mac 専用キーのキーコードを調べました。

4.1. キーコード (keycode) の取得

キーコードは "xev" アプリを使用して取得します。

取得例: コントロールキーを押したときのイベント情報

$ xev
...
KeyPress event, serial 44, synthetic NO, window 0x4600001,
    root 0x1c3, subw 0x0, time 6953593, (80,132), root:(991,1181),
    state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes:                                     
    XmbLookupString gives 0 bytes:                                   
    XFilterEvent returns: False

赤字がキーコード (keycode)、青字が発生イベントです。

4.2. xkb_keycodes の取得

現在使用している "xkb_keycodes" を確認します。

$ setxkbmap -print
xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete+japan"        };
        xkb_symbols   { include "pc+jp(OADG109A)+inet(evdev)+terminate(ctrl_alt_bksp)"  };
        xkb_geometry  { include "pc(pc104)"     };
};

"xkb_keycodes" の値から、/usr/share/X11/xkb/keycodes/evdev がキーコードとして使用されていることが分かります。

/usr/share/X11/xkb/keycodes/evdev

// translation from evdev scancodes to something resembling xfree86 keycodes.

default xkb_keycodes "evdev" {
    minimum = 8;
    maximum = 255;

        # Added for pc105 compatibility
        <LSGT> = 94;

    <TLDE> = 49;
    <AE01> = 10;
    <AE02> = 11;
    <AE03> = 12;
    <AE04> = 13;
    ...

    ~ 以下、略 ~

4.3. Mac 専用キーのキーコード一覧

Apple Wireless Keyboard の Mac 専用キーのキーコード (keycode) 一覧です。
比較用に Happy Hacking Keyboard Lite 2 の発生イベントも参考として乗せています。

物理キー keycode 発生イベント
Apple Wireless Keyboard 【参考】 HHKB Lite 2
control 37 <LCTL> Control_L Control_L
command (左) 133 <LWIN> Super_L -
command (右) 134 <RWIN> Super_R -
option (左) 64 <LALT> Alt_L Alt_L
option (右) 108 <RALT> - Alt_R
caps 66 <CAPS> Eisu_toggle -
delete 22 <BKSP> BackSpace -
119 <DELE> - Delete
BS 22 <BKSP> - BackSpace
英数 130 <HNGL> Hangul_Hanja -
かな 131 <HJCV> Hangul -
半角/全角 49 <TLDE> - Zenkaku_Hankaku
無変換 102 <MUHE> - Muhenkan
変換 100 <HENK> - Henkan_Mode
eject 169 <I169> XF86Eject -

[ END ]

Apple Wireless Keyboard を CentOS 6.3(Linux)で使用する

CentOS が入っているデスクトップ PC では Happy Hacking Keyboard Lite 2 (以下、HHK) の日本語版を使っています。
もう 10年以上使っていて、黄ばみや手垢で見た目は残念なことになっていますが、そのコンパクトさと ESC キー / Control キーの配置から手放せずにいます。

20130211_01

ところが、、、
子供が生まれてから問題になったのが打鍵音です。
カチャカチャという音で子供が起きると奥様からクレームが上がり、子供が寝ているときは使用禁止となってしまいました。

そして始まったのが打鍵音が静かなキーボード探しです。
使わないときはしまえるように、コンパクトでワイヤレスであることを条件にしました。
キー配列は ESC キーはやむを得ないとして HHK に近いこと。
コンパクトなキーボードは特に、カーソルキーが他のキー配列を破壊しているものが多いように思えます。

そんな条件で探しまわっていると、なせが Apple Wireless Keyboard に行き着いてしまいました。。。

1. Bluetooth アダプタの設定

1.1. Bluetooth USBアダプタ GH-BHDA42

デスクトップ PC には Bluetooth が内蔵されていないため、Bluetooth アダプタも同時に購入しました。

選んだのはグリーンハウスGH-BHDA42、選定理由は Bluetooth 4.0 に対応したアダプタの中で一番安かったからです。

1.2. BlueZ のインストール

CentOS に限らず、Linux で Bluetooth アダプタを使用する (認識させる) 場合、BlueZ パッケージを使うのが現在では一般的です。

BlueZ がインストールされているか確認します。

# rpm -qa bluez
bluez-4.66-1.el6.x86_64

赤び~の環境では bluez-libs パッケージしかインストールされていませんでした。

# rpm -qa bluez
# yum list installed | grep bluez
bluez-libs.x86_64                      4.66-1.el6                       @anaconda-CentOS-201106060106.x86_64/6.0

bluez パッケージは yum からインストール可能です。

# yum install bluez

~ 略 ~

Transaction Summary
================================================================================
Install       7 Package(s)                                                     

Total download size: 1.1 M
Installed size: 3.2 M    

~ 略 ~

Installed:
  bluez.x86_64 0:4.66-1.el6

Dependency Installed:
  ...

Complete!

1.3. BlueZ の起動

BlueZ は "bluetooth" というサービス名で動いています。

残念ながら service コマンドからステータスを確認できないようなので、万が一動いていない場合は起動してください。

ステータス確認不可 (status オプションなし)

# service --status-all | grep bluetooth
使い方: /etc/init.d/bluetooth {start|stop}

サービス起動

# service bluetooth start
Bluetooth 装置を有効化中:

ついでに自動起動の設定も確認しておきます。

# chkconfig --list bluetooth
bluetooth       0:off   1:off   2:off   3:on    4:on    5:on    6:off

1.4. Bluetooth アダプタの認識

BlueZ が起動したら Bluetooth アダプタ (GH-BHDA42) を開いている USB ポートに差し込みます。

正しく認識したかどうかは "hciconfig" コマンドで確認可能です。

GH-BHDA42 未装着

# hciconfig -a

GH-BHDA42 装着後

# hciconfig -a
hci0:   Type: BR/EDR  Bus: USB
        BD Address: [BD アドレス]  ACL MTU: 310:10  SCO MTU: 64:8
        UP RUNNING PSCAN
        RX bytes:1030 acl:0 sco:0 events:38 errors:0
        TX bytes:1844 acl:0 sco:0 commands:38 errors:0
        Features: 0xff 0xff 0x8f 0xfe 0xdb 0xff 0x5b 0x87
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
        Link policy: RSWITCH HOLD SNIFF PARK
        Link mode: SLAVE ACCEPT
        Name: '[ローカル名]'
        Class: 0x4a0104
        Service Classes: Networking, Capturing, Telephony
        Device Class: Computer, Desktop workstation
        HCI Version: 4.0 (0x6)  Revision: 0x1d86
        LMP Version: 4.0 (0x6)  Subversion: 0x1d86
        Manufacturer: Cambridge Silicon Radio (10)

「ローカル名」を変更したい場合は "name" オプションで指定します。

ローカル名の変更例

# hciconfig hci0 name [変更後のローカル名]

2. Apple Wireless Keyboard とのペアリング

2.1. bluetooth-wizard の起動

Bluetooth 機器とのペアリングは "bluetooth-wizard" を使用すると容易です。
"bluetooth-wizard" は GNOME Bluetooth パッケージに含まれています。

# rpm -qa gnome-bluetooth
gnome-bluetooth-2.28.6-8.el6.x86_64

(*) kdebluetooth というツールもありますが使ったことはありません。。。

bluetooth-wizard を起動します。

# bluetooth-wizard &

(*) root で起動していますが、一般ユーザでも問題なさそうです (未確認)

20130211_02

2.2. デバイス検索

Apple Wireless Keyboard の電源を入れてから、「はじめに」画面で「進む」ボタンを選択すると「デバイス選択」画面に遷移します。
デバイス一覧に検出された「Apple Wireless Keyboard」を選択し、「進む」ボタンを選択します。

20130211_03

2.3. デバイスの設定 (PIN コード入力)

「デバイスの設定」画面には PIN コード (6桁の数字) が表示されています。

20130211_04

Apple Wireless Keyboard で PIN コードを打ち込み、最後に Enter キーを押すとペアリングは完了です。

20130211_05

2.4. bluetooth-applet

"bluetooth-applet" を起動しておくと、Bluetooth アイコンをクリックすることで Apple Wireless Keyboard が接続していることを確認できます。
ここから "bluetooth-wizard" を起動することも可能です。

20130211_06

3. Apple Wireless Keyboard の使用感

3.1. CentOS (Linux) 上でのキーマップ

一度ペアリングしてしまえば、再起動後等も問題なく Apple Wireless Keyboard を使用可能です。

20130211_07

初期状態では

Control Control
Option Alt
Command 無効?
英数 無効?
かな 半角/全角
Delete BS (BackSpace)
Caps Lock 単独では無効 (Shift と同時押しで有効)

にマッピングされていました。

Eject キーも使えた (光学ドライブを開閉できた) ことには驚きました。

2013/2/12 追記
内容が正確ではなかったので、別途以下にまとめました。

@see 「Apple Wireless Keyboard のキーコード (CentOS 6.3)

3.2. 注意事項

BlueZ のサービスが起動する前は Apple Wireless Keyboard を使用できません。

これは、GRUB 上や boot 中は Bluetooth キーボードを利用できないということなので注意が必要です。

[ END ]

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 ]