LinuxQuestions.org
Support LQ: Use code LQ3 and save $3 on Domain Registration
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Laptop and Netbook
User Name
Password
Linux - Laptop and Netbook Having 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).

Notices

Reply
 
Search this Thread
Old 07-30-2007, 07:25 AM   #151
dtor
Member
 
Registered: Jun 2004
Location: Indiana, US
Distribution: Used to be RedHat 8
Posts: 43

Rep: Reputation: 15

Quote:
Originally Posted by bnr
update;

my fix didn't work so well.

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?
 
Old 08-04-2007, 12:04 PM   #152
bnr
LQ Newbie
 
Registered: Jul 2007
Location: Minneapolis
Posts: 18

Rep: Reputation: 1
Panasonic Toughbook CF-29 Touch Screen

First I opened up my lifebook.c file in the kernel source and found this;
Code:
      {
               .ident = "CF-18",
               .matches = {
                       DMI_MATCH(DMI_PRODUCT_NAME, "CF-18"),
               },
       },
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.


Next I downloaded this;
http://www.kernel.org/pub/linux/kern...tor/lifebook.c

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;
Code:
Section "InputDevice"
    Identifier "dummy"
    Driver "void"
    Option "Device" "/dev/input/mice"
EndSection

Section "InputDevice"
        Identifier "touchscreen"
        Driver         "evtouch"
        Option          "Device"                "/dev/input/by-path/platform-i8042-serio-1-event-mouse"
        Option          "DeviceName"            "touchscreen"
        Option          "MinX"                  "230" #"230"
        Option          "MinY"                  "220" #"220"
        Option          "MaxX"                  "3900" #"3900"
        Option          "MaxY"                  "3850" #"3850"
        Option          "ReportingMode"         "Raw"
        Option          "SendCoreEvents"           "true"
        Option         "Emulate3Buttons"    "true"
        Option         "Emulate3Timeout" "50"
EndSection


#Section "InputDevice"
#    Identifier    "Configured Mouse"
#    Driver        "mouse"
#    Option        "SendCoreEvents"    "true"
#    Option        "Device"        "/dev/input/mice"
#    Option        "Protocol"        "ExplorerPS/2"
#    Option        "ZAxisMapping"        "4 5"
#    Option        "Emulate3Buttons"    "true"
#EndSection

Section "InputDevice"
    Identifier    "Synaptics Touchpad"
    Driver        "mouse"
    Option        "Mode" "Relative"
    Option        "CorePointer"    "true"           
    Option        "Device"        "/dev/input/mice"
    Option        "Protocol"        "ExplorerPS/2"
        Option          "Emulate3Buttons"       "true"
#    Option        "HorizScrollDelta"    "0"
EndSection
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;

event9 = PS/2 touchpad
event10 = PS/2 touchscreen
event11 = PS/2 touchpad
event12 = PS/2 touchscreen

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;
Code:
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.
 
Old 08-12-2007, 12:35 PM   #153
bnr
LQ Newbie
 
Registered: Jul 2007
Location: Minneapolis
Posts: 18

Rep: Reputation: 1
Panasonic Toughbook Touchscreen

The partial failure at boot up has been consistent.

So, I decided to play around with the /etc/modprobe.d/blacklist file, blocking various drivers. No good.

Then I went back to the /etc/X11/xorg.conf
After a couple of false starts I once again commented out:

Code:
Section "InputDevice"
    Identifier "dummy"
    Driver "void"
    Option "Device" "/dev/input/mice"
EndSection
I gave it a couple of reboots and everything seems to be good now. I don't know why it didn't work last time i tried this, I may have been trying another driver at the time.
 
Old 09-21-2007, 05:29 PM   #154
Sciallo
LQ Newbie
 
Registered: May 2003
Posts: 13

Rep: Reputation: 0
Not *too much?* Luck with my CF-72

I followed the steps bnr suggested:

The OS: Debian unstable.
Kernel: 2.6.22

I did an apt-get of the kernel source and patched the lifebook.c file and recompiled it the "debian way" a few times in different ways with the following results:

I changed the whole cf-18 section to read exactly as bnr had it here:
Code:
      {
               .ident = "CF-72",
               .matches = {
                       DMI_MATCH(DMI_PRODUCT_NAME, "CF-72"),
               },
       },
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:
Code:
        {
                .ident = "CF-72",
                .matches = {
                        DMI_MATCH(DMI_PRODUCT_NAME, "CF-72"),
                },
                .callback = lifebook_set_serio_phys,
                .driver_data = "isa0060/serio3",
        },
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".

Any pointers? what else should I look at?
 
Old 09-21-2007, 10:33 PM   #155
Sciallo
LQ Newbie
 
Registered: May 2003
Posts: 13

Rep: Reputation: 0
Same result

I used the 2.6.22.6 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!
 
Old 09-22-2007, 05:28 AM   #156
stan.distortion
Member
 
Registered: Sep 2005
Location: ireland
Distribution: debian with bits of everything stuck on it
Posts: 114

Rep: Reputation: 15
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.
Cheers
 
Old 09-23-2007, 12:37 AM   #157
Sciallo
LQ Newbie
 
Registered: May 2003
Posts: 13

Rep: Reputation: 0
Closer....

Awesome! They are now separate entities, one relative one absolute :-)

The problems now:

1 -Touchscreen cannot be calibrated at all: It all happens in the top left 100px X 100px (approx) part of the screen. Changing the min and max numbers in the xorg.conf changes absolutely nothing

2 - touchpad is working right but it's way slow, I can adjust that in KDE by using the acceleration But I basically lose that function.
 
Old 09-23-2007, 02:31 PM   #158
Sciallo
LQ Newbie
 
Registered: May 2003
Posts: 13

Rep: Reputation: 0
Trials continue

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:
Code:
      int max_coord = lifebook_use_6byte_proto ? 1024 : 4096;
I changed that to
Code:
        int max_coord = 4096;
That didn't do much

- The other thing I tried:
Code:
        } else if (lifebook_use_6byte_proto) {
                input_report_abs(dev1, ABS_X,
                                 ((packet[1] & 0x3f) << 6) | (packet[2] & 0x3f));
                input_report_abs(dev1, ABS_Y,
                               4096 - (((packet[4] & 0x3f) << 6) | (packet[5] & 0x3f)));
I changed to:

Code:
        } else if (lifebook_use_6byte_proto) {
                input_report_abs(dev1, ABS_X,
                                 ((packet[1] & 0x3f) << 6) | (packet[2] & 0x3f));
                input_report_abs(dev1, ABS_Y,
                                 1024 - (((packet[4] & 0x3f) << 6) | (packet[5] & 0x3f)));
That moved my "active area" to the bottom left corner, but it's still limited to a small square no matter what numbers I try...

At this point I think I need some input from someone on how this driver works...
 
Old 09-24-2007, 07:32 AM   #159
stan.distortion
Member
 
Registered: Sep 2005
Location: ireland
Distribution: debian with bits of everything stuck on it
Posts: 114

Rep: Reputation: 15
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.

cheers

Quote:
Section "InputDevice"
Identifier "Touchscreen0"
Driver "evtouch"
Option "Device" "/dev/input/event3"
Option "Emulate3Buttons"
Option "Emulate3Timeout" "50"
Option "Name" "LBPS/2 Fujitsu Lifebook TouchScreen
Option "Mode" "absolute"
Option "SendCoreEvents" "true"
Option "MinX" "400"
Option "MaxX" "3850"
Option "MinY" "380"
Option "MaxY" "3780"
EndSection
And also 'InputDevice "Touchscreen0" ' is needed in the 'ServerLayout" section.
 
Old 09-24-2007, 06:28 PM   #160
Sciallo
LQ Newbie
 
Registered: May 2003
Posts: 13

Rep: Reputation: 0
Quote:
Originally Posted by stan.distortion View Post
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.
Where to start...

First off, I'm using a copy of the CF-29 DMI entry:

Code:
        {
                .ident = "CF-72",
                .matches = {
                        DMI_MATCH(DMI_PRODUCT_NAME, "CF-72"),
                },
                .callback = lifebook_set_6byte_proto,
        },
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:

Code:
Section "InputDevice"
        Identifier      "Synaptics Touchpad"
        Driver          "mouse"
        Option          "CorePointer"
        Option          "Mode"                  "Relative"
        Option          "Device"                "/dev/input/mouse0"
        Option          "Protocol"              "ExplorerPS/2"
        Option          "Emulate3Buttons"       "true"
        Option          "HorizScrollDelta"      "0"
EndSection
The touchpad works, clicks work right it's just painfully slow.

Stopped X and added the touchscreen section copied/pasted from stan.distortion previous post at first. Added a quote at the end of the

Code:
        Option          "Name"                  "LBPS/2 Fujitsu Lifebook TouchScreen
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.
 
Old 09-25-2007, 10:43 AM   #161
samstar
Member
 
Registered: Apr 2007
Distribution: suse 10.2
Posts: 324

Rep: Reputation: 30
Hi Sciallo,

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.

I hope this helps you,
Sam
 
Old 09-25-2007, 11:24 AM   #162
Sciallo
LQ Newbie
 
Registered: May 2003
Posts: 13

Rep: Reputation: 0
Samstar,

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.
 
Old 09-26-2007, 07:24 AM   #163
bnr
LQ Newbie
 
Registered: Jul 2007
Location: Minneapolis
Posts: 18

Rep: Reputation: 1
problems with cf-72 touchscreen

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.

here I am using:
cf-72 model CF72TCJUZPM

P-3 1.0 Ghz

pcmcia prism-3 wireless

ubuntu 7.04 Fiesty

2.6.20-custom kernel
 
Old 09-26-2007, 10:07 AM   #164
Sciallo
LQ Newbie
 
Registered: May 2003
Posts: 13

Rep: Reputation: 0
bnr,

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.
 
Old 09-26-2007, 12:20 PM   #165
Sciallo
LQ Newbie
 
Registered: May 2003
Posts: 13

Rep: Reputation: 0
The results:

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)
 
  


Reply

Tags
cf, panasonic, touchscreen, toughbook


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Touchscreen - Panasonic Toughbook CF-29 Azizcoos Linux - Hardware 14 04-26-2007 06:51 AM
Linux/GUI suggestions for Panasonic toughbook CF-71 1,000_naymes Linux - Laptop and Netbook 5 07-12-2006 07:21 PM
Panasonic ToughBook Wireless ultrabots2002 MEPIS 1 06-01-2005 10:34 AM
Sound on Panasonic CF-27 Toughbook erraticassassin Linux - Hardware 2 12-02-2004 01:32 PM
Replacing Mandrake with Slack on a Panasonic Toughbook erraticassassin Slackware 5 07-04-2004 01:49 PM


All times are GMT -5. The time now is 04:57 PM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration