Hi folks,
I got an 'imo pivot touch' monitor working (eventually) on my sheevaplug.
Here's my steps:
1) kernel module: This piece needed compiling. the EDID on mine was also 0x0, which messed with xwindows. There may be an X or hald setting to ignore that, but I was already using a custom kernel, so the driver wasn't a big deal. If someone finds a workaround for this (HALD config?) then you can just use the stock kernel module.
I used the 'udlfb' module, and pretty much did exactly what an earlier post suggested:
http://lists.freedesktop.org/archives/libdlo/2009-June/000125.htmldmesg output:
DisplayLink device attached
ret control msg 0: 4 1500f0
EDID XRES 800 YRES 480
INIT VIDEO 0 800 480
ret control msg 1 (STD_CHANNEL): 16
ret bulk 2: 156 156
ret bulk 3: 0
found valid mode...0
screen base allocated !!!
colormap allocated
2) X config. Several things going on here:
Video: I had the same problem as a previous poster, that the fonts were way too big. the DPI was off. To correct it, i looked up the size of the monitor's viewable area: 155mm x 93mm. I put those values in and it worked.
I don't remember if i had to install the displaylink driver, now that i think of it. I may have compiled it. At any rate that's what i used
if i did, this was the one i used:
wget http://projects.unbit.it/downloads/udlfb-0.2.3_and_xf86-video-displaylink-0.3.tar.gz
tar xvf udlfb-0.2.3_and_xf86-video-displaylink-0.3.tar.gz
cd xf86-video-displaylink/
./configure
make
make install
If it complains about missing X packages, install xorg-dev (you can uninstall it after)
full xorg config at the end of the post
Touchscreen:
I installed the 'evtouch' driver for the touchscreen ( apt-get install xserver-xorg-input-evtouch )
But it didn't work, and kept saying 'couldn't grab device'. Turns out the synaptics driver had it and didn't let go. Rather than fight it, i just removed that driver ( apt-get remove xserver-xorg-input-synaptics )
The calibration wouldn't work at all, no matter what i tried. Kept complaining about a missing font. ( '*freemono*' i think it was ). However, the touchscreen seemed to be working ok, except that the X axis was mirrored, eg touching the left-side middle would move the pointer to the right-side middle.
I tried all sorts of X configurations, but nothing worked, eventually i found that the HALD cfg file was overriding everything. The driver claims to support a a 'SwapX' command, but i never did get that to work. I ended up just swapping x-min and x-max. Here is my final configuration:
/usr/share/hal/fdi/policy/20thirdparty/50-eGalax.fdi
swapped xmin and xmax
file contents:
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
<device>
<match key="info.product" contains="eGalax">
<match key="info.capabilities" contains="input">
<merge key="input.x11_driver" type="string">evtouch</merge>
<merge key="input.x11_options.minx" type="string">3945</merge>
<merge key="input.x11_options.miny" type="string">197</merge>
<merge key="input.x11_options.maxx" type="string">130</merge>
<merge key="input.x11_options.maxy" type="string">3894</merge>
<merge key="input.x11_options.taptimer" type="string">30</merge>
<merge key="input.x11_options.longtouchtimer" type="string">750</merge>
<merge key="input.x11_options.longtouched_action" type="string">click</merge>
<merge key="input.x11_options.longtouched_button" type="string">3</merge>
<merge key="input.x11_options.oneandhalftap_button" type="string">2</merge>
<merge key="input.x11_options.movelimit" type="string">10</merge>
<merge key="input.x11_options.touched_drag" type="string">1</merge>
<merge key="input.x11_options.maybetapped_action" type="string">click</merge>
<merge key="input.x11_options.maybetapped_button" type="string">1</merge>
</match>
</match>
</device>
</deviceinfo>
be sure to restart hald after making the change
My full X config:
Section "Files"
ModulePath "/usr/lib/xorg/modules"
ModulePath "/usr/local/lib/xorg/modules"
EndSection
Section "ServerLayout"
Identifier "Server Layout"
Screen 0 "DisplayLinkScreen"
EndSection
Section "Device"
Identifier "DisplayLinkDevice"
driver "displaylink"
Option "fbdev" "/dev/fb0"
EndSection
Section "InputDevice"
Identifier "touchscreen"
Driver "evtouch"
## not sure these even do anything
Option "ReportingMode" "Raw"
Option "Emulate3Buttons"
Option "Emulate3Timeout" "50"
Option "SendCoreEvents" "On"
EndSection
Section "Monitor"
Identifier "DisplayLinkMonitor"
DisplaySize 155 93
EndSection
Section "Screen"
Identifier "DisplayLinkScreen"
Device "DisplayLinkDevice"
Monitor "DisplayLinkMonitor"
SubSection "Display"
Depth 24
Modes "800x480"
EndSubSection
EndSection
cheers, hope this helps someone
-tmk