Search:  
Gentoo Wiki

HP_Pavillon_tx1000z

This article is part of the Hardware series.
Laptops TV Tuner Cards Wireless Servers Storage Other Hardware Motherboards Related

Contents

Introduction

HP Pavillon tx1000z series are powerful touchscreen equipped Linux unfriendly ultra portable laptops.

According to the options you choose inside you can have various model numbers (complete list can be found here). The only things that change from a model to another are CPU power, RAM, disk space, bluetooth capability, lightscribe capability. So according to the model you got, some parts of this HOWTO might not apply for you.

It seems at first most of the things weren't working well with Linux on this laptop but with the time most of the hardware is now supported.

Hardware specs and drivers

General configuration

Kernel

Boot loader

If your laptop freezes time to time, generally at boot time while "Syncing hardware clock to system clock", if you have messages about an IRQ 7 in your tty, you should add this at the end of your kernel loading line:

Code: end of kernel loading line in bootloader
 
acpi_osi="!Linux" acpi_os_name="Windows 2006" irqfixup pci=nommconf noapic

Graphics

NVIDIA

The graphic card is listed as:

Code: lspci
 
00:05.0 VGA compatible controller: nVidia Corporation C51 [Geforce 6150 Go] (rev a2)

Latest NVIDIA proprietary drivers work well with this card:

Code: nvidia drivers
 
media-video/nvidia-settings
     Available versions:  1.0.20070621 ~169.04
     Installed versions:  1.0.20070621(03:46:20 12/02/07)
     Homepage:            http://www.nvidia.com/
     Description:         NVIDIA Linux X11 Settings Utility

x11-drivers/nvidia-drivers
     Available versions:  1.0.7185 1.0.9639 71.86.01 96.43.01 100.14.09 ~100.14.11 100.14.19 [M]~100.14.23
     Installed versions:  100.14.19(20:42:38 11/30/07)(kernel_linux -acpi -gtk -multilib)
     Homepage:            http://www.nvidia.com/
     Description:         NVIDIA X11 driver and GLX libraries

Official nvidia drivers conflict with builtin drivers. If you want to use the binary proprietary nvidia drivers you will have to disable nvidia support in the kernel:

Linux Kernel Configuration: Video drivers
Device Drivers  --->
   Graphics support  --->
      <*>   VESA VGA graphics support
            VESA driver type (vesafb)  --->
      < > nVidia Framebuffer Support

Touchscreen

eGalax drivers

You can use the (binary proprietary) drivers provided by the touchscreen maker in order to get it work properly. Response is much better with these drivers than the builtin Vista support.

For this solution to work you need to have hiddev support in your kernel:

Linux Kernel Configuration: hiddev
Device Drivers  --->
   HID Devices  --->
      <*> USB Human Interface Device (full HID) support
      [*]   /dev/hiddev raw HID device support

As well as EventInterface support:

Linux Kernel Configuration: Eventinterface
Device Drivers  --->
   Input device support  --->
      <*>    Event interface

Go to [1 ] (if the url does not work, go to [2 ], click ENTER then SUPPORT / Touch solutions / Drivers and hit Linux). Download the latest 64 bit kernel 2.6 drivers.

Then, as root:

$ tar xvfz TouchKit64_1.07.0907.tar.gz
$ cd TouchKit64
$ cp egalax_drv.so /usr/lib64/xorg/modules/input/

Add to the section "ServerLayout" of your xorg.conf:

File: /etc/X11/xorg.conf
 
  InputDevice    "EETI"      "SendCoreEvents"
  

And add the new device:

File: /etc/X11/xorg.conf

File: /etc/X11/xorg.conf
 
 Section "InputDevice"
           Identifier     "EETI"
           Driver         "egalax"
           Option         "Device" "/dev/usb/hiddev0"
           Option         "Parameters" "/etc/egalax.cal"
           Option         "ScreenNo" "0"
 EndSection

Restart your xorg server and as root:

$ cd TouchKit64
$ ./TouchKit

If no box message appear and a GUI with several tab shows up, then you have it right and you can go to the calibration tab.

Unfortunately you will have to recalibrate every time you rotate the screen.

evtouch

Evtouch driver works great, and more importantly works when you rotate the screen (it interpolate coordinates of the pointer when xrandr is called)

First you have to add evtouch to your keywords since it is not marked as stable and emerge it:

$ echo "x11-drivers/xf86-input-evtouch ~amd64" >> /etc/portage/package.keywords
$ emerge -av x11-drivers/xf86-input-evtouch

You will notice that emerge gives you the part to add to your xorg.conf

Follow the note, add this at the end of your xorg.conf:

File: /etc/X11/xorg.conf
 
Section "InputDevice"
        Identifier "touchscreen"
        Driver "evtouch"
        Option "Device" "/dev/input/evtouch_event"
        Option "DeviceName" "touchscreen"
        Option "ReportingMode" "Raw"
        Option "Emulate3Buttons"
        Option "Emulate3Timeout" "50"
        Option "SendCoreEvents" "On"
       Option "Calibrate" "1"
EndSection
  

Don't forget to add the device to the ServerLayout section (and deactivate egalax device if you used it before):

File: /etc/X11/xorg.conf
 
Section "ServerLayout"
        Identifier      "Default Layout"
        screen 0        "Default Screen" 0 0
        Inputdevice     "Generic Keyboard"
# ACCORDING TO EVTOUCH DOCS ALL OTHER POINTER IN XSERVER 7.2 OR NEWER
# ALL OTHER DEVICES MUST BE DISABLED. This will fix multitap problems.
# Set the configured mouse driver to "void" and merge the xf86-input-void build
        Inputdevice     "Configured Mouse" "SendCoreEvents"
#this is the egalax device
#       InputDevice    "EETI" "SendCoreEvents"
#this is the evtouch device
        InputDevice     "touchscreen"   "SendCoreEvents"
#this is the touchpad
        InputDevice     "Synaptics Touchpad" "CorePointer"
EndSection
  

Then, restart udev to take the evtouch udev rules into consideration:

$ udevcontrol reload_rules
$ udevstart

Calibration program has the path to mandatory file hardcoded and it will complain if it does not find it, so:

$ cp /usr/share/xf86-input-evtouch/empty_cursor.xbm /

Then quit your X session, go to a tty and stop the X server:

$ /etc/init.d/xdm stop

and run the calibration script:

$ calibrate.sh

A white screen appears with little X, one in the center and others on the corners and on the middle of the screen borders.

Tap anywhere on the screen, coordinates should appear on the up left corner as you move the pointer. Press the ENTER key, the X at the up left corner should have become red. Tap on the X, the next X on the right becomes red. Tap on all the red X. When you tap on the last X, the program stops and the X server stops.

A file "out.txt" has been generated in the directory from where you launched the calibration script. It should look like that:

File: /etc/X11/xorg.conf
 
        Option        "MinX"        "60"
        Option        "MinY"        "128"
        Option        "MaxX"        "3988"
        Option        "MaxY"        "3974"
        Option        "x0"        "5"
        Option        "y0"        "4"
        Option        "x1"        "-1"
        Option        "y1"        "2"
        Option        "x2"        "-4"
        Option        "y2"        "-1"
        Option        "x3"        "2"
        Option        "y3"        "0"
        Option        "x4"        "-2"
        Option        "y4"        "1"
        Option        "x5"        "-4"
        Option        "y5"        "-1"
        Option        "x6"        "-2"
        Option        "y6"        "-4"
        Option        "x7"        "0"
        Option        "y7"        "-2"
        Option        "x8"        "3"
        Option        "y8"        "3"
 

Copy past the 4 first lines to the Device section of your xorg.conf and comment out the Calibration option:

File: /etc/X11/xorg.conf
 
Section "InputDevice"
        Identifier "touchscreen"
        Driver "evtouch"
        Option "Device" "/dev/input/evtouch_event"
        Option "DeviceName" "touchscreen"
        Option "ReportingMode" "Raw"
        Option "Emulate3Buttons"
        Option "Emulate3Timeout" "50"
        Option "SendCoreEvents" "On"
#       Option "Calibrate" "1"
        Option "MinX" "60"
        Option "MinY" "128"
        Option "MaxX" "3988"
        Option "MaxY" "3974"
EndSection
  

Remove the now useless files and restart your X server:

$ rm /empty_cursor.xbm out.txt
$ /etc/init.d/xdm start

Everything should work, if you rotate the screen with xrandr, you can use the touchscreen as usual

Character recognition

You can use CellWriter which works pretty good and more importantly offers a Windows style "always on top" keyboard to select characters with the mouse.

CellWriter is not currently stable in portage so you should, as root:

$ echo "media-gfx/cellwriter ~amd64" >> /etc/portage/package.keywords
$ emerge -av media-gfx/cellwriter

You can run the program by launching command

# cellwriter

After a training for each character you can start writing or displaying the virtual keyboard.

Auto Rotation

I wrote this shell script and mapped it to one of the multimedia keys (that i got to work).

note: Don't forget to 'chmod +x' to make it executable

File: ~/bin/auto-rotate.sh
 
#!/bin/bash
orient=$(xrandr -q --verbose | awk 'NR==2{print $5}') #;echo $var
if [ "$orient" = "normal" ]; then
        xrandr -o right
elif [ "$orient" = "right" ]; then
        xrandr -o inverted
elif [ "$orient" = "inverted" ]; then
        xrandr -o left
elif [ "$orient" = "left" ]; then
        xrandr -o normal
fi
  

Touchpad

If you want to be able to use the wheel on the right of the touchpad you will have to get the synaptics drivers:

$ emerge -av x11-drivers/synaptics

OR

you can add synaptics as an input device in you make.conf:

File: /etc/make.conf
 
INPUT_DEVICES="keyboard mouse synaptics"

Xorg.conf

Here is an example of xorg.conf for this laptop:

File: /etc/X11/xorg.conf
 
Section "InputDevice"
        Identifier      "Generic Keyboard"
        Driver          "kbd"
        Option          "CoreKeyboard"
        Option          "XkbRules"      "xorg"
        Option          "XkbModel"      "pc105"
        Option          "XkbLayout"     "us"
EndSection

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

Section "InputDevice"
        Identifier      "Synaptics Touchpad"
        Driver          "synaptics"
        Option          "SendCoreEvents"        "true"
        Option          "Device"        "/dev/psaux"
        Option          "Protocol"      "auto-dev"
        Option          "HorizEdgeScroll"       "0"
        Option          "UpDownScrolling" "1"
EndSection

Section "Device"
        Identifier      "nVidia Corporation C51 [Geforce 6150 Go]"
        Boardname       "nv"
        Busid           "PCI:0:5:0"
        Driver          "nvidia"
        Screen  0
        Option      "AddARGBGLXVisuals" "true"
EndSection

Section "Monitor"
        Identifier      "Generic Monitor"
        Vendorname      "Plug 'n' Play"
        Modelname       "Plug 'n' Play"
        Option          "RandRRotation" "on"
EndSection

Section "Screen"
        Identifier      "Default Screen"
        Device          "nVidia Corporation C51 [Geforce 6150 Go]"
        Monitor         "Generic Monitor"
        Defaultdepth    24
        Option          "metamodes"     "1280x800_60 +0+0"
        SubSection "Display"
                Depth   24
        EndSubSection
EndSection

Section "ServerFlags"
        Option "Xinerama" "False"
EndSection

 Section "InputDevice"
           Identifier     "EETI"
           Driver         "egalax"
           Option         "Device" "/dev/usb/hiddev0"
           Option         "Parameters" "/etc/egalax.cal"
           Option         "ScreenNo" "0"
 EndSection

Section "ServerLayout"
        Identifier      "Default Layout"
        screen 0        "Default Screen" 0 0
        Inputdevice     "Generic Keyboard"
        Inputdevice     "Configured Mouse" "SendCoreEvents"
        InputDevice    "EETI" "SendCoreEvents"

        Inputdevice     "Synaptics Touchpad" "CorePointer"
EndSection

Section "Module"
        Load            "extmod"
        Load            "glx"
        Load            "v4l"
EndSection

Section "device" #
        Identifier      "device1"
        Boardname       "nv"
        Busid           "PCI:0:5:0"
        Driver          "nvidia"
        Option          "TwinView" "True"
        Option "TwinViewOrientation" "RightOf"

EndSection

Section "screen" #
        Identifier      "screen1"
        Device          "device1"
        Defaultdepth    24
        Monitor         "monitor1"
        SubSection "Display"
                Depth   24
                Modes           "1600x1050@65"
        EndSubSection
EndSection

Section "monitor" #
        Identifier      "monitor1"
        Vendorname      "Plug 'n' Play"
        Modelname       "Plug 'n' Play"
EndSection

Section "Extensions"
        Option "Composite" "Enable"
EndSection

Sound

Works out of the box with the latest kernel 2.6.24 and buildin hda-intel driver.

With older kernels you will need the latest alsa drivers (not the builtin drivers) in order to get the headphone plugs working properly.

Linux Kernel Configuration: Sound
Device Drivers  --->
   Sound  --->
      <*>   Sound card support
            Advanced Linux Sound Architecture  --->
               < > Advanced Linux Sound Architecture
            Open Sound System  --->
               < > Open Sound System (DEPRECATED)

Add the right alsa card to you make.conf:

File: /etc/make.conf
 
ALSA_CARDS="hda-intel"

Then:

$ echo "media-sound/alsa-driver ~amd64" >> /etc/portage/package.keywords
$ emerge -av media-sound/alsa-driver
$ rc-update add alsasound boot

Network

Wireless

Wireless works well with WEP, WPA (including WPA enterprise and stuff -- tested) using the officials (binary proprietary) drivers and ndiswrapper.

Card is listed as:

Code: lspci

03:00.0 Network controller: Broadcom Corporation BCM94311MCG wlan mini-PCI (rev 02)

First you need to enable wireless extensions in the kernel

Linux Kernel Configuration: Wireless Networking
Networking  --->
   Wireless  --->
      [*]   Wireless extensions

You will then need ndiswrapper:

$ echo "net-wireless/ndiswrapper ~amd64" >> /etc/portage/package.keywords
$ emerge -av net-wireless/ndiswrapper net-wireless/wireless-tools

Then you'll need the driver. Important things, get them from Dell not from HP (its supposed to be the same drivers but a lot of people have reported things not working after getting drivers from HP)

$ wget http://ftp.us.dell.com/network/R151517.EXE
$ unzip -a R151517.EXE

(if unzip doesn't work, use wine)

$ cd DRIVER_DIRECTORY
$ ndiswrapper -i bcmwl5.inf

Check the driver installation:

$ ndiswrapper -l
 bcmwl5 : driver installed
      device (14E4:4311) present

Add ndiswrapper to the system:

$ ndiswrapper -m

Load the module:

$ modprobe ndiswrapper

Check if everything works:

$ iwconfig

You should have a wlan0 card listed. You can follow the Gentoo Linux Documentation Wireless networking HOWTO to configure network.

For kernels 2.6.24 & 2.6.25 you should check this

Wired

Wired ethernet works with the forcedeth module.

Linux Kernel Configuration: Wired Network
Device Drivers  --->
   Network Device Support  --->
      Ethernet (10 or 100Mbit)  --->
         [*] EISA, VLB, PCI and on board controllers
         <*>     nForce Ethernet support

Modem

Bluetooth

Webcam

The different models comes with different webcams. I have had two models (1270oe amd 1345eo) which differs (as I found so far) only in CPU-model and the web-cam.

Sonix Webcam

If you have the Sonix USB 2.0 Camera (lsusb reports deviceID 0c45:62c0) it will work out of the box using uvc:

$ echo "media-video/linux-uvc ~amd64" >> /etc/portage/package.keywords
$ emerge -av media-video/linux-uvc
$ modprobe uvcvideo

Start a program that use the webcam, it should work fine.

Add uvcvideo at boot:

$ echo uvcvideo >> /etc/modules.autoload.d/kernel-2.6

Ricoh Webcam

If you have the Ricoh USB Camera R5U870 (lsusb reports deviceID 05ca:1810) you can install drivers using the Ry5u870 drivers. Download the drivers from [1] and follow the instruction in readme. I have hotplug emerged although I don't know it it is needed. The firmware must be located in the /lib/firmware as told in the README even though hotplug uses another path (/usr/lib/hotplug/firmware I believe). The cam is working with xawtv and skype-2 but kopete is hanging. My source of this information is [2]

Edit: Using the trunk-version as described in [3] solves the hanging Kopete.

Extra buttons

Multimedia keys

Most of the multimedia keys can be mapped to desktop-specific actions. How to do this varies by desktop.

For Gnome, go to System -> Preferences -> Keyboard Shortcuts. Click on the line for the action you want and then press the desired media key. Volume Up, Volume Down, Mute, Play/Pause, Skip Forward, Skip Back and Stop all seem mappable.

DVD, QuickPlay, Screen Rotate and the button with a Gear icon do not seem mappable through this method.

EDIT: I got DVD, QuickPlay to work using the gentoo multimedia keys HowTo.

Screen buttons

Remote control

Most of the remote control keys simply emulate keystrokes. No special drivers are required here. The directional keys send the same as if pressing the arrow keys on the keyboard. So long as you have the multimedia keys mapped for your desktop of choice, they will work too. Once mapped, pressing that corresponding key on the remote will echo that keystroke to the application.

CDROM

Lightscribe

Fingerprint reader

Fingerprint ready surprisingly works under Linux, thanks to fprint project. Still in development but it works not bad at all from version 0.0.5

Add the overlay as explained here: http://reactivated.net/fprint/wiki/Download#Gentoo

Then:

$ emerge fprint_demo

and test it out. The driver to use if not automatically recognized is AES1610

You can follow instructions here: http://www.reactivated.net/fprint/wiki/Pam_fprint#Setup to use it as authentification

Links

Retrieved from "http://www.gentoo-wiki.info/HP_Pavillon_tx1000z"

Last modified: Sun, 28 Sep 2008 11:25:00 +0000 Hits: 12,385