Linux (Ubuntu 6.06 LTS, upgraded from 5.10) on a Compaq V2000

Modified on $Date: 2006/11/22 21:36:19 $

Hardware Components
Status under Ubuntu 5.10
Notes
Pentium M Processor 725A, 1.6 GHz Works Ubuntu even automatically configures itself for SpeedStep, so the CPU normally runs at a cool ~600 MHz, but ramps up to full speed when called for.
ACPI Power Management Works Hibernate to disk and Suspend to RAM both work, but required small configuration changes.
14" WXGA brightview widescreen (1280 x 768) Works No special procedure required - X.org setup nearly ideal.
Intel Graphics Media Accelerator video Works No special procedure required - X.org setup nearly ideal. I have not tried the S/Video or VGA outputs.
80 GB Hard Drive Works hdparm -t /dev/hda reports around 36 MB/sec.
10/100Base-T Ethernet LAN (RJ-45 connector) Works No special procedure required during installation.
Lithium-Ion Battery Works Charge (%) and AC status are displayed in X panel applet, but estimated time remaining is not displayed/available.
AC Audio Link Works No special procedure required during installation.
Integrated Network PRO/Wireless 2200BG LAN (802.11b/g) Works WPA requires installing the "wpasupplicant" package from the "universe" repository. Configuration required.
Wifi, Power, Volume Up, Volume Down, Mute buttons Works No special procedure required during installation. Wifi radio defaulted to off, but its button and others work without any configuration changes. The Mute button works, but does not illuminate (but the panel volume applet has a visual indicator of muting).
Internal Bluetooth Works I have not tested much, but Ubuntu did recognize the hardware, and I'm able to discover devices with the V2000, to be discovered, and to receive files via the Bluetooth File Sharing app.
DVD-ROM drive Works Reads CD-Rs fine. Encrypted DVDs play with ogle.
USB ports Works Tested with USB storage. Devices are mounted as /media/$LABEL where $LABEL is the partition label. Also mounted umask 077 so only the user logged into the console has access -- nice.
Internal 56k Modem Unknown I have not worked on this.
Internal SD/MMC/Pro-MMC/SM/XD card reader Works with Ubuntu 6.06 With Ubuntu 6.06, my MMC card shows up as /dev/mmcblk0 with a mountable VFAT partition /dev/mmcblk0p1. To have Ubuntu automatically mount the card, I had to load the "sdhci" kernel module. With Ubuntu 5.10, dmesg does not display any output when MMC media are inserted.
Firewire port Unknown I have not worked on this.
HP proprietary "Expansion Port 2" Unknown I have not worked on this, and do not expect to.
No Floppy Drive Included N/A N/A

Hardware details

hpshopping.com options (as they list them):


lspci output (Ubuntu 6.06):
0000:00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03)
0000:00:02.0 VGA compatible controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)
0000:00:02.1 Display controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)
0000:00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03)
0000:00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03)
0000:00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03)
0000:00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 03)
0000:00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03)
0000:00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d3)
0000:00:1e.2 Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (rev 03)
0000:00:1e.3 Modem: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (rev 03)
0000:00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 03)
0000:00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (rev 03)
0000:00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 03)
0000:06:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
0000:06:06.0 Network controller: Intel Corporation PRO/Wireless 2200BG (rev 05)
0000:06:09.0 CardBus bridge: Texas Instruments PCIxx21/x515 Cardbus Controller
0000:06:09.2 FireWire (IEEE 1394): Texas Instruments OHCI Compliant IEEE 1394 Host Controller
0000:06:09.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller
0000:06:09.4 0805: Texas Instruments PCI6411, PCI6421, PCI6611, PCI6621, PCI7411, PCI7421, PCI7611, PCI7621 Secure Digital (SD) Controller

Background

I purchased a custom-built Compaq Presario V2000 from hpshopping.com (through ebates.com, to obtain a 2% cash refund! Yes, I used my @tux.org email address). I chose the V2000 because the writeups on linux-laptop.net looked encouraging, and because I could build a fairly inexpensive laptop that is lightweight (5.2 pounds) and cool/quiet/long-running (Pentium M + ACPI + cpufreqd).

Hints of success: Knoppix

I wanted to keep Windows XP around for occasional use, x-platform testing, etc. The NTFS Resize site suggested Knoppix 4.0.2 as a good choice for non-destructively shrinking the XP NTFS partition. Knoppix 4.0.2  did boot well on the laptop, but I was unable to shrink the NTFS partition (even after making XP run chkdsk on C:). After booting XP, defragmenting C:, using CHKDSK /F C: at a command prompt to tell XP to run chkdsk at next boot, rebooting XP so it would run chkdsk, and then booting an old Knoppix 3.9 CD, I was able to use QTParted to shrink the NTFS partition.

Memory upgrade

hpshopping.com's RAM upgrades are very expensive. Instead of paying USD $150 for HP to build the laptop with two 512 MB SODIMMs, I paid just over USD $100 to buy a single 1 GB SODIMM -- ending up with more memory and better upgrade options (the laptop can take 2 GB of RAM). Installation was easy, and I used memtest86 from Knoppix 3.9 to test the memory before moving forward with the Linux installation.

First failure: Fedora Core 4

Fedore Core 4 installed fine, but the resulting installation did not have a functional ethernet device or sound subsystem. I tried a number of things to get the built-in Realtek ethernet card to work, without success. Likewise, though less importantly, I was unable to get sound working. In the midst of my Fedora Core frustration, I couldn't help but remember that Knoppix 3.9 had functional sound and ethernet and had a better-looking X configuration. Maybe it was time to give a Debian-based distribution a try.

Success: Ubuntu 5.10 ("Breezy Badger")

Only 1 installation CD? The first download site I try is streaming data nearly as fast as my broadband connection can take it? Nice.

Even better, the install (I used "expert mode", which was very reminiscent of mid-90s Linux distributions with its non-X blue/red/white curses-based install app) left me with a very usable system.

Shrinking Windows NTFS partition for dual-boot

I used Knoppix 3.9 for this; see "hints" above.

Touchpad tap-to-click

Another linux-laptop V2000 site suggested changes to xorg.conf. Here's my touchpad section in /etc/X11/xorg.conf which disables tap-to-click, which I dislike. Also, I replaced 6.06's xorg-input-synaptics package with xserver-xorg-input-synaptics so that 'synclient' would work (though I do not use synclient now):
Section "InputDevice"
        Identifier      "Synaptics Touchpad"
        Driver          "synaptics"
        Option          "SendCoreEvents"        "true"
        Option          "Device"                "/dev/psaux"
        Option          "Protocol"              "auto-dev"
        Option          "HorizScrollDelta"      "0"
        Option          "MaxTapMove"            "0"
        Option          "MaxTapTime"            "0"
        Option          "TapButton1"            "0"
        Option          "TapButton2"            "0"
        Option          "TapButton3"            "0"
        Option          "RTCornerButton"        "0"
        Option          "RBCornerButton"        "0"
        Option          "SHMConfig"             "on"
EndSection

Hibernate and Suspend

To enable Suspend, edit /etc/default/acpi-support and uncomment the ACPI_SLEEP=true line. To enable Hibernate, I had to modify the grub config. In /boot/grub/menu.lst, change
# nonaltoptions=quiet splash
to
# nonaltoptions=quiet
Before removing "splash", my laptop would hang when trying to boot/resume after I used Hibernate to suspend to disk. With this setup, I no longer see the nice graphical Ubuntu boot process screen, but instead see an old-school pure-text progress report. I think it's a worthwhile tradeoff. I also added resume=/dev/hdaN to the # kopt line (for /dev/hdaN, use the name of your swap partition), though I do not know if that is truly required.

Run sudo update-grub to have the stanzas rebuilt so the "kopt" and "nonaltoptions" changes will take affect now.

Ubuntu 6.06 required addtional work in order to allow suspend while logged in (from the power manager applet or the System - Quit menu). First, install the libpam-foreground package with
sudo apt-get install libpam-foreground
I also had to edit /etc/pam.d/common-session to include
session optional pam_foreground.so
(I added that at the end of the file) and I manually created the /var/run/console directory.

I also added ipw2200 and sdhci to the MODULES variable in /etc/default/acpi-support With 6.06, this means my laptop automatically reconnects to the WiFi network after being awoken, and SD/MMC cards are still automounted after being awoken.

Suspend power usage

With a new 6-cell (standard size) battery, my laptop burned 24% of its battery sitting on Suspend for 13.5 hours -- suggesting it might last as long as 55 hours on this battery.

Reboot to last-chosen OS

In /boot/grub/menu.lst, change default=0 to default=saved and ensure that the stanzas you want to be "remembered" when chosen include a savedefault line -- my Ubuntu install already had the "savedefault" lines in place.

802.11g networking

Note: I have the Intel 2200BG 802.11b/g option. I have the basic 802.11g WPA-PSK wireless working, but not automatically yet. I think this is supposed to be much easier in Ubuntu 6.06, but, having spent considerable time just tracking down the "ipw"/"wext" change between 5.10 and 6.06, I have not tried the "wireless-" options in /etc/network/interfaces just yet. Basic steps for 802.11g with WPA-PSK security:
  1. Press the Wifi button if it's not lit, to enable the radio
  2. Verify the radio works with sudo iwlist eth1 scan (here and following, replace "eth1" with your device name if different)
  3. Install wpasupplicant from the universe repository. If you don't want to include universe in your regular repository set, you can follow these wget/dpkg instructions
  4. Edit /etc/default/wpasupplicant as suggested in these instructions but do not follow the "wpa_passphrase" instructions
  5. Edit /etc/wpa_supplicant.conf following these instructions
  6. Unplug your ethernet cable. Go ahead.
  7. For good measure, use the /etc/init.d scripts to stop and restart networking and wpasupplicant
  8. By hand, run sudo iwconfig eth1
  9. By hand, run sudo dhclient eth1
You should now have a working connection to your access point. The next steps would involve making the management of interfaces cleaner. Others on ubuntuforms.org have suggested replacing the Network GUI app (System -> Administration) with Network Manager. Unfortunately, Network Manager (package "network-manager" in the "universe" repository) does not seem to support WPA.

To make ifup eth1 work, I made a /usr/local/sbin/ssidselect script uisng the template from the web page listed above:
IF=$1
AUTH=NONE
for NET in `iwlist $IF scan 2>/dev/null | grep ESSID | cut -d '"' -f 2`
do
    case $NET in
        "mynetssid")    # Place all your Access Point's ssids here like this "1AP"|"2AP")
            AUTH=WPA
            iwconfig $IF essid $NET
            ;;
    esac
done
case $AUTH in
    WPA)
        killall wpa_supplicant
	# "ipw" was for Ubuntu 5.10; 6.06 needs "wext"
        #wpa_supplicant -wB -i$IF -c/etc/wpa_supplicant.conf -Dipw ## 5.10
        wpa_supplicant -wB -i$IF -c/etc/wpa_supplicant.conf -Dwext ## 6.06
        TIMEOUT=25
        INTERVAL=5
        STATUS=1
        TIME=0
        sleep $INTERVAL
        # Try to authenticate for $TIMEOUT secs
        while [[ $STATUS == 1 && $TIME -lt $TIMEOUT ]]
        do
            wpa_cli status | grep AUTHENTICATED > /dev/null
            STATUS=$?
            TIME=$(($TIME + $INTERVAL))
            sleep $INTERVAL
        done
        # If authenticated, start dhclient
        if [[ $STATUS -ne 1 ]]
        then
            dhclientpidfile="/var/run/dhclient.$IF.pid"
            dhclient3 -pf "$dhclientpidfile" -lf /var/run/dhclient.$IF.leases $IF
        fi
        ;;
esac
exit 0
I modified /etc/network/interfaces, adding
iface eth1 inet dhcp
pre-up ifconfig eth1 up
pre-up /usr/local/sbin/ssidselect eth1
post-down ifconfig eth1 down
post-down killall -q wpa_supplicant
The network interfaces are brought down when the system goes into Suspend or Hibernate mode. I decided to make a script I could easily call after waking the system to restore the Wifi connection:
#!/bin/sa
ifaces="eth0 eth1"
if="$1"
test=`netstat -nr | egrep "${if} *\$"`
if [ "$test" = "" ]; then
  for i in $ifaces; do
    # bring Ethernet down if it's still up (the network
    # applet isn't always quick to notice the cable has
    # been unplugged)
    if [ $i != $if ]; then
      test=`netstat -nr | egrep "${i} *\$"`
      if [ "$test" != "" ]; then
        # interface needs to come down
        gksudo -S "ifdown ${i}"
      fi
    fi
  done
  gksudo -S "ifup ${if}"
  rc=$?
  if [ $rc != 0 ]; then
    zenity --info --title="interface enabler" --text="Error $rc re-enabling ${if} interface"
  else
    zenity --info --title="interface enabler" --text="${if} interface should be active now"
  fi
else
  zenity --info --title="interface enabler" --text="The ${if} interface appears to be up already"
fi
I then added a custom icon to the panel in X that runs that script with an argument of "eth1".

To enable the wireless interface every time you log in, you can add that script (with the eth1 argument) as a startup app with System - Preferences - Sessions - Startup Programs. If you do this, be sure the blue Wifi button is illuminated before you log in to X.

Function key screen lock

Ubuntu mapped Fn-F6 (the padlock icon) to the eject function. I used System - Preferences - Keyboard Shortcuts to remove that mapping (highlight the mapping and press Backspace) and re-map it to "Lock screen" (highlight "Lock screen" and press Fn-F6). In 5.10 I had easy function-key access to Suspend (Fn-F5), too, but Gnome in 6.06 does not offer Suspend for keyboard shortcuts.

Bluetooth

I installed the bluez-utils and gnome-bluetooth packages, and changed the value in /etc/bluetooth/pin.

DVD

After installing libdvdread3 and libdvdcss, I was able to use ogle (ogle -u gui) to play new Hollywood movies on DVD.

"Designed for Windows XP" sticker

I was able to pull this off (slowly, carefully) without any problems. Removing the sticky glue residue was more difficult than removing the sticker, which was, in the process, utterly ruined. Foil doesn't take bending well. The laptop is fine though. The Centrino and ergonomic warning sticker remain on -- for now.

TODO (?)

An incomplete list of things I thought I might work on... but quite likely won't get around to anytime soon.

Return to peterw's main page

$Id: index.html,v 1.18 2006/11/22 21:36:19 peterw Exp peterw $