Thread: Re: [Touchd-devel] Touchd-devel Digest, Vol 3, Issue 5
Status: Alpha
Brought to you by:
tannewt
From: Alex K. <ale...@ho...> - 2008-06-25 23:01:58
|
Hello Henrik, I'm in the same boat as you. It was a tossup for me between having my media keys work, or having the touchpad work fully (since touchd overrides the keyboard driver as you mentioned). Since I mostly use an external mouse I went for the former. I've already talked to Scott about this, however I'll repost my thoughts for others too see (note I'm by no means an expert on this part of the kernel so the following could be misguided advice)... I think the cleanest way to do this is to put some (or all) of the code into a kernel module, much the same way that the previous appletouch driver did it (see drivers/input/mouse/appletouch.c). As you should see from the code, the driver registers itself with a particular interface on the device using the probe of the usb_driver interface (see http://mirror.linux.org.au/linux-mandocs/2.5.70/usb_driver.html). That way the kernel will only forward packets coming from the touchpad to the touchd driver, leaving the keyboard driver to do its own thing. Of course the most difficult question is what parts of touchd should go into the kernel module. Should all of it be handled in the kernel? Should the driver simply provide an interface to the events that a user level app can interpret? I frankly have no idea, and Scott indicated that he too struggled with finding what the best place was for the touchd code. My suggestion is to get on the linux-kernel mailing list and contact someone who makes the calls in that area of the linux source (you can also look at the source itself for contacting the appropriate maintainers). Scott, you're doing some fundamental work as multitouch interfaces seem to be the next big thing, and Linux should definitely not fall behind here. Hence if you can get some guidance/approval of the higher up chain of command, this will have a greater chance of getting into the source tree. Just my 2c, Alex > From: tou...@li... > Subject: Touchd-devel Digest, Vol 3, Issue 5 > To: tou...@li... > Date: Wed, 25 Jun 2008 12:03:49 -0700 > > Send Touchd-devel mailing list submissions to > tou...@li... > > To subscribe or unsubscribe via the World Wide Web, visit > https://lists.sourceforge.net/lists/listinfo/touchd-devel > or, via email, send a message with subject or body 'help' to > tou...@li... > > You can reach the person managing the list at > tou...@li... > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Touchd-devel digest..." > > > Today's Topics: > > 1. About the BCM5974 USB control interface (Henrik Rydberg) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Tue, 24 Jun 2008 19:56:40 +0200 > From: Henrik Rydberg <ry...@eu...> > Subject: [Touchd-devel] About the BCM5974 USB control interface > To: tou...@li... > Message-ID: <1214330200.3982.0.camel@alnilam> > Content-Type: text/plain > > Hello Scott, > > I have been following the development of touchd with interest. It seems > to me that one of the major hurdles in building this driver is the > somewhat complex relationship between the keyboard interface (USB > interface 0, endpoint 0x83) and the proprietary multitouch interface > (USB interface 1, endpoint 0x81). As far as I understand, there is no > known way to initialize the multitouch without also altering the > keyboard interface, resulting in extra work just getting the keyboard to > work properly. In fact, the keyboard mapping is what is currently > stopping me from using the touchd driver on my MacbookAir. It would of > course be great if the multitouch could be initialized without affecting > the keyboard interface - the question is whether this is possible. Do > you know? > > In order to get the multitouch going, this seems to be the (as of yet) > minimal configuration necessary: > > 1. claim interface 0, normally acting as a HID keyboard > > 2. claim interface 1, normally acting as an unknown HID touchpad > > 3. configure interface class: > usb_control_msg(udev,0x21,0x09,0x0300,0,{0x01,0x05},2,100) > > The multitouch is now available on endpoint 0x81. It is *not* possible > to omit step 1, which would be desired. I suspect you already tried this > extensively. > > I understand 3) is a set-interface-class command, I do not understand > what 0x0300 means, I suspect interface zero is called, and I do not know > what {0x01,0x05} means. Any ideas? > > Cheers, > Henrik Rydberg > > ps. on a separate note, I suspect interface 2, which acts as a perfectly > normal mouse, could be configured to show features such as double-click > and two-finger scrolling. ds. > > > > > > ------------------------------ > > ------------------------------------------------------------------------- > 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 > > ------------------------------ > > _______________________________________________ > Touchd-devel mailing list > Tou...@li... > https://lists.sourceforge.net/lists/listinfo/touchd-devel > > > End of Touchd-devel Digest, Vol 3, Issue 5 > ****************************************** _________________________________________________________________ If you like crossword puzzles, then you'll love Flexicon, a game which combines four overlapping crossword puzzles into one! http://g.msn.ca/ca55/208 |
From: Scott S. <sco...@gm...> - 2008-06-26 05:02:51
|
Hi Alex and Henrik, Like I told Alex, yeah I struggled on where to put things. For me it works fine. The multimedia keys are working for me because I have them configured as hotkeys. The only thing not working that way is keyboard backlighting. I really intend on writing a daemon to auto adjust that stuff but have not done it. As far as multitouch things go, much more work has been done through MPX and NUI stuff. Touchd is useful if Apple comes out with cooler multitouch hardware. I'll cross my fingers. ~Scott Alex Karpenko wrote: > Hello Henrik, > > I'm in the same boat as you. It was a tossup for me between having my > media keys work, or having the touchpad work fully (since touchd > overrides the keyboard driver as you mentioned). Since I mostly use an > external mouse I went for the former. > > I've already talked to Scott about this, however I'll repost my > thoughts for others too see (note I'm by no means an expert on this > part of the kernel so the following could be misguided advice)... > > I think the cleanest way to do this is to put some (or all) of the > code into a kernel module, much the same way that the previous > appletouch driver did it (see drivers/input/mouse/appletouch.c). As > you should see from the code, the driver registers itself with a > particular interface on the device using the probe of the usb_driver > interface (see > http://mirror.linux.org.au/linux-mandocs/2.5.70/usb_driver.html). That > way the kernel will only forward packets coming from the touchpad to > the touchd driver, leaving the keyboard driver to do its own thing. > > Of course the most difficult question is what parts of touchd should > go into the kernel module. Should all of it be handled in the kernel? > Should the driver simply provide an interface to the events that a > user level app can interpret? I frankly have no idea, and Scott > indicated that he too struggled with finding what the best place was > for the touchd code. > > My suggestion is to get on the linux-kernel mailing list and contact > someone who makes the calls in that area of the linux source (you can > also look at the source itself for contacting the appropriate > maintainers). Scott, you're doing some fundamental work as multitouch > interfaces seem to be the next big thing, and Linux should definitely > not fall behind here. Hence if you can get some guidance/approval of > the higher up chain of command, this will have a greater chance of > getting into the source tree. > > Just my 2c, > > Alex > > > > From: tou...@li... > > Subject: Touchd-devel Digest, Vol 3, Issue 5 > > To: tou...@li... > > Date: Wed, 25 Jun 2008 12:03:49 -0700 > > > > Send Touchd-devel mailing list submissions to > > tou...@li... > > > > To subscribe or unsubscribe via the World Wide Web, visit > > https://lists.sourceforge.net/lists/listinfo/touchd-devel > > or, via email, send a message with subject or body 'help' to > > tou...@li... > > > > You can reach the person managing the list at > > tou...@li... > > > > When replying, please edit your Subject line so it is more specific > > than "Re: Contents of Touchd-devel digest..." > > > > > > Today's Topics: > > > > 1. About the BCM5974 USB control interface (Henrik Rydberg) > > > > > > ---------------------------------------------------------------------- > > > > Message: 1 > > Date: Tue, 24 Jun 2008 19:56:40 +0200 > > From: Henrik Rydberg <ry...@eu...> > > Subject: [Touchd-devel] About the BCM5974 USB control interface > > To: tou...@li... > > Message-ID: <1214330200.3982.0.camel@alnilam> > > Content-Type: text/plain > > > > Hello Scott, > > > > I have been following the development of touchd with interest. It seems > > to me that one of the major hurdles in building this driver is the > > somewhat complex relationship between the keyboard interface (USB > > interface 0, endpoint 0x83) and the proprietary multitouch interface > > (USB interface 1, endpoint 0x81). As far as I understand, there is no > > known way to initialize the multitouch without also altering the > > keyboard interface, resulting in extra work just getting the keyboard to > > work properly. In fact, the keyboard mapping is what is currently > > stopping me from using the touchd driver on my MacbookAir. It would of > > course be great if the multitouch could be initialized without affecting > > the keyboard interface - the question is whether this is possible. Do > > you know? > > > > In order to get the multitouch going, this seems to be the (as of yet) > > minimal configuration necessary: > > > > 1. claim interface 0, normally acting as a HID keyboard > > > > 2. claim interface 1, normally acting as an unknown HID touchpad > > > > 3. configure interface class: > > usb_control_msg(udev,0x21,0x09,0x0300,0,{0x01,0x05},2,100) > > > > The multitouch is now available on endpoint 0x81. It is *not* possible > > to omit step 1, which would be desired. I suspect you already tried this > > extensively. > > > > I understand 3) is a set-interface-class command, I do not understand > > what 0x0300 means, I suspect interface zero is called, and I do not know > > what {0x01,0x05} means. Any ideas? > > > > Cheers, > > Henrik Rydberg > > > > ps. on a separate note, I suspect interface 2, which acts as a perfectly > > normal mouse, could be configured to show features such as double-click > > and two-finger scrolling. ds. > > > > > > > > > > > > ------------------------------ > > > > > ------------------------------------------------------------------------- > > 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 > > > > ------------------------------ > > > > _______________________________________________ > > Touchd-devel mailing list > > Tou...@li... > > https://lists.sourceforge.net/lists/listinfo/touchd-devel > > > > > > End of Touchd-devel Digest, Vol 3, Issue 5 > > ****************************************** > > ------------------------------------------------------------------------ > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > 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 > ------------------------------------------------------------------------ > > _______________________________________________ > Touchd-devel mailing list > Tou...@li... > https://lists.sourceforge.net/lists/listinfo/touchd-devel > |
From: Anthony C. <cal...@gm...> - 2008-06-26 11:11:51
|
Hey Scott, Sorry I have been busy lately and couldn't find time for touchd. I tested bsm5974 last night and I guess it needs more tuning for the MacBookPro because it was totally unusable... For me touchd is still the best option available. I tried the new version of pommed as well but I still can't get it to work, I have the weirdest error message... My only concern is that there is too many implementation of the same thing. Maybe we could get in touch(d) :o) with all these projects to have a single implementation of multitouch that just works(tm). I need to test more the alpha 3 with suspend/resume but so far the script you sent me weren't working with alpha2. LeTic Le mercredi 25 juin 2008 à 22:02 -0700, Scott Shawcroft a écrit : > Hi Alex and Henrik, > Like I told Alex, yeah I struggled on where to put things. For me it > works fine. The multimedia keys are working for me because I have them > configured as hotkeys. The only thing not working that way is keyboard > backlighting. I really intend on writing a daemon to auto adjust that > stuff but have not done it. > > As far as multitouch things go, much more work has been done through MPX > and NUI stuff. Touchd is useful if Apple comes out with cooler > multitouch hardware. I'll cross my fingers. > ~Scott > > Alex Karpenko wrote: > > Hello Henrik, > > > > I'm in the same boat as you. It was a tossup for me between having my > > media keys work, or having the touchpad work fully (since touchd > > overrides the keyboard driver as you mentioned). Since I mostly use an > > external mouse I went for the former. > > > > I've already talked to Scott about this, however I'll repost my > > thoughts for others too see (note I'm by no means an expert on this > > part of the kernel so the following could be misguided advice)... > > > > I think the cleanest way to do this is to put some (or all) of the > > code into a kernel module, much the same way that the previous > > appletouch driver did it (see drivers/input/mouse/appletouch.c). As > > you should see from the code, the driver registers itself with a > > particular interface on the device using the probe of the usb_driver > > interface (see > > http://mirror.linux.org.au/linux-mandocs/2.5.70/usb_driver.html). That > > way the kernel will only forward packets coming from the touchpad to > > the touchd driver, leaving the keyboard driver to do its own thing. > > > > Of course the most difficult question is what parts of touchd should > > go into the kernel module. Should all of it be handled in the kernel? > > Should the driver simply provide an interface to the events that a > > user level app can interpret? I frankly have no idea, and Scott > > indicated that he too struggled with finding what the best place was > > for the touchd code. > > > > My suggestion is to get on the linux-kernel mailing list and contact > > someone who makes the calls in that area of the linux source (you can > > also look at the source itself for contacting the appropriate > > maintainers). Scott, you're doing some fundamental work as multitouch > > interfaces seem to be the next big thing, and Linux should definitely > > not fall behind here. Hence if you can get some guidance/approval of > > the higher up chain of command, this will have a greater chance of > > getting into the source tree. > > > > Just my 2c, > > > > Alex > > > > > > > From: tou...@li... > > > Subject: Touchd-devel Digest, Vol 3, Issue 5 > > > To: tou...@li... > > > Date: Wed, 25 Jun 2008 12:03:49 -0700 > > > > > > Send Touchd-devel mailing list submissions to > > > tou...@li... > > > > > > To subscribe or unsubscribe via the World Wide Web, visit > > > https://lists.sourceforge.net/lists/listinfo/touchd-devel > > > or, via email, send a message with subject or body 'help' to > > > tou...@li... > > > > > > You can reach the person managing the list at > > > tou...@li... > > > > > > When replying, please edit your Subject line so it is more specific > > > than "Re: Contents of Touchd-devel digest..." > > > > > > > > > Today's Topics: > > > > > > 1. About the BCM5974 USB control interface (Henrik Rydberg) > > > > > > > > > ---------------------------------------------------------------------- > > > > > > Message: 1 > > > Date: Tue, 24 Jun 2008 19:56:40 +0200 > > > From: Henrik Rydberg <ry...@eu...> > > > Subject: [Touchd-devel] About the BCM5974 USB control interface > > > To: tou...@li... > > > Message-ID: <1214330200.3982.0.camel@alnilam> > > > Content-Type: text/plain > > > > > > Hello Scott, > > > > > > I have been following the development of touchd with interest. It seems > > > to me that one of the major hurdles in building this driver is the > > > somewhat complex relationship between the keyboard interface (USB > > > interface 0, endpoint 0x83) and the proprietary multitouch interface > > > (USB interface 1, endpoint 0x81). As far as I understand, there is no > > > known way to initialize the multitouch without also altering the > > > keyboard interface, resulting in extra work just getting the keyboard to > > > work properly. In fact, the keyboard mapping is what is currently > > > stopping me from using the touchd driver on my MacbookAir. It would of > > > course be great if the multitouch could be initialized without affecting > > > the keyboard interface - the question is whether this is possible. Do > > > you know? > > > > > > In order to get the multitouch going, this seems to be the (as of yet) > > > minimal configuration necessary: > > > > > > 1. claim interface 0, normally acting as a HID keyboard > > > > > > 2. claim interface 1, normally acting as an unknown HID touchpad > > > > > > 3. configure interface class: > > > usb_control_msg(udev,0x21,0x09,0x0300,0,{0x01,0x05},2,100) > > > > > > The multitouch is now available on endpoint 0x81. It is *not* possible > > > to omit step 1, which would be desired. I suspect you already tried this > > > extensively. > > > > > > I understand 3) is a set-interface-class command, I do not understand > > > what 0x0300 means, I suspect interface zero is called, and I do not know > > > what {0x01,0x05} means. Any ideas? > > > > > > Cheers, > > > Henrik Rydberg > > > > > > ps. on a separate note, I suspect interface 2, which acts as a perfectly > > > normal mouse, could be configured to show features such as double-click > > > and two-finger scrolling. ds. > > > > > > > > > > > > > > > > > > ------------------------------ > > > > > > > > ------------------------------------------------------------------------- > > > 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 > > > > > > ------------------------------ > > > > > > _______________________________________________ > > > Touchd-devel mailing list > > > Tou...@li... > > > https://lists.sourceforge.net/lists/listinfo/touchd-devel > > > > > > > > > End of Touchd-devel Digest, Vol 3, Issue 5 > > > ****************************************** > > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------ > > > > ------------------------------------------------------------------------- > > 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 > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > Touchd-devel mailing list > > Tou...@li... > > https://lists.sourceforge.net/lists/listinfo/touchd-devel > > > > ------------------------------------------------------------------------- > 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 > _______________________________________________ > Touchd-devel mailing list > Tou...@li... > https://lists.sourceforge.net/lists/listinfo/touchd-devel |
From: Stewart A. <mai...@di...> - 2008-06-27 19:39:33
|
> > Sorry I have been busy lately and couldn't find time for touchd. I > tested bsm5974 last night and I guess it needs more tuning for the > MacBookPro because it was totally unusable... > > For me touchd is still the best option available. I tried the new > version of pommed as well but I still can't get it to work, I have the > weirdest error message... > > My only concern is that there is too many implementation of the same > thing. Maybe we could get in touch(d) :o) with all these projects to > have a single implementation of multitouch that just works(tm). > > I need to test more the alpha 3 with suspend/resume but so far the > script you sent me weren't working with alpha2. > > LeTic > > Sorry I have been busy lately and couldn't find time for touchd. I > tested bsm5974 last night and I guess it needs more tuning for the > MacBookPro because it was totally unusable... > > For me touchd is still the best option available. I tried the new > version of pommed as well but I still can't get it to work, I have the > weirdest error message... > > My only concern is that there is too many implementation of the same > thing. Maybe we could get in touch(d) :o) with all these projects to > have a single implementation of multitouch that just works(tm). > > I need to test more the alpha 3 with suspend/resume but so far the > script you sent me weren't working with alpha2. > > LeTic I agree with this - Let's not start duplicating any work so we can create one, great multitouch driver! I've been working with Matthew Garrett to create a multitouch-enabled kernel module, you can check out what's been done so far here: http://www.firewing1.com/downloads/airtouch-semiworking.tar.bz2 I've named it "semiworking" because although it does load and work, the touchpad is very jumpy and if you try it you'll see there are a few major problems that still have to be worked out. The way it works is it maps each finger as a separate input which will allow for multitouch gestures or detection of up to 12 fingers. To install it, just extract, run "make" and "insmod airtouch.ko". If you are loading it after usbhid has been loaded (this is the case for Fedora systems as usbhid isn't compiled as a module), unbind the trackpad before loading airtouch like this: # echo '7-2:1.2' > /sys/bus/usb/drivers/usbhid/unbind This will work on the MacBook Pros (ANSI model), for the MacBook Air it might a different USB id. BTW - Scott, if you'd like for this driver to become a part of touchd I'll be happy to help with further development. My goal is to have this driver functional and included in the upstream kernel as soon as it's usable :) Regards, Stewart |
From: Anthony C. <cal...@gm...> - 2008-06-26 14:49:30
|
Hey Felipe, Yes you have bcm5974 : http://web.comhem.se/rydberg/Bits/ which is a attempt to do a Synaptic driver for X11. It seems to work but on MacBook Pro I think it need an awful lot of tuning because it is quite unusable. Other than that I was talking of the specific input hardware of Macs is general (keyboard and trackpad). For the keyboard specific keys you have pommed as well. Which does the keyboard back lighting as well (at least when it works :o) ) That's why I was wondering if we could approach these other projects to avoid re-inventing the wheel... Le jeudi 26 juin 2008 à 16:17 +0200, Felipe Sere a écrit : > Anthony, > > you mention multiple implementations of a multitouch interface... I > have only heard of touchd. can you point me to some websites? =) I am > not abandoning touched, I just want to see what's out there. > > Thanks > > Felipe |