2008-06-11 07:10:03

by Fritz Code

[permalink] [raw]
Subject: [Bluez-users] hidd and hidp

Hi!

is it right that the two components hidd (the daemon) and the kernel module
hidp (found in net/bluetooth/) work together in order to provide support for
Bluetooth Keyboards and other HID devices?
As far as I know hidd has been replaced, if yes with what?
And which role plays the Input service which is also an own folder in the
bluez-utils?

Anyway, the two components hidd and hidp provide HID support?
I took a look at hidd and hidp and found out that hidd listends for incoming
connections, if it gets one it forwards this connection to the kernel
modules hidp which adds it to its handlers. From there the kernel module
serves the connection and uses the well known input function input_event to
get the scancodes into the input system of linux.

So for a basic support of keyboards I only need hidd and hidp running?

Thanks...



--
Regards,
--Codefritz


Attachments:
(No filename) (867.00 B)
(No filename) (955.00 B)
(No filename) (247.00 B)
(No filename) (164.00 B)
Download all attachments

2008-06-11 18:11:16

by Fritz Code

[permalink] [raw]
Subject: Re: [Bluez-users] hidd and hidp

On Wed, Jun 11, 2008 at 2:50 PM, Thomas Ilnseher <[email protected]> wrote:

>
> Am Mittwoch, den 11.06.2008, 11:33 +0200 schrieb Fritz Code:
> > Thanks for your help so far.
> > I will take a look in detail concerning the functionality of hidp and
> > its real prerequisites.
> > The thing is, I can only use Kernel 2.4.21.
> > It might be ok to port the module hidp to kernel 2.4 but if it also
> > uses a generic HID Impl. of 2.6 which is total different to the one in
> > 2.4 it might be too much work..
> It is very different to 2.4 'cause 2.4 has an integrated usbhid driver.
> i think bt was teh reason for the split in 2.6 ...
> > However, I've also tried bthid of Peter Klausler, it worked fine so
> > far, but if the Keyboard goes in idle-mode and tries to reconnect,
> > bthid crashes with a segmentation fault. So there seems to be a bug in
> > the listen mode of bthid.
> never heard of that.
>
> Just to be curious: are you using some kind of hacked 2.4 kernel for
> some embedded system, or are there other reasons why you want to stay
> with 2.4 ?

yes thats right.

Btw, it seems Version 1.1 of hidp doesnt use the generiv HID input system
but the traditional input system of linux (input/input.c).

>
> >
> > So I will still focus both strategies... we will see which one is
> better...
> > 1. porting hipd, hidd to Kernel 2.4!
> > 2. debugging bthid!
> >
> > Any help, hints are welcome...
>
> >
> >
> --
> Thomas Ilnseher <[email protected]>
>
>
> -------------------------------------------------------------------------
> Check out the new SourceForge.net Marketplace.
> It's the best place to buy or sell services for
> just about anything Open Source.
> http://sourceforge.net/services/buy/index.php
> _______________________________________________
> Bluez-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/bluez-users
>



--
Regards,
--Codefritz


Attachments:
(No filename) (1.87 kB)
(No filename) (2.86 kB)
(No filename) (247.00 B)
(No filename) (164.00 B)
Download all attachments

2008-06-11 12:50:54

by Thomas Ilnseher

[permalink] [raw]
Subject: Re: [Bluez-users] hidd and hidp


Am Mittwoch, den 11.06.2008, 11:33 +0200 schrieb Fritz Code:
> Thanks for your help so far.
> I will take a look in detail concerning the functionality of hidp and
> its real prerequisites.
> The thing is, I can only use Kernel 2.4.21.
> It might be ok to port the module hidp to kernel 2.4 but if it also
> uses a generic HID Impl. of 2.6 which is total different to the one in
> 2.4 it might be too much work..
It is very different to 2.4 'cause 2.4 has an integrated usbhid driver.
i think bt was teh reason for the split in 2.6 ...
> However, I've also tried bthid of Peter Klausler, it worked fine so
> far, but if the Keyboard goes in idle-mode and tries to reconnect,
> bthid crashes with a segmentation fault. So there seems to be a bug in
> the listen mode of bthid.
never heard of that.

Just to be curious: are you using some kind of hacked 2.4 kernel for
some embedded system, or are there other reasons why you want to stay
with 2.4 ?
>
> So I will still focus both strategies... we will see which one is better...
> 1. porting hipd, hidd to Kernel 2.4!
> 2. debugging bthid!
>
> Any help, hints are welcome...

>
>
--
Thomas Ilnseher <[email protected]>


-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

2008-06-11 09:33:25

by Fritz Code

[permalink] [raw]
Subject: Re: [Bluez-users] hidd and hidp

Thanks for your help so far.
I will take a look in detail concerning the functionality of hidp and
its real prerequisites.
The thing is, I can only use Kernel 2.4.21.
It might be ok to port the module hidp to kernel 2.4 but if it also
uses a generic HID Impl. of 2.6 which is total different to the one in
2.4 it might be too much work..
However, I've also tried bthid of Peter Klausler, it worked fine so
far, but if the Keyboard goes in idle-mode and tries to reconnect,
bthid crashes with a segmentation fault. So there seems to be a bug in
the listen mode of bthid.

So I will still focus both strategies... we will see which one is better...
1. porting hipd, hidd to Kernel 2.4!
2. debugging bthid!

Any help, hints are welcome...

thanks,
Fritz



On 6/11/08, Thomas Ilnseher <[email protected]> wrote:
>
> Am Mittwoch, den 11.06.2008, 09:10 +0200 schrieb Fritz Code:
>> Hi!
>>
>> is it right that the two components hidd (the daemon) and the kernel
>> module hidp (found in net/bluetooth/) work together in order to
>> provide support for Bluetooth Keyboards and other HID devices?
>> As far as I know hidd has been replaced, if yes with what?
>> And which role plays the Input service which is also an own folder in
>> the bluez-utils?
> I dunno.
>>
>> Anyway, the two components hidd and hidp provide HID support?
>> I took a look at hidd and hidp and found out that hidd listends for
>> incoming connections, if it gets one it forwards this connection to
>> the kernel
>> modules hidp which adds it to its handlers. From there the kernel
>> module serves the connection and uses the well known input function
>> input_event to get the scancodes into the input system of linux.
> I spent some time debugging my bluetooth mouse. (I was using the
> 2.6.25.4 kernel).
>
> The hid traffic is done inside the kernel. I know there is some
> input_event codepath in hidp, but for my mouse, this codepath was NOT
> taken. there is an alternative codepath that forwards such bluetooth
> frames after some mangling to the generic hid driver, which parses the
> events, and uses register_event.
>
> Therefore you need the generic hid implementation of the kernel, too.
> in 2.6.25.4, and possibly earlier 2.6er kernels, there is a generic hid
> driver core, that is used by the usb_hid driver and hidp. The generic
> core does the nasty stuff like parsing the usage tables, etc ...
>>
>> So for a basic support of keyboards I only need hidd and hidp
>> running?
> i suspect that you need hcid as a prerequisite for hidd.
> I found out that if you do a 'hidd --search', nothing is forked. might
> be wrong thou.
>
>
>>
>> Thanks...
>>
>>
>>
>> --
>> Regards,
>> --Codefritz
>>
>>
>>
>> -------------------------------------------------------------------------
>> Check out the new SourceForge.net Marketplace.
>> It's the best place to buy or sell services for
>> just about anything Open Source.
>> http://sourceforge.net/services/buy/index.php
>> _______________________________________________ Bluez-users mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/bluez-users
> --
> Thomas Ilnseher <[email protected]>
>
>
> -------------------------------------------------------------------------
> Check out the new SourceForge.net Marketplace.
> It's the best place to buy or sell services for
> just about anything Open Source.
> http://sourceforge.net/services/buy/index.php
> _______________________________________________
> Bluez-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/bluez-users
>


--
Regards,
--Codefritz

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

2008-06-11 09:23:45

by Thomas Ilnseher

[permalink] [raw]
Subject: Re: [Bluez-users] hidd and hidp


Am Mittwoch, den 11.06.2008, 09:10 +0200 schrieb Fritz Code:
> Hi!
>
> is it right that the two components hidd (the daemon) and the kernel
> module hidp (found in net/bluetooth/) work together in order to
> provide support for Bluetooth Keyboards and other HID devices?
> As far as I know hidd has been replaced, if yes with what?
> And which role plays the Input service which is also an own folder in
> the bluez-utils?
I dunno.
>
> Anyway, the two components hidd and hidp provide HID support?
> I took a look at hidd and hidp and found out that hidd listends for
> incoming connections, if it gets one it forwards this connection to
> the kernel
> modules hidp which adds it to its handlers. From there the kernel
> module serves the connection and uses the well known input function
> input_event to get the scancodes into the input system of linux.
I spent some time debugging my bluetooth mouse. (I was using the
2.6.25.4 kernel).

The hid traffic is done inside the kernel. I know there is some
input_event codepath in hidp, but for my mouse, this codepath was NOT
taken. there is an alternative codepath that forwards such bluetooth
frames after some mangling to the generic hid driver, which parses the
events, and uses register_event.

Therefore you need the generic hid implementation of the kernel, too.
in 2.6.25.4, and possibly earlier 2.6er kernels, there is a generic hid
driver core, that is used by the usb_hid driver and hidp. The generic
core does the nasty stuff like parsing the usage tables, etc ...
>
> So for a basic support of keyboards I only need hidd and hidp
> running?
i suspect that you need hcid as a prerequisite for hidd.
I found out that if you do a 'hidd --search', nothing is forked. might
be wrong thou.


>
> Thanks...
>
>
>
> --
> Regards,
> --Codefritz
>
>
>
> -------------------------------------------------------------------------
> Check out the new SourceForge.net Marketplace.
> It's the best place to buy or sell services for
> just about anything Open Source.
> http://sourceforge.net/services/buy/index.php
> _______________________________________________ Bluez-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/bluez-users
--
Thomas Ilnseher <[email protected]>


-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users