Linux - Laptop and NetbookHaving a problem installing or configuring Linux on your laptop? Need help running Linux on your netbook? This forum is for you. This forum is for any topics relating to Linux and either traditional laptops or netbooks (such as the Asus EEE PC, Everex CloudBook or MSI Wind).
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
the mouse just went dead again. unloading and reloading psmouse fixes it. but it is annoying, it just dies out of the blue. this is not linked to any sleep/hibernate state change, it just happens out of the blue. Oh and I haven't been able to recreate the boot up issue I had. My only theory is that the psmouse module is becoming disconnected from the hardware, if this happened during boot up it may have connected the wrong driver to it in its place. Perhaps this due to a module conflict, if so it might be solved by blacklisting the offending module.
Anybody else have any ideas?
Is there any errors or any other events reported in dmesg when this happens? Does the mouse goes completely dead or is it only X issue and it still works in text console?
Oh, and by the mouse you mean touchscreen, not an external mouse, right?
I simply changed the "CF-18" entry to read "CF-72" tried to compile modules only and failed (damn you ubuntu!), so I recompiled the kernel and everything, booted up and it worked, but then the touchpad became absolute position only. Then I got some sleep.
From dtors post earlier. I made the same changes as above, recompiled and then both the touchscreen and the touchpad worked correctly. It took quite a bit of fiddling with /etc/X11/xorg.conf file, this is what I ended up with;
As for the occasional failure of the touchscreen, and it is limited to to touchscreen, the touch pad is unaffected. It seems to be a hardware problem, that is if it happens in windows as well. Not to imply that coding could not work around it. When the touchscreen fails there is a new /dev/input/eventN entry created. I found that in ubuntu, "/dev/input/by-path/platform-i8042-serio-1-event-mouse" is automatically linked to the touchscreen event in /dev/input/ so simply unloading and reloading the psmouse module reconnects X to this new event. these are the events in /dev/input (from message log, and partially confirmed by my own tinkering);
event0 = macintosh mouse button emmulation (Macintosh? WTF!)
event1 = keyboard
event2 = pcspeaker (I know its not really an input)
event3 = PS/2 touchpad (/dev/input/mice also works)
event4 = PS/2 touchscreen (event3, event4, mice, and a couple others seem to be interchangeable)
event5 = powerbutton
event6 = powerbutton
event7 = lidswitch
event8 = PCC Extra Driver (I have no idea what this is)
After the touchscreen most recently failed, it added four more devices in quick succession;
then it settled down and has worked flawlessly. Oddly, after hibernating for a couple of hours, upon waking up events 11 and 12 disappeared.
As suggested in an earlier post this does seem to only (or mostly) happen when scrolling with the touchscreen, so if this is kept to a minimum (keypad arrows work better ,although slower, anyway) the problem may be avoidable.
The other issue that I have been having is the failure at boot up. This is not a complete failure. The touchpad becomes very insensitive, large movements barely move the pointer. The touchscreen becomes horribly misaligned, so that top left corner of the screen maps pointer movements across the entire screen. I found that this behavior is identical to the use of the evdev module. It also seems to only happen when I leave my wlan card(prism3) in at boot up. In any case, dropping to virtual console and executing;
sudo rmmod psmouse
sudo modprobe psmouse
usually fixes it, I had repeat it for it to take last time. Every time that I have tried this from the desktop terminal window, it sends CPU usage to 100% and blocks all administrative actions, requiring a hard reboot to return usability. Oh, and the both the touchpad and the mouse die.
The only error messages that I have been able to find are related to failing to load the "void" module, module does not exist. I tried taking this out of xorg.conf at one point and remember some kind of problem occurring, although I only tried it once so it may have been a coincidence.
This is what actually gave the best results, at least I was getting output from both the touchpad and the touchscreen, but it seems like they are the same device, they behave the same way and as bnr described the touchpad was absolute (even with'Option "Mode" "Relative"' in the xorg.conf) and it kept the cursor in the top left corner of the screen.
So, I re-read the posts and did what he did, downloaded the lifebook.c file posted here and recompiled with that, this time I duplicated the cf-18 section and changed it to read like this:
With this the touchpad works semi-ok with the exception that tapping sends a double-click, the only way to single click with the touchpad is to use the button. also scrollweel emulation using the right side of the pad (I don't know if that's even possible but I'd like it. Any pointers?)
As for the touchscreen, it does not produce any output whatsoever on any devices. I tried all I could think of with `cat` on all the devices I could think of from the terminal.
I guess next I'm going to try using the stock lifebook.c file and just CHANGE the current cf-18 section just to "CF-72".
I used the 188.8.131.52 sources to build yet another kernel, this time I changed the stock lifebook file to read CF-72 instead of CF-18, touchpad works now taps are single-clicks but I still get absolutely no output from the touchscreen. I know the touchscreen works because I get output with the other kernel, but the touchpad doesn't work right on that one. ...So close yet so far.
I don't know if they have different touchscreens on different models, mine is a Pentium 4 M 1.6 Model# CF-72VCJWZQM
I'm not ready to give up but I don't know what to try next, any help?
Also, is there a way to compile and install just the modules I change? almost two hours compiling the kernel every time I change a line in the lifebook.c file makes for a very long trial and error!
Distribution: debian with bits of everything stuck on it
Try changing the entries for the cf-28 or the cf-29 instead. If you check the last couple of pages on this thread it gives a few details on the differences between them. Sound a bit like its using the same settup as the cf-28, though Dmitry lost me when explaining the differences in the controllers. From what I could tell its the same touchpanel but the methods of splitting the signal between it and the touch[ad is quite different.
To speed up compiling I cheated by backing up the .config file, then doing a a find and replace in kate changing '=m' to '=n' and just adding the psmouse module, building the modules and replasing the old psmouse.ko with the new followed by depmod -a.
Good luck with it and keep us posted.
Changing the X and Y min and max in the xorg.conf has some effect (especially the min) but not enough, the "active area" of the touchscreen remains in the top left corner no matter what, anything else will have the cursor at the bottom right corner no matter what numbers I use.
I looked into the lifebook.c file and started messing with it (I'm not sure I understand enough of it but I'm figuring some things out)
I started looking for all instances of "6byte_proto" in there to see what that changes, it seemed that without it I was getting a better response on the touch though the pad didn't work. I never tried calibrating it then because of that but I think that would be possible.
I noticed a couple of things so far:
- It seems that the max coordinates in 6byte_proto are limited to 1024:
int max_coord = lifebook_use_6byte_proto ? 1024 : 4096;
Distribution: debian with bits of everything stuck on it
Step_away_from_the_compiler You shouldn't need to change anything else in lifebook.c if you have the 2 signals coming in properly by changing the DRI matches. BTW, can you post back which one you changed to get it working?
You have 2 other things to do. First you need to use the evtouch driver for xorg , all the details for installing it are further up the thread. Then you need to backup xorg.conf then edit it to do 3 things:
1: Use the correct device node for the mouse.
2: Use the correct device node and the evtouch driver for the touchscreen.
3: Set the calibration for the touchscreen.
So start with a fresh copy of lifebook.c and just change the relevant DRI info, then compile and copy over the .ko file.
Download the xorg evtouch module and put it in the proper place for your system to be found when X starts.
Get a known working xorg.conf.
Open up a terminal and do 'od /dev/input/mouse$' where $ is a number for each mouse listed checking for input when the pad is touched.
Where in xorg.conf you have something in the mouse section like 'Option "Device" "/dev/input/mice" ', edit this line to read 'Option "Device" "/dev/input/mouse$" ' where $ is the number of the device you found connected to the mouse.
Open up a terminal and do 'od /dev/input/event$' where $ is a number for each event listed checking for input when the screen is touched and for input from any other input devices (i.e. tablets) you may want to connect.
Go through xorg.conf and edit any /dev/input lines to connect them to the event inputs instead of the generic (mice, psmouse etc) inputs. If there are input devices listed that you dont have then delete the entire entry for them and also the entry in the 'ServerLayout' section.
Restart X to check the pad is ok. If all is good add a touchscreen entry using the correct event for the device and 'evtouch' for the driver. (my working entry posted bellow).
The problem you where having is due to a mixup in the input to the cursor. The generic nodes will use all inputs relevant to the mouse so the screen data will be fighting with pad data. If there are any devices listed in xorg.conf using the generic inputs it will cause problems.
I restored the .ko file as compiled from fresh lifebook.c with just the above entry added and restarted the computer just to be sure.
I re-read the entire thread (Wow... took hours, half didn't apply to me but instructional indeed) looking for what you mentioned, call me dumb but I can't see anyone mentioning downloading and installing the evtouch driver for xorg (I guess I'll search for that next) none the less I do have Driver "evtouch" and didn't catch any complaints in the logs so I'm assuming it's there for this round.
I found my devices with od:
/dev/input/mouse0 for the touchpad,
/dev/input/event3 for the touchscreen.
As posted by stan.distortion each only gets output from the pad or the touchscreen so I guess I'm good there.
I commented out the "Configured Mouse" section in the xorg.conf, deleted the Touchscreen section I had in there and changed the Device for the touchpad Device:
Line the second time. Both times same result (And same result as the past couple of days) cursor stays at the bottom right corner until I touch within the top-left 2-3 inches of the screen then it moves to just a little more than half the way through the screen. Min X and Y values cause the very top and left sites not to work, Max values do little or nothing.
I'm stuck in the top left corner, with hope.
How do I make sure I'm using the evtouch driver? What can I provide (Logs config files commands output etc.) to help someone help me?
Thanks to everyone for all the effort, I love open source and I wish to know more to help it grow.
I've been keeping along with this thread, and I couldn't help but overhear (oversee, overread?) that you've been trying to get the evtouch driver to work. There are two places you can find this driver. One is in your xorg directories, pre-installed (one of the distros I used to use didn't include it, so you might have to search and see if your install included it). The second place is the http://www.conan.de website. This second driver may not include patches or bug fixes that the xorg development team may have written, but I think it's the only way to compile your evtouch driver along with a calibration program. It won't automatically build the calibration program, though. I think that's an extra option for the configure script.
You will, however have to edit the source before you compile the calibration program, or it will not run. It's a bug that I don't think has been fixed yet. In the file ev_calibrate.c, change line 290 to point to exactly where the file "empty_cursor.xbm" is.
Then compile and install. Then follow the calibration instructions included to the letter. In the end, you should have a roughly well calibrated screen. You can modify the values you got from the calibration program to fine tune it. Then back-up your xorg.conf file and never lose it!
Finally, if you find out that your distro does include the evtouch driver, uninstall the evtouch driver that you compiled from source, and install the appropriate package, usually the xorg package to use the evtouch driver that was packaged for it. Doing this might overwrite your xorg.conf file, though, so be prepared to replace it.
Thanks for your reply, by the looks of it my distro (Debian unstable) comes with the evtouch installed, I do have the evtouch_drv.so in /usr/lib/xorg/modules/input/ as provided by the xserver-xorg-input-evtouch package. The package also provides calibrations scripts you described but I'm not at all concerned with it at this point, I have no problem spending hours tweaking numbers to make it work right.
No matter what I do, and I've tried all I could think of, the cursor is stuck at the bottom past once I touch below the top inch -inch and half of the screen and at the right side of the screen once I get past the left two inches of the screen.
I'm starting to wonder if this model has a completely different T.S. controller but I have no idea how to find out short of maybe cracking the case open.
I have had reasonably good luck here on my cf-72. The only problems that remain are the consistent, though rare touchscreen failure when scrolling at the edge of the screen, (A previous poster said that this happened even in windoze) and the partial failure at boot up; all the behavior that you have been describing, slow touchpad, and upper (and lower) corner 'mapping' of touchscreen action across the display screen (I think this is what you were describing - a slight movement in the active portion of the screen move the pointer dramatically across the display). This last one only happens if I leave my pcmcia wireless card in. If your cf-72 has onboard wireless, perhaps it is causing some kind of driver conflict try blocking the wireless driver or else be sure that your wireless adapter is unplugged. Either way, I was able to fix it by dropping to a virtual terminal and unloading and reloading the psmouse module.
I also don't fully understand the difference between the two different duplex ps2 controllers, but mine works the way that I have set it up.
If I recall right you're using the CF-18 DMI entry to get a separate device for touch and pad. I tried using that but it was not working I did get two separate devices using the DMI entry for the CF-29.
I will try booting into the kernel I had compiled with the CF-18 DMI entry and make sure that's the case. I'll also try to disable all other input devices in xorg.conf and see if it can be calibrated. If I remember right it seemed like it would be possible, I never tried because the pad was not working so I never thought I was at the calibration stage...
That is why I was starting to modify the lifebook.c: one way touch worked (pending calibration) but no split signals. The other touch was off but the signals where split. I guess if the touch can be calibrated with the CF-18 entry I will go back to kicking the compiler over and over..... Some pointers on what differences the two entries make would sure be awesome.
With the CF-18 DMI I do not get two separate inputs: pad is always absolute and od command shows output touching either on the same devices.
After commenting out entries for the touchpad in xorg.conf I tried calibrating, the behavior of pen/pointer is a lot closer, the pointer goes almost across the whole screen and follows the pen. On the X axis the pointer goes slightly slower: it's to the right of the pen when on the left side of the screen, on the left of it when touching the right side. On the Y axis the pointer stays "south" of the pen. the kicker is: changing calibration numbers doesn't do much! raising the min will cause the borders to become dead but that's about it.
I'm getting ready to throw my hands up in the air and pretend I don't have a touchscreen (Sad because touch was the reason for choosing this laptop over a more powerful one for the same price)