suspend/resume xorg.conf & synaptics
FedoraForum.org - Fedora Support Forums and Community
Page 1 of 2 1 2 LastLast
Results 1 to 15 of 17
  1. #1
    Join Date
    Jan 2005
    Posts
    37
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    suspend/resume xorg.conf & synaptics

    Since upgrading to F9 I have found that the synaptics "forgets" my settings in xorg.conf and my settings in gsynaptics. This also happens if the screen is blanked in a power save mode. I ultimately want my glidepoint never to horiz scroll because it's so annoying*.

    How can I make this sticky? As you can see below I have tried many things to make this not h-scroll but nothing works. It's like gnome has overridden xorg.conf.

    TIA.

    * annoying when you go to the switcher, select a desktop only to h-scroll to who-knows-where while trying to move cursor back up the screen to the application you want to focus.

    Code:
    Section "InputDevice"
    	Identifier  "Synaptics"
    	Driver      "synaptics"
    #	Driver      "ps/2"
    	Option	    "Device" "/dev/input/mice"
    	Option	    "Protocol" "auto-dev"
    	Option	    "Emulate3Buttons" "yes"
    	Option	    "VertScrollDelta" "15"
    	Option	    "HorizScrollDelta" "0"
    	Option      "HorizEdgeScroll"  "off"
    	Option		"SHMConfig"    "true"
    EndSection

  2. #2
    Join Date
    Apr 2008
    Posts
    70
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    This is a long explanation, all related to the following Bugzilla:

    https://bugzilla.redhat.com/show_bug.cgi?id=439386

    Yes, it looks like everyone is whining about everything, including:

    • Tapping no longer works by default
    • If you enable tapping, it always breaks after suspend
    • All xorg.conf settings are lost after suspend


    Read the final comments, starting with 65. The truth is, this is a bug in X.Org, and everything you know about xorg.conf is wrong.

    What follows is my lay person paraphrasing. It turns out, they're planning to phase xorg.conf out, and manage devices only through HAL. What this means is that HAL actually autoconfigures Synaptics for you, and it runs the touchpad by default.

    So when you put your own touchpad settings into xorg.conf, you're actually activating a second instance of Synaptics. This works fine until you suspend.

    Guess what? Due to a bug in XOrg, whenever you resume from suspend, it calls the drivers in reverse order. So your xorg.conf settings are overridden by HAL's defaults (that is, no tapping, none of the custom settings you've got above).


    You've got two options.

    1. Disable HAL's autoconfiguring for all X devices. This means you'd better get ready to mention _everything_ in your xorg.conf. (See comment #71 from the bugzilla above).

    2. Put your custom settings into HAL's configuration files, instead of in xorg.conf. See comments #86 & #87.

    Please note: option 1 will probably break a lot of stuff unless you're an xorg.conf expert, while option 2 requires you to mess with HAL config files, and to be honest, I haven't gotten it working yet myself, even following their instructions. Give it your best shot though.

    For more about the future of X.Org's HAL configuration settings, see this blog post:

    Input Configuration in a Nutshell



    Yes, it looks like you're gonna have to put a huge amount of work and reading in to fix this. Is it fair? Not really. But this isn't really a Fedora bug -- this is X.Org itself, so until future versions of Fedora apply even more polish to get it working perfectly, we're gonna have to dabble in it ourselves, or stick with the defaults.

  3. #3
    Join Date
    Apr 2008
    Posts
    70
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Post-post: Just wanted to say, I realized there was a typo in my HAL configuration files. I corrected them and now my touchpad works fine after suspend/resume.

    Please give their suggestions a try in comments #86 and #87; they demonstrate a sample HAL touchpad configuration file (uses the same keywords as xorg.conf), and where to put it.

  4. #4
    Join Date
    Jun 2005
    Posts
    6
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks for the info Twilightomni. I can confirm that using evdev and putting custom settings in the HAL configuration /etc/hal/fdi/policy/10-synaptics.fdi solves the hibernate & resume problem with the Synaptics touchpad on an HP Pavilion dv7 running F9. However, a new annoying behavior has cropped up. When X first starts the touchpad's pointer is very eratic and features such as tapping to click do not work. Switching to VT 1 and back fixes this and the touchpad behaves as expected, even after a hibernate & resume cycle. The Xorg.0.log has references to a "Macintosh mouse button emulation:", but all I have is the in built in touchpad. Could this "Macintosh mouse button emulation:" be causing the initial eratic behavior?

    Thanks,
    Don

  5. #5
    Join Date
    Apr 2008
    Posts
    70
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Now that part I'm not sure about. I recall hearing about a Macintosh mouse emulation setting, but I'm not sure where that's mentioned. The manual page for synaptics (command "man synaptics" in a terminal) doesn't mention anything about macintosh stuff.

    It may be that you've got an odd option in your configuration file. For your reference, here is my HAL configuration for the synaptics touchpad.

    The following is /etc/hal/fdi/policy/10-synaptics.fdi :
    Code:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <deviceinfo version="0.2">
      <device>
        <match key="info.capabilities" contains="input.touchpad">
          <match key="info.product" contains="Synaptics TouchPad">
            <merge key="input.x11_driver" type="string">synaptics</merge>
            <merge key="input.x11_driver.Emulate3Buttons" type="string">yes</merge>
            <merge key="input.x11_driver.TapButton1" type="string">1</merge>
            <merge key="input.x11_driver.RBCornerButton" type="string">3</merge>
            <merge key="input.x11_driver.ZAxisMapping" type="string">4 5</merge>
          </match>
          <match key="info.product" contains="AlpsPS/2 ALPS">
            <merge key="input.x11_driver" type="string">synaptics</merge>
          </match>
        </match>
      </device>
    </deviceinfo>
    The AlpsPS (pointing stick?) section was in my file and I assume is just info for some other device, so I left it there.

    You'll note the options I use (driver.RBCornerButton, driver.Emulate3Buttons) are all valid xorg.conf options. I hope you figure out what the problem is.


    Oh, also: make sure you remove all your mouse information from /etc/X11/xorg.conf, since you're using the HAL configuration now. There should not be an "InputDevice" section for synaptics. This will only create a second instance of synaptics that conflicts with the HAL one.

    That could possibly explain your problem, especially since switching to the VT fixes it. This makes me suspect you have left old settings in your /etc/X11/xorg.conf which are causing the problems.

  6. #6
    Join Date
    Apr 2008
    Posts
    70
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Just a slight update:

    I found a similar issue here: http://bbs.archlinux.org/viewtopic.php?pid=301062

    This fellow says his touchpad is being detected as a PS/2 mouse, and Xorg.0.log says "macintosh mouse emulation" is enabled.

    I believe the problem is your xorg.conf. Please remove all mouse specific settings from it, so that X can properly auto-detect your mouse as a Synaptics touchpad (it does, by the way, auto-detect external connected mice as well). But I believe something in your Xorg file is setting the touchpad up as a PS/2 device.

    But when you switch to VT, due to the bug of my first post, HAL's configuration (which you seem to have configured correctly in the FDI files) is given priority once you switch back, thus correcting the problem. This is what I believe is happening.

  7. #7
    Join Date
    Jun 2005
    Posts
    6
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Yes Twilightomni, you are correct. Removing all reference in xorg.conf to any mouse fixed the "Macintosh mouse button emulation:"issue even though I had references only to the Synaptics touchpad and no other mice or pointers. It seems that X was thinking the touchpad was a Mac PS/2 mouse.

    HAL configuration of the touchpad is now working great.

    Thanks so much for your help.

    Don

  8. #8
    Join Date
    Apr 2008
    Posts
    70
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Glad it works for you. It is a shame that it requires so much work to get it running, though.

  9. #9
    Join Date
    Aug 2007
    Location
    Brasil
    Posts
    471
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by twilightomni
    Post-post: Just wanted to say, I realized there was a typo in my HAL configuration files. I corrected them and now my touchpad works fine after suspend/resume.

    Please give their suggestions a try in comments #86 and #87; they demonstrate a sample HAL touchpad configuration file (uses the same keywords as xorg.conf), and where to put it.
    Thanks so much for this information!

    I finally fixed this, it was annoying to restartx everytime i come from suspend

    Now all i need is to make as perfect as it was with xorg.
    My touchpad is faster now (it was slow after coming back from suspend, so i'd have to restarx), but not as fast as with xorg. And i don't have scrolling.

    Do you think that's fixable?
    Here's what i did:
    1) Comment out everything InputDevice mouse related (in ServeLayout and the whole InputDevice section)
    2) Add the line Option "AutoAddDevices" "off" in ServerLayout
    3) Create a fdi file with exact same settings as xorg and paste in /etc/hal/fdi/policy/10-synaptics.fdi
    4) RestartX

    And here's my fdi, if you spot any typos or something wrong tell me:
    Code:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <deviceinfo version="0.2">
      <device>
        <match key="info.capabilities" contains="input.touchpad">
          <match key="info.product" contains="Synaptics TouchPad">
    	<merge key="input.x11_driver" type="string">synaptics</merge>
    	<merge key="input.x11_options.SendCoreEvents" type="string">yes</merge>
    	<merge key="input.x11_options.protocol" type="string">auto-dev</merge>
    	<merge key="input.x11_options.TapButton1" type="string">1</merge>
    	<merge key="input.x11_options.TapButton2" type="string">2</merge>
    	<merge key="input.x11_options.TapButton3" type="string">3</merge>
    	<merge key="input.x11_options.SHMConfig" type="string">true</merge>
    	<merge key="input.x11_options.Device" type="string">/dev/input/mice</merge>
    	<merge key="input.x11_options.Emulate3Buttons" type="string">yes</merge>
    	<merge key="input.x11_options.LeftEdge" type="string">120</merge>
    	<merge key="input.x11_options.RightEdge" type="string">920</merge>
    	<merge key="input.x11_options.TopEdge" type="string">120</merge>
    	<merge key="input.x11_options.BottomEdge" type="string">680</merge>
    	<merge key="input.x11_options.FingerLow" type="string">14</merge>
    	<merge key="input.x11_options.FingerHigh" type="string">15</merge>
    	<merge key="input.x11_options.MaxTapMove" type="string">110</merge>
    	<merge key="input.x11_options.VertScrollDelta" type="string">20</merge>
    	<merge key="input.x11_options.HorizEdgeScrollDelta" type="string">20</merge>
    	<merge key="input.x11_options.MinSpeed" type="string">1.0</merge>
    	<merge key="input.x11_options.MaxSpeed" type="string">1.0</merge>
    	<merge key="input.x11_options.AccelFactor" type="string">0.3</merge>
    	<merge key="input.x11_options.MinTapTime" type="string">110</merge>
    	<merge key="input.x11_options.MaxTapTime" type="string">180</merge>
    	<merge key="input.x11_options.ClickTime" type="string">0</merge>
    	<merge key="input.x11_options.RTCornerButton" type="string">2</merge>
    	<merge key="input.x11_options.RBCornerButton" type="string">3</merge>
          </match>
          <match key="info.product" contains="AlpsPS/2 ALPS">
    	<merge key="input.x11_driver" type="string">synaptics</merge>
          </match>
        </match>
      </device>
    I know it's big. But it took me time to fix this, got here from the forum. Started adding this and that and the touchpad got perfect (it was jerky and VERY slow before).

    Is there anything there that is not fdi "compatible" ?

  10. #10
    Join Date
    Apr 2008
    Posts
    70
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I think any option that works in the Xorg.conf section for synaptics will work here as well. I have a few guesses about your setup.

    1. Try taking out the "AutoAddDevice" "off" option in xorg.conf. If that is removed, I think it makes it easier for HAL to automatically manage your mouse devices. (Plus, that's the point -- let HAL automanage them, instead of specifying them in xorg.conf manually).

    2. As for vertical scrolling, I'm not sure. Fedora 9 comes with it enabled by default (it's not mentioned in the FDI file, it just seems to automatically be assumed).

    Try taking out the VertScrollDelta line. To be honest, I never knew how big those numbers should be (are they pixels to scroll per movement, or what?). There should be an option in the man page for synaptics (type "man synaptics" in a terminal) for enabling vertical scrolling. Try that.



    In general, I find that HAL autoconfigures most options well with sensible defaults. Try to work with as few options in the FDI as possible -- sometimes, we try so hard to specify how everything should exactly work, that we end up glitching it up anyway.

    Try starting from a relatively empty FDI file and reintroduce the options you're sure you can't live without. Then, if vertical scrolling and everything else works perfectly, start to add back the other options you like.

    The small four option configuration that I have above works fine for me, and vertical scrolling has no problems.

    I'm glad you got it working though. Congratulations! It's nice to actually fix something.

  11. #11
    Join Date
    Aug 2007
    Location
    Brasil
    Posts
    471
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks!

    I tought "AutoAddDevice" "off" was necessary? At least it's mentioned in the blog to avoid the conflict between xorg and HAL.

    I'm leaving this as second plan. I think it's a bit complicated.

    This xorg conf (using now) is so perfect, i just love the scrolling and the speed, it took me time to fix that big xorg.conf and to think that i'll have to find out how to fix that again for HAL...

    So i'll take a day when i'm totally patient and feeling like tweaking to look into this
    And then i will start with your fdi and add slowly a few lines.

    Thanks again!

  12. #12
    Join Date
    Apr 2008
    Posts
    70
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    These days in Xorg, HAL automatically adds devices by itself, and although the FDI files are confusing, once you set them up it should work fine.

    What causes the conflicts is when you try to define a device in XOrg _AND_ use HAL's autodetect at the same time. This is pretty much what causes all the Suspend bugs. (Because Xorg's config takes control at startup, but HAL's takes over after Suspend, screwing up your options if you haven't defined them in the FDI).

    So to prevent any conflicts, you can...

    1. Do not define any mouse device in Xorg.conf. (Use only HAL).

    2. Define _everything_ in Xorg.conf (Do not use HAL). To make this option work, use the "AutoAddDevices" "off" to stop HAL from configuring your touchpad.



    Both ways will work, but #2 requires a lot more configuration file work (I don't really know every option for defining a mouse in Xorg.conf). I'd rather let HAL do the job (since it can dynamically detect mice that I plug in) and specify a few options in the FDI file.

    The problem from all those bugs in the bug report above is that people are trying to configure the touchpad in Xorg even though HAL's already doing the same job. Either use HAL's fdi, or use Xorg.conf.

    Since you're taking the HAL route, there's no need for the "AutoAddDevices" "off" option, since we _do_ want to use HAL.

  13. #13
    Join Date
    Aug 2007
    Location
    Brasil
    Posts
    471
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ok twilightomni, you conviced me and i will give this another try

    It's just, after some work with xorg and perfectly working makes me "lazy" to try a different aproach.
    But i really want my suspend working like it should.

    I removed that line, wich i missunderstooded, and i got my scrolling again!

    I have the tapping too but the mouse speed is still low.
    I want it fast like i have in xorg.conf.

    You see, to get this fast mouse speed on xorg i had trouble too, i was constantly adding things until one day it was perfect and that's exactly why i want don't want the same trouble to find this out with HAL (specially when i know xorg works perfect).

    I have no idea what to change on those settings, because i believe this is already the standard. I think some of those parameters are not working.

    Do you have any suggestions of what should i try?

    EDIT: Forgot to mention, i have no mouse lines on xorg.conf, everything wiped out (backuped, of course)
    Last edited by M4rc0; 11th September 2008 at 04:13 PM.

  14. #14
    Join Date
    Apr 2008
    Posts
    70
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    The settings that matter for mouse speed should be MinSpeed, MaxSpeed, and AccelFactor. Try adding those back. But as for what values you should use, I don't know -- I've always been happy with the default settings.

    Try messing with numbers in between 0.0 and 5.0. It seems to be a float value, after all.

  15. #15
    Join Date
    Aug 2007
    Location
    Brasil
    Posts
    471
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I'm playing with those values then.

    It's faster now, but still not as sensible as i like.
    I wish i could put the same values as the ones i have in xorg and work the same on HAL, too bad it doesn't.

    But that's about it, one day i'll have it faster.

    Thanks twilightomni! This was very helpfull

Page 1 of 2 1 2 LastLast

Similar Threads

  1. Replies: 2
    Last Post: 2nd October 2009, 02:46 AM
  2. Suspend/Resume
    By neoire in forum Hardware
    Replies: 0
    Last Post: 14th September 2009, 12:21 AM
  3. f7 suspend resume on a T41 ??
    By dan sawyer in forum Hardware
    Replies: 1
    Last Post: 15th September 2007, 11:24 PM
  4. Replies: 1
    Last Post: 8th January 2007, 07:02 AM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •