Trouble on HP Slate, Natty, with downgraded xorg

Asked by cheshirekow on 2011-05-26

In order to stall the EMGD graphics driver, I had to downgrade xorg server to 1.9.2 and evdev to 2.5.99 (versions here: https://launchpad.net/~gma500/+archive/emgd). Now ginn isn't working.

I'm trying to troubleshoot where the problem lies. evtest reports output from the touch device and mtview shows that the multi-touch is working (forum thread: http://ubuntuforums.org/showpost.php?p=10863703&postcount=122). gesturetest reports nothing when I perform various gesters, and I get no output from ginn either. I don't understand exactly what sits between /dev/input/event<#> and ginn. I would appreciate any help in trying to identify where the problem could be?

Question information

Language:
English Edit question
Status:
Solved
For:
Open Input Framework Edit question
Assignee:
No assignee Edit question
Solved by:
cheshirekow
Solved:
2011-05-27
Last query:
2011-05-27
Last reply:
2011-05-27
Stephen M. Webb (bregma) said : #1

It sounds like the missing piece is a patched xserver-xorg-input-evdev which contains the gesture recognizer.

cheshirekow (cheshirekow) said : #2

Thanks for the suggestion. I tried downloading and installing the updated evdev from the Natty sources ( http://ubuntuforums.org/showpost.php?p=10852888&postcount=84 ) without success. Does the xorg server also require patches for multitouch, or should the xorg 1.9.2 from the emgd repository be fine?

Stephen M. Webb (bregma) said : #3

No, only the modified xserver-xorg-input-evdev should be required.

You may need to make sure you are using the modified xserver-xorg-input-evdev to handle the input events for your touch device, assuming you have actually applied the correct patches. Examine /var/log/Xorg.0.log to see what driver it has listed.

If you have built the evdev driver from sources, you may not have all of the associated config files and maintainer scripts that are part of the packaged software. You may need to explicitly add a rule to your xorg.conf file to force the evdev driver to be used.

cheshirekow (cheshirekow) said : #4

Ok, great. Thanks for the info. I'll take a look at the Xorg log and see what driver is listed. I'll also try installing the evdev driver from the binary package to replace the downgraded one from the emgd team. I believe I tried this before but can't find any notes on it (although, I don't think I would have tried to compile from source if I hadn't already tried the binary package). If that doesn't work, I'll take a look at the Natty binary package and see what other things go on when it is installed, and try to replicate those after building from source. I'm also waiting to hear back from the emgd team on why they downgraded the evdev driver, and what problems I can expect from restoring it to the natty default.

cheshirekow (cheshirekow) said : #5

Now I remember why I didn't install the binary package: it depends on xorg-input-abi-12, so had to build from source. I will do that next and report back.

cheshirekow (cheshirekow) said : #6

Ok, I installed the evdev by compiling from source using the source from here: http://packages.ubuntu.com/source/natty/xserver-xorg-input-evdev. I first applied the patches using "patch -p0 < ../xserver-xorg-input-evdev_2.6.0-1ubuntu12.diff". I configured with --prefix=/usr. Compiled with make. Installed with "make install". After a reboot, I have the same problem. mtview still works, but ginn reports nothing.

Checking Xorg.0.log I find the line where the N-Trig MultiTouch is added. It says 'Applying InputClass "evdev touchscreen catchall"'. I'm not super knowledgable, but I'm assuming that means it is being assigned to the evdev driver. I checked /usr/lib/xorg/modules/input and the evdev_drv.so that is in there has a file date of today, when I built it.

cheshirekow (cheshirekow) said : #7

Could the problem perhaps be downgraded versions of the x11proto-?? packages? I'm not sure exactly where these fit in the grand scheme of things.

cheshirekow (cheshirekow) said : #8

Sorry, I am a moron. I have no idea how the ubuntu patches or debian system work. I am definately not applying the patches correctly. I was digging through the source and realized that the patches for multitouch weren't applied. Evidently the patches are in xf86-input-evdev-2.6.0/debian/patches/. The diff file that I ran I guess is at the "package" level not the "source" level. Attempting to apply the three patches, however, leads to the source not compiling. I can't find information on google on how to apply these patches. I used patch -p1 < /xf86-input-evdev-2.6.0/debian/patches/100-* etc. Patch reports success but the resulting code does not compile.

Stephen M. Webb (bregma) said : #9

The best way to obtain exactly the same (patched) source that was used to build the binaries in the Ubuntu distro is to make sure the appropriate source archive (deb-src line) is in /etc/apt/sources.list and do an "apt-get source xserver-xorg-input-evdev" command. This will pull the various DEB source files (.tar.gz, .dsc, and so on), unpack them, and apply patches.

If you already have the sourcees, you can perform a "dpkg-source -x" on the .dsc file to obtain the same thing.

cheshirekow (cheshirekow) said : #10

Great, thanks. I had to downloaded the sources manually because the EMGD repository provides artificially "newer" downgraded packages. I suppose I could also remove those ppa's but since I have already have the sources downloaded I tried option two. When I perform "dpkg-source -x" on the .dsc file, it does not appear to apply the multitouch patches, but running ./debian/rules patch seems to do the job. I'm getting some compile errors. It seems "ValuatorMask" is not defined. I'm trying to track down where that is from. Maybe I got a library downgraded as a side effect and didn't note it.

Stephen M. Webb (bregma) said : #11

"ValuatorMask" requires the newer xserver-xorg-dev headers. You may be in a bit of a bind, since much of the newer xinput work (including MP and MT support and quite a few bug fixes) requires the newer ABI.

It's unfortunate that EMGD devs chose to use a downgraded version of xorg (and downgraded versions of many client apps) to enable their hardware. It prevents the use of many features in Ubuntu 11.04 and going forward.

Backporting the uTouch patch for the older ABI may be possible with some development work since it isn't really very big and I don't believe it actually requires the new ABI. Your best bet is to open a bug for this against uTouch so that it gets tracked and resolved satisfactorily.

cheshirekow (cheshirekow) said : #12

Yeah, I am in a bit of a bind :). Ok, I think I'm beginning to understand. Though, I am a little confused because I thought multitouch is supposed to work in Maverick as well, which has an older xserver.

It is unfortunate, but it's not the EMGD devs who made the choice, but Intel, who outsourced the driver development and is not stuck with a closed source driver they can neither maintain nor give to the community to maintain. There is an alternative driver which (evidently works with xorg 1.10) but requires a downgraded kernel. I will try that as an alternative, and open a bug for a backport.