Linux on the Compaq presario B1013

Why choosing this laptop?

Well, I have chosen this laptop because I tried several laptops in the shop with my Mandrake Move and this one worked!
It was also in the price range I could afford, the video memory is not shared, it includes a DVD writer.
If you plan to spend an hour or so, trying several machine with a live CD, I suggest the Knoppix instead. I had problems with the move, while the knoppix perfectly detected more hardware. Well, you can also see it the other way round: if he move works fine, the real installation should be fairly easy, while a successful knoppix run may mean a longer and tricky installation with another distribution...

Description

This Compaq toy includes:

Below is the result of a lspci:

0000:00:00.0 Host bridge: Silicon Integrated Systems [SiS] SiS 645xx (rev 51)
0000:00:01.0 PCI bridge: Silicon Integrated Systems [SiS]: Unknown device 0003
0000:00:02.0 ISA bridge: Silicon Integrated Systems [SiS] SiS963 [MuTIOL Media IO] (rev 14)
0000:00:02.1 SMBus: Silicon Integrated Systems [SiS]: Unknown device 0016
0000:00:02.3 FireWire (IEEE 1394): Silicon Integrated Systems [SiS] FireWire Controller
0000:00:02.5 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE]
0000:00:02.6 Modem: Silicon Integrated Systems [SiS] AC'97 Modem Controller (rev a0)
0000:00:02.7 Multimedia audio controller: Silicon Integrated Systems [SiS] Sound Controller (rev a0)
0000:00:03.0 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f)
0000:00:03.1 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f)
0000:00:03.2 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f)
0000:00:03.3 USB Controller: Silicon Integrated Systems [SiS] USB 2.0 Controller
0000:00:04.0 Ethernet controller: Silicon Integrated Systems [SiS] SiS900 PCI Fast Ethernet (rev 90)
0000:00:0c.0 CardBus bridge: ENE Technology Inc CB1410 Cardbus Controller (rev 01)
0000:01:00.0 VGA compatible controller: nVidia Corporation NV34M [GeForce FX Go 5200] (rev a1)

Distributions tested

I have tested on this laptop, the Mandrake 9.2 and the Gentoo 2004.1. The mandrake didn't last a lot, and I quickly switched to the Gentoo (and I've been using the Gentoo the 2004.1 release). This is not because I had trouble with the Mandrake, it worked perfectly, but because I wanted to try something else, and finally found with the Gentoo the distribution I needed...
I have used both 2.4 and 2.6 kernels (2.4.25, 2.4.27, 2.6.7, 2.6.8.1, 2.6.9) without any trouble. I'm now fully using a 2.6 kernel as it offers a lot of improvements compared to the 2.4, and I can really understand and manage udev, while devfs always seemed strange to me...

Hardware test

I still haven't tested everything on this beast, so if you want to complete this section, feel free...

Processor

This P4 support the INTEL speedstep technology, this means you can change its frequency... Well, in a way, this is true. You can switch between two frequencies: 2.4GHz and 1.2GHz.
By default, when unplugging the AC supply, the CPU switches to 1.2GHz. I haven't been able to force it to run at 2.4GHz when unplugged, but I can switch to 1.2GHz when plugged (usefull if you want to keep it cool) using the /sys interface (2.6 kernel branch):
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed

This processor also features the hyperthreading technology so is recognized as a SMP 2 processors PC. I haven't tested this deeply...

RAM and disk

Well, nothing special to say about the RAM and the disk...

Graphic card

The Nvidia card works fine, I have been using either the VGA driver or the Nvidia driver. I started with the 1.0.5336, then switched to the 1.0.6111. I have tested the 3D acceleration with Cube, Unreal tournament, UT-2004 and Legends. Except UT-2004, all these games can be played... I had to force the use of the Nvidia AGP driver (with the 2.4 kernel) to avoid locks when starting X. To do so, in the /etc/X11/XF86Config file, in the Device section, set the "NvAGP" option.
I have also tested the dual screen option in "clone" mode. This works, I can get a copy of the screen on my TV (not really usefull).

Internal modem

Not tested...

USB ports

I wish it had more USB ports...
The USB connectors are used to connect a (very) low cost USB mouse (recognized without any trouble, it's not fun!), a digital camera (canon powershot A70), a USB WIFI adapter (Z-Com XI-735, comming with the Tiscali ADSL pack in France) and a M-System 32MB key.

Firewire port

Not tested yet...

Memory card reader

Not tested yet...
The Canon powershot A70 digital camera uses the only format not supported by the PC...

PCMCIA slot

Not tested yet...

IrDA port

Uses a SMSC chipset. To use it you must have the smsc-ircc2 driver (for a 2.6 kernel). I have tested it to sync my palm pda (Palm IIIe using PalmOS-3.3).
The first step is to make sure the serial port and irda ports are left in 'auto' mode in the Bios, then you must remove the serial driver that manages the irda port (by default the irda port is seen as a serial port and managed by the serial driver, so the irda driver can't take control of it). To do so: setserial /dev/ttyS1 uart none
OK, now the device is available. Create an alias for this driver in /etc/modules.conf or equivalent, depends on your distribution: for example, using the Gentoo, you must edit /etc/modules.d/irda (or create it, if it does not exist), and run modules-update. Add the following lines:
alias char-major-161 ircomm-tty
alias irda0 smsc-ircc2
Load the driver using irattach:
irattach irda0 -s
Check in the system log file (/var/log/messages) the success of the command. Now, you can put the pda in front of the IR port and see a nice pop-up (on the pda) reporting something like "waiting for sender...".
Now to synchronize a pda through the irda port, you must load the ircomm_tty driver (modprobe ircomm_tty), it should create some ircommX (X being a number) devices under /dev. Modify the permissions on these files if they are not readable and writable by everybody. Then synchronize using /dev/ircomm0 instead of /dev/pilot (or link /dev/ircomm0 to /dev/pilot). Be patient, it takes some time to start...

In order to make it a little bit more automatic, you can change the permissions and group for these ircomm devices in the udev permissions file (something like /dev/udev/permissions.d/10-user.permissions), start the irda interface during init (add the irda service startup to the current level). If your distribution uses a configuration file that is sourced (/etc/conf.d/irda, for example), you can add the following line in this file to release the port before loading the driver: setserial /dev/ttyS1 uart none

Ethernet

Fully tested as I used this port to download and install the gentoo distribution...
By default, the firewire port is assigned the "eth0" device while the ethernet port is "eth1"... I've been trying to configure "eth0" without success too many times...
I think it has something to do with the order of the modules loading (firewire loaded before the ethernet one?)...

Serial port and VGA connector

Nothing to say, it works...
I use the serial port to synchronize my old Palm PDA, so believe me, it works...
Was true until I found the way to synchronize through the irda port. Using the irda interface for this is a lot more fun and ... impressive ...

DVD+R writer

Tested to write CDROMs and DVD+R medias. No problem so far...

Power consumption

Well, so far I'm still trying to optimize the "unplugged" mode so I have no figure. I can say it can work ~2.5 hours on battery, on windows XP (yes it's a dual boot). I expect to update this section soon...

Last update: wednesday november 17, 2004.

You can send updates, corrections, remarks to: barriere DOT francois AT libertysurf DOT fr