HP TouchSmart Tx2
From Mandriva Community Wiki
Hp TouchSmart Tx2 setup guide Mandriva Linux 2010
The HP TouchSmart Tx2 series of computers is derived from the old Hp Pavillion Tx series tablet PC's. The TouchSmart's are largely similar and are hence compatible with Linux for the most part. If you don't mind not having accelerated graphics, wireless internet, or tablet functionality these computers are productively useable out of the box.
With Mandriva 2010 and other newer linux distributions most of these computers will work out of the box with minimal configuration by the user. However the tablet in these TouchSmart tablet's is a new technology and hence not as well supported as the older technology in the older Pavillion Tx series tablets. The setup of the N-Trig digitizer is the only part of the setup of this tablet that could not be handled by Mandriva's precompiled packages.
Contents |
Preliminaries
During the initial installation process choose no when the option of using a driver from the manufacturer is presented. Set up the graphics using the free and open source graphics driver.
Broadcom wireless and FLGRX
After the first boot up, click configure your computer, enter the root password you set at installation.
Set up your network connection, at this stage you should use a wired internet connection directly to your router, or cable/dsl modem. Unless you bought the power pack you will need to download the driver package.
Click configure media sources. Then click add. Click add full set of sources.
Click ok.
Then click install and remove software.
In the search box labeld find type in dkms-broadcom. Click ok when it ask about installing other packages.
At this time go to the find box and type in dkms-flgrx, then click ok when it ask about installing other packages.
Click quit
Broadcom Setup
Click network and internet, follow the prompts. The Broadcom wireless option should be present.
ATI graphics Setup
Click hardware, then set up graphical server. Follow the prompts, this time choose yes when prompted to choose the manufacturer's driver.
Mandriva Linux with an N-Trig tablet
The following is taken from [[1]] with minor modifacations.
N-trig driver
The touchscreen need an up-to-date version of a kernel module: "hid-ntrig.c". No pre-compiled kernel can fit So you must compile it as a kernel module.
- install a very recent kernel (2.6.31). You can do that by clicking "configure your computer", click "install & remove software". In the find box type kernel-source and select the most up to date source package. Then search for gcc and install gcc c++, do likewise for libqt3 or lib64qt3 if you are running a 64 bit system. Then follow the directions here for compiling a custom kernel [2]
- replace the existing /usr/src/<kernel-flavor>/drivers/hid/hid-ntrig.c by the latest one from git repository : [3]
- recompile the driver (or the kernel if you have chosen to do so). I strongly suggest recompiling the kernel.
linuxwacom driver
You will need the latest linuxwacom-dev driver to get the touch works perfectly. The 8.4.3 release doesn't manage touch events properly. This was improved in 2009, october, 20. So you have to take linuxwacom latter than 0.8.5 from [4] or the latest dev version from CVS.
Furthermore, the n-trig patch is still NOT included in the linuxwacom project CVS : linuxwacom needs a small patch to recognize the n--trig device : in the file src/xdrv/wcmUSB.c, after
{0xE3, 2540, 2540, &usbTabletPC }, /* TabletPC 0xE3 */
add
{0x01, 935, 1122, &usbTabletPC } /* TabletPC 0x01 */
and, in function usbWcmInit(), replace
if (sID[1] == 0x056A) by
if (sID[1] == 0x056A || sID[1] == 0x1b96) /* Vendor is wacom or n-trig) */
Then, compile it with ./configure --enable-wacom --enable-xsetwacom --enable-wacomdrv --enable-xserver64 . Carefully check the result of the configure, and add required sources (by YaST) if someones missed. Do NOT pass through errors at this step. When everything is perfect, you can run make and make install.
- After recompiling the driver copy wacom.(k)o (ko if you have a 64 bit system) from linuxwacom-dev/src/2.6.x (choose the latest number as of this writing it's 2.6.28 in the CVS code) to the directory /lib/modules/2.6.3x-mnbcustom/kernel/drivers/input/tablet .
sample xorg.conf
If you use this xorg.conf and you are using Mandriva this will work for you.
# File generated by XFdrake (rev )
# **********************************************************************
# Refer to the xorg.conf man page for details about the format of
# this file.
# **********************************************************************
Section "ServerFlags"
Option "DontZap" "False" # disable <Ctrl><Alt><BS> (server abort)
AllowMouseOpenFail # allows the server to start up even if the mouse does not work
#DontZoom # disable <Ctrl><Alt><KP_+>/<KP_-> (resolution switching)
EndSection
Section "Module"
Load "dbe" # Double-Buffering Extension
Load "v4l" # Video for Linux
Load "extmod"
Load "glx" # 3D layer
Load "dri" # direct rendering
EndSection
Section "Monitor"
Identifier "monitor1"
VendorName "Generic"
ModelName "Flat Panel 1280x800"
HorizSync 31.5-50.0
VertRefresh 56.0-65.0
EndSection
Section "Device"
Identifier "device1"
BoardName "ATI Radeon HD 2000 and later (radeonhd/fglrx)"
Driver "fglrx"
Option "DPMS"
EndSection
Section "Screen"
Identifier "screen1"
Device "device1"
Monitor "monitor1"
DefaultColorDepth 24
Subsection "Display"
Depth 8
Modes "1280x800"
EndSubsection
Subsection "Display"
Depth 15
Modes "1280x800"
EndSubsection
Subsection "Display"
Depth 16
Modes "1280x800"
EndSubsection
Subsection "Display"
Depth 24
Modes "1280x800"
EndSubsection
EndSection
Section "ServerLayout"
Identifier "layout1"
Screen "screen1"
InputDevice "stylus" "SendCoreEvents"
InputDevice "touch" "SendCoreEvents"
EndSection
Section "InputDevice"
Identifier "stylus"
Driver "wacom"
Option "AlwaysCore" "on"
Option "Device" "/dev/input/by-path/pci-0000:00:14.5-usb-0:2:1.0-event-mouse"
Option "DeviceName" "stylus"
Option "ForceDevice" "ISDV4"
Option "InputFashion" "Pen"
Option "Mode" "Absolute"
Option "Name" "ISDV4 TABLET PC Stylus (USB)"
Option "Protocol" "Auto"
Option "Button2" "3"
Option "TPCButton" "on"
Option "Type" "stylus"
Option "USB" "on"
Option "Vendor" "TABLET PCs"
EndSection
Section "InputDevice"
Identifier "touch"
Driver "wacom"
Option "AlwaysCore" "on"
Option "Device" "/dev/input/by-path/pci-0000:00:14.5-usb-0:2:1.0-event-mouse"
Option "DeviceName" "touch"
Option "ForceDevice" "ISDV4"
Option "InputFashion" "Touch"
Option "Mode" "Absolute"
Option "Name" "ISDV4 TABLET PC Touch (USB)"
Option "Protocol" "Auto"
Option "Suppress" "0"
Option "Type" "touch"
Option "Touch" "on" # required to get touch move the pointer
Option "USB" "on"
Option "TopX" "0"
Option "TopY" "0"
Option "BottomX" "9600"
Option "BottomY" "7200"
Option "Buttons" "1"
Option "Vendor" "TABLET PCs"
EndSection
Then, restart the X server (or reboot). that's done !
linuxwacom troubleshooting
- Xorg crashes when logout : add Option "Debuglevel" "10" in your stylus and touch devices in your /etc/X11/xorg.conf (or in the .fdi file if configured by .fdi files), and carefully check the X server logs. If you find something with xf86WcmUninit just before the X server crash, take a look at http://sourceforge.net/tracker/?func=detail&aid=2889028&group_id=69596&atid=525124
- in any other case, follow the how-to.
Multitouch
Although multitouch events are sent by the hardware, most of software doesn't take advantages of that feature : the n-trig driver still does not send any multitouch events to the linuxwacom driver, and the linuxwacom driver multitouch support is very fresh, only in the dev branch. There is a python script to detect a change of screen position and rotate screen, stylus, and touch accordingly : Magick Rotation. See [5] (version 0.3.2 - 10/2009) and/or check for a newer version or a better solution (it consume about 2% of processor power just to do that).

