Search:  
Gentoo Wiki

HARDWARE_Gentoo_AMD64_on_HP_Pavilion_dv5000

Split-arrows.gifIt has been suggested that this article be split into multiple articles accessible from a disambiguation or index page.   (Discuss)


Please format this article according to the guidelines and Wikification suggestions, then remove this notice {{Wikify}} from the article


This article is part of the Hardware series.
Laptops TV Tuner Cards Wireless Servers Storage Other Hardware Motherboards Related
Wikipedia has an article on:
HP Pavilion (computer)

Contents

Gentoo on an HP Pavilion dv5000 and dv5000z series notebook

The dv5000 is a great laptop. Sporting a 64bit AMD Turion processor, a crisp 15.4" LCD Widescreen Display, great battery life, excellent Altec Lansing speakers, with an optional built in Wireless Lan card, and DVD+/-RW; this laptop is aesthically pleasing, and fast making it great for travelers, businessmen, and students.

Introduction to this Guide

This is a hardware guide and kernel configuration of Gentoo AMD64 bit for HP pavillion dv5000. This is not a HOWTO installation for Gentoo Linux. What this guide does is to help cut down the compilation times of the Gentoo kernel by users. In doing so it gives readers an idea of what hardware features of the HP dv5000 is compatible and supported to the given kernel.

This guide also includes sections that cover additional package installation guidelines so that other hardware features can be used. It is important to note that the additional package installation is assumes that you either have partially installed Gentoo in the laptop and and a good knowledge about Gentoo portage. The Gentoo portage guidelines can be found here.

Finally this guide tackles kernel problems and limitations found in given Gentoo kernels and the HP dv5000 like APIC errors, cpu errors, Clock skew problems. Such problems are discussed in the final sections of this guidelines. As a counterpart of this section solutions for the problems are discussed as well.

Documentation

The documentation available for dv5000 is found on (Manuals) from HP's website. Gentoo Linux installation documentation can be found at Gentoo.Handbook.Networkless.Installation. Gentoo systems documentation can be found at Gentoo Docs. Gentoo Portage Package documentation which is very important to read to know how to install packages in Gentoo linux can be found at A Portage Introduction.

Hardware

Note: Upon installation of gentoo lspci is not available. lspci is included in pciutils package.

The Gentoo Kernel recognizes the following hardware included in the HP zv6000 notebook. The kernel used recognizes the generic device association but not the specific device name.

Output of lspci

lspci output (externalised in sub-article to reduce size)

Detailed lspci log can be found in HARDWARE Gentoo AMD64 on HP Pavilion dv5000

/proc/cpuinfo

The processor info of the dv5000 notebook obviously depends on the version you purchased.


Code: #cat /proc/cpuinfo on Turion64

processor	: 0
vendor_id	: AuthenticAMD
cpu family	: 15
model		: 36
model name	: AMD Turion(tm) 64 Mobile Technology ML-32
stepping	: 2
cpu MHz		: 1790.933
cache size	: 512 KB
fpu		: yes
fpu_exception	: yes
cpuid level	: 1
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni lahf_lm
bogomips	: 3589.12
TLB size	: 1024 4K pages
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc

The AMD Turion 64bit cpu has versions with different cache sizes, while the Sempron only has 256kb. Both support the following linux flags fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm 3dnowext 3dnow. These flags should be taken note of since when installing a Gentoo package or making a Gentoo package you would know that the cpu features are already included even if the flags are not called.

Overview

(the zv6000 can optionally be equipped with a Broadcom 54g Wireless card.
If so, you'll see this line in lspci instead:
Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03))

Working

(If you got the Broadcom card you can use ndiswrapper with the windows driver.
The Windows driver (bcmwl5) should come with your laptop or can be downloaded from HP)

Mostly working

Not working (yet)

(dmesg doesn't even register it as connected. It's not recognized by anything I've tried yet. I haven't tried everything, because I'd never use it anyway, but I haven't gotten it to work yet.)

Not tested

CFLAGS Settings and make.conf

Starting Gentoo installation process the cflags settings should be set so that gentoo would know the type of cpu that will be used to compile the programs and the kernel. (For more information regarding USE flags try here) To do this the make.conf must be edited. make.conf location is found in /etc/make.conf. For the zv6000 the CFLAGS should be set to CFLAGS="-march=k8 -pipe -O2.

Kernel Configuration

Gentoo LiveCD 2005.0 comes with Gentoo-Source v2.6.11-r1 and the new Gentoo LiveCD 2005.1 comes with Gentoo-Sources v.2.6.12-r6 which is an all around kernel capable of utilizing every hardware feature included in the zv6000 notebook, although Vanilla 2.6.10 sources also work well. Whatever you do make sure you use a kernel >=2.6.11-r1, since it deals much better with AMD 64bit CPUs.

Note: There are hardware issues with the gentoo-sources v 2.6.12-r6 which causes the hardware clock to get unsynched from time to time. The best solution for this problem is to upgrade the kernel to gentoo-sources v 2.6.12-r7

Setting the kernel configuration described from the displays below ensures all the hardware features on the zv6000 notebook to work.

To set the kernel do the following commands:

# cd /usr/src/linux
# make menuconfig

RTC Interupt

[*] Provide RTC interrupt

Code maturity level options

[*] Prompt for development and/or incomplete code/drivers
[*]   Select only drivers expected to compile cleanly

General Setup

Use Default settings

Loadable Module Support

Enable All

Processor Type and Features

Linux Kernel Configuration: Processor Type and Features
Processor type and features  --->
  Processor family (Generic-x86-64)  --->
    <*> /dev/cpu/*/msr - Model-specific register support
    <*> /dev/cpu/*/cpuid - CPU information support
    [*] MTRR (Memory Type Range Register) support
    [ ] Symmetric multi-processing support
    [ ] Preemptible Kernel
    [ ] SMT (Hyperthreading) scheduler support
    [ ] K8 NUMA support
    [ ] NUMA emulation support
    ( ) Maximum number of CPUs (2-256)
    [*] PM timer
    [*] Provide RTC interrupt
    [ ] IOMMU support
    [*] Machine check support
    [*] Enable seccomp to safely compute untrusted bytecode

Power management options

Linux Kernel Configuration: Power management options
Power management options (ACPI, APM)  --->
  [*] Power Management supportusted bytecode
   [*]   Software Suspend (EXPERIMENTAL)
      ACPI (Advanced Configuration and Power Interface) Support  --->
         [*] ACPI Support
         [*]   Sleep States (EXPERIMENTAL)
         <*>   AC Adapter
         <*>   Battery
         <*>   Button
         <*>   Video
         <*>   Fan
         <*>   Processor
         <*>     Thermal Zone
         [*]   NUMA support

CPU Frequency Scaling

Linux Kernel Configuration: CPU Frequency Scaling
  [*] CPU Frequency scaling
      <*>  CPU frequency translation statistics
      <*> 'powersave' governo
      <*> 'userspace' governor for userspace frequency scaling
      <*> 'ondemand' cpufreq policy governor
      <*>   AMD Opteron/Athlon64 PowerNow!
      < >   ACPI Processor P-States driver

Bus options

Linux Kernel Configuration: Bus options
Bus options (PCI, PCMCIA, EISA, MCA, ISA)  --->
  PCCARD (PCMCIA/CardBus) support  --->
      <*> PCCard (PCMCIA/CardBus) support (will turn on other options by default)
 [*] PCI Express support
 <*>   PCI Express Hotplug driver
  PCI Hotplug Support  --->
      <*> Support for PCI Hotplug (EXPERIMENTAL)
      <*>   Fake PCI Hotplug driver
      <*>   Compact PCI Hotplug driver
      [ ]     Save configuration into NVRAM on Compaq servers (Not sure about this)
      <*>   ACPI PCI Hotplug driver

Device Drivers

Linux Kernel Configuration: Device Drivers
Device Drivers  --->
  Block devices  --->
      < > Normal floppy disk support
      <*> Loopback device support

      < > Low Performance USB Block driver # Note: this can cripple usb_storage (butane note: I have this disabled and everything works fine)
      <*> RAM disk support
      (16)  Default number of RAM disks
      (4096) Default RAM disk size (kbytes)
      [*]   Initial RAM disk (initrd) support

      [*] Support for Large Block Devices
       <*> Packet writing on CD/DVD media
      [*]   Enable write caching

Generic Options

Enable all

MTD Support

Linux Kernel Configuration: MTD Support
<M> Memory Technology Device (MTD) support
<M>   MTD concatenating support
<M> Direct char device access to MTD devices
<M> FTL (Flash Translation Layer) support
<M> INFTL (Inverse NAND Flash Translation Layer) support
    NAND Flash Device Drivers  --->
    <M> NAND Device Support
    <M> DiskOnChip 2000, Millennium and Millennium Plus

Parallel Port Support

Linux Kernel Configuration: Parallel Port Support
< > Parallel port support
< >   PC-style hardware
< >     Multi-IO cards (parallel and serial)
< >   Support for PCMCIA management for PC-style ports
[ ] Support foreign hardware
[ ] IEEE 1284 transfer modes

PnP

Linux Kernel Configuration: Plug and Play support
 Plug and Play support
 [*] Plug and Play support
 [*]   PnP Debug Messages
 [*]   Plug and Play ACPI support (EXPERIMENTAL)

ATA IDE Support

Linux Kernel Configuration: ATA IDE Support
ATA/ATAPI/MFM/RLL support
 <*>   Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
 <*>     Include IDE/ATA-2 DISK support
 [*]     Use multi-mode by default
 <*>     PCMCIA IDE support
 <*>     Include IDE/ATAPI CDROM support
 <*>     Include IDE/ATAPI FLOPPY support
 < >     SCSI emulation support
 [*]     IDE Taskfile Access
 <*>     generic/default IDE chipset support
[*]     PCI IDE chipset support
[*]       Sharing PCI IDE interrupts support
[ ]       Boot off-board chipsets first support
<*>       Generic PCI IDE Chipset Support
[*]       Generic PCI bus-master DMA support
[*]         Force enable legacy 2.0.X HOSTS to use DMA
[*]         Use PCI DMA by default when available
[ ]           Enable DMA only for disks
<*>         ATI IXP chipset IDE support

Block Devices

Linux Kernel Configuration: Block Devices
< > Normal floppy disk support
<*> Parallel port IDE device support
<*> Loopback device support
< > Low Performance USB Block driver
<*> RAM disk support
(16)  Default number of RAM disks
(4096) Default RAM disk size (kbytes)
[*]   Initial RAM disk (initrd) support
[*] Support for Large Block Devices
< > ATA over Ethernet support


SCSI Support

use default settings.

Multi-Device Support

dv5000 doesn't have any RAID or LVM devices

FUSION MPT Support

dv5000 doesn't have any of these device

IEEE 1394 Support

Linux Kernel Configuration: IEEE 1394 (FireWire) support
<*> IEEE 1394 (FireWire) support
[*]   Excessive debugging output
[*]   OUI Database built-in
<*>   Texas Instruments PCILynx support
<*>   OHCI-1394 support
<*>   OHCI-1394 Video support
<*>   SBP-2 support (Harddisks etc.)
[*]     Enable Phys DMA support for SBP2 (Debug)
<*>   Ethernet over 1394
<*>   OHCI-DV I/O support
<*>   Raw IEEE1394 I/O support

I20 Device Support

dv5000 doesn't support any I20 devices.

Networking support

Linux Kernel Configuration: Networking support
[*] Networking support
<*> IrDA (infrared) subsystem support --> Enable if your notebook comes with this feature.
<*> Bluetooth subsystem support  ---> Enable if your notebook comes with this feature.
[*] Network device support
   Ethernet (10 or 100Mbit)  --->
   [*] Ethernet (10 or 100Mbit)
   [*] EISA, VLB, PCI and on board controllers
   <*>   RealTek RTL-8139 PCI Fast Ethernet Adapter support
   <*>   RealTek RTL-8139 C+ PCI Fast Ethernet Adapter support
   Wireless LAN (non-hamradio)  --->
   [*] Wireless LAN drivers (non-hamradio) & Wireless Extensions
<*>   Network console logging support (EXPERIMENTAL)

ISDN Support

Haven't played with these devices.

Telephony Support

Haven't played with these devices.

Input device support

Linux Kernel Configuration: Input device support
Input device support  --->
<*> Mouse interface
[*]   Provide legacy /dev/psaux device
(1024) Horizontal screen resolution --> Resolution would be compiled and changed after the video drivers have been setupped.
(768) Vertical screen resolution
<*> Touchscreen interface
<*> Joystick --> Build this in if you have one.
(240) Horizontal screen resolution
(320) Vertical screen resolution
<*> Event interface
--- Serial i/o support
<*> i8042 PC Keyboard controller
<*> PCI PS/2 keyboard and PS/2 mouse controller
--- Input Device Drivers
[*] Keyboards
<*>   AT keyboard suppor
[*] Mice
<*>   PS/2 mouse
[ ] Joysticks --> Build this in if you have one.
[*] Misc
<*>   PC Speaker support --> onboard speaker support
<*>   User level driver support

Character Devices

Linux Kernel Configuration: Character devices
  Character devices  --->
[*] Virtual terminal
[*]   Support for console on virtual terminal
[*] Inotify file change notification support
[*] Unix98 PTY support
[*] Legacy (BSD) PTY support
(256) Maximum number of legacy PTY in use
<*> Parallel printer support
[*]   Support for console on line printer
<*> Texas Instruments parallel link cable support
<*> Intel/AMD/VIA HW Random Number Generator support
<*> /dev/agpgart (AGP Support)
<*>   AMD Opteron/Athlon64 on-CPU GART support
< > Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
<*> RAW driver (/dev/raw/rawN) (OBSOLETE)
[*] HPET - High Precision Event Timer
[*]   Allow mmap of HPET
(256) Maximum number of RAW devices to support (1-8192)
<*> Hangcheck timer

The ATI Proprietary Drivers require Direct Rendering Manager to be off in-kernel. The proprietary drivers contain their own DRM support.

I2C support

  I2C support ---> Search for compatible ati chipset. Currently no ATIIXP chipset Support. Which means there is no lm sensors thus no hardware temp monitoring. Hello Wiki Bug

Graphics Support

Linux Kernel Configuration: Graphics support
  Graphics support  --->
      [*] Support for frame buffer devices
      [*]   Enable Video Mode Handling Helpers
      < >   VGA 16-color graphics support (DO NOT ENABLE)
      <*>   VESA VGA graphics support
                 VESA driver type (vesafb)  --->
      <*> ATI Radeon display support
      Console display driver support  ---> (enable all)
      Logo configuration  ---> (enable all)
      [ ] Backlight & LCD device support  --->
      [*] Support for the framebuffer splash

Sound Card Support

Linux Kernel Configuration: Sound Card Support
  Sound  --->
      <*> Sound card support
Advanced Linux Sound Architecture  --->
<*> Advanced Linux Sound Architecture
<*> Sequencer support
<*> OSS Mixer API
<*> OSS PCM (digital audio) API
[*] OSS Sequencer API
<*> Emulation for 32-bit applications
<*> Generic MPU-401 UART driver
PCI devices
<*> ATI IXP AC97 Controller
<*> ATI IXP Modem

USB support

Linux Kernel Configuration: USB support
  USB support  --->
<*> Support for Host-side USB
[*]   USB verbose debug messages
[*]   USB device filesystem
[*]   Enforce USB bandwidth allocation (EXPERIMENTAL)
[*]   Dynamic USB minor allocation (EXPERIMENTAL)
[*]   USB suspend/resume (EXPERIMENTAL)
      <*> EHCI HCD (USB 2.0) support
      <*> OHCI HCD support
      <*> UHCI HCD (most Intel and VIA) support
<*> USB Printer support
<*> USB Mass Storage support
[ ]   USB Mass Storage Write-Protected Media Detection (EXPERIMENTAL)
      [ ]   SanDisk SDDR-09 (and other SmartMedia) support (EXPERIMENTAL) (not sure)
      [ ]   SanDisk SDDR-55 SmartMedia support (EXPERIMENTAL) (not sure)
      [ ]   Lexar Jumpshot Compact Flash Reader (EXPERIMENTAL) (not sure)
<*> USB Human Interface Device (full HID) support
[*]   HID input layer support
[ ]     Force feedback support (EXPERIMENTAL)
[*]   /dev/hiddev raw HID device support

Firmware Drivers

 use default settings

File Systems

Use default settings.
Build in all Dos/Fat/NTFS Filesystem.

Profiling Support

 Use default settings for now

Kernel Hacking

 Use default settings for now

Security Options

 Use default settings for now

Cryptographic Options

 Use default settings for now

Library Routines

 Use default settings for now

Once the kernel configuration is setup properly the next steps are to compile the kernel and reboot the notebook.

Hardware Package and Software Dependencies

The section discusses the installation of several packages and softwares that will utilize the hardware features from the zv6000 notebook.

Ethernet Card Configuration

Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+:

The kernel that comes with the Gentoo Live CD 2005.0 and Gentoo Live CD 2005.1, gentoo-sources-2.6.11-r1 and 2.6.12-r7 specifically have a driver ready module that can be installed in the kernel

Broadcom Corporation BCM4306 802.11b/g Wireless card

See the Broadcom 43xx article.


Alternate option

Warning: This is a warning about a possibly dangerous action.

I have a dv5030us that had a BCM4318 model wireless card in it. No matter what I did I could not get it to work on x86-64, whether it was bcm43xx-fwcutter with native drivers or ndiswrapper. I was changing settings on my router to see if it would connect even then.

Using other Wireless Devices

Ultimately, I decided to get a new wireless card, an Atheros brand of course. I checked with MadWifi's site to make sure the one I got would be compatible (I have an AR5212).

The problem is that HP (for a reason I cannot figure out) does block all cards that are not Broadcom 43xx series. When I put in the new card, the BIOS told me it was 'unsupported' and to remove it. I did however find out that BIOS could be modified, and then the card would work.

Again, this is very risky and people have ended up with bricked laptops, most likely because they did the editing wrong. I took the risk, even without warranty, but another time around I would want to have the warranty for sure, such as when I get my next laptop. Every model laptop has a different BIOS and a different BIOS set of files, so you need to check you get the right one. As well, you cannot follow these instructions verbatim because every BIOS has the hardware IDs at a different offset.

BIOS modification instructions

Unfortunately, you need to do the flashing in Windows. Again, this is very risky and you may end up bricking your laptop. But it was absolutely worth it for me since it worked and now I have fully working wireless here, even with WPA (using wpa_supplicant of course).

Video Card Configuration

Direct Rendering

The ati drivers have direct rendering support, however, the support does not work on the zv6000 series out of the box. Most notably, the ati drivers do not like the on-board video memory. This means that to get such support, you must configure, in BIOS, the ATI card to use shared video memory (thus stealing from your RAM). The ati drivers also do not like the in-kernel DRM (Direct Rendering Manager), so this must not be included in the kernel (previous versions of this document suggested the in-kernel DRM, however, this has now been changed).

To use shared memory:

  1. Reboot your computer and press F10 to enter BIOS
  2. Go to the 'Advanced' tab
  3. Select 'Video Graphic Mode'
  4. Change to 'UMA'
  5. Set 'Shared Video Memory' to preferred memory size (Optional)

Now proceed to set-up the ati drivers. After setting up the drivers, make sure that the dri and glx modules are being loaded in /etc/X11/xorg.conf:

Section "Module"
    Load        "dbe"
    Load        "extmod"
    Load        "type1"
    Load        "freetype"
    Load        "glx" # We want OpenGL
    Load        "dri" # We want Direct Rendering
EndSection

And set DRI to have the correct permissions:

Section "dri"
    Mode 0666
EndSection

[Not from the original author] I just could make my Compaq R4146EA ATI Radeon XPRESS 200M work. Problem was each time I started with the NoDRI option off the X process got 99% CPU utilization and the whole box didn't respond (not even consoles were operative). I found the problem to be lspci -v *always* shows 256M for the video memory regardless of the actual values one configure in BIOS. So configuring the BIOS to use the 128M video memory plus another 128M taken from the system seems to work for me... as a workaround at least. Good thing good be someone to check why lspci always states 256M since it may be a bug either in the BIOS or in the lspci code. Hope this helps those of you suffering this too, Rolando Zappacosta

ATI Driver Setup

The ATI 200m Xpress works with Xorg by default, however, the resolution will be set at 1024x768 and not the native 1280x800 widescreen resolution. In order to get the latter some configuration is required. ATI drivers are needed to be installed.

To install these drivers, do the following:

# emerge ati-drivers

Once the drivers are installed, Xorg needs to be configured. Just change your device section in /etc/X11/xorg.conf to:

Section "Device"
    Identifier                          "Radeon Xpress 200M"
    Driver                              "fglrx"
    Option "mtrr"                       "off"
    Option "DesktopSetup"               "(null)" # this is used for dual monitor setups
    Option "VideoOverlay"               "on"
    Option "OpenGLOverlay"              "off"
    Option "CenterMode"                 "off"
    Option "PseudoColorVisuals"         "off"
EndSection

Advanced ATI Driver Setup

The ati drivers provide many more advanced options, such as dual monitor support. To find out the options you may want to try the xorg generator that comes with the ati-drivers. However, note that this will overwrite your /etc/X11/xorg.conf so back it up before you run the configurator. The command is:

# /opt/ati/bin/fglrxconfig

Resolution Configuration

To get the 16:10 resolutions (e.g., 1280x800), add a new section to /etc/X11/xorg.conf as follows:

Section "Modes"
    Identifier  "16:10"
    # 1280x800 @ 60.00 Hz (GTF) hsync: 49.68 kHz; pclk: 83.46 MHz
    Modeline    "1280x800"  83.46  1280 1344 1480 1680  800 801 804 828  -HSync -Vsync
    # 1152x720 @ 60.00 Hz (GTF) hsync: 44.76 kHz; pclk: 67.32 MHz
    Modeline    "1152x720"  67.32  1152 1208 1328 1504  720 721 724 746  -HSync -Vsync
    # 1024x640 @ 60.00 Hz (GTF) hsync: 39.78 kHz; pclk: 52.83 MHz
    Modeline    "1024x640"  52.83  1024 1072 1176 1328  640 641 644 663  -HSync -Vsync
    # 800x500 @ 60.00 Hz (GTF) hsync: 31.08 kHz; pclk: 31.33 MHz
    Modeline    "800x500"  31.33  800 824 904 1008  500 501 504 518  -HSync -Vsync
EndSection

Then, edit your monitor section to allow the use of the 16:10 modes as follows:

Section "Monitor"
    Identifier  "DFP"
    UseModes    "16:10"  # Monitor accepts modes we gave earlier
    DisplaySize 323 215  # Size of 15.4 in screen used for calculating dpi
    Option      "dpms"
EndSection

Then actually enable the modes in the screen section:

Section "Screen"
    Identifier  "DFP Screen"
    Device      "Radeon Xpress 200M"
    Monitor     "DFP"
    DefaultDepth        24
    SubSection  "Display"
        Modes   "1280x800" "1152x720" "1024x640" "800x500" "1024x768" "800x600" "640x480"
    EndSubSection
EndSection

Then just make sure that your server layout is using the correct screen:

Section "ServerLayout"
    Identifier  "default"
    Screen      "DFP Screen"
    InputDevice "Mice"  "CorePointer"
    InputDevice "Keyboard"      "CoreKeyboard"
EndSection

Cpu Frequency scaling

Check than you have some files that start with cpuinfo_ and scaling_ in the direcory /sys/devices/system/cpu/cpu0/cpufreq;

If you don't probably either don't have /sys mounted or you are missing <sysfs> support in your kernel configuration. (Check if acpi-cpufreq module is loaded.) The next thing that needs to be done is to choose a daemon to dynamically control the CPU frequecy. I strongly suggest to use speedfreq, as it changes frequency faster than others and it's very simple to configure. Simply emerge it and add it to your default run level.

emerge speedfreq
rc-update add speedfreq default

Or, as speedfreq is masked in the portagetree; emerge cpufreqd and add it to the default runlevel

Function Keys and Remote Control

The kernel reacts at the remote buttons as the corrispondent function keys were hit. Thus binding a function key means binding ALSO the corrispondent remote key. Obviously, you can bind a key either in text mode or under X (or both).

Unknown Scan Codes

On many models of the zv6000 you will have to define a scancode for the kernel and X to be able to recognize some of your special keys. You can quickly find out which keys are unknown to the kernel by simply trying them all out. When you tap a key that the kernel doesn't know, the output from dmesg will look something like this:

Code: #dmesg

atkbd.c: Unknown key pressed (translated set 2, code 0xd5 on isa0060/serio0). atkbd.c: Use 'setkeycodes e055 <keycode>' to make it known.

Gather up all the unknowns and assign them keycodes. A simple solution is to put them all in /etc/conf.d/local.start like so:

File: My /etc/conf.d/local.start
setkeycodes e031 235 #fn+f1
setkeycodes e00e 236 #DVD Button
setkeycodes e00c 237 #Music Button
setkeycodes e00a 238 #fn+f6

These keys are now recognized by the kernel and any other program that reads /dev/console (everything).

Extra X configuration

All our unknown keys are now identified and assigned a scancode. Still, if we dont have the right Xkb layout, the events generated by keypresses will get tossed by programs that conform to the Xkb standard(KDE, others). The solution would be to find a keyboard layout that has all your keys included. Since I couldn't find one that did, I made my own. This is a diff against the xorg-x11-6.8.2-r6 ebuild. This directory usually doesn't change much so you should be ok using it.

File: xorg-x11-6.8.2-r6-xkb.patch
diff -Naur old/rules/xfree86 new/rules/xfree86
--- old/rules/xfree86   2006-02-16 10:32:42.000000000 +0000
+++ new/rules/xfree86   2006-02-22 05:03:35.000000000 +0000
@@ -123,7 +123,8 @@
               qtronix \
               samsung4500 samsung4510 \
               sk1300 sk2500 sk6200 sk7100 \
-              sven symplon toshiba_s3000 trust trustda yahoo
+              sven symplon toshiba_s3000 trust trustda yahoo \
+             zv6000

 ! $specialkbds = ibm_space_saver

diff -Naur old/rules/xfree86.lst new/rules/xfree86.lst
--- old/rules/xfree86.lst  2006-02-16 10:32:42.000000000 +0000
+++ new/rules/xfree86.lst  2006-02-22 05:04:29.000000000 +0000
@@ -101,6 +101,7 @@
   trust    Trust Wireless Keyboard Classic
   trustda  Trust Direct Access Keyboard
   yahoo    Yahoo! Internet Keyboard
+  zv6000      HP Pavilion zv6000 Keyboard
   ibm_space_saver IBM Space Saver


diff -Naur old/rules/xfree86.xml new/rules/xfree86.xml
--- old/rules/xfree86.xml  2006-02-16 10:32:42.000000000 +0000
+++ new/rules/xfree86.xml  2006-02-22 05:05:57.000000000 +0000
@@ -1021,6 +1021,12 @@
     </model>
     <model>
       <configItem>
+        <name>zv6000</name>
+        <description>HP Pavilion zv6000 Keyboard</description>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
         <name>macintosh</name>
         <description>Macintosh</description>
         <description xml:lang="sr">Ð~\екинÑ~BоÑ~H</description>
diff -Naur old/rules/xorg new/rules/xorg
--- old/rules/xorg   2006-02-16 10:32:42.000000000 +0000
+++ new/rules/xorg   2006-02-22 05:03:35.000000000 +0000
@@ -123,7 +123,8 @@
               qtronix \
               samsung4500 samsung4510 \
               sk1300 sk2500 sk6200 sk7100 \
-              sven symplon toshiba_s3000 trust trustda yahoo
+              sven symplon toshiba_s3000 trust trustda yahoo \
+             zv6000

 ! $specialkbds = ibm_space_saver

diff -Naur old/rules/xorg.lst new/rules/xorg.lst
--- old/rules/xorg.lst  2006-02-16 10:32:42.000000000 +0000
+++ new/rules/xorg.lst  2006-02-22 05:04:29.000000000 +0000
@@ -101,6 +101,7 @@
   trust    Trust Wireless Keyboard Classic
   trustda  Trust Direct Access Keyboard
   yahoo    Yahoo! Internet Keyboard
+  zv6000      HP Pavilion zv6000 Keyboard
   ibm_space_saver IBM Space Saver


diff -Naur old/rules/xorg.xml new/rules/xorg.xml
--- old/rules/xorg.xml  2006-02-16 10:32:42.000000000 +0000
+++ new/rules/xorg.xml  2006-02-22 05:05:57.000000000 +0000
@@ -1021,6 +1021,12 @@
     </model>
     <model>
       <configItem>
+        <name>zv6000</name>
+        <description>HP Pavilion zv6000 Keyboard</description>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
         <name>macintosh</name>
         <description>Macintosh</description>
         <description xml:lang="sr">Ð~\екинÑ~BоÑ~H</description>
diff -Naur old/symbols/inet new/symbols/inet
--- old/symbols/inet 2006-02-16 10:32:42.000000000 +0000
+++ new/symbols/inet 2006-02-22 05:17:55.000000000 +0000
@@ -2097,3 +2097,23 @@
     key <I5F> {  [ XF86Standby     ]  };
     key <I63> {  [ XF86WakeUp      ]  };
 };
+
+partial alphanumeric_keys
+xkb_symbols "zv6000" {
+    name[Group1]= "HP Pavilion zv6000 Keyboard";
+
+    key <I10> {  [ XF86AudioPrev      ]  };
+    key <I22> {  [ XF86AudioPlay, XF86AudioPause ] };
+    key <I24> {  [ XF86AudioStop      ]  };
+    key <I19> {  [ XF86AudioNext      ]  };
+    key <I2E> {  [ XF86AudioLowerVolume  ]  };
+    key <I30> {  [ XF86AudioRaiseVolume  ]  };
+    key <I20> {  [ XF86AudioMute      ]  };
+    key <I70> {  [ Help         ]  };
+    key <I32> {  [ XF86WWW      ]  };
+    key <I63> {  [ XF86Standby     ]  };
+   key <I5F>  {  [ XF86Sleep       ]  };
+   key <I72>  {  [ XF86AudioMedia  ]  }; // Musical Note button
+   key <I71>  {  [ XF86Launch1     ]  }; // DVD Button
+   key <I73>  {  [ XF86Launch2     ]  }; // fn+f6 (lock button)
+};
diff -Naur old/symbols.dir new/symbols.dir
--- old/symbols.dir  2006-02-16 10:32:42.000000000 +0000
+++ new/symbols.dir  2006-02-22 05:15:06.000000000 +0000
@@ -496,6 +496,7 @@
 --p----- a------- inet(trust)
 --p----- a------- inet(trustda)
 --p----- a------- inet(yahoo)
+--p----- a------- inet(zv6000)
 h-p----- am------ us_group3(basic)
 -------- -------- us_group3(generic101)
 -d------ -------- us_group3(pc101)

Use the following commands to apply this patch:

#cd /etc/X11/xkb
#patch -Np1 < xorg-x11-6.8.2-r6-xkb.patch

If all goes well you should now be able to add the following line to your xorg.conf:

   Option "XkbModel"    "zv6000"

Restart X and you will be fully Xkb compliant.

X Bind Keys

Under X, you can download a very useful program called xbindkeys. Read man page for it, and find out how to configure your shortcuts. It's very simple. Be sure to load it when you start X, editing the file ~/.xinitrc and adding a line that reads xbindkeys & 'before' the line that exec your window manager:

File: Sample ~/.xinitrc
xterm &
xbindkeys &
exec startkde

Touchpad Configuration

The touchpad will work out of the box, but configuring it gave me a bit of trouble. I direct you to Synaptics Touchpad Wiki for the details, but here are the settings that worked for me:

Section "InputDevice" #touchpad
Identifier "Touchpad"
   Driver "synaptics"
   Option "SendCoreEvents"
   Option "Device" "/dev/input/event1" # eventX number may vary depending on the laptop model
   Option "Protocol" "Auto"
# Next line required only if you want to disable the mousepad while typing:
#   Option "SHMConfig" "on"
# The rest of the options are NOT required, just a default similar to the Windows drivers with non of the extra features.
   Option "LeftEdge" "1900"
   Option "RightEdge" "5400"
   Option "TopEdge" "1400"
   Option "BottomEdge" "4500"
   Option "FingerLow" "25"
   Option "FingerHigh" "30"
   Option "MaxTapTime" "180"
   Option "MaxTapMove" "220"
   Option "VertScrollDelta" "100"
   Option "MinSpeed" "0.02"
   Option "MaxSpeed" "0.18"
   Option "AccelFactor" "0.0010"
EndSection

Section "InputDevice"

# Regular USB mouse

    Identifier	"Mouse1"
    Driver	"mouse"
    Option "Protocol"    "Auto"
    Option "Device"      "/dev/input/mice"
    Option "Buttons" "7"
    Option "ZAxisMapping" "6 7"
    Option "Resolution" "1000"

EndSection

Section "ServerLayout"
 
    InputDevice "Touchpad"  "SendCoreEvents"
    InputDevice "Keyboard1" "CoreKeyboard"
    InputDevice "Mouse1"    "CorePointer"

EndSection

Note that Touchpad is NOT the corepointer. When I had an external mouse hooked up, and it wasn't set to the "CorePointer", X failed to load. Also note that the "Device" for the touchpad is /dev/input/event1. Using these settings, if an external mouse is hooked up at boot, dmesg reports no synaptics touchpad being loaded, but everything works correctly. Alternately if no external mouse is hooked up dmesg reports the touchpad driver is loaded. If someone has a fix for this feel free to post.

USB Support Revisited

Following the kernel configuration above should enable the usb features on the laptop. The configuration enables support for USB flash drives and USB Hard Drives as well as other usb devices. For an official Gentoo USB support configuration as well as the installation of HOTPLUG and COLDPLUG programs that will load usb devices automatically the following reading is hear: Gentoo Linux USB Guide

Boot Framebuffer

Framebuffers are supported in Gentoo Linux and HP zv6000 notebook. There is a frame buffer program for Gentoo: Fbsplash.

Troubleshooting

gentoo-sources-2.6.11-r1 is a stable kernel that is very much compatible with the zv6000. There are problems however after the success of fully installing a Gentoo system on this notebook. Known problems encountered with these laptops are:

APIC CPU error,

Hangcheck Timer Tick Errors,

clock skew problems,

Weird system clock rate,....

APIC CPU ERROR

This error usually post a system log line as: APIC error on CPU0: 00(40). which means that There is an APIC error on CPU0 at a reference number given.

Solution The Apic CPU error does not affect system performance and can be safely ignored.

Hangcheck Timer Tick Errors

This error usually post a system log line as: Losing some ticks... checking if CPU frequency changed. warning: many lost ticks which means that the System event timer and cpu frequency varies rapidly during its performance.

Sometimes the error posts a log line as: Hangcheck: starting hangcheck timer 0.9.0 (tick is 180 seconds, margin is 60 seconds). Losing some ticks... checking if CPU frequency changed.

Solution See Weird system clock rate Solution.

clock skew problems

This error usually is encountered when building a kernel and post an error similar to: a time stamp of x.xex seconds are blah blah in the config files. This error is caused by either hangcheck timer bug or APIC cpu error.

Solution See Weird system clock rate Solution.

Weird system clock rate

This error is noticable by looking at how fast the clock watch ticks. Some linux users have reported that their clock becomes unsynchronized after a few seconds, minutes or hours. Some clocks ticks slow while others ticks very fast. The causes of the problem lies on PM_TIMER to be disabled, HPET disable, RTC features disabled and Hangcheck Timer bug.

Solution 1 Enabling those features could resolve the problem.

Solution 2 Pass a noapic option in the boot parameter of the bootloader. This would definitely fix the problem but at the same time it would cause other problems like failure of the network cards to work properly.

Solution 3 Pass a no_timer_check option in the boot parameter of the bootloader.

Solution 4 Specifically for zv6000, if the steps above has been taken and encounter the problem it is best to upgrade the kernel to gentoo-sources-2.6.12-r5.


Upgrade the kernel by:

# emerge =gentoo-sources-2.6.12-r5

If your portage tree doesnt have this ebuild or it is impossible to install this version do the following steps. download the gentoo-sources-2.6.12-r5 ebuild on this link ebuild link. And do the following code as super user.

# cp location-of-ebuild-downloads/gentoo-sources-2.6.12-r5.ebuild /usr/portage/sys-kernel/gentoo-sources/gentoo-sources-2.6.12-r5.ebuild
#ebuild gentoo-sources-2.6.12-r5.ebuild digest
#emerge =gentoo-sources-2.6.12-r5

Then compile the kernel.

Solution 5 Updated: Upgrade the kernel to gentoo-sources-2.6.12-r7. New ebuilds for gentoo-sources has been uploaded in Gentoo repository.


21:17, 28 November 2005 (GMT)

NEW FIX FROM HP Go to the HP site and upgrade your bios to version F.41A, which fixes the bug at its source.HP Site Link

Authors


Some information was directly quoted from HARDWARE Gentoo Linux 64bit on HP Pavilion zv6000 series notebook


Additional resources

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

Last modified: Mon, 25 Aug 2008 05:26:00 +0000 Hits: 14,367