From owner-FreeBSD-users-jp@jp.FreeBSD.org Fri Jun 20 10:44:46 2008
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) id m5K1ikc55971;
	Fri, 20 Jun 2008 10:44:46 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from lykier.cory.jp (219x113x237x195.ap219.ftth.ucom.ne.jp [219.113.237.195])
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) with ESMTP/inet id m5K1ij955966
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Fri, 20 Jun 2008 10:44:45 +0900 (JST)
	(envelope-from cory@cory.jp)
Received: by lykier.cory.jp (Postfix, from userid 1001)
	id AF7352A3C; Fri, 20 Jun 2008 10:44:45 +0900 (JST)
To: FreeBSD-users-jp@jp.FreeBSD.org
From: ISAKA Yoji <isaka@cory.jp>
X-Mailer: mnews [version 1.22] 1999-12/19(Sun)
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP
Message-Id: <20080620014445.AF7352A3C@lykier.cory.jp>
Reply-To: FreeBSD-users-jp@jp.FreeBSD.org
Precedence: list
Date: Fri, 20 Jun 2008 10:44:45 +0900
X-Sequence: FreeBSD-users-jp 91699
Subject: [FreeBSD-users-jp 91699] Cherry SPOS G86-63411EUADAA USB HID
 =?ISO-2022-JP?B?GyRCSiM5ZzUhNG8kTkYwOm5KczlwGyhC?=
Sender: owner-FreeBSD-users-jp@jp.FreeBSD.org
X-Originator: isaka@cory.jp
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+060209

$B!!0f:d$G$9!#$^$:$OF0:nJs9p$G$9!#(B

1. $B$*;H$$$N(B USB $B%G%P%$%9$N@5<0L>>N!"%a!<%+!<!#(B

Cherry SPOS G86-63411EUADAA (USB HID)
http://www.cherry.de/english/products/point_of_sale_16754.htm
http://www.jw-shop.com/product10/page97/detail.htm
$BA4(B130$B%-!<%W%m%0%i%^%V%k%-!<%\!<%I(B+$B<'5$%+!<%I%j!<%@(B+$B%9%i%$%I%Q%C%I(B

2. $B$*;H$$$N(B OS $B$N(B $B%P!<%8%g%s(B($B=PMh$l$P(B-CURRENT$B!"(B-STABLE $B$N>l9g$O$$$D:"(B cvsup $B$7$?$+$b(B)$B!#(B

	FreeBSD/i386 7.0-RELEASE @ $BEl<G(B dynabook SS 1600
	FreeBSD/pc98 5.4-RELEASE @ NEC PC-9821F200

3. USB $B%G%P%$%9$rG'<1$7$F$$$k$H$3$m$N(B /var/log/messages

(attach) @ 7.0R
ukbd0: <Cherry SPOS, class 0/0, rev 2.00/1.02, addr 2> on uhub1
kbd2 at ukbd0
uhid0: <Cherry SPOS, class 0/0, rev 2.00/1.02, addr 2> on uhub1
ums0: <Cherry SPOS, class 0/0, rev 2.00/1.02, addr 2> on uhub1
ums0: 2 buttons.

(detach) @ 7.0R
ukbd0: at uhub1 port 2 (addr 2) disconnected
ukbd0: detached
uhid0: at uhub1 port 2 (addr 2) disconnected
uhid0: detached
ums0: at uhub1 port 2 (addr 2) disconnected
ums0: detached

(attach) @ 7.0R + patch
ukbd0: <Cherry SPOS, class 0/0, rev 2.00/1.02, addr 2> on uhub1
kbd2 at ukbd0
ukbd1: <Cherry SPOS, class 0/0, rev 2.00/1.02, addr 2> on uhub1
kbd3 at ukbd1
ums0: <Cherry SPOS, class 0/0, rev 2.00/1.02, addr 2> on uhub1
ums0: 2 buttons.

(detach) @ 7.0R + patch
ukbd0: at uhub1 port 2 (addr 2) disconnected
ukbd0: detached
ukbd1: at uhub1 port 2 (addr 2) disconnected
ukbd1: detached
ums0: at uhub1 port 2 (addr 2) disconnected
ums0: detached


4. usbdevs -v $B$N7k2L(B

(7.0R)
# usbdevs -v
Controller /dev/usb0:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 1.00
 port 1 powered
 port 2 powered
Controller /dev/usb1:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 1.00
 port 1 powered
 port 2 addr 2: full speed, power 100 mA, config 1, SPOS(0x003b), Cherry(0x046a), rev 1.02
Controller /dev/usb2:
addr 1: high speed, self powered, config 1, EHCI root hub(0x0000), Intel(0x0000), rev 1.00
 port 1 powered
 port 2 powered
 port 3 powered
 port 4 powered
 port 5 powered
 port 6 powered


5. $BF0:n$7$?$+!"$7$J$$$+!#(B

$B!{%-!<%\!<%I(B
$B!{%^%&%9!J%9%i%$%I%Q%C%I!K(B
$B!_<'5$%+!<%I%j!<%@(B ($B$*$=$i$/(B ukbd.c $B$N=$@5$K$h$jBP1~2D(B)

$BM=$a(B Windows $B$G(B 106$B%-!<%\!<%I8_49$N%-!<3d$jEv$F$r9T$C$F$*$$$?(B
$B%W%m%0%i%^%V%k%-!<%\!<%I!"$*$h$S%9%i%$%I%Q%C%I$OF0:n$7$^$7$?!#(B
$B!tF0:n3NG'4D6-$O(B console $B$@$C$?$N$G!"%^%&%9$O(B moused $B$G%+!<%=%k$,(B
$B!!H?1~$7$?$N$r8+$?$@$1$G$9$,!#(B

$B<'5$%+!<%I%j!<%@$O;HMQ$G$-$:!"(B7.0R $B$N(B GENERIC kernel $B$G$O!"%+!<%I$r(B
$BFI$^$;$k$H%-!<%\!<%I$,F0:n$7$J$/$J$j$^$7$?!J(BUSB $B$NH4$-:9$7$GI|5"2D!K!#(B

$B$J$*!"$3$l$O(B USB $B%-!<%\!<%I6&DL$G$9$,!"(BPC-98 $B$G$O(B keymap $B$r@_Dj$7$J$*$9(B
$BI,MW$,$"$j$^$9!#(B
($B@\B3A0(B)
# kbdcontrol < dev/ttyv0 -l jp.106.kbd
($BI|5"A0(B)
# kbdcontrol < dev/ttyv0 -l jp.pc98.kbd


6. $BB>$K5$$K$J$kE@!"Cm0UE@$K$D$$$F!#(B

$BK\5!$NF0:n8!>Z$r$9$k5!2q$,$"$C$?$N$G!"$=$N:]$K(B FreeBSD $B$G$NF0:n$b;n$7$F(B
$B$_$?$H$3$m$G$9!#(B

$BK\5!$O(B Windows $B$H(B Mac OS X $B$G$OI8=`%I%i%$%P$G(B 3$B5!G=$H$b$KF0:n$9$k$3$H$r(B
$B3NG'$G$-$F$$$^$9!#(BFreeBSD $B$G$bA0=R$N$h$&$K%-!<%\!<%I$H%9%i%$%I%Q%C%I$O(B
$BF0:n$7$^$7$?$,!"<'5$%+!<%I%j!<%@$OF0:n$7$^$;$s$G$7$?!#(B

$B$=$3$G(B source $B$rD/$a$F$_$?$H$3$m!"860x$,J,$+$C$?$N$G!"(Bukbd.c $B$KBP:v$r(B
$BF~$l$F$_$^$7$?!#>\$7$/$OJLJX$G$*Aw$j$7$^$9$,!"8e$[$I@bL@$9$k(B patch $B$r(B
$BE,MQ$7!"(Bkernel $B$r:F9=C[!":F5/F0$7$F$+$i;n$7$F$_$?$H$3$m!"%-!<%\!<%IK\BN(B
$B$*$h$S<'5$%+!<%I%j!<%@$H$b$KG'<1$7!"%-!<%\!<%I$,F0:n$9$k$H$3$m(B($B"((B)$B$^$G(B
$B$r3NG'$7$^$7$?!#(B

$B"(<'5$%+!<%I%j!<%@$NJ}$O!"<'5$%+!<%I$NFI$_=q$-$KH?1~$9$k$h$&$K$O$J$C$?(B
$B!!$N$G$9$,!";DG0$J$,$i%G!<%?$r<h$j$3$\$9$h$&$JF0:n$r$7$F$$$^$9!#(B
$B!!;d$N>!<j$JA[A|$G$O!"<'5$%+!<%I%j!<%@%i%$%?$N(B
>            Endpoint 0x82 - Interrupt Input   
>                Address:   0x82  (IN)
>                Attributes:   0x03  (Interrupt no synchronization data endpoint)
>                Max Packet Size:   64
>                Polling Interval:   1 ms
$B$3$N$"$?$j$NFC@-$,1F6A$7$F$$$k!J(Bukbd.c $B$O(B descriptor $B$rL5;k$7$F7h$aBG$A$G(B
$B$+$+$C$F$$$k!K$h$&$K;W$($^$9$,!"BP1~$7$h$&$H$9$k$H9=B$BN$r$$$8$C$?$j$b$9$k(B
$BI,MW$,$"$j$=$&$J$N$G(B($B6l>P(B)$B!"$^$?$N5!2q$,$"$l$PD4$Y$F$_$?$$$H;W$$$^$9!#(B

$B$$$:$l$K$;$h(B Mac $B$d(B Windows $B$G$OI8=`%I%i%$%P$GF0$$$F$$$k$b$N$J$N$G!"(B
ukbd $B$GF0$+$;$J$$$3$H$O$J$$$H;W$$$^$9(B...

-----

$B:G8e$K!";29M$KK\5!$N(B descriptor $B$rIU$1$F$*$-$^$9(B
$B!J=q<0$O(B Mac OS X $B$N(B USB prober $B$G$9!K!#(B

    Device Descriptor   
        Descriptor Version Number:   0x0200
        Device Class:   0   (Composite)
        Device Subclass:   0
        Device Protocol:   0
        Device MaxPacketSize:   8
        Device VendorID/ProductID:   0x046A/0x003B   (Cherry GMBH)
        Device Version Number:   0x0102
        Number of Configurations:   1
        Manufacturer String:   1 "Cherry      "
        Product String:   2 "SPOS "
        Serial Number String:   0 (none)
    Configuration Descriptor: .......................................   "835-0887/06"
        Length (and contents):   84
            Raw Descriptor (hex)    0000: 09 02 00 54 03 01 03 A0  32 09 04 00 00 01 03 01  
            Raw Descriptor (hex)    0010: 01 04 09 21 11 01 00 01  22 40 00 07 05 81 03 08  
            Raw Descriptor (hex)    0020: 00 08 09 04 01 00 01 03  00 00 05 09 21 11 01 00  
            Raw Descriptor (hex)    0030: 01 22 9E 00 07 05 82 03  40 00 01 09 04 02 00 01  
            Raw Descriptor (hex)    0040: 03 01 02 06 09 21 11 01  00 01 22 32 00 07 05 83  
            Raw Descriptor (hex)    0050: 03 03 00 08 
        Number of Interfaces:   3
        Configuration Value:   1
        Attributes:   0xA0 (bus-powered, remote wakeup)
        MaxPower:   100 ma
        Interface #0 - HID/Boot Interface   
            Alternate Setting   0
            Number of Endpoints   1
            Interface Class:   3   (HID)
            Interface Subclass;   1   (Boot Interface)
            Interface Protocol:   1
            HID Descriptor   
                Descriptor Version Number:   0x0111
                Country Code:   0
                Descriptor Count:   1
                Descriptor 1   
                    Type:   0x22  (Report Descriptor)
                    Length (and contents):   64
                        Raw Descriptor (hex)    0000: 05 01 09 06 A1 01 05 07  19 E0 29 E7 15 00 25 01  
                        Raw Descriptor (hex)    0010: 75 01 95 08 81 02 95 01  75 08 81 01 95 05 75 01  
                        Raw Descriptor (hex)    0020: 05 08 19 01 29 05 91 02  95 01 75 03 91 01 95 06  
                        Raw Descriptor (hex)    0030: 75 08 15 00 26 DD 00 05  07 19 00 29 DD 81 00 C0  
                        Unknown Descriptor   0040: 
                    Parsed Report Descriptor:   
                          Usage Page    (Generic Desktop) 
                          Usage (Keyboard)    
                              Collection (Application)    
                                Usage Page    (Keyboard/Keypad) 
                                Usage Minimum...........    (224)  
                                Usage Maximum...........    (231)  
                                Logical Minimum.........    (0)  
                                Logical Maximum.........    (1)  
                                Report Size.............    (1)  
                                Report Count............    (8)  
                                Input...................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) 
                                Report Count............    (1)  
                                Report Size.............    (8)  
                                Input...................   (Constant, Array, Absolute) 
                                Report Count............    (5)  
                                Report Size.............    (1)  
                                Usage Page    (LED) 
                                Usage Minimum...........    (1)  
                                Usage Maximum...........    (5)  
                                Output..................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Nonvolatile, Bitfield) 
                                Report Count............    (1)  
                                Report Size.............    (3)  
                                Output..................   (Constant, Array, Absolute, No Wrap, Linear, Preferred State, No Null Position, Nonvolatile, Bitfield) 
                                Report Count............    (6)  
                                Report Size.............    (8)  
                                Logical Minimum.........    (0)  
                                Logical Maximum.........    (221)  
                                Usage Page    (Keyboard/Keypad) 
                                Usage Minimum...........    (0)  
                                Usage Maximum...........    (221)  
                                Input...................   (Data, Array, Absolute) 
                              End Collection     
            Endpoint 0x81 - Interrupt Input   
                Address:   0x81  (IN)
                Attributes:   0x03  (Interrupt no synchronization data endpoint)
                Max Packet Size:   8
                Polling Interval:   8 ms
        Interface #1 - HID   
            Alternate Setting   0
            Number of Endpoints   1
            Interface Class:   3   (HID)
            Interface Subclass;   0
            Interface Protocol:   0
            HID Descriptor   
                Descriptor Version Number:   0x0111
                Country Code:   0
                Descriptor Count:   1
                Descriptor 1   
                    Type:   0x22  (Report Descriptor)
                    Length (and contents):   158
                        Raw Descriptor (hex)    0000: 05 01 09 06 A1 01 85 04  05 07 19 E0 29 E7 15 00  
                        Raw Descriptor (hex)    0010: 25 01 75 01 95 08 81 02  95 01 75 08 81 01 95 06  
                        Raw Descriptor (hex)    0020: 75 08 15 00 26 DD 00 05  07 19 00 29 DD 81 00 C0  
                        Raw Descriptor (hex)    0030: 06 FF 00 09 01 A1 01 85  03 15 00 26 FF 00 75 08  
                        Raw Descriptor (hex)    0040: 09 11 09 12 09 13 95 03  81 02 09 21 95 CD 81 02  
                        Raw Descriptor (hex)    0050: 09 22 95 CD 81 02 09 23  95 CD 81 02 05 08 09 4B  
                        Raw Descriptor (hex)    0060: 15 00 26 FF 00 75 08 95  05 91 02 C0 06 FF FF 09  
                        Raw Descriptor (hex)    0070: 01 A1 01 85 01 09 01 15  00 26 FF 00 75 08 95 45  
                        Raw Descriptor (hex)    0080: 81 02 09 01 95 45 91 02  85 02 09 01 15 00 26 FF  
                        Raw Descriptor (hex)    0090: 00 75 08 95 05 81 02 09  01 95 05 91 02 C0 
                    Parsed Report Descriptor:   
                          Usage Page    (Generic Desktop) 
                          Usage (Keyboard)    
                              Collection (Application)    
                                ReportID................    (4)  
                                Usage Page    (Keyboard/Keypad) 
                                Usage Minimum...........    (224)  
                                Usage Maximum...........    (231)  
                                Logical Minimum.........    (0)  
                                Logical Maximum.........    (1)  
                                Report Size.............    (1)  
                                Report Count............    (8)  
                                Input...................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) 
                                Report Count............    (1)  
                                Report Size.............    (8)  
                                Input...................   (Constant, Array, Absolute) 
                                Report Count............    (6)  
                                Report Size.............    (8)  
                                Logical Minimum.........    (0)  
                                Logical Maximum.........    (221)  
                                Usage Page    (Keyboard/Keypad) 
                                Usage Minimum...........    (0)  
                                Usage Maximum...........    (221)  
                                Input...................   (Data, Array, Absolute) 
                              End Collection     
                          Usage Page    (Vendor Defined) 
                          Usage 1 (0x1)    
                              Collection (Application)    
                                ReportID................    (3)  
                                Logical Minimum.........    (0)  
                                Logical Maximum.........    (255)  
                                Report Size.............    (8)  
                                Usage 17 (0x11)    
                                Usage 18 (0x12)    
                                Usage 19 (0x13)    
                                Report Count............    (3)  
                                Input...................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) 
                                Usage 33 (0x21)    
                                Report Count............    (205)  
                                Input...................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) 
                                Usage 34 (0x22)    
                                Report Count............    (205)  
                                Input...................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) 
                                Usage 35 (0x23)    
                                Report Count............    (205)  
                                Input...................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) 
                                Usage Page    (LED) 
                                Usage 75 (0x4b)    
                                Logical Minimum.........    (0)  
                                Logical Maximum.........    (255)  
                                Report Size.............    (8)  
                                Report Count............    (5)  
                                Output..................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Nonvolatile, Bitfield) 
                              End Collection     
                          Usage Page    (65535) 
                          Usage 1 (0x1)    
                              Collection (Application)    
                                ReportID................    (1)  
                                Usage 1 (0x1)    
                                Logical Minimum.........    (0)  
                                Logical Maximum.........    (255)  
                                Report Size.............    (8)  
                                Report Count............    (69)  
                                Input...................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) 
                                Usage 1 (0x1)    
                                Report Count............    (69)  
                                Output..................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Nonvolatile, Bitfield) 
                                ReportID................    (2)  
                                Usage 1 (0x1)    
                                Logical Minimum.........    (0)  
                                Logical Maximum.........    (255)  
                                Report Size.............    (8)  
                                Report Count............    (5)  
                                Input...................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) 
                                Usage 1 (0x1)    
                                Report Count............    (5)  
                                Output..................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Nonvolatile, Bitfield) 
                              End Collection     
            Endpoint 0x82 - Interrupt Input   
                Address:   0x82  (IN)
                Attributes:   0x03  (Interrupt no synchronization data endpoint)
                Max Packet Size:   64
                Polling Interval:   1 ms
        Interface #2 - HID/Boot Interface   
            Alternate Setting   0
            Number of Endpoints   1
            Interface Class:   3   (HID)
            Interface Subclass;   1   (Boot Interface)
            Interface Protocol:   2
            HID Descriptor   
                Descriptor Version Number:   0x0111
                Country Code:   0
                Descriptor Count:   1
                Descriptor 1   
                    Type:   0x22  (Report Descriptor)
                    Length (and contents):   50
                        Raw Descriptor (hex)    0000: 05 01 09 02 A1 01 09 01  A1 00 05 09 19 01 29 02  
                        Raw Descriptor (hex)    0010: 15 00 25 01 95 02 75 01  81 02 95 01 75 06 81 01  
                        Raw Descriptor (hex)    0020: 05 01 09 30 09 31 15 81  25 7F 75 08 95 02 81 06  
                        Raw Descriptor (hex)    0030: C0 C0 
                    Parsed Report Descriptor:   
                          Usage Page    (Generic Desktop) 
                          Usage (Mouse)    
                              Collection (Application)    
                                Usage (Pointer)    
                                    Collection (Physical)    
                                      Usage Page    (Button) 
                                      Usage Minimum...........    (1)  
                                      Usage Maximum...........    (2)  
                                      Logical Minimum.........    (0)  
                                      Logical Maximum.........    (1)  
                                      Report Count............    (2)  
                                      Report Size.............    (1)  
                                      Input...................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) 
                                      Report Count............    (1)  
                                      Report Size.............    (6)  
                                      Input...................   (Constant, Array, Absolute) 
                                      Usage Page    (Generic Desktop) 
                                      Usage (X)    
                                      Usage (Y)    
                                      Logical Minimum.........    (-127)  
                                      Logical Maximum.........    (127)  
                                      Report Size.............    (8)  
                                      Report Count............    (2)  
                                      Input...................   (Data, Variable, Relative, No Wrap, Linear, Preferred State, No Null Position, Bitfield) 
                                    End Collection     
                              End Collection     
            Endpoint 0x83 - Interrupt Input   
                Address:   0x83  (IN)
                Attributes:   0x03  (Interrupt no synchronization data endpoint)
                Max Packet Size:   3
                Polling Interval:   8 ms

---------------------------
$B0f:d!!MN;N!!(B<isaka@cory.jp>
$B!!!w%3%j%I%i%9!&%=%U%H%&%'%"(B http://www.corys.jp/
PGP key fingerprint: 9CFF AAE9 EA9A 305A F614  11F1 2614 D2B6 3C08 F23D
PGP key signature: http://pgp.nic.ad.jp:11371/pks/lookup?op=get&search=0x3C08F23D
