All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konrad Kieling <konrad.kieling@imperial.ac.uk>
To: bluez-users@lists.sourceforge.net
Subject: [Bluez-users] hid keyboard events get lost
Date: Fri, 25 May 2007 16:16:52 +0100	[thread overview]
Message-ID: <4656FDE4.5070001@imperial.ac.uk> (raw)


[-- Attachment #1.1: Type: text/plain, Size: 8900 bytes --]

hi,
i have some problems with getting the ``Freedom Universal Keyboard'' to
work. after authentication the keyboard is automatically trying to
connect to my computer. however, the connections never work. heres is
the output of ``hcidump -V'' (using bluez-utils-3.10.1 and kernel
2.6.16.13):
> HCI Event: Connect Request (0x04) plen 10
    bdaddr 00:0B:0D:85:30:0B class 0x002540 type ACL
< HCI Command: Accept Connection Request (0x01|0x0009) plen 7
    bdaddr 00:0B:0D:85:30:0B role 0x01
    Role: Slave
  .
  .
  .
> ACL data: handle 42 flags 0x02 dlen 12
    L2CAP(s): Connect req: psm 17 scid 0x0040
< ACL data: handle 42 flags 0x02 dlen 16
    L2CAP(s): Connect rsp: dcid 0x0040 scid 0x0040 result 0 status 0
      Connection successful
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 42 packets 1
> ACL data: handle 42 flags 0x02 dlen 16
    L2CAP(s): Config req: dcid 0x0040 flags 0x00 clen 4
      MTU 48
< ACL data: handle 42 flags 0x02 dlen 14
    L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 0 clen 0
      Success
< ACL data: handle 42 flags 0x02 dlen 16
    L2CAP(s): Config req: dcid 0x0040 flags 0x00 clen 4
      MTU 48
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 42 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 42 packets 1
> ACL data: handle 42 flags 0x02 dlen 18
    L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 1 clen 4
      MTU 128
< ACL data: handle 42 flags 0x02 dlen 16
    L2CAP(s): Config req: dcid 0x0040 flags 0x00 clen 4
      MTU 48
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 42 packets 1
> ACL data: handle 42 flags 0x02 dlen 18
    L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 1 clen 4
      MTU 128
< ACL data: handle 42 flags 0x02 dlen 12
    L2CAP(s): Disconn req: dcid 0x0040 scid 0x0040
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 42 packets 1
> ACL data: handle 42 flags 0x02 dlen 12
    L2CAP(s): Disconn rsp: dcid 0x0040 scid 0x0040
< HCI Command: Disconnect (0x01|0x0006) plen 3
    handle 42 reason 0x13
    Reason: Remote User Terminated Connection
> HCI Event: Command Status (0x0f) plen 4
    Disconnect (0x01|0x0006) status 0x00 ncmd 1
> HCI Event: Disconn Complete (0x05) plen 4
    status 0x00 handle 42 reason 0x16
    Reason: Connection Terminated by Local Host


it seems to have problems in negotiating the mtu size. so i tried and
commented out the lines in hidd which set the preferred mtu size,
  opts.imtu = HIDP_DEFAULT_MTU;
  opts.omtu = HIDP_DEFAULT_MTU;

with this version of hidd the connection works perfectly, and even
keystrokes are transferred, as can be seen in the hcidump:
  .
  .
  .
> ACL data: handle 43 flags 0x02 dlen 12
    L2CAP(s): Connect req: psm 17 scid 0x0040
< ACL data: handle 43 flags 0x02 dlen 16
    L2CAP(s): Connect rsp: dcid 0x0040 scid 0x0040 result 0 status 0
      Connection successful
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 43 packets 1
> ACL data: handle 43 flags 0x02 dlen 16
    L2CAP(s): Config req: dcid 0x0040 flags 0x00 clen 4
      MTU 48
< ACL data: handle 43 flags 0x02 dlen 14
    L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 0 clen 0
      Success
< ACL data: handle 43 flags 0x02 dlen 16
    L2CAP(s): Config req: dcid 0x0040 flags 0x00 clen 4
      MTU 0
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 43 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 43 packets 1
> ACL data: handle 43 flags 0x02 dlen 14
    L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 0 clen 0
      Success
> ACL data: handle 43 flags 0x02 dlen 12
    L2CAP(s): Connect req: psm 19 scid 0x0041
< ACL data: handle 43 flags 0x02 dlen 16
    L2CAP(s): Connect rsp: dcid 0x0041 scid 0x0041 result 0 status 0
      Connection successful
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 43 packets 1
> ACL data: handle 43 flags 0x02 dlen 16
    L2CAP(s): Config req: dcid 0x0041 flags 0x00 clen 4
      MTU 48
< ACL data: handle 43 flags 0x02 dlen 14
    L2CAP(s): Config rsp: scid 0x0041 flags 0x00 result 0 clen 0
      Success
< ACL data: handle 43 flags 0x02 dlen 16
    L2CAP(s): Config req: dcid 0x0041 flags 0x00 clen 4
      MTU 0
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 43 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 43 packets 1
> ACL data: handle 43 flags 0x02 dlen 14
    L2CAP(s): Config rsp: scid 0x0041 flags 0x00 result 0 clen 0
      Success
< ACL data: handle 43 flags 0x02 dlen 5
    L2CAP(d): cid 0x0040 len 1 [psm 17]
      HIDP: Set protocol: Boot protocol
< ACL data: handle 43 flags 0x02 dlen 7
    L2CAP(d): cid 0x0041 len 3 [psm 19]
      HIDP: Data: Output report
> ACL data: handle 43 flags 0x02 dlen 5
    L2CAP(d): cid 0x0040 len 1 [psm 17]
      HIDP: Handshake: Successful
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 43 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 43 packets 1
> HCI Event: Mode Change (0x14) plen 6
    status 0x00 handle 43 mode 0x02 interval 128
    Mode: Sniff
> ACL data: handle 43 flags 0x02 dlen 13
    L2CAP(d): cid 0x0041 len 9 [psm 19]
      HIDP: Data: Input report
> HCI Event: Mode Change (0x14) plen 6
    status 0x00 handle 43 mode 0x00 interval 0
    Mode: Active
> ACL data: handle 43 flags 0x02 dlen 13
    L2CAP(d): cid 0x0041 len 9 [psm 19]
      HIDP: Data: Input report
> ACL data: handle 43 flags 0x02 dlen 13
    L2CAP(d): cid 0x0041 len 9 [psm 19]
      HIDP: Data: Input report
> ACL data: handle 43 flags 0x02 dlen 13
    L2CAP(d): cid 0x0041 len 9 [psm 19]
      HIDP: Data: Input report
> ACL data: handle 43 flags 0x02 dlen 13
    L2CAP(d): cid 0x0041 len 9 [psm 19]
      HIDP: Data: Input report
> ACL data: handle 43 flags 0x02 dlen 13
    L2CAP(d): cid 0x0041 len 9 [psm 19]
      HIDP: Data: Input report
> ACL data: handle 43 flags 0x02 dlen 13
    L2CAP(d): cid 0x0041 len 9 [psm 19]
      HIDP: Data: Input report
> ACL data: handle 43 flags 0x02 dlen 13
    L2CAP(d): cid 0x0041 len 9 [psm 19]
      HIDP: Data: Input report
> ACL data: handle 43 flags 0x02 dlen 13
    L2CAP(d): cid 0x0041 len 9 [psm 19]
      HIDP: Data: Input report
> ACL data: handle 43 flags 0x02 dlen 13
    L2CAP(d): cid 0x0041 len 9 [psm 19]
      HIDP: Data: Input report
> ACL data: handle 43 flags 0x02 dlen 13
    L2CAP(d): cid 0x0041 len 9 [psm 19]
      HIDP: Data: Input report
> ACL data: handle 43 flags 0x02 dlen 13
    L2CAP(d): cid 0x0041 len 9 [psm 19]
      HIDP: Data: Input report
> ACL data: handle 43 flags 0x02 dlen 13
    L2CAP(d): cid 0x0041 len 9 [psm 19]
      HIDP: Data: Input report
> ACL data: handle 43 flags 0x02 dlen 13
    L2CAP(d): cid 0x0041 len 9 [psm 19]
      HIDP: Data: Input report
> ACL data: handle 43 flags 0x02 dlen 13
    L2CAP(d): cid 0x0041 len 9 [psm 19]
      HIDP: Data: Input report


hcidump -X also shows, that the packets indeed contain keycodes.
the device is correctly registered in /proc/bus/input/devices and in
/sys/class/input/input4. however, the events never arrive in
/dev/input/event4. the debugging messages of the hidp kernel module
suggest, that they dont even arrive at this module:
  May 25 15:57:38 ed007 kernel: Bluetooth: HIDP (Human Interface
                  Emulation) ver 1.1
  May 25 16:06:13 ed007 hidd[6345]: Bluetooth HID daemon
  May 25 16:06:24 ed007 hcid[5321]: link_key_request
                  (sba=00:03:7A:F0:73:B5, dba=00:0B:0D:85:30:0B)
  May 25 16:06:24 ed007 hidd[6345]: New HID device 00:0B:0D:85:30:0B
                  (Bluetooth Kbd)
  May 25 16:06:24 ed007 kernel: hidp_add_connection:
  May 25 16:06:24 ed007 kernel: __hidp_get_session:
  May 25 16:06:24 ed007 kernel: hidp_add_connection: ctrl mtu 0 intr
                  mtu 0
  May 25 16:06:24 ed007 kernel: input: Bluetooth HID Boot Protocol
                  Device as /class/input/input4
  May 25 16:06:24 ed007 kernel: __hidp_send_ctrl_message: session
                  d972f640 data 00000000 size 0
  May 25 16:06:24 ed007 kernel: hidp_input_event: input d4a1e800 type 17
                  code 0 value 0
  May 25 16:06:24 ed007 kernel: hidp_session: session d972f640
  May 25 16:06:24 ed007 kernel: hidp_process_transmit: session d972f640
  May 25 16:06:24 ed007 kernel: hidp_send_frame: sock db45bb40 data
                  e4fab800 len 1
  May 25 16:06:24 ed007 kernel: hidp_send_frame: sock db45b840 data
                  eca4ba00 len 3
  May 25 16:06:24 ed007 kernel: hidp_process_transmit: session d972f640


does anyone have a clue why the events get lost on their way? or
something on this mtu problem?

thanks,
  konrad


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 252 bytes --]

[-- Attachment #2: Type: text/plain, Size: 286 bytes --]

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/

[-- Attachment #3: Type: text/plain, Size: 164 bytes --]

_______________________________________________
Bluez-users mailing list
Bluez-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-users

             reply	other threads:[~2007-05-25 15:16 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-25 15:16 Konrad Kieling [this message]
2007-05-28 12:19 ` [Bluez-users] hid keyboard events get lost Konrad Kieling
2007-05-28 13:55   ` Marcel Holtmann
2007-05-28 20:50     ` Konrad Kieling
2007-05-29  4:02       ` Marcel Holtmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4656FDE4.5070001@imperial.ac.uk \
    --to=konrad.kieling@imperial.ac.uk \
    --cc=bluez-users@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.