Nick Viera

Tux, the Linux Mascot with an HP Laptop
Linux and the HP Pavilion ze2000
- Some information to help make them work well together -

| Introduction | Video | Sound | Networking | Power Management | Input Devices | USB/Firewire | Miscellaneous |

     This page discusses the trials and errors of running a modern Linux distribution on an HP Pavilion ze2000 laptop computer. All of the information on this page revolves around my experiences using [open] SuSE Linux 10.0 - 10.2 and Mandriva Linux 2005 on the laptop. Other distributions should yield similar results. This page is probably not thorough enough; apologies for that, my time is limited. However, my hope is that it will at least point people in the right direction to fixing some of the annoying problems with Linux and the ze2000. So let's begin with the basics... determining what hardware is actually in the laptop and some gory details about it. The specifications for my ze2000 laptop are listed below. Items in green are fully functional. Items in yellow are partially functional. Items in red are not functional in Linux.

  • Processor: AMD K8 Turion 64-bit, 1600MHz
  • System RAM: 512MB (minus some allocated to Video Card)
  • Hard Drive: 40GB Seagate ST94019A
  • Optical Drive: Toshiba DVD-ROM SD-C2612
  • Video Card: ATI Radeon XPRESS 200M 5955
  • Sound Card: ATI IXP SB400 AC'97 Audio Controller
  • Ethernet: Realtek RTL-8139/8139C/8139C+
  • Wireless: Broadcom 4318 [AirForce One 54g] 802.11g
  • Modem: ATI 4378 56Kbps
  • Flash Reader: Texas Instruments PCIxx21 FlashMedia Controller
  • PCMCIA: Texas Instruments PCIxx21/x515 Controller (1 Slot)
  • USB: ATI IXP SB400 USB2 Host (3 Ports)
  • FireWire: Texas Instruments 1394 OHCI Compliant Host (1 Port)

     Booting into a working Linux environment is a major bonus here. If you don't have a working (or pseudo-working) Linux install already on the machine, try a LiveCD of some modern distribution. Once you've got a Linux environment up and working, there are several commands you can issue at the command-line to get information about the system hardware. I've listed the most useful ones below, as well as the output produced for my ze2000:

  • lspci ( lspci -v for more information )
    00:00.0 Host bridge: ATI Technologies Inc RS480 Host Bridge (rev 01)
    00:01.0 PCI bridge: ATI Technologies Inc: Unknown device 5a3f
    00:13.0 USB Controller: ATI Technologies Inc IXP SB400 USB Host Controller
    00:13.1 USB Controller: ATI Technologies Inc IXP SB400 USB Host Controller
    00:13.2 USB Controller: ATI Technologies Inc IXP SB400 USB2 Host Controller
    00:14.0 SMBus: ATI Technologies Inc IXP SB400 SMBus Controller (rev 11)
    00:14.1 IDE interface: ATI Technologies Inc Standard Dual Channel PCI IDE Controller ATI
    00:14.3 ISA bridge: ATI Technologies Inc IXP SB400 PCI-ISA Bridge
    00:14.4 PCI bridge: ATI Technologies Inc IXP SB400 PCI-PCI Bridge
    00:14.5 Multimedia audio controller: ATI Technologies Inc IXP SB400 AC'97 Audio Controller (rev 02)
    00:14.6 Modem: ATI Technologies Inc: Unknown device 4378 (rev 02)
    00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
    00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
    00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
    00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
    01:05.0 VGA compatible controller: ATI Technologies Inc ATI Radeon XPRESS 200M 5955 (PCIE)
    05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
    05:02.0 Network controller: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (rev 02)
    05:09.0 CardBus bridge: Texas Instruments PCIxx21/x515 Cardbus Controller
    05:09.2 FireWire (IEEE 1394): Texas Instruments OHCI Compliant IEEE 1394 Host Controller
    05:09.3 Unknown mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller
    05:09.4 Class 0805: Texas Instruments PCI6411, PCI6421, PCI6611, PCI6621, PCI7411, PCI7421, PCI7611, PCI7621 Secure Digital (SD) Controller
  • dmidecode
    # dmidecode 2.6
    SMBIOS 2.31 present.
    18 structures occupying 595 bytes.
    Table at 0x000DC010.
    Handle 0x0000
        DMI type 0, 20 bytes.
        BIOS Information
           Vendor: Hewlett-Packard
           Version: F.08
           Release Date: 06/17/2005
           Address: 0xE5E50
           Runtime Size: 106928 bytes
           ROM Size: 512 kB
                PCI is supported
                PC Card (PCMCIA) is supported
                PNP is supported
                APM is supported
                BIOS is upgradeable
                BIOS shadowing is allowed
                ESCD support is available
                Boot from CD is supported
                Print screen service is supported (int 5h)
                8042 keyboard services are supported (int 9h)
                Serial services are supported (int 14h)
                Printer services are supported (int 17h)
                CGA/mono video services are supported (int 10h)
                ACPI is supported
                USB legacy is supported
    (Further details truncated)
  • cat /proc/ide/hda/model
  • cat /proc/ide/hdc/model
    Toshiba DVD-ROM SD-C2612
  • cat /proc/cpuinfo
    processor       : 0
    vendor_id       : AuthenticAMD
    cpu family      : 15
    model           : 36
    model name      : AMD Turion(tm) 64 Mobile Technology ML-30
    stepping        : 2
    cpu MHz         : 1600.126
    cache size      : 1024 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        : 3206.79
    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

Video Card

     The video card in the HP ze2000 is an ATI Radeon XPRESS 200M, which shares system RAM memory. Its outputs include the laptop monitor, an external VGA port, and an external S-Video/Composite video port. The video card works out-of-the box at 1024x768 resolution and 16.7 million colors in a basic non-accelerated mode by using the Linux kernel module: radeon (with SUSE 10.x).

     If the BIOS detects that an external display is connected to the VGA port during boot-up, it will enable the VGA port to "clone" the built-in LCD display. This is done entirely in hardware, and will remain enabled until higher-level video card drivers take over control, or until the laptop is rebooted with the external display disconnected.

     ATI's proprietary Linux drivers do work with this video chipset. I've had no problems using both the external VGA port and S-Video ports in all supported modes (clone, extended desktop/Xinerama, mirror, single) with these drivers. In addition, 3D/OpenGL support works with the fglrx drivers which are a part of the ATI proprietary drivers. Use aticonfig to change video settings.

     Below are some examples of commands I use to change video modes. Note that for most settings to work, you'll need to restart the X server by (for example) using the commands:

 /sbin/telinit 3   -or-   /sbin/telinit 1 
to shutdown the X server and exit runlevel 5 then
 /sbin/telinit 5   -or-   startx 
to restart the X server and re-enter runlevel 5.

  • Configure the ATI driver for the first time:
    aticonfig --initial=dual-head
  • Turn on the external VGA port and have it clone the main LCD screen:
    aticonfig --force-monitor=lvds,crt1 --desktop-setup=clone
  • Turn on the external VGA port and extend the desktop horizontally onto it:
    aticonfig --force-monitor=lvds,crt1 --desktop-setup=horizontal
  • Turn on the external S-Video port and have it clone the main LCD screen:
    aticonfig --force-monitor=lvds,tv --desktop-setup=clone
  • Use the LCD at 1024x768 and external VGA port at 1280x1024 (cloned with different resolutions):
    aticonfig --force-monitor=lvds,crt1 --desktop-setup=clone
    aticonfig --resolution=0,1024x768
    aticonfig --resolution=1,1280x1024

  • Flash Memory Card Reader:

    The Texas Instruments PCIxx21 Integrated FlashMedia Controller is a combination reader for Secure Digital, Sony Memory Stick, Compact Flash, and Multimedia Stick flash cards. However, it is currently very poorly supported in Linux due to the highly proprietary nature of the hardware.

    As of now, only the Secure Digital portion of the card reader works with Linux, and this functionality is accomplished by forcing the (unsupported) TI FlashMedia host controller to release control of the Secure Digital card reader to the SD-Host controller so that Linux may access it directly. This is accomplished through the use of the sdhci driver, which is now built into the Linux Kernel. If you do not force the TI FlashMedia host controller to release control of the SD reader at every boot, the entire card reader will be unusable in Linux. The command to accomplish this is:
    setpci -s 05:09.3 4c.b=02
    Where 05:09.3 is the physical address of the TI FlashMedia device in the ze2000.

    To ensure this command is run at every boot, you need to place it in one of the user startup script files. For SUSE and openSUSE an appropiate file to use is: /etc/init.d/boot.local . For Mandrake/Mandriva, the file is usually something like: /etc/rc.d/rc.local . Other distributions may vary, but typically start-up script files are located in /etc/init.d/ or /etc/rc.d/

    For other laptops, or when trouble is encountered getting the SD card reader to work, try the following commands to determine the correct physical address of the TI FlashMedia host controller and to make sure that the sdhci driver is loaded, respectively:
    lspci | grep FlashMedia
    modprobe sdhci