top page > X Window System > here

AT 互換機における X.Org 7 系 (USB)


概要

対象は次のようなものです.

  1. AT 互換機 + USB キーボード,USB マウス
  2. FreeBSD/i386 7.2 + X.Org 7.4 および FreeBSD/i386 8.1 + X.Org 7.5

目的は次のようなものです.

  1. X.Org 7.4, 7.5 における USB キーボード, USB マウスの動作の情報を提示する.
  2. AT 互換機における X.Org 7.4, 7.5 の動作状況を提示する.

(注) xf86-input-mouse が 1.6.0 から 1.7.1 へと更新されましたが,ある期間だけ動作に不具合が生じています.
  X.Org 7 on AT (3) 2.2 節 の (注) を御覧下さい.


目次

1. 概要
2. 設定 (1) について
3. 設定 (3) について

1. 概要

ここでは X.Org on AT (1) と同じ検討を USB キーボード,USB マウスに対して行ないます.[1] 差異は以下の通り.

[1] PS/2, USB の両方のキーボードとマウスを挿した状態は X.Org on AT (3) にて検討します.
  (Note PC に USB キーボードやマウスを挿せばそうなるので,そう例外的な状況でもないでしょう.)

[2] 厳密には,私は USB マウスを所有しておりません. 上記の検討には AT 互換機用 PC-98 配列キーボード に示したキーボード PK-KB002 を用いました. これには PS/2 マウスのコネクタが付いており,ここに繋げたマウスは USB マウスとして認識されます.
→ USB マウスを入手したので試しました.当然ですが下記と同様の結果になります.

[3] USB マウスを挿して OS を起動すると,自動的に moused が起動します. それを抑制するには,/etc/rc.conf に次のように設定します.

moused_nondefault_enable="NO"

あくまで当方の環境においてですが,moused on の方がマウスの効きが若干鈍いので,私は moused off で使っています.

それと,Hot Plug (活線挿抜) の機能として HAL と moused が重複しているように思います. PC の電源 on の状態でマウスの抜き挿しを試す必要もありそうです.

2. 設定 (1) について

hald は起動しているものとします.

xorg.conf の記述は PS/2 キーボード,PS/2 マウスとまったく同じです.

キーボードの設定法も PS/2 キーボードとまったく同じです.

マウスの設定法も PS/2 マウスと同様ですが,mouse-sysmouse.fdi に記述する内容が一部異なります.

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.mouse">
      <merge key="input.x11_options.Protocol" type="string">Auto</merge>
      <merge key="input.x11_options.Device" type="string">/dev/ums0</merge>
      <merge key="input.x11_options.Emulate3Buttons" type="string"></merge>
    </match>
  </device>
</deviceinfo>

これは moused が off の場合であり,on ならば ums0 の部分を sysmouse に換えて下さい. (mouse-sysmouse.fdi を作成しなければ,HAL は moused の動作を検知して,この差異を反映した設定を自動的に行ないます.)

moused off の場合,X Window System の log には次のように出力されます.

(**) |-->Input Device "Mouse1"
(**) |-->Input Device "Keyboard1"
(==) Automatically adding devices
(==) Automatically enabling devices
(中略)
(WW) AllowEmptyInput is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
(WW) Disabling Mouse1
(WW) Disabling Keyboard1
(中略)
(II) config/hal: Adding input device PC98KEY USB KBD/M
(II) Loading /usr/local/lib/xorg/modules/input//mouse_drv.so
(II) Module mouse: vendor="X.Org Foundation"
        compiled for 1.6.1, module version = 1.4.0
(**) PC98KEY USB KBD/M: Device: "/dev/ums0"
(**) PC98KEY USB KBD/M: Protocol: "Auto"
(**) PC98KEY USB KBD/M: always reports core events
(==) PC98KEY USB KBD/M: Emulate3Buttons, Emulate3Timeout: 50
(**) PC98KEY USB KBD/M: ZAxisMapping: buttons 4 and 5
(**) PC98KEY USB KBD/M: Buttons: 9
(**) PC98KEY USB KBD/M: Sensitivity: 1
(II) XINPUT: Adding extended input device "PC98KEY USB KBD/M" (type: MOUSE)
(**) PC98KEY USB KBD/M: (accel) keeping acceleration scheme 1
(**) PC98KEY USB KBD/M: (accel) filter chain progression: 2.00
(**) PC98KEY USB KBD/M: (accel) filter stage 0: 20.00 ms
(**) PC98KEY USB KBD/M: (accel) set acceleration profile 0
(WW) fcntl(11, F_SETOWN): Inappropriate ioctl for device
(II) config/hal: Adding input device PC98KEY USB KBD/M
(II) Loading /usr/local/lib/xorg/modules/input//kbd_drv.so
(II) Module kbd: vendor="X.Org Foundation"
        compiled for 1.6.1, module version = 1.3.2
(**) PC98KEY USB KBD/M: always reports core events
(**) PC98KEY USB KBD/M: Protocol: standard
(**) PC98KEY USB KBD/M: XkbRules: "xorg"
(**) PC98KEY USB KBD/M: XkbModel: "jp106"
(**) PC98KEY USB KBD/M: XkbLayout: "jp"
(**) PC98KEY USB KBD/M: CustomKeycodes disabled
(II) XINPUT: Adding extended input device "PC98KEY USB KBD/M" (type: KEYBOARD)
(中略)  以下の log は出るべきではないのですが,動作に不具合はないようです.
(II) config/hal: Adding input device AT Keyboard
(**) AT Keyboard: always reports core events
(**) AT Keyboard: Protocol: standard
(**) AT Keyboard: XkbRules: "xorg"
(**) AT Keyboard: XkbModel: "jp106"
(**) AT Keyboard: XkbLayout: "jp"
(**) AT Keyboard: CustomKeycodes disabled
(II) XINPUT: Adding extended input device "AT Keyboard" (type: KEYBOARD)

moused on の場合には,/dev/ums0 の行が次のようになり

(**) PC98KEY USB KBD/M: Device: "/dev/sysmouse"

また次の行がなくなるだけで,それ以外は同一です.

(WW) fcntl(11, F_SETOWN): Inappropriate ioctl for device

3. 設定 (3) について

xorg.conf の記述は PS/2 キーボード,PS/2 マウスとほぼ同じですが,マウスの部分に差異があります.

Section "InputDevice"
   Identifier "Mouse1"
   Driver     "mouse"
   Option     "Protocol"   "Auto"
   Option     "Device"     "/dev/ums0"  ← moused on ならば sysmouse
   Option     "Emulate3Buttons"
EndSection

hald は起動していないものとします. moused off の場合,X Window System の log には次のように出力されます.

(**) Not automatically adding devices
(**) Not automatically enabling devices
(中略)
(**) Mouse1: Device: "/dev/ums0"
(**) Mouse1: Protocol: "auto"
(**) Mouse1: always reports core events
(**) Mouse1: Emulate3Buttons, Emulate3Timeout: 50
(**) Mouse1: ZAxisMapping: buttons 4 and 5
(**) Mouse1: Buttons: 9
(**) Mouse1: Sensitivity: 1
(II) XINPUT: Adding extended input device "Mouse1" (type: MOUSE)
(**) Mouse1: (accel) keeping acceleration scheme 1
(**) Mouse1: (accel) filter chain progression: 2.00
(**) Mouse1: (accel) filter stage 0: 20.00 ms
(**) Mouse1: (accel) set acceleration profile 0
(WW) fcntl(10, F_SETOWN): Inappropriate ioctl for device
(**) Keyboard1: always reports core events
(**) Keyboard1: Protocol: standard
(**) Keyboard1: XkbRules: "xorg"
(**) Keyboard1: XkbModel: "jp106"
(**) Keyboard1: XkbLayout: "jp"
(**) Keyboard1: CustomKeycodes disabled
(II) XINPUT: Adding extended input device "Keyboard1" (type: KEYBOARD)

moused on の場合には,前節の設定 (1) の場合と同様ですが,/dev/ums0 の行が次のようになり

(**) Mouse1: Device: "/dev/sysmouse"

また次の行がなくなるだけで,それ以外は同一です.

(WW) fcntl(10, F_SETOWN): Inappropriate ioctl for device