SETTING UP MY COMPAQ PRESARIO R3000Z COMPUTER

Send comments about this text to the author.  (The author is a SuSE user; the e-mail address is intentionally misspelled to thwart spammers.)  One can get the author's PGP public key from the MIT key server.


Change Log


Abstract

The Compaq Presario R3000Z works well enough under the 64-bit port of SuSE Linux 9.1 Professional with a little tweaking.  The touchpad, 100Base-TX network interface and sound all worked without a problem.  Video was acceptable in a stretched 1024x768 mode. One could achieve the true 1280x800 screen resolution by editing the /etc/X11/XF86Config file.  However, there is a serious video problem with the Free/Open Source Software (FOSS) nv driver.  When switching from X to a text console, the screen becomes corrupted.  This can be fixed by downloading and installing the latest NVIDIA GNU/Linux driver.

SuSE's x86_64 port of LinEAK, which allows the notebook's special keys to work, has some problems.  I tried the x86 port, and it works without problems.

The USB ports appear to work fine.

I have not yet had time to test the memory card reader, the modem or the wireless networking.  (My initial feeling is that the modem won't work, and the wireless won't until either Broadcom releases specifications or the ndiswrapper software is made 64-bit clean.)  I wasn't able to test the IEEE1394 (Firewire) or S-Video since I have none of those devices.

I have not had a chance to test the R3000Z under the 64-bit port of White Box Enterprise Linux 3.0, which is a clone of Red Hat Enterprise Linux 3.0.


The Laptop's Specifications

I bought the R3000Z notebook through CostCo for about $70 less than what I could get it through HP/Compaq's website after considering the 'free upgrades' CostCo was offering.  I was able to customize it; here is what I selected:

I have to say that Compaq does a poor job of documenting their hardware's specifications.  Neither on their website nor in the soft copy manuals that come with the R3000Z could I find detailed information about the hardware.  Details like what make/model the 100Base-TX interface is, the dot-pitch of the LCD screen or the  type of memory modules to use for upgrading are, apparently, considered too unimportant to document.  Maybe it is because this is considered a home/home office notebook instead of a business one, not that I consider that a valid excuse.

For a more precise list of what comes in this laptop, one can view the output of GNU/Linux's lspci -v command here.

For the record, here is a list of CDs that came with the laptop:


BIOS Settings

Press the F10 key to enter the BIOS setup.

  1. Main menu  (I'm putting this here for informational purposes, only.)
  2. Security menu.
  3. Advanced menu.

Dealing With The Pre-Installed Windows XP Home Edition

Out of curiosity, I wanted to see how HP/Compaq setup this notebook's hard drive.  Using "Tom's floppy which has a root filesystem and is also bootable."*, I viewed the partition table:

# fdisk -l /dev/hda

Disk /dev/hda: 255 heads, 63 sectors, 7296 cylinders
Units = cylinders of 16065 * 512 bytes

   Device  Boot  Start   End    Blocks   Id  System
/dev/hda1    *       1  2612  20980858+   7  OS/2 HPFS

*For those interested, I used tomsrbt 1.7.361 (Yes, it is old:  2001-06-06!) because my KNOPPIX 3.2 (yes, it is old, too, -- 2003-04-10) would hang after loading the kernel.  Not even failsafe would allow it to boot; it would hang after calibrating the APIC timer and displaying a very wrong CPU clock speed.  KNOPPIX 3.4 didn't work, either.

The above means that my R3000Z came from the factory with a 21.48 GB (1,024 bytes/block * 20,980,859 blocks) partition.  The size of the hard drive is 60.01 GB (16,065 units/cylinder * 7,296 cylinders * 512 bytes/unit).  Below is what a Windows 98SE boot disk's fdisk program displayed, with large disk support enabled.

Partition  Status  Type  Volume  Label  Mbytes  System Usage
    1         A    NTFS                 20489            36%

Total disk space is 57232 Mbytes (1 Mbyte = 1048576 bytes)

Notice that Microsoft reports their numbers in MiB, (megabinary bytes) even though they use the unit "MB" (megabytes).  Please see this reference for explanation.

HP/Compaq sells this laptop with the option of 30, 40 or 60 GB hard drives.  So, it should come as no surprise that the operating system image they put on the notebook at the factory is 20 GB and that it expands to fill up any unused space after accepting the Microsoft and HP/Compaq end user license agreements.

Although I had no intention of using Windows XP Home Edition, (Have you read that license agreement!?) I felt it wise to make a backup of how the computer came from the factory, just in case something went wrong.  For this, I used my Norton Ghost 2003 to make a drive image of it.  Read about my Ghost ordeal.  After saving a disk image of the laptop, I then deleted it from the laptop and restored & resized the XP image to only take up 10 GB.  I figured that was enough room for an OS I don't intend on using but want to keep around `just in case`.

I did end up using Windows XP Home because I couldn't get Windows 2000 Professional to install.  It kept locking up after installing a combination of the W2k drivers I had downloaded from the HP/Compaq driver website as of July 2004.

However, HP/Compaq came out with newer graphics and cardbus controller drivers in March 2005 and newer wireless network drivers in December 2004.  Those drivers allowed me to successfully install Windows 2000 Professional.

(A note about drivers:  HP/Compaq categorizes BIOS updates according to operating system, which doesn't make sense since the BIOS doesn't depend on an operating system.  So, check under both the Windows 2000 driver listing and the Windows XP driver list to find which has the most recent BIOS update.)


Installing SuSE Linux 9.1 Professional

I borrowed a SuSE Linux 9.1 Professional boxed set from a friend (Thanks, Tom!) since that had a DVD of the 64-port.  Booting off the DVD posed no problems.  The graphical YaST interface came up and worked fine.  The touchpad generically works:  double-tapping works the same as the left mouse-button.  The only feature of the touchpad that didn't work is the right scroll area.

For my test install, I generally accepted the defaults except where noted below.

SYSTEM
  • System:  Hewlett-Packard - Presario R3200 (DP533AV) (F.11)
  • Processor:  AMD Athlon(tm) 64 Processor 3400+
  • Main Memory:  512 MB

MODE
  • New installation

KEYBOARD LAYOUT
  • English (US)

MOUSE
  • IntelliMouse Explorer (ps2)

(I made a couple of changes to the partitioning.  First, I resized the swap to only be 512 MB.  It had defaulted to 2x RAM, which I think is too much on a machine with 512 MB RAM.  I also changed the default / partition from ReiserFS to ext2 so my Ghost could make an image of it.  [For actual use, I'd use ext3.]  Also, I resized / to only 5 GB since I didn't want a huge test install.)

PARTITIONING
  • Create swap partition 512.3 MB on /dev/hda2
  • Create root partition 5.0 GB (/dev/hda3 with ext2)
  • Set mount point of /dev/hda1 to /windows/C

SOFTWARE
  • Default system
  • + KDE Desktop Environment
  • + Office Applications
  • + Help & Support Documentation
  • + Graphical Base System

BOOTING
  • Boot loader type:  GRUB
  • Location: 1. IDE, 55.89 GB, /dev/hda, FUJITSU-MHT2060AT PL (MBR)
  • Sections:  Linux (default), Windows, Floppy, Failsafe, Memory Test

(I set the time zone for my locale.)

TIME ZONE
  • USA / Eastern - Hardware clock set to local time 09:29:25 - 18-07-2004

LANGUAGE
  • English (US)

(After a number of tests, I decided to go with init state 3 [text only] instead of init state 5 [graphical user boot up] since the display gets all screwed up when switching from an X display to text consoles.  This can be changed later, after the loading of the NVIDIA binary driver.)

DEFAULT RUNLEVEL
  • 3:  Full multiuser with network

The above configuration results in about 1.72 GB of packages to install.  This takes about 24 minutes to copy all files.

PASSWORD FOR "ROOT", THE SYSTEM ADMINISTRATOR
  • Expert Options...
    • Set Password Encryption:  MD5
      (Even though this is a test installation, I still felt compelled to select a different encryption algorithm than DES, since DES has been shown to be easily cracked by today's computing power.)

NETWORK CONFIGURATION

Network Interfaces
  • Hewlett-Packard Company RTL-8139/8139C/8139C+ Configured with DHCP
  • (SuSE did not detect the Broadcom wireless 802.11g interface.)
DSL Connections
  • Not detected.
ISDN Adapters
  • Not detected.
Modems
  • Hewlett-Packard Company Modem Not configured yet.
    (When configuring the modem, it kept coming up with an empty "modem device".  Normally, "/dev/ttySx" would go there.  So, although the install program detected the modem, it cannot set it up.  That's a WinModem for you.)
Proxy
  • Proxy is disabled.
VNC Remote Administration
  • Remote administration is disabled.

TEST INTERNET CONNECTION
  • (I skipped this since I have all the latest updates saved to CD-RW.)

USER AUTHENTICATION METHOD
  • Stand-Alone Machine

ADD A NEW LOCAL USER
  • (I skipped this since I'm just testing.)

HARDWARE CONFIGURATION
Graphics Cards
  • NVidia GeForce4 440 Go 64M (nv) Connected to Monitor:  Unknown Monitor [1024x768 @ 16 bit]
    (Configure this hardware.  Remember, I have a "WXGA" screen, so your values for the following may vary.)
    • Monitor
      • Monitor-Mode
        • -->LCD 1280x1024 @ 75Hz  (Aravind states in an e-mail that the LCD monitor is actually a Samsung LTN154X1.  Unfortunately, I did not see that in YaST's list of Samsung monitors.)
      • Expert
        • Display Size in [mm]:  330x216  (I measured this with a ruler.  I'm confident of these numbers, as measuring it in inches gives 13" x 8.5", which is too close to be a coincidence.)
        • Enable DPMS
    • Color and Resolution
      • Colors
        • 16.7 Mio. [24 bit]
      • Expert
        • 1280x800 Add this resolution
      • Resolution(s) for 16.7 Mio. [24 bit] colors
        • Check only the 1280x800 resolution.
      When finalizing, do not test.  Just save.
    (As previously mentioned, going from X to a text console causes the screen to become corrupted.  This is also true when going from the test X display back into the graphical YaST display.  If one tests the X display, the screen will become corrupted afterward and one will have to reboot.  Since all the hardware settings aren't saved at this point of the installation, sound will not work.)
  • 3D Acceleration:  Disabled
Printers
  • Listen to remote CUPS servers to get comfortable access to remote queues.
Sound
  • nVidia Corporation Configured as snd-card-0
    (Configuring this hardware shows these options:)
    • AC'97 clock (0=auto-detect).  ac97_clock  0
    • AC'97 workaround for strange hardware.  ac97_quirk  -1
    • Enable joystick for Intel i8x0 sound card.  joystick  0
    • MPU401 port # for Intel i8x0 driver  mpu_port  blank
    • (Examining the volume for this hardware allows one to play a test sound.  The sound works.)
    • Start sequencer is checked.
TV cards
  • Not detected.

Upon finishing, the laptop starts up in init state 3.  Login, and edit the /etc/X11/XFConfig file to make the following changes. (It would be wise to make a backup, first.)

  1. Delete the 1280x1024 and 1024x768 lines in the Modes section.
  2. Delete the 1280x1024 and 1024x768 subsections of the Screen section.

One can now execute the startx command to start XFree86 & KDE.  However, exiting out of it will result in a corrupt display.  Switching to a text console via the Ctrl-Alt-F1 through Ctrl-Alt-F6 key combinations also result in a corrupted display.  At this time, it can only be fixed by downloading and installing the NVIDIA binary driver.


Updating The SuSE Install

Before updating SuSE 9.1, some more packages will be installed from the installation DVD.  It was discovered through trial & error that four packages are needed for compiling the binary NVIDIA driver interface.  Those packages will be installed now, before the update, so they be updated, too.  (If updates are available for them.)

These are the packages needed from the SuSE 9.1 DVD:  the kernel-sources, gcc, glibc-devel and make packages.  That can be easily done by sticking the SuSE 9.1 DVD into the drive and executing these commands:

# mount /media/cdrecorder

# cd /media/cdrecorder/suse/x86_64

# rpm -ivh kernel-source-2.6.4-52.x86_64.rpm gcc-3.3.3-33.x86_64.rpm glibc-devel-2.3.3-63.x86_64.rpm make-3.80-179.x86_64.rpm

# cd ~

# umount /media/cdrecorder; eject
Now it is time for the update.

As I stated above, I keep a library of SuSE updates on CD-RW.  I installed the new kernel and freshened the old kernel-sources.  (I always keep the old kernel around just in case I need to revert back to it.  I've never needed to, but...  One cannot install the new kernel-source along side the old kernel-source; it must be freshened.)  Here are the commands I used to upgrade my kernel from my CD-RW.  (My CD-RW is basically a mirror of what is on SuSE's FTP site.)

# mount /media/cdrecorder

# cd /media/cdrecorder/x86_64/update/9.1/rpm

# rpm -ivh x86_64/kernel-default-2.6.5-7.151.x86_64.rpm

# rpm -Fvh x86_64/kernel-source-2.6.5-7.151.x86_64.rpm

To update all the other packages, one can use YaST's Online Updater.  As I mentioned above, however, I keep a library of all of SuSE's latest updates on CD-RW.  So, I just executed (from the same /media/cdrecorder/x86_64/update/9.1/rpm directory I was in before):

# rpm -Fvh x86_64/*.rpm noarch/*.rpm i586/*.rpm
As of this writing, there are 145 updates for the default SuSE install.  That command takes about 22 minutes to complete.  Reboot the computer into the new kernel after all of these updates.

Installing The NVIDIA Binary Driver

At the time of this writing, they have driver version 1.0-7664 available for the AMD64 platforms.  SuSE offers a "fetchnvidia" script through the YaST Online Update.  This script, when run, downloads and installs the NVIDIA driver version from when SuSE 9.1 was first released.  (Thus, one will end up with a driver that is currently over a year old.)  Obviously, I wanted to use the latest NVIDIA driver, so I did not use that.

One can download the latest NVIDIA driver from NVIDIA's Linux Drivers Portal Page.  From past experience, I knew to execute the NVIDIA installer like so:

# sh NVIDIA-Linux-x86_64-1.0-7664-pkg2.run --accept-license --kernel=2.6.5-7.151-default

(One can find all sorts of neat options by using the "--advanced-options" switch.)  During the install process, a warning will pop up:

Warning: Your Linux kernel has problems in its implementation of
the change_page_attr kernel interface.  The NVIDIA kernel
module will attempt to work around these problems, but
system stability may be affected.  It is recommended that
you update to a 2.6.11 or newer kernel.

Please see APPENDIX N: KNOWN ISSUES in NVIDIA's README for
more details.

The above must be a typo; it is Appendix L of NVIDIA's README file that deals with known issues; this issue is discussed in the "The X86-64 platform (AMD64/EM64T) and 2.6 kernels" section of that appendix.  I checked the change log of the 2.6.5-7.151 kernel ("rpm -q --changelog kernel-default-2.6.5-7.151") to see if SuSE back-ported this 2.6.11 fix.  They did not.

Although I am not thrilled about the NVIDIA fix, since it could lead to other problems.  I could `roll my own` kernel from kernel.org, but am concerned with all the other issues that might arise from not using a SuSE-supported kernel RPM.  Based on experience with with the NVIDIA driver on past 2.6 kernels, I'm going to chance it and just proceed.

Next, the installer will ask if one should install NVIDIA's 32bit compatibility OpenGL libraries.  The README states nothing about this.  Although this is a 64-bit processor and a 64-bit operating system, I'm assuming it won't hurt to install them.  Since it is for compatibility, I chose to install them.

The driver installation completes with a note to SuSE Linux/United Linux users, urging them to use SaX2 to "enable" the driver.  I did not do this since I know from experience that the XF86Config file generated by the install program just needs one little change.

This change is mentioned in Chapter 3 of the NVIDIA's README.  It states that one must edit the /etc/X11/XF86Config file to replace the

Driver "nv"
line with
Driver "nvidia"
and remove these two lines:
Load "dri"
Load "GLcore"
The Driver line is an easy enough change, and luckily those two Load lines aren't in the XF86Config file generated from SuSE's install.  That change is simple, but you can download a copy of my final /etc/X11/XF86Config file.

Many people on the LinuxR3000 mailing list have reported that they've had to disable "SoftEDIDs" setting and set the Mobile option for the nvidia kernel module.  (See "Appendix I. Configuring a Laptop" of the NVIDIA README.)  I did not have to do that when following the above instructions.  However, during my tinkering, I once used the SuSE YaST Online Update to load and run the "fetchnvidia" script.  As mentioned above, that loaded an old version of the NVIDIA driver.  After manually updating to the newest NVIDIA driver, I found the kernel module options mentioned in Appendix I were necessary or my 1280x800 screen would fail.  Instead of the desktop taking up the whole 1280x800 screen, only 1024x768 would be filled with the leftover at the bottom and right either being blank or corrupted.  Using those nvidia kernel module options fixed that.  I do not know why a fresh install works without those kernel module options.  I'll have to investigate this more the next time SuSE puts out a kernel update and/or NVIDIA puts out a new driver.

Now that all this graphics work is done, one can finally change SuSE so it starts up in graphical mode instead of text.  Change the default init state from 3 to 5 by editing the "id:3:initdefault:" line of /etc/inittab, (the easiest) or by using YaST.  Reboot the computer when done.  This will give a beautiful looking 1280x800 screen that does not corrupt when switching to a text console like the "nv" driver did.

External Display Devices

The R3000Z has a 15-pin graphics connector on its back side for connecting the laptop to a monitor or projector.  Since the R3000Z's built-in LCD has a non-standard resolution, connecting it to a standard monitor and pushing the LCD/CRT special key (Fn-F4) often causes the monitor to go out of sync.  Changing the resolution to something standard (like 1280x1024) allows one to switch between the notebook's LCD and the monitor, but then the LCD has a stretched display.

I'm no X guru, so I have not taken the time, yet, to see how I can define the resolution for one display device (the notebook's LCD @ 1280x800) while also defining a second resolution for a second display device (the monitor @ 1280x1024).  Once I do that, I'd be more willing to play with this.  As it is, I've already played with switching displays under Windows XP, and it suffers from the same types of problems.  Additionally, I've played with the "nView" setting under Windows XP that allows one's desktop to take up both displays.  Even the NVIDIA driver under Windows XP suffered from problems with the laptop's 1280x800 non-standard resolution and the monitor's standard 1280x1024 resolution.


Easy Access Keyboard Keys & Lineakd

Xperience, Inc. has a good writeup that includes a section about the easy access keyboard keys found on a Compaq Presario R3140US.  My R3000Z has these same special keys on its keyboard, which are accessible by pressing the laptop's Fn key and then one of the F1 through F12 keys:

Help. Fn-F1 (I found that this key does not register any value, and thus cannot be used in Linux.)
WWW. Fn-F3 (Obviously for bringing up a web browser.)  This key returns value 178.
External monitor. Fn-F4 (This key registers no value; it must send a signal directly to the hardware.)
Sleep. Fn-F5 This key returns value 223.
Lock. Fn-F6 (Surprisingly, this key registers no value.  It therefore doesn't look like it can be used.)
Dim LCD display. Fn-F7 (This key returns no value, but it must send a signal directly to the hardware, as the LCD does dim when it is pushed.)
Brighten LCD display. Fn-F8 (This key returns no value, but it must send a signal directly to the hardware, as the LCD does brighten when it is pushed.)
Play/pause. Fn-F9 This key returns value 162.
Stop playing. Fn-F10 This key returns value 164
Previous track/chapter. Fn-F11 This key returns value 144.
Next track/chapter. Fn-F12 This key returns value 153.
Mute volume. Flat button on right side of laptop. This button returns value 160.
Volume up. Raised button on right side of laptop. This button returns value 176.
Volume down. Sunken button on right side of laptop. This button returns value 174.

(Note:  The button on the front of my laptop model for the wireless network registers no value.)

SuSE 9.1 comes with LinEAK 0.8beta2-30, which is a daemon that allows for the configuration of these easy access keys and for 'listening' for their pressing.  Unfortunately, there appears to be a problem with SuSE's x86_64 lineakd package.

When one starts the daemon, it freezes after displaying "Checking some isSet's to see if they are empty."  Lineakd starts eating 95% of the CPU and kswapd0 eats the rest.  After getting caught on that a couple times, I tried it while renice'ing the lineakd process.  That didn't help.

I'm pretty sure the problem is with SuSE's x86_64 lineakd package, since I haven't heard reports of anybody else having trouble.  So, on a lark, I installed SuSE's x86 (the .i586.rpm) lineakd package.  It had no problems.

I installed these three packages from SuSE's 32-bit media: lineak_defaultplugin, lineakd and lineak_kde.  I could have also installed some osd packages for onscreen display functionality, but I didn't care for that.  After installation of these packages, one will want to edit the /etc/lineakkb.def file to enter a keyboard definition for the R3000Z's keyboard, and create a ~/.lineak/lineak.conf file with the special button values and what actions to take.

I owe a debt of gratitude to Xperience, Inc. for the values they recommend on their web page.  They installed Debian on their notebook.  That distribution uses aumix for their sound system where SuSE uses amixer, which is part of ALSA, the Advanced Linux Sound Architecture.  I've tweaked Xperience, Inc.'s recommended settings for a SuSE 9.1 default install.  Feel free to download my /etc/lineakkb.def and ~/.lineak/lineak.conf files.

The only key that returns a value that doesn't work, yet, is the sleep button.  According to LinEAK's documentation, the "EAK_SLEEP" value in the ~/.lineak/lineak.conf file is not functional, yet.  I was going to replace it with the powersave --suspend command, but that command returns a "Suspend has been disabled by administrator" error.  (I'm still working on this.)


USB

I only have one USB device with which to test the R3000Z's three USB ports:  an Olympus Camedia C-3000 Zoom digital camera.  Looking again at the output from lspci -v, one sees that two of the USB ports are version 1.1 while one of them is version 2.0.  (I assume the single port on the right side of the laptop is the USB 2.0 port; the other two ports on on the left side of the laptop must be the two USB 1.1 ports.)

I booted the laptop up (into init state 5) and logged in (as root) which, by default, starts KDE.  I plugged my camera into the laptop's right USB port.  There was no change to the desktop or any notification that a new USB device was available.

I started Digikam 0.6.0.  (SuSE 'Start' button --> Graphics --> Photograph.)  Digikam requires the user to setup the camera by going to the Settings menu --> Configure Digikam... and then selecting the Camera tab from the Configure - Digikam window that appears.  I then only had to click the Add... button and select my camera.  (The USB camera port type is automatically selected.  Note:  If one clicks the Auto-Detect button instead of the Add... button, Digikam thinks the camera is a Olympus C-2100UZ [usb].  I guess this wouldn't cause a problem, but one might as well select the right one.)

Once that is done, one can select the camera from Digikam's Camera menu and see the pictures stored on it.  I exited Digikam, turned the camera off, plugged it into one of the USB ports on the laptop's left side, turned it back on and tried Digikam again.  Everything worked perfectly.