Wednesday, June 4, 2008

hp 2133 update

I was going to use SLED10 for a while on my hp2133 mini-note, but getting updates is problamatic. If you call HP support within 30 days they will send you a SLED10 restore CD at no cost. This CD is one of those boot-and-wipes-the-disk variety, so be aware. This CD is different from the ISO you can download from HP (here).

First up -- installing Ubuntu/Hardy. On the boot prompt, you'll have to add xforcevesa or the video will flake out. Using an external USB CD/DVD drve, the standard Ubuntu CD boots and starts the install, but after resizing the SLED10 partition down to 10G, the install fails with the following message:

Ubuntu 8.04 install error

Next up -- Fedora 9. Again using an external CD, the install starts up well, but then soon fails when trying to locate the CD containing the install RPMs. I has been a while since I've used Red Hat on the desktop, so I'll give Fedora another try later. (And it will make the Red Hat folks at GNHLUG happy ;-)

Next up -- Ubuntu/Hardy Alternative Install CD. This version uses the tried-and-true debian install process and this time it works great!

With the stock Ubuntu/Hardy it finds and configures the wired network, graphics, audio (except the earphone jack), MMC disk. The Broadcom Wifi does not however and needs to use the ndiswrapper with firmware downloaded from the support site.

The post-install steps for Ubuntu/Hardy to get the WiFi working can be found on "WifiDocs/Driver/bcm43xx/Feisty No-Fluff".

For the hp 2133, the steps are:

  1. I found on my Ubuntu/Hardy that the bcm43xx module was already on the blacklist so the first line wasn't necessary. See line 32 of /etc/modprobe.d/blacklist. You'll still need to install ndiswrapper-utils-1.9 and create a tmp directory to unpack the wireless firmware.

    # NOT NEEDED echo 'blacklist bcm43xx' | sudo tee -a /etc/modprobe.d/blacklist

    sudo apt-get install ndiswrapper-utils-1.9
    mkdir ~/bcm43xx; cd ~/bcm43xx

  2. Since my hp 2133 has a Broadcom Corporation BCM4312 802.11a/b/g (rev 02), use Step 2a which downloads from Hewlett-Packard the Windows firmware for the Broadcom Corporation BCM4312 802.11a/b/g (rev 02)

    sudo apt-get install cabextract
    cabextract sp34152.exe

  3. Step 3 is to install the firmware using ndiswrapper. My /etc/network/interfaces file already had an entry to the 'lo' device, so didn't need to do that. Also ran into problems trying to load the modules on boot, so I don't load ndiswrapper from /etc/modules. Also I didn't bother to edit /etc/default/wpasupplicant because on my home wireless network. I don't use authentication -- wireless access is locked down by MAC address at the wireless router.

    sudo ndiswrapper -i bcmwl5.inf
    ndiswrapper -l
    sudo depmod -a
    sudo modprobe ndiswrapper

    #NOT NEEDED sudo cp /etc/network/interfaces /etc/network/interfaces.orig
    #NOT NEEDED echo -e 'auto lo\niface lo inet loopback\n' | sudo tee /etc/network/interfaces

    sudo ndiswrapper -m

    #NOT NEEDED by me echo 'ndiswrapper' | sudo tee -a /etc/modules
    #NOT NEEDED by me echo 'ENABLED=0' | sudo tee -a /etc/default/wpasupplicant

  4. As the wiki page mentions, there is a bug in Ubuntu/Hardy related to the ndiswrapper and ssb loadable modules, so after every boot, I do the following steps which I put in a little script, enable-wifi

    # This is ~/bin/enable-wifi
    ndiswrapper -l
    sudo depmod -a
    sudo modprobe ndiswrapper
    sudo rmmod ssb
    sudo rmmod ndiswrapper
    sudo modprobe ndiswrapper
    sudo modprobe ssb

    After a few seconds the NetworkManager applet will start looking for wifi networks and automatically connect.

    I've tried following the wiki's instructions on making it permanent, but found that there were nasty kernel messages about the ssb loadable module dying and preventing ndiswrapper from loading.

The next post install step is to fix the audio driver. The sound card works okay, but doesn't turn off the speakers when a headphone is plugged in. The other great wiki page, has the solution. Essentially download and install alsa-driver-1.0.16_linux-headers-2.6.24-17-generic-1_i386.deb.

Why hasn't a fix been pushed into the repositories is unclear.

sudo mv /lib/modules/2.6.24-17-generic/ubuntu/sound/alsa-driver \
sudo ln -s /lib/modules/2.6.24-17-generic/kernel/sound/ \

Although it may look like a lot of work, it wasn't that difficult. If you have problems, check back to the source wiki pages.