Debian 3.0 on a Compaq 1700T


D ebian 3.0 is the official stable release of Debian GNU/Linux.
The Compaq Presario 1700T may come with various different hardware. Please refer to Linux on Laptops if my hardware does not match yours.
From lspci,
00:00.0 Host bridge: Intel Corp. 440BX/ZX - 82443BX/ZX Hostbridge (rev 03)
00:01.0 PCI bridge: Intel Corp. 440BX/ZX - 82443BX/ZX AGP bridge (rev 03)
00:07.0 ISA bridge: Intel Corp. 82371AB PIIX4 ISA (rev 02)
00:07.1 IDE interface: Intel Corp. 82371AB PIIX4 IDE (rev 01)
00:07.2 USB Controller: Intel Corp. 82371AB PIIX4 USB (rev 01)
00:07.3 Bridge: Intel Corp. 82371AB PIIX4 ACPI (rev 03)
00:08.0 CardBus bridge: Texas Instruments PCI1410 PC card Cardbus Controller (rev 01)
00:09.0 Ethernet controller: Conexant HCF 56k Modem (rev 08)
00:09.1 Communication controller: Conexant HCF 56k Modem (rev 05)
00:0a.0 Multimedia audio controller: ESS Technology ES1988 Allegro-1 (rev 12)
01:00.0 VGA compatible controller: ATI Technologies Inc Rage Mobility P/M AGP 2x (rev 64)

Basically, everything has been tested successfully, including the Conexant HCF modem :-)

I'll be more than happy to help you, should you have questions.
My distribution of choice is Debian, for lots of reasons that may well not apply to you.

Table of Content

Touchpad

Just treat is as a PS/2 mouse on /dev/psaux with protocol PS/2.

Maestro 3 sound card

Specify in yuor kernel configuration
CONFIG_SOUND_MAESTRO3=m
Then, I created under /etc/modutils a file called sound with a single line in it:
alias sound-slot-0 maestro3
Then, update-modules takes care of updating /etc/modules.conf.
You're set!

XFree

My graphic card is a ATI Technologies Inc Rage Mobility P/M AGP 2x, XFree 4 is just happy to display 1024x768 24 bits, nothing particular once you have specified ati as driver.
As for the monitor, I am using

Section "Monitor"
Identifier "DXS:1313"
HorizSync 30-60
VertRefresh 50-75
Option "DPMS"
EndSection

Internal Network Interface Card

Combo Compaq miniPCI blah blah blah
Something bundled with the Modem, but that has the good idea to work.
With more than a standard kernel, of course, life would not be so simple.

You need the tulip drivers to get it work.
Basically, a small compilation, a manual copy and a manual add-on in /lib/modules/2.4.x/modules.dep.
Enough people wrote nices pages about that, I do not need to add one.
BTW, why not use the stock kernel? Feel free to try, I've never managed to get more than 1 Mbps, using all kernels from 2.4.25 to 2.6.3!

PCMCIA

Up to very very recently, the only way for my linux box to communicate to the Internet was to use the PCMCIA card I've had to buy. One a the (many) good points of the Kernel 2.4 series is the built-in PCMCIA abilities.
I had to configure my kernel as follows:

# PCMCIA/CardBus support
CONFIG_PCMCIA=m
CONFIG_CARDBUS=y
CONFIG_I82365=y

# PCMCIA network device support
CONFIG_NET_PCMCIA=y
CONFIG_PCMCIA_PCNET=m
CONFIG_NET_PCMCIA_RADIO=y
CONFIG_PCMCIA_RAYCS=m

# PCMCIA character devices
CONFIG_PCMCIA_SERIAL_CS=m

The rest of the support comes from the pcmcia-cs package. I had quite some freezes when loading / unloading the modules during upgrades, that's why I quickly upgraded to a journalized file system (ext3) to avoid to corrupt my partition.

Internal Modem

Installation

This laptop comes with a Conexant HCF 56k Modem, declared as 14f1:1815 (vendor: 14f1 as known as Connexant, model 1815 as known as HCF 56k).
A nice WinModem, with all the relevant features of WinModems: takes 100% CPU and freezes your desktop when it dials (both under Windows and Linux), rarely supported under Linux u.s.o...

The date is Sunday, May 19th 2002. Marc Bouchet and Connexant released a working driver. It basically worked straight out of the box :-)

tar -xvzf hcflinmodem-...
cd hcflinmodem-...
make install
hcfconfig


and that's it, the modem is available as /dev/ttySHCF0.
You can play with pppconfig or whatever to connect to your favorite ISP.

Fax Configuration

Not tested with the internal modem yet.
This point might be a reason to keep my PCMCI card :-|
I use kdeprintfax as a GUI, both hylafax-server and hylafax-client must be present to actually send the faxes.

To receive faxes, faxgetty (provided by hylafax-server) must be present in /etc/inittab:
S1:23:respawn:/usr/sbin/faxgetty ttyS2
if the modem is in /dev/ttyS2. If you want to test the internal modem, replace ttyS1 by ttySHCF0.

To configure hylafax-server, read /usr/share/doc/hylafax-server/README.debian.gz, you have far more than you ever wanted.

Combo CD / CDRW / DVD

Since Compaq did not find it usefull to ship my laptop with a Windows software to burn CDs, I had to configure it pdq under linux (thanks for that, Compaq!).
The installation is not a big deal:

Kernel Compilation Configuration

Your kernel needs to emulate SCSI for this IDE device. You need to specify it in the IDE support:

# ATA/IDE/MFM/RLL support
CONFIG_IDE=y

CONFIG_BLK_DEV_IDE=y

CONFIG_BLK_DEV_IDEDISK=y
CONFIG_BLK_DEV_IDECD=m
CONFIG_BLK_DEV_IDESCSI=m

and then in the SCSI Support itself:
# SCSI support
CONFIG_SCSI=m

CONFIG_BLK_DEV_SD=m
CONFIG_SD_EXTRA_DEVS=40
CONFIG_BLK_DEV_SR=m
CONFIG_SR_EXTRA_DEVS=2
CONFIG_CHR_DEV_SG=m

Modules Configuration

I created a file called burner in /etc/modutils/, put in it

options ide-cd
ignore=hdc
alias scd0 sr_mod
pre-install sg modprobe ide-scsi
pre-install sr_mod modprobe ide-scsi
,

run update-modules and here I was.
The trick is that update-modules appends the files in /etc/modules/ to /etc/modules.conf.

/etc/fstab

To correctly mount your combo DVD blah blah, you need to configure it as a SCSI device, again. It is no longer a /dev/hdx but a /dev/scdx.

One way to do it is then:
/dev/scd0 /cdrom iso9660 defaults,ro,user,noauto 0 0

If you are using devfs (soon you will have to forget about it, 2.6 is retiring it), you will find your CD burner under /dev/scsi/host0/bus0/target0/lun0/cd, or for short /dev/sr0.

Software

As for software, I am using mkhybrid and cdrecord.

mkhybrid -R -r -J -v -o cd.iso /path to create the ISO image cd.iso from /path,
cdrecord -v -eject speed=4 dev=0,0,0 cd.iso to actually burn the CD.


Under Linux 2.6.x (hidden message: do not forget the module-init-tools package), you can directly burn in ATAPI with for instance "dev=/dev/cdrom".

HP ScanJet 4300C

My kernel configuration is
# USB support
#
CONFIG_USB=m
# CONFIG_USB_DEBUG is not set

#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
CONFIG_USB_BANDWIDTH=y
# CONFIG_USB_LONG_TIMEOUT is not set

#
# USB Controllers
#
CONFIG_USB_UHCI=m
# CONFIG_USB_UHCI_ALT is not set
# CONFIG_USB_OHCI is not set

[...]

# USB Imaging devices
#
# CONFIG_USB_DC2XX is not set
# CONFIG_USB_MDC800 is not set
CONFIG_USB_SCANNER=m
# CONFIG_USB_MICROTEK is not set
# CONFIG_USB_HPUSBSCSI is not set

You then need to install the package libsane-extras, comment everything but hp4200 and niash in /etc/sane.d/dll.conf and that's it.
You can even have OCR (optical character recognition) using gocr...

USB Card Reader CompactFlash / SmartMedia

Hardware

In /proc/bus/usb/devices, it appears as
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=16 #Cfgs=  1
P:  Vendor=0aec ProdID=5010 Rev= 1.00
S:  Manufacturer=
S:  Product=       USB Storage Device
S:  SerialNumber=0AEC501000001A004
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage

Software

Using the Linux Kernel 2.4.17, you need to update your /usr/src/linux/drivers/usb/storage/unusual_devs.h and add:
UNUSUAL_DEV( 0x0aec, 0x5010, 0x0100, 0x0100,
             "Card Reader/Writer",
         "neodio card reader/writer",
         US_SC_SCSI, US_PR_BULK, NULL, US_FL_FIX_INQUIRY),
as tipped in Guido's Linux USB page.
As for the kernel compile options and the right utilities, Using a USB Compact Flash Reader in Linux is just perfect.

Linux 2.4.25 out-of-the-box is OK with this device.

My two cents will be : using an automounter, it is quite cool :-)

Quality of Service on DSL links

I wrote a little something about QoS on (A)DSL links using the Linux prio queueing discipline (qdisc).
Most importantly, I got to the subject of having some measurable results of the QoS implementation.