HP Pavillon tx1000z
From Gentoo Linux Wiki
| Laptops • TV Tuner Cards • Wireless • Servers • Storage • Other Hardware • Motherboards • Related |
Contents |
[edit] 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.
[edit] Hardware specs and drivers
[edit] General configuration
[edit] Kernel
[edit] 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 |
[edit] Graphics
[edit] 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
|
[edit] Touchscreen
[edit] 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.
[edit] 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
[edit] 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.
[edit] 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
|
[edit] 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" |
[edit] 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
|
[edit] 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
[edit] Network
[edit] 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
[edit] 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
|
[edit] Modem
[edit] Bluetooth
[edit] 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.
[edit] 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
[edit] 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.
[edit] Extra buttons
[edit] 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.
[edit] Screen buttons
[edit] 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.
[edit] CDROM
[edit] Lightscribe
[edit] 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
[edit] Links
- Ubuntu forums: Helpfull Hints for a tx1000: A huge thread about this laptop (most of the current article comes from here)
