From owner-FreeBSD-users-jp@jp.FreeBSD.org Fri Jun 20 11:00:16 2008
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) id m5K20GP60380;
	Fri, 20 Jun 2008 11:00:16 +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 m5K20G960374
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Fri, 20 Jun 2008 11:00:16 +0900 (JST)
	(envelope-from cory@cory.jp)
Received: by lykier.cory.jp (Postfix, from userid 1001)
	id 9F0562A3C; Fri, 20 Jun 2008 11:00:15 +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: multipart/mixed; boundary="-=-mnews-multipart-=-"
Message-Id: <20080620020015.9F0562A3C@lykier.cory.jp>
Reply-To: FreeBSD-users-jp@jp.FreeBSD.org
Precedence: list
Date: Fri, 20 Jun 2008 11:00:15 +0900
X-Sequence: FreeBSD-users-jp 91700
Subject: [FreeBSD-users-jp 91700] USB =?ISO-2022-JP?B?GyRCJS0hPBsoQg==?=
 =?ISO-2022-JP?B?GyRCJVwhPCVJOF80OTUhNG8hSiVQITwlMyE8JUkbKEI=?=
 =?ISO-2022-JP?B?GyRCJTklLSVjJUpFeSFLJCxGMDpuGyhC?=
 =?ISO-2022-JP?B?GyRCJDkkayQrJGIkNyRsJEokJBsoQg==?= patch
Sender: owner-FreeBSD-users-jp@jp.FreeBSD.org
X-Originator: isaka@cory.jp
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+060209


---=-mnews-multipart-=-
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit

$B!!0f:d$G$9!#@h$[$I$NB3$-$G$9!#(B

$BA0=R$N$h$&$K!"(BUSB HID $BJ#9g5!4o$NF0:n3NG'$r$7$F$_$?$H$3$m!"%-!<%\!<%I$H(B
$B%^%&%9$OG'<1$5$l;H$($?$b$N$N!"<'5$%+!<%I%j!<%@ItJ,$N$_G'<1$5$l$^$;$s$G$7$?!#(B

$B$=$3$G(B kernel source $B$rD/$a$F$_$?$H$3$m!"(Bukbd.c $B$N(B probe_keyboard $B$G(B
HID Boot Interface $B0J30$N%-!<%\!<%I$OH=Dj$7$F$$$J$$$h$&$G$9!#(B

	/* Check that this is a keyboard that speaks the boot protocol. */
	id = usbd_get_interface_descriptor(uaa->iface);
	if (id
	    && id->bInterfaceClass == UICLASS_HID
	    && id->bInterfaceSubClass == UISUBCLASS_BOOT
	    && id->bInterfaceProtocol == UPROTO_BOOT_KEYBOARD)
		return 0;	/* found it */

$B$3$NH=DjJ}K!$@$H!"<'5$%+!<%I%j!<%@$NB>$K$b5/F0;~$K(B BIOS $B$GG'<1$5$l$k$3$H$,(B
$BA[Dj$5$l$F$$$J$$%-!<%\!<%I8_495!4o!"$?$H$($P%P!<%3!<%I%9%-%c%J$d!"C1BN$N(B
$B%F%s%-!<$J$I$b!"G'<1$7$J$$$b$N$,$"$j$=$&$K;W$o$l$^$9$,!"$$$+$,$G$7$g$&$+(B
$B!J$^$!$*$=$i$/$"$^$j<{MW$O$J$$$H$$$&;v$J$N$G$7$g$&$,(B(^^;$B!K!#(B


$B$=$3$G!"(BHID $B5!4o$N(B Report Descriptor $B$r3NG'$7$FH=Dj$9$k=hM}$KJQ99$9$l$P!"(B
$B$=$&$7$?FC<l$J(B($B!)(B)$B5!4o$X$bBP1~$G$-$k$H;W$$!"$=$N=hM}$rF~$l$F$_$^$7$?!#(B

$B$H$O$$$(!"$b$7$3$NJ}K!$GG'<1$G$-$J$$%-!<%\!<%I$,$"$k$H$^$:$$$N$G!"=>Mh$N(B
$B=hM}!J(BHID boot device $B$G!"$=$N<oN`$,%-!<%\!<%I$K$J$C$F$$$k$b$N$rG'<1$9$k!K(B
$B$r;D$7$F$*$/$H$H$b$K!"$=$N=hM}$GG'<1$7$?%-!<%\!<%I$K$D$$$F$O(B

ukbd: It's HID boot keyboard, but new process miss it. Please report it!

$B$HI=<($9$k$h$&$K$7$F$*$-$^$7$?!#$3$NI=<($,=P$k%-!<%\!<%I$,$"$k>l9g$O(B
$BBP:v$,I,MW$@$H$$$&;v$J$N$G!"$b$7$3$NI=<($r8+$+$1$?$i$*CN$i$;$/$@$5$$!#(B

$B!t$b$C$H$b!"(B
	       id->bInterfaceClass == UICLASS_HID
	    && id->bInterfaceSubClass == UISUBCLASS_BOOT
	    && id->bInterfaceProtocol == UPROTO_BOOT_KEYBOARD
$B!!$G$"$l$P$^$:4V0c$$$J$/%-!<%\!<%I$J$N$G!"$3$NH=Dj$O@8$+$7$F$*$$$F$b$$$$(B
$B!!$N$G$9$,!":#2s$OF0:n3NG'$r$7$F$$$?$@$-$?$$$?$a$K!"$3$N$h$&$K$7$^$7$?!#(B

$B$^$?!"(Bukbd.c $B$N8=:_$N=hM}$G$O(B Usage Page $B$r8+$K9T$/=hM}$,F~$C$F$$$J$$(B
$B$h$&$G!"$?$H$($P(B Usage Page (LED) $B$r;}$?$J$$5!4o$K$b(B LED $B$NA`:n$rAw$C$F(B
$B$7$^$&!"(Bbuffer size $B$d(B polling interval $B$,0lHLE*$G$J$$5!4o$O8mF0:n$9$k(B
$B$H$$$C$?LdBj$b$"$k$+$H;W$$$^$9!#(B

$B$H$O$$$(!":#$^$G(B boot device $B$G$J$$$H$$$&$@$1$NM}M3$G;H$($J$+$C$?(B
USB$B%-!<%\!<%I8_495!4o$,$b$7$"$l$P!"$=$l$,;H$($k$h$&$K$J$k$H$$$&MxE@$,(B
$B$"$k$H;W$&$N$G!"$R$H$^$:(B patch $B$rEj$2$F$*$-$^$9!#(B

----------

$BE:IU$7$?(B patch $B$O(B ukbd.c, hid.c $B$N(B 7.0-RELEASE $B$+$i$N:9J,$G$9!#(B
USB $B%-!<%\!<%I8_495!4o$r$*;}$A$NJ}$O!"$R$H$^$:F0:n3NG'$7$F$$$?$@$1$^$9$H(B
$B9,$$$G$9!#(B

# cd /usr/src/sys/dev/usb
# patch < /path/to/ukbd_nonboot.diff

$B$3$N$h$&$K:9J,$rE,MQ$7$F$+$i(B kernel $B$r:F9=C[$7!":F5/F0$7$F$*;n$7$/$@$5$$!#(B


$B!!$G$O!"0J>e$h$m$7$/$*4j$$$7$^$9!#(B

---------------------------
$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
---=-mnews-multipart-=-
Content-Type: application/octet-stream; name="ukbd_nonboot.diff"
Content-Transfer-Encoding: base64
Content-Description: ukbd_nonboot.diff
Content-Disposition: attachment; filename="ukbd_nonboot.diff"

LS0tIHVrYmQuYy43MHIJMjAwNy0xMS0xMyAwMTowOTo0NS4wMDAwMDAwMDAgKzA5MDAKKysrIHVr
YmQuYwkyMDA4LTA2LTIwIDA4OjM3OjMxLjAwMDAwMDAwMCArMDkwMApAQCAtMTQxNCwxOCArMTQx
NCwzMiBAQAogcHJvYmVfa2V5Ym9hcmQoc3RydWN0IHVzYl9hdHRhY2hfYXJnICp1YWEsIGludCBm
bGFncykKIHsKIAl1c2JfaW50ZXJmYWNlX2Rlc2NyaXB0b3JfdCAqaWQ7CisJdm9pZCAqZGVzYzsK
KwlpbnQgc2l6ZTsKIAogCWlmICghdWFhLT5pZmFjZSkJLyogd2UgYXR0YWNoIHRvIGlmYWNlcyBv
bmx5ICovCiAJCXJldHVybiBFSU5WQUw7CiAKLQkvKiBDaGVjayB0aGF0IHRoaXMgaXMgYSBrZXli
b2FyZCB0aGF0IHNwZWFrcyB0aGUgYm9vdCBwcm90b2NvbC4gKi8KKwkvKiBHZXQgaW50ZXJmYWNl
IGRlc2NyaXB0b3IuICovCiAJaWQgPSB1c2JkX2dldF9pbnRlcmZhY2VfZGVzY3JpcHRvcih1YWEt
PmlmYWNlKTsKLQlpZiAoaWQKLQkgICAgJiYgaWQtPmJJbnRlcmZhY2VDbGFzcyA9PSBVSUNMQVNT
X0hJRAotCSAgICAmJiBpZC0+YkludGVyZmFjZVN1YkNsYXNzID09IFVJU1VCQ0xBU1NfQk9PVAot
CSAgICAmJiBpZC0+YkludGVyZmFjZVByb3RvY29sID09IFVQUk9UT19CT09UX0tFWUJPQVJEKQor
CWlmICghaWQgfHwgaWQtPmJJbnRlcmZhY2VDbGFzcyAhPSBVSUNMQVNTX0hJRCkKKwkJcmV0dXJu
IEVJTlZBTDsJLyogQWJvcnQgaWYgbm9uLUhJRCBkZXZpY2UuICovCisKKwkvKiBHZXQgcmVwb3J0
IGRlc2NyaXB0b3IuICovCisJaWYgKHVzYmRfcmVhZF9yZXBvcnRfZGVzYyh1YWEtPmlmYWNlLCAm
ZGVzYywgJnNpemUsIE1fVEVNUCkpCisJCXJldHVybiBFSU5WQUw7CS8qIEhJRCBkZXZpY2UgbXVz
dCBoYXZlIGEgcmVwb3J0IGRlc2NyaXB0b3IuICovCisKKwkvKiBDaGVjayB0aGUgcmVwb3J0IGRl
c2NyaXB0b3IgY29udGFpbiBhIFVzYWdlIFBhZ2UgKEtleWJvYXJkKS4gKi8KKwlpZiAoaGlkX2xv
Y2F0ZShkZXNjLCBzaXplLCBISURfVVNBR0UyKEhVUF9HRU5FUklDX0RFU0tUT1AsIEhVR19LRVlC
T0FSRCksIGhpZF9jb2xsZWN0aW9uLCAwLCAwKSkKIAkJcmV0dXJuIDA7CS8qIGZvdW5kIGl0ICov
CiAKKwkvKiBDaGVjayB0aGF0IHRoaXMgaXMgYSBrZXlib2FyZCB0aGF0IHNwZWFrcyB0aGUgYm9v
dCBwcm90b2NvbC4gKi8KKwlpZiAoICAgaWQtPmJJbnRlcmZhY2VTdWJDbGFzcyA9PSBVSVNVQkNM
QVNTX0JPT1QKKwkgICAgJiYgaWQtPmJJbnRlcmZhY2VQcm90b2NvbCA9PSBVUFJPVE9fQk9PVF9L
RVlCT0FSRCkgeworCQlwcmludGYoInVrYmQ6IEl0J3MgSElEIGJvb3Qga2V5Ym9hcmQsIGJ1dCBu
ZXcgcHJvY2VzcyBtaXNzIGl0LiBQbGVhc2UgcmVwb3J0IGl0IVxuIik7CisJCXJldHVybiAwOwkv
KiByZXNjdWUgaXQgYnkgcXVpcmsgcHJvY2Vzcygtby0pICovCisJfQorCiAJcmV0dXJuIEVJTlZB
TDsKIH0KIAotLS0gaGlkLmMuNzByCTIwMDctMDYtMjAgMTQ6MTA6NTIuMDAwMDAwMDAwICswOTAw
CisrKyBoaWQuYwkyMDA4LTA2LTIwIDA3OjA4OjE1LjAwMDAwMDAwMCArMDkwMApAQCAtNDEwLDcg
KzQxMCw4IEBACiAJCX0KIAl9CiAJaGlkX2VuZF9wYXJzZShkKTsKLQlsb2MtPnNpemUgPSAwOwor
CWlmIChsb2MgIT0gTlVMTCkKKwkJbG9jLT5zaXplID0gMDsKIAlyZXR1cm4gKDApOwogfQogCg==

---=-mnews-multipart-=---
