[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: pkgsrc/x11/xf86-input-mouse-1.8.1がwsmouse(4) 認識せず



On Wed, 12 Jun 2013 06:15:07 +0900
"OBATA Akio" <obata@lins.jp> wrote:

> modular-xorg-server のほうが 1.12.4 に上がって、そっちが
> wscons に OpenBSD しかサポートしてないからだと思います。
> 
> /usr/pkg/include/xorg/xorg-server.h
> に
> #define WSCONS_SUPPORT 1
> がないですよね。

私のマシンの modular-xorg-server-1.12.4nb2 がインストールした
xorg-server.h には WSCONS_SUPPORT は含まれていました。
(pkgsrc のコンパイルはクロスコンパイルではなく、同一ホスト上で行っています)

$ grep -i wscons /usr/pkg/include/xorg/xorg-server.h
/* System has wscons console */
#define WSCONS_SUPPORT 1
$

 
> 手元では、以下のような変更を org-server のほうに適用して
> NetBSD 5.2 で wmmouse のほうからは使えるようになっています。
> たぶん、キーボードレイアウトとかも wskbd や wsmouse から
> 取得して自動的に設定されるのが本来の動きだと思うのですが、
> とりあえず compile が通るだけしたので、その辺がまだです。
> (2013Q2まで間に合うかなぁ)
> 
> --- configure.orig      2012-08-27 05:11:53.000000000 +0000
> +++ configure
> @@ -24309,7 +24309,7 @@ fi
> 
>   if test "x$CONFIG_WSCONS" = xauto; then
>          case $host_os in
> -               *openbsd*)
> +               *openbsd*|*netbsd*)
>                          CONFIG_WSCONS=yes;
>                          ;;
>                  *)
> --- config/wscons.c.orig        2012-08-19 15:45:54.000000000 +0000
> +++ config/wscons.c
> @@ -25,6 +25,8 @@
>   #include <dix-config.h>
>   #endif
> 
> +#include <sys/time.h>
> +#include <fcntl.h>
>   #include <dev/wscons/wsconsio.h>
>   #include <dev/wscons/wsksymdef.h>
> 
> @@ -41,6 +43,7 @@
>   #define WSCONS_KBD_DEVICE "/dev/wskbd"
>   #define WSCONS_MOUSE_PREFIX "/dev/wsmouse"
> 
> +#ifdef __OpenBSD__
>   #define KB_OVRENC \
>          { KB_UK,        "gb" }, \
>          { KB_SV,        "se" }, \
> @@ -48,13 +51,18 @@
>          { KB_SF,        "ch" }, \
>          { KB_LA,        "latam" }, \
>          { KB_CF,        "ca" }
> +#endif
> 
>   struct nameint {
>       int val;
>       char *name;
>   } kbdenc[] = {
> +#ifdef __OpenBSD__
>       KB_OVRENC,
>       KB_ENCTAB,
> +#else /* __NetBSD__ */
> +    KB_ENCTAB
> +#endif
>       {0}
>   };
> 
> @@ -62,10 +70,14 @@ struct nameint kbdvar[] = {
>       {KB_NODEAD | KB_SG, "de_nodeadkeys"},
>       {KB_NODEAD | KB_SF, "fr_nodeadkeys"},
>       {KB_SF, "fr"},
> +#ifdef KB_CF
>       {KB_DVORAK | KB_CF, "fr-dvorak"},
> +#endif
>       {KB_DVORAK | KB_FR, "bepo"},
>       {KB_DVORAK, "dvorak"},
> +#ifdef KB_CF
>       {KB_CF, "fr-legacy"},
> +#endif
>       {KB_NODEAD, "nodeadkeys"},
>       {0}
>   };
> @@ -220,7 +232,11 @@ wscons_add_pointers(void)
>       for (i = 0; i < 4; i++) {
>           snprintf(devname, sizeof(devname), "%s%d", WSCONS_MOUSE_PREFIX, i);
>           LogMessageVerb(X_INFO, 10, "wsmouse: checking %s\n", devname);
> +#ifdef __OpenBSD__
>           fd = open_device(devnamem O_RDWR | O_NONBLOCK | O_EXCL);
> +#else
> +        fd = open(devname, O_RDWR | O_NONBLOCK | O_EXCL);
> +#endif
>           if (fd == -1) {
>               LogMessageVerb(X_WARNING, 10, "%s: %s\n", devname, strerror(errno));
>               continue;
> @@ -233,9 +249,11 @@ wscons_add_pointers(void)
>           }
>           close(fd);
>           switch (wsmouse_type) {
> +#ifdef WSMOUSE_TYPE_SYNAPTICS
>           case WSMOUSE_TYPE_SYNAPTICS:
>               wscons_add_pointer(devname, "synaptics", ATTR_TOUCHPAD);
>               break;
> +#endif
>           case WSMOUSE_TYPE_TPANEL:
>               wscons_add_pointer(devname, "ws", ATTR_TOUCHSCREEN);
>               break;

私の環境では CVS HEAD の pkgsrc の modular-xorg-server は
そのようなパッチを当てなくても動作してしていました。

参考までに、xf86-input-mouse へのパッチ適用後のマウス・キーボード認識時の
ログを張ります(xorg.conf は作っていない状態のログです)。

====ここから
[173450.927] (II) LoadModule: "mouse"
[173450.928] (II) Loading /usr/pkg/lib/xorg/modules/input/mouse_drv.so
[173450.928] (II) Module mouse: vendor="X.Org Foundation"
[173450.928]    compiled for 1.12.4, module version = 1.8.1
[173450.929]    Module class: X.Org XInput Driver
[173450.929]    ABI class: X.Org XInput driver, version 16.0
[173450.929] (II) LoadModule: "kbd"
[173450.930] (II) Loading /usr/pkg/lib/xorg/modules/input/kbd_drv.so
[173450.930] (II) Module kbd: vendor="X.Org Foundation"
[173450.930]    compiled for 1.12.4, module version = 1.6.2
[173450.930]    Module class: X.Org XInput Driver
[173450.930]    ABI class: X.Org XInput driver, version 16.0

(略)

[173451.939] (II) Using input driver 'mouse' for '<default pointer>'
[173451.939] (**) Option "CorePointer" "on"
[173451.939] (**) <default pointer>: always reports core events
[173451.939] (WW) <default pointer>: No Device specified, looking for one...
[173451.947] (II) <default pointer>: found Device "/dev/wsmouse"
[173451.951] (--) <default pointer>: Device: "/dev/wsmouse"
[173451.951] (==) <default pointer>: Protocol: "WSMouse"
[173451.951] (**) <default pointer>: always reports core events
[173451.951] (**) Option "Device" "/dev/wsmouse"
[173451.961] (==) <default pointer>: Emulate3Buttons, Emulate3Timeout: 50
[173451.961] (**) <default pointer>: ZAxisMapping: buttons 4 and 5
[173451.961] (**) <default pointer>: Buttons: 9
[173451.961] (II) XINPUT: Adding extended input device "<default pointer>" (type
: MOUSE, id 6)
[173451.961] (**) <default pointer>: (accel) keeping acceleration scheme 1
[173451.961] (**) <default pointer>: (accel) acceleration profile 0
[173451.962] (**) <default pointer>: (accel) acceleration factor: 2.000
[173451.962] (**) <default pointer>: (accel) acceleration threshold: 4
[173451.967] (II) Using input driver 'kbd' for '<default keyboard>'
[173451.967] (**) Option "CoreKeyboard" "on"
[173451.967] (**) <default keyboard>: always reports core events
[173451.967] (**) <default keyboard>: always reports core events
[173451.967] (**) Option "Protocol" "standard"
[173451.967] (**) Option "XkbRules" "base"
[173451.967] (**) Option "XkbModel" "pc105"
[173451.967] (**) Option "XkbLayout" "us"
[173451.968] (II) XINPUT: Adding extended input device "<default keyboard>" (typ
e: KEYBOARD, id 7)
[173575.833] (II) 3rd Button detected: disabling emulate3Button
====ここまで
(キーボードが"us"レイアウトと認識していますが、
デバイスを正しく認識しているのか、デフォルト設定が
偶然一致しているだけなのかは分かりません)

-- 
Okinawa FreeBSD Users Group	山城 潤(Yamashiro, Jun)
E-mail: yamajun@ofug.net