Last updated: 2005-07-31

Linux FC4/5/6 on a Compaq Presario M2000 Notebook

I got Compaq Presario M2000 in July 2005, with Windows XP Home preinstalled. I installed Fedora Core 4 from the CDs. A number of WWW pages provided useful hints for the installation, the wireless and the sound.

The bottomline: This laptop works reasonably well with Linux FC4. Later, I upgraded to FC5 and FC6 without a problem.


Specs

Processor Intel™ Celeron™ M processor 1.50GHz
Memory 256 MB DDR SDRAM (two slots, 1 GB max.)
Harddisk 40 GB (4200 rpm)
Display 15.0" TFT XGA (1024x768)
Graphics CardIntel™ Extreme Graphics 2
CD DVD/CD-RW Combo Drive
Network Interfaces built-in V92 modem, built-in 10/100 LAN Ethernet, built-in Wireless Broadcom BCM4306 802.11b/g

Here is the output of lspci -v.

Installation

I made a double boot machine. In order to shrink the XP partition I used Partition Magic.

I copied the iso images and wrote them to CD-s on a somewhat old burner. Whatever I tried with the cdrecord parameters, the installation checksum check was giving a fault. I used the recommended way to bypass is: start installation with a parameter: linux ide=nodma . After installing the system I removed the boot parameter ide=nodma in grub.conf. Another problem I met was when I selected a lot of packages, the installation was getting stuck after installing quite a lot. Perhaps, the last records on the CD-s were somehow corrupted. I used the "Manual Installation" and partitioned the disk as follows:

   
Disk /dev/hda: 40.0 GB, 40007761920 bytes
255 heads, 63 sectors/track, 4864 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1        1275    10241406    7  HPFS/NTFS
/dev/hda2            1276        1288      104422+  83  Linux
/dev/hda3            1289        1670     3068415   83  Linux
/dev/hda4            1671        4864    25655805    5  Extended
/dev/hda5            1671        2307     5116671   83  Linux
/dev/hda6            2308        2817     4096543+  83  Linux
/dev/hda7            2818        3072     2048256   82  Linux swap / Solaris
/dev/hda8            3073        3199     1020096   83  Linux
/dev/hda9            3200        4864    13374081   83  Linux

I upgraded all FC4 packages including the kernel.

My Experience With the Subsystems

I mark the functionality status I achieved by a scale 0-3:
  1. Does not work at all
  2. Works somehow, but an important functionality is missing
  3. Mostly works with some small inconveniences
  4. Works fine, no problem noticed
I also indicate approximately the efforts I spent with the subsystems (needless to say, this is a highly subjective parameter):
  1. No time spent - worked out of the box
  2. Less than 1 hour spent
  3. More than 1 hour spent
The experience I have so far with various subsystems is as follows:
Subsystem Status Efforts
Display   3 0
Ethernet   3 0
built-in WLAN   3 1
PCMCIA WLAN Orinoco   3 0
Sound   3 2
Sound buttons   0 0
USB   3 0
Modem   0 2

Display

There was nothing special. Using a FC4 graphic tool I set the 1024x768 resolution.

Here is the file m2000_xorg.conf.

Ethernet

It worked out of the box.

WLAN

FC4-FC5

Broadcom is (was!) not supported in Linux, therefore I used ndiswrapper. I untared the tar-ball, and ran make and make install. The kernel structure (see the ndsiwrapper installation guide) had been already in place. This structure is normally installed with kernel-devel-VERSION.rpm. The program gave a warning that the kernel was compiled with a 4k stack and the Windows driver may fail (hang up the system). It was suggested to recompile the kernel. Fortunately, it turned out that the driver I used did not overfill the stack. Using lspci -n -v I found the PCI device number - 14e4:4320. I downloaded a driver for the BCM4306 with this number (for a different laptop). It did not work. I booted into XP, found the driver files for the WLAN, copied them on a USB stick and transferred to Linux (to, say, ~/xp-drivers/):

   
-r--r--r--   1 root root 1207982 Jul 28 01:48 bcmwl5.inf
-r--r--r--   1 root root  704008 Jul 28 01:48 bcmwl5.pnf
-r--r--r--   1 root root  341760 Jul 28 01:48 bcmwl5.sys

In the directory with these files (~/xp-drivers/) I typed: ndiswrapper -i bcmwl5.inf and then modprobe ndiswrapper. Later, I used the command ndiswrapper -m to update the file /etc/modprobe.conf.

The ifcfg-wlan0 file looks as:
IPV6INIT=no
ONBOOT=no
USERCTL=yes
PEERDNS=yes
GATEWAY=
TYPE=Wireless
DEVICE=wlan0
BOOTPROTO=dhcp
NETMASK=
DHCP_HOSTNAME=
IPADDR=
DOMAIN=
ESSID=
CHANNEL=1
MODE=Managed
HWADDR=
The result of iwconfig wlan0 is here:
wlan0     IEEE 802.11g  ESSID:"XXXXX"  Nickname:"localhost.localdomain"
          Mode:Managed  Frequency:2.442 GHz  Access Point: 00:0X:XX:00:XX:XX
          Bit Rate=54 Mb/s   Tx-Power:25 dBm
          RTS thr=2347 B   Fragment thr=2346 B
          Power Management:off
          Link Quality:100/100  Signal level:-59 dBm  Noise level:-256 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:3  Invalid misc:1002   Missed beacon:0
Command ifup wlan0 brings the interface up. There is a ON/OFF wireless button. After turning the button OFF and ON, the interface seems to get stuck and I have to restart it: ifdown wlan0; ifup wlan0.

After installing new kernel versions one may need to recompile ndiswrapper

 > cd ndiswrapper-VERSION 
 > make distclean 
 > make  
 > make install 
 > cd ~/xp-drivers 
 > ndiswrapper -i bcmwl5.inf 

FC6

A driver bcm43xx for Broadcom is included in the kernel. I only had to put the firmware to the right place, using a program bcm43xx-fwcutter. I downloaded the recent driver for Presario M2000 from the HP site (support and drivers), called sp30381.exe.
Installation:
 > yum install cabextract (if it is missing, of course) 
 > yum install bcm43xx-fwcutter (if it is missing, of course) 
 > cd ~/Downloads/; mkdir sp30381 ; cd sp30381; cabextract ../sp030381.exe  (unpacking the driver) 
 > bcm43xx-fwcutter -w /lib/firmware/ bcmwl5.sys  (extracting the firmware and installing it)
Running:
 > ifup eth1  (yes, it is mapped to eth1, not to wlan0)
There is no need for ndiswrapper anymore, and hopefully no need to adjust for new kernel versions.

PCMCIA WLAN Orinoco

This worked without a problem.

Sound

The AC'97 Audio Controller (rev 03) is used. At first, it gave no sound. I tried several recommendations which did not help, then ran across a very simple one: to re-load the module at the initialization stage. The easy way I used is to create a file /etc/sysconfig/modules/snd-fix.modules:
rmmod snd_intel8x0
modprobe snd_intel8x0
The /etc/modprobe.conf files looks as:
alias eth0 8139too

# start of new hack
alias snd-card-0 snd-intel8x0
alias snd-slot-0 snd-intel8x0
options snd-card-0 index=0  

# Emulation OSS
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss

# end of new hack

#alias snd-card-0 snd-intel8x0
#options snd-card-0 index=0  
#options snd-intel8x0 index=0  
#remove snd-intel8x0 { /usr/sbin/alsactl store 0 >/dev/null 2>&1 || : ; }; /sbin/modprobe -r --ignore-remove snd-intel8x0
alias usb-controller ehci-hcd
alias usb-controller1 uhci-hcd
alias ieee1394-controller ohci1394
alias wlan0 ndiswrapper

Sound Buttons

There are buttons on the laptop to control the sound volume or turn the sound off. They did not work with Linux. I did not inverstigate. The button lit is in fact the "mute" one, but the sound is OK.

USB

It worked out of the box. I use an optical mouse and an external hard drive.

Modem

The internal modem AC'97 seems to be supported within slmodem. I downloaded slmodem-2.9.10.tar.gz. At compillation it gave errors in declarations for sregs_init. I tried to bypass it, removing stat from the declarations. Then, I installed the package. But, modprobe slamr failed with the dmesg messages:
slamr: Unknown symbol get_device
slamr: Unknown symbol put_device
slamr: Unknown symbol device_release_driver
I gave up for the moment...

Experience

These Presario laptops tend to develop a hardware problem with the power jack or its connections to the motherboard, with no easy fix found. This particular individual started to loose the AC power after about 2 years of a high duty use. The jack was replaced, but still the problem occurs from time to time.

Other resources