Gentoo Wiki


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

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

Split-arrows.gifIt has been suggested that this article be split into multiple articles accessible from a disambiguation or index page.   (Discuss)
Wikipedia has an article on:
HP Pavilion (computer)


Gentoo on an HP Pavilion zv6000 series notebook

The zv6000 is a great laptop. Sporting an AMD processor along with ultra-low-voltage AMD 64 bit Technology, 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.

{Not original author of article} The HP Compaq Presario r4000 appears to be virtually identical to the zv6000. Specifically I have an r4218ea. It also has the bios problem mentioned at the end. I recommend updating the bios in XP and maybe keeping XP around to update bios and firmware stuff. Painful and a waste but there you go. I'll put up a full hardware listing on my website soon. In the meantime mail me here.

Introduction to this Guide

This is a hardware guide and kernel configuration of Gentoo AMD64 bit for HP pavillion zv6000. 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 zv6000 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 HPzv6000 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.


The documentation available for zv6000 is found on (Maintenance and Service Guide) 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.


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

Click here (externalised in sub-article to reduce size)


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

Code: #cat /proc/cpuinfo on Athlon64
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 15
model name      : AMD Athlon(tm) 64 Processor 3500+
stepping        : 0
cpu MHz         : 2193.699
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 lm 3dnowext 3dnow
bogomips        : 4308.99
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
Code: #cat /proc/cpuinfo on Sempron 64
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 31
model name      : AMD Sempron(tm) Processor 3200+
stepping        : 0
cpu MHz         : 1790.887
cache size      : 256 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
bogomips        : 3589.14
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

The processor info of the notebook obviously depends on the version you purchased, however it should work with any 90mm 89W Socket 939 CPU. Yes I said Socket 939, this laptop actually has a desktop CPU inside. There has yet to be a documented case of someone installing a dual core CPU, but with prices falling i'm sure someone will soon. The AMD 64bit cpu has 512kb cache, 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.


(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))


(You can also 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.)

Try to compile the modules, install them, modprobe in this order: mmc_core mmc_block tifm_core tifm_sd tifm_7xx1, then you should have your cardreader there: /dev/mmcblk0p1

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


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
 <*>   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

zv6000 doesn't have any RAID or LVM devices


zv6000 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

zv6000 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.

Simple Package Installation How To

Gentoo linux is an excellent linux distribution to test your laptops 64bit sweetness. Packages in Gentoo are organized in a portage manner. Portage is a Gentoo system feature, in lay terms, practically composes of ebuilds. These ebuilds are the package file tags that translates how a regular package tarball, the program source code, should be compiled and installed in Gentoo. The ebuilds reside under the portage tree which is usually located in /usr/portage. The ebuilds are organized in the portage tree, placing it to the program category folder then to the program name folder in the format program-category/package-name. Under this folder important information are placed that stores for example Manifest files and digest files. The package tarballs or the program source codes and program patches are placed in /usr/portage/distfiles.

That's it. That is how the Gentoo package system works.

Installing a package

The general command line for installing gentoo packages is by:

# emerge packagename

To be specific about the package version to be installed the following command are executed:

# emerge =packagename-version.number-releaseNumber

(Note the = character).

Package Keywords

Gentoo linux can practically be installed to almost any kind of computer be it Power PC, Intel based, AMD or SGI. When installing a package, Gentoo must know what system the package should be compiled with. At the same time Gentoo prevents compiling and installing packages incompatible to the system in use. Initially Gentoo linux and Gentoo Portage knows what kind of system it runs on. In a way the system prevents unnessesary installation and compilation of incompatible packages on the portage in the Gentoo system. To override this settings 2 files can be altered: /etc/portage/package.keywords and /etc/portage/package.unmask. These files override the settings that prevents users from installing a package in Gentoo.

Following steps should be taken upon encountering an emerge problem similar to:

packagename-version.number-releaseNumber is masked by: ~amd64

# echo "=package-category/packagename-version.number-releaseNumber ~amd64" >> /etc/portage/package.keywords

packagename-version.number-releaseNumber is masked by: ~arch

# echo "=package-category/packagename-version.number-releaseNumber ~arch" >> /etc/portage/package.keywords

packagename is masked by: -*

# echo "=package-category/packagename -*" >> /etc/portage/package.keywords

If an emerge problem is encoutered similar to: packagename-version.number-releaseNumber is masked. These steps should be taken.

# echo "=package-category/packagename-version.number-releaseNumber" >> /etc/portage/package.unmask

After the necessary steps are taken try emerging the package again.

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.

Getting the network connections up and running

Now that everything is in placed and installed nicely what's needed next is to make use of these installed packages to get the network running on zv6000 notebook. Once the ndiswrapper drivers for Broadcom Wireless Lan has been installed ndiswrapper needs to be loaded.

# modprobe ndiswrapper

Using the following code a similar output that describes the Ethernet card interfaces:

Code: # ifconfig wlan0 up && ifconfig eth0 up && ifconfig
 lo        Link encap:Local Loopback
          inet addr:  Mask:
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:20 errors:0 dropped:0 overruns:0 frame:0
          TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1083 (1.0 Kb)  TX bytes:1083 (1.0 Kb)

eth0      Link encap:Ethernet  HWaddr 00:0F:B0:6F:6D:FA
          inet6 addr: fe80::20f:b0ff:fe6f:6dfa/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:201 Base address:0x400

wlan0     Link encap:Ethernet  HWaddr 00:90:4B:A5:9D:A0
          inet  Mask:
          inet6 addr: fe80::290:4bff:fea5:9da0/64 Scope:Link
          RX packets:9681 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8963 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:12280452 (11.7 Mb)  TX bytes:767882 (749.8 Kb)

The wlan0 and eth0 interfaces should show up.

Wired Connection

For me this works by default. The /etc/init.d/net.eth0 service starts up the card. To have the card started at boot time do this:

Code: # rc-update add net.eth0 default
* net.eth0 added to runlevel default
* rc-update complete.

However, if you are not hooked up to a wired network at boot, it sits doing nothing for ~2 minutes as it tries to get a DHCP config. I highly recommend getting wireless set up and -not- using the wired. To remove the wired network connection from boot and speed things up, do this:

Code: # rc-update -d net.eth0
* net.eth0 removed from the following runlevels: default
* rc-update complete.

Wireless Connection

To scan a list of available networks around the area do:

Code: #iwlist wlan0 scan
wlan0     Scan completed :
          Cell 01 - Address: 00:09:5B:D9:E6:D0
                    Protocol:IEEE 802.11g
                    Frequency:2.462 GHz (Channel 11)
                    Quality:0/100  Signal level:-92 dBm  Noise level:-256 dBm
                    Encryption key:off (Note: Encryption key:on if password is needed.)
                    Bit Rate:1 Mb/s
                    Bit Rate:2 Mb/s
                    Bit Rate:5.5 Mb/s
                    Bit Rate:11 Mb/s
                    Bit Rate:6 Mb/s
                    Bit Rate:9 Mb/s
                    Bit Rate:12 Mb/s
                    Bit Rate:18 Mb/s
                    Bit Rate:24 Mb/s
                    Bit Rate:36 Mb/s
                    Bit Rate:48 Mb/s
                    Bit Rate:54 Mb/s

If the network doesnt have any encryption simple steps are needed to make a network connection. To connect to the available network:

# iwconfig wlan0 essid gentooNetwork

If the network have encryption then extra steps are needed to make a network connection.

For WEP keys

# iwconfig wlan0 key "WEPKEYS"

For WPA keys, wpa_supplicant will be used to handle the encryption.

# wpa_supplicant -B -i wlan0 -D ndiswrapper -c path-to/wpa_supplicant.conf

The wpa_supplicant.conf tells the wpa_supplicant program what kind of encryption the host network uses and what keys the host network requires so that it could connect to that network successfully.

To view an example of wpa_supplicant.conf read the file /etc/wpa_supplicant.conf.example.

For Simple WPA encryptions a conf setting would look like.

File: wpa.conf



#       group=TKIP
#       eap=TLS
#       identity="CROX\Coert Vonk"
#       ca_cert="/etc/sysconfig/wpa_supplicant/CAcert.pem"
#       client_cert="/etc/sysconfig/wpa_supplicant/crox.vonk-cert.pem"
#       private_key="/etc/sysconfig/wpa_supplicant/crox.vonk-key.pem"
#       private_key_passwd=""
       psk=" ''' password ''' "


Once the network host requirements has been fulfilled a network connection can be established by:

# dhcpcd wlan0

The wireless lan card should have a fully working network connection.

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

And set DRI to have the correct permissions:

Section "dri"
    Mode 0666

[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

[Not from the original author] Newest ATI driver (ver. 8.32.5) don't require shared or UMA enabled on BIOS. Now we can use only dedicated video memory for DRI. As a consequence, there was a great performance improvement on 3D apps. glxgears got up to 1700 fps! All other aspects of the driver work perfectly. XGL is also working perfectly for me - fully stable! Marcos Leone Filho

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"

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

Alternate x11 Driver

If you don't need 3D acceleration you can use xf86-video-ati driver. The advantage is that it's not suspending so often as binary one. First install drm:

 # VIDEO_CARDS="radeon" emerge x11-drm

Probably you'll have to do this before:

 # echo "x11-base/x11-drm ~amd64" >> /etc/portage/package.keywords

Now install new driver:

 # emerge x11-drivers/xf86-video-ati configuration is very simple. Take /etc/X11/xorg.conf you have created before. Backup it before editing, and then add new section:

Section "Device"
    Identifier             "ATI Graphics Adapter radeon"
    Driver                 "radeon"
    Option "ForcePCIMode"  "True"

In section screen you should replace your previous identifier with the one above, so:

Section "Screen"
    Identifier "Screen0"
    Device     "ATI Graphics Adapter radeon"
    Monitor    "Monitor0"
    DefaultDepth     24
    SubSection "Display"
        Viewport   0 0
        Depth     24
        Modes    "1280x800" "1024x768"

You can also download a nice tool

 # emerge app-laptop/radeontool

I'm using this driver during regular work (xterm, firefox, mplayer), because all 2D apps work perfectly - 2D accel is supported. I switch to fglrx only to use googleearth, blender, or play Quake.

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

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"

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"

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"

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 @@
+        <name>zv6000</name>
+        <description>HP Pavilion zv6000 Keyboard</description>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
         <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 @@
+        <name>zv6000</name>
+        <description>HP Pavilion zv6000 Keyboard</description>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
         <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.

-Matt Talbert

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"

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"


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


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 programs for Gentoo: Fbsplash.


The modem is supported by the hsfmodem. See this guide.


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,....


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 or other subsystems 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.1B, which fixes the bug at its source.HP Site Link


Some information was directly quoted from DV_1067

Links Gentoo


Gentoo Forums

Additional Resources

Retrieved from ""

Last modified: Mon, 25 Aug 2008 05:28:00 +0000 Hits: 63,141