First publication of this article on 16 May 1999
I own a laptop, a Compaq Armada 1570, which runs Linux, and since it seems be a trend, I've set up this page to document how I've installed and configured it.
My main aim, when choosing to buy a laptop, was to have a machine during the training sessions I do, in various French-speaking countries in the Third-World.
These sessions are organized by various bodies, such as the IRD (ex-ORSTOM), the Internet Society or the AUPELF.
Their purpose is to teach, by practice, the setup and management of TCP/IP networks in these countries. The sessions are held in various places, hardware is often lacking, and it can be difficult for the teacher to have a machine... and to set ip up in the short delays. Hence, the laptop, configured in Paris and operated elsewhere.
Since I planned to bring the laptop in various places, not always safe, I wanted a second-hand machine, so it is not too expensive. Also, I did not want to arrive in poor countries with the latest multimedia gadget: we plan to demonstrate, in these teaching sessions, that you can setup a network server with a relatively small machine.
As a second-hand machine, it came with no documentation at all. So, I still do not understand some features.
But a good consequence is that everything is supported by Linux, which is not always the case with recent machines.
The choice of Linux was because of the above (the need to run on a middle-class config) and because I needed all the network tools, as well as some authoring tools like Emacs and LaTeX. So, this small machine is stuffed with all the network daemons (Apache, BIND, Squid, etc).
The Compaq Armada 1570 is no longer produced by Compaq so the only thing you can find about it is a PDF document.
The CPU is a 200 Mhz Pentium. The hard disk a 2 Gb IDE. The "mouse", a trackpad, has only two buttons, which is a pain for X11.
It seems to be Y2K-compliant :-)
My model has no CD-ROM drive. I do not own a modem card, at the present time. I added 16 megabytes of RAM (not a PCMCIA memory card, an internal memory chip) so I have now 32 Mb. I have an Ethernet card, an Accton (before that, I had D-link DE-660 which worked fine, too).
The output of dmesg is included here for more information:
Linux version 2.2.7 (root@laperouse) (gcc version egcs-2.91.60 Debian 2.1 (egcs-1.1.1 release)) #1 Fri May 7 19:51:49 CEST 1999 Detected 200462298 Hz processor. Console: colour VGA+ 80x25 Calibrating delay loop... 399.77 BogoMIPS Memory: 31116k/32768k available (672k kernel code, 408k reserved, 528k data, 44k init) CPU: Intel Mobile Pentium MMX stepping 01 Checking 386/387 coupling... OK, FPU using exception 16 error reporting. Checking 'hlt' instruction... OK. Intel Pentium with F0 0F bug - workaround enabled. POSIX conformance testing by UNIFIX PCI: PCI BIOS revision 2.10 entry at 0xf73a9 PCI: Using configuration type 1 PCI: Probing PCI hardware Linux NET4.0 for Linux 2.2 Based upon Swansea University Computer Society NET3.039 NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP Starting kswapd v 1.5 Detected PS/2 Mouse Port. pty: 256 Unix98 ptys configured apm: BIOS version 1.2 Flags 0xf003 (Driver version 1.9) OPTI621X: IDE controller on PCI bus 00 dev a0 OPTI621X: not 100% native mode: will probe irqs later ide0: BM-DMA at 0x1000-0x1007, BIOS settings: hda:pio, hdb:pio hda: IBM-DYKA-22160, ATA DISK drive ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 hda: IBM-DYKA-22160, 2067MB w/90kB Cache, CHS=525/128/63 Partition check: hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 hda9 > VFS: Mounted root (ext2 filesystem) readonly. Freeing unused kernel memory: 44k freed Adding Swap: 100796k swap-space (priority -1) Serial driver version 4.27 with no serial options enabled ttyS00 at 0x03f8 (irq = 4) is a 16550A ttyS02 at 0x03e8 (irq = 4) is a 16550A NET4: Unix domain sockets 1.0 for Linux NET4.0. Linux PCMCIA Card Services 3.0.9 kernel build: 2.2.7 unknown options: [pci] [cardbus] [apm] Intel PCIC probe: TI 1131 PCI-to-CardBus at bus 0 slot 17, mem 0x7fffe000, 2 sockets host opts [0]: [ring] [pci + serial irq] [no pci irq] [lat 66/176] [bus 1/1] host opts [1]: [ring] [pci + serial irq] [no pci irq] [lat 66/176] [bus 2/2] ISA irqs (scanned) = 3,4,5,7,9,10 status change on irq 10 cs: IO port probe 0x1000-0x17ff: excluding 0x1008-0x100f cs: IO port probe 0x0100-0x04ff: excluding 0x100-0x107 0x220-0x22f 0x250-0x257 0x330-0x337 0x378-0x37f 0x388-0x38f 0x408-0x40f 0x480-0x48f 0x4d0-0x4d7 cs: IO port probe 0x0a00-0x0aff: clean.
And /proc/pci
contains:
PCI devices found: Bus 0, device 0, function 0: Host bridge: OPTi 82C701 FireStar Plus (rev 50). Medium devsel. Fast back-to-back capable. Master Capable. No bursts. Bus 0, device 1, function 0: ISA bridge: OPTi 82C700 (rev 49). Medium devsel. Fast back-to-back capable. Master Capable. No bursts. Bus 0, device 17, function 0: CardBus bridge: Texas Instruments PCI1131 (rev 1). Medium devsel. Master Capable. Latency=66. Min Gnt=192.Max Lat=7. Non-prefetchable 32 bit memory at 0x7fffe000 [0x7fffe000]. Bus 0, device 17, function 1: CardBus bridge: Texas Instruments PCI1131 (rev 1). Medium devsel. Master Capable. Latency=66. Min Gnt=192.Max Lat=7. Non-prefetchable 32 bit memory at 0x7ffff000 [0x7ffff000]. Bus 0, device 18, function 0: VGA compatible controller: Chips & Technologies Unknown device (rev 162). Vendor id=102c. Device id=f4. Medium devsel. Fast back-to-back capable. Non-prefetchable 32 bit memory at 0x40000000 [0x40000000]. Bus 0, device 20, function 0: IDE interface: OPTi 82C825 Firebridge 2 (rev 48). Medium devsel. Fast back-to-back capable. Master Capable. No bursts. I/O at 0x1000 [0x1001].
The Compaq Armada has a set of function keys which are written in green on the keys and invoked with the Fn key. They are treated directly by the hardware and so works on Linux as well as on the other systems. For instance Fn-F9 gives you access to the monitor brightness tuning.
The big purple button is there to suspend the machine when you want to save the power.
There are also four dedicated keys at the upper left of the keyboard, which are labeled with a diamond and a digit. See Daniel Franklin page on how to set them up.
I've choosen Linux for the reasons mentioned before. It could have been FreeBSD, but I'm more used to Linux. And I wanted Debian since it is by far the easiest to manage (specially on the long term, when you install new stuff or upgrade) and because it emphasizes freedom and cooperation (all the other Linux distributions are commercial).
Apart from that, the software is typical of an Unix box. I use mostly:
The whole stuff, including monsters like Emacs, X11 and LaTeX, takes 430 megabytes of hard disk.
To manage my various setups (at home, at work, travelling, etc),
I use cardctl scheme
and init. Here is (a part of) my inittab
:
# The default runlevel. # 4 : full blown configuration, for docking at the office or in any # other place where the power is abundant. # 3 : X11 but no network daemons and no anacron. For work when # not connected to a power supply # 2 : Minimum configuration: no X11 and no network daemons id:4:initdefault:
(I document it in the LILO boot message, too.) And I use the symbolic
links in /etc/rcN.d
to decide that Squid should run
in such level but not the others. For instance, I configure BIND like this:
laperouse:/> ls -l /etc/rc[0-9].d/*bind* lrwxrwxrwx 1 root root 14 May 1 20:15 /etc/rc0.d/K19bind -> ../init.d/bind lrwxrwxrwx 1 root root 14 May 1 20:15 /etc/rc1.d/K19bind -> ../init.d/bind lrwxrwxrwx 1 root root 14 May 1 20:15 /etc/rc2.d/K19bind -> ../init.d/bind lrwxrwxrwx 1 root root 14 May 1 20:15 /etc/rc3.d/K19bind -> ../init.d/bind lrwxrwxrwx 1 root root 14 May 1 20:15 /etc/rc4.d/S19bind -> ../init.d/bind lrwxrwxrwx 1 root root 14 May 1 20:15 /etc/rc5.d/S19bind -> ../init.d/bind lrwxrwxrwx 1 root root 14 May 1 20:15 /etc/rc6.d/K19bind -> ../init.d/bind
So, BIND starts only at level 4 and stops when I go
to level 2 or 3 (for instance with a telinit 3
).
I installed the Debian distribution easily, with two floppy disks as initial media (one for booting and one for the drivers, which was necessary because I wanted to use NFS next) and a local mirror on the network as the next medium. To reach the local mirror, I used NFS over my Ethernet PCMCIA card. No problem for the Debian system. Of course, it is better to read the installation guide, which has a section on PCMCIA devices (no special tricks were necessary, the controller is a i82365).
Once the base system installed, with NFS, I quit dselect
immediately and everything was installed by apt-get
. That way, I'm
sure I will only get the minimum I wanted and I still benefit from the
dependencies management.
For disk partitioning, I wanted to keep the MS-Windows stuff which came with the computer and Compaq reserves a partition, which has the number 3 but is the first one, for various test tools. So, it leaved one primary partition for Linux swap and another one to be split into extended partitions for the various Linux stuff.
fdisk -l
reports:
Disk /dev/hda: 128 heads, 63 sectors, 525 cylinders Units = cylinders of 8064 * 512 bytes Device Boot Start End Blocks Id System /dev/hda1 * 2 107 427392 c Win95 FAT32 (LBA) /dev/hda2 108 132 100800 82 Linux swap /dev/hda3 1 1 4000+ 12 Unknown /dev/hda4 133 524 1580544 5 Extended /dev/hda5 133 140 32224+ 83 Linux native /dev/hda6 141 151 44320+ 83 Linux native /dev/hda7 152 175 96736+ 83 Linux native /dev/hda8 176 302 512032+ 83 Linux native /dev/hda9 303 524 895072+ 83 Linux native
And, after filling the disk with the things I need, df
showed:
Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda5 31199 28240 1348 95% / /dev/hda6 42909 16 40677 0% /tmp /dev/hda7 93663 30158 58669 34% /var /dev/hda8 495714 407389 62724 87% /usr /dev/hda9 866251 559742 261756 68% /home /dev/hda1 423252 408784 14468 97% /C
At the time of this writing, I use kernel 2.2.7 with this .config file. Since I love compiling, I compiled PCMCIA Card Services as well but it wasn't necessary, the Debian package works fine (I currently use version 3.1.8). I tried kernel 2.2.17 but APM is too horribly broken with it (suspending hangs the machine much too often).
APM seems to work fine with this kernel and the Debian
package of the apmd
daemon. I can:
During a typical Web editing session, running Emacs, WML and Lynx, I can run almost two hours with the current battery.
I use apm -v
or xapm
to see the state of
the battery. But it is also possible to use the
Compaq function key
Fn-F8.
When running at init level 4, programs like Squid seems to prevent suspension when they start. After a few minutes, it works fine.
It seems the machine still uses power when suspended: if I let it in suspension without on-line power, it shuts down completely, triggering a fsck at the next resume. This seems to be, besides the blinking LED :-), because you need power to save the RAM memory (it is apparently not backed up to disk).
To save more power, I mount all the disks with the 'noatime'
option.
I lose the information about file access time but I limit the number
of disk writes. Here is an example in /etc/fstab
:
/dev/hda7 /var ext2 defaults,noatime 0 2
I also use the mobile-update program, to sync in a more intelligent way. It seems to work fine (I didn't make very serious measurements.)
The PCMCIA subsystem made no difficulty, because I needed nothing special. Here is the pcmcia.conf
:
# # This file was automatically generated during the Debian installation # PCMCIA=yes # Should be either i82365 or tcic PCIC=i82365 # Put socket driver timing parameters here PCIC_OPTS= # Put pcmcia_core options here CORE_OPTS= # Put cardmgr options here CARDMGR_OPTS=
The machine, like many laptops, can be attached to several networks.
I use the cardctl scheme
system to change from one setup
to the other.
Debian startup files clear /var/run
at startup, so the scheme
is not saved between reboot. The fact that scheme information is not
saved is a bug, fixed in Debian 2.2 ('potato') which was reported as
Debian bug #37685. You can live with it or edit /etc/init.d/bootmisc.sh
(go ahead, it is flagged as a configuration
file, you will not loose your changes at the next upgrade) to exclude
pcmcia-scheme
.
Here is my network.opts
. The default is no
connection:
#ADDRESS="$SCHEME,$SOCKET,$INSTANCE,$HWADDR" case "$ADDRESS" in sources,*,*,*) IF_PORT="auto" # Use BOOTP [y/n] BOOTP="n" IPADDR="172.19.1.5" NETMASK="255.255.255.0" NETWORK="172.19.1.0" BROADCAST="172.19.1.255" GATEWAY="172.19.1.1" DOMAIN="sources.org" DNS_1="172.19.1.1" ;; pasteur,*,*,*) IF_PORT="auto" # Use BOOTP [y/n] BOOTP="n" IPADDR="157.99.60.44" NETMASK="255.255.255.0" NETWORK="157.99.60.0" BROADCAST="157.99.60.255" GATEWAY="157.99.60.1" DOMAIN="pasteur.fr" DNS_1="157.99.64.64" ;; # Default or unrecognized schemes *,*,*,*) IF_PORT="auto" # Use BOOTP [y/n] BOOTP="n" IPADDR="" NETMASK="" NETWORK="" BROADCAST="" GATEWAY="" DOMAIN="" DNS_1="" ;; esac
My Ethernet card is a PCMCIA one. I like the fact that the attached transceiver has two connectors: one 10baseT and one BNC, so I can increase my chances to find a suitable attachment point. The kernel sees it that way:
eth0: NE2000 Compatible: port 0x300, irq 3, hw_addr 00:80:C8:8B:F4:41
And /var/run/stab
contains:
Socket 1: D-Link DE-660 Ethernet 1 network pcnet_cs 0 eth0
Thanks to PCMCIA, there is nothing special to configure: the right module is loaded automagically.
Since the machine is not permanently connected, I use UUCP, so
I can easily send mail even when not connected. Once linked to the
Internet, I uucico -s mypartner
.
My sys
file:
system mypartner time any call-login * call-password * chat "" \d\d\r\c ogin: \d\L word: \P address uucp.sources.org port TCP protocol i
And my sendmail.mc
:
OSTYPE(debian)dnl FEATURE(nocanonify)dnl FEATURE(masquerade_envelope)dnl FEATURE(allmasquerade)dnl FEATURE(always_add_domain)dnl define(`confSERVICE_SWITCH_FILE', /etc/mail/service.switch)dnl Cwlaperouse.sources.org FEATURE(use_cw_file)dnl FEATURE(use_ct_file)dnl FEATURE(nouucp)dnl dnl FEATURE(nodns)dnl FEATURE(mailertable, `hash /etc/mail/mailertable')dnl define(`UUCP_MAX_SIZE', 2000000)dnl MAILER(local)dnl MAILER(smtp)dnl MAILER(uucp)dnl MASQUERADE_AS(laperouse.sources.org)dnl
The mailertable
being:
. uucp-dom:mypartner
The box uses a Chips & Technologies 68554 graphic adapter. I use it with the Xfree86 SVGA server (release 3.3.2 is enough). You can see my XF86Config. At the present time, I drive the screen at 800x600 pixels, 8 bits per pixel.
My keyboard is a French AZERTY, but I use the keyboard maps of the French-HOWTO, not the original one shipped with Debian.
(This is not really a X matter but I repeat a small trick: in text mode, Fn+T seems the only way to make the Compaq Armada use its whole screen.)
At startup, the X server says:
XFree86 Version 3.3.2.3 / X Window System (protocol Version 11, revision 0, vendor release 6300) Release Date: July 15 1998 If the server is older than 6-12 months, or if your card is newer than the above date, look for a newer version before reporting problems. (see http://www.XFree86.Org/FAQ) Operating System: Linux 2.0.36 i686 [ELF] Configured drivers: SVGA: server for SVGA graphics adaptors (Patchlevel 0): ... s3_svga, ct65520, ct65525, ct65530, ct65535, ct65540, ct65545, ct65546, ct65548, ct65550, ct65554, ct65555, ct68554, ct64200, ct64300, generic (using VT number 7) XF86Config: /etc/X11/XF86Config (**) stands for supplied, (--) stands for probed/default values (**) XKB: keycodes: "xfree86" (**) XKB: symbols: "french(pc102)" (**) XKB: geometry: "pc(pc102)" (**) XKB: model: "pc102" (**) XKB: layout: "french" (**) Mouse: type: PS/2, device: /dev/mouse, buttons: 3 (**) Mouse: 3 button emulation (timeout: 50ms) (**) SVGA: Graphics device ID: "Interne" (**) SVGA: Monitor ID: "Integre" ... (**) FontPath set to "/usr/X11R6/lib/X11/fonts/misc/,/usr/X11R6/lib/X11/fonts/75dpi/:unscaled,/usr/X11R6/lib/X11/fonts/Type1/,/usr/X11R6/lib/X11/fonts/Speedo/,/usr/X11R6/lib/X11/fonts/75dpi/" (--) SVGA: PCI: C&T 68554 rev 162, Memory @ 0x40000000 (--) SVGA: Chipset: ct68554 (--) SVGA: CHIPS: no monitor detected. (--) SVGA: CHIPS: 1024 kB VRAM (--) SVGA: CHIPS: DD-STN probed. (--) SVGA: CHIPS: LCD (--) SVGA: CHIPS: Display Size: x=800; y=600 (--) SVGA: CHIPS: Frame Buffer used. (--) SVGA: CHIPS: Using embedded Frame Buffer. (--) SVGA: CHIPS: Frame Accelerator Enabled. (--) SVGA: CHIPS: PCI Bus (--) SVGA: CHIPS: base address is set at 0x40000000. (--) SVGA: CHIPS: Linear addressing is enabled at 0x40000000. (--) SVGA: CHIPS: Internal DAC disabled. (--) SVGA: CHIPS: using programmable clocks. (--) SVGA: CHIPS: probed memory clock of 50113 KHz (--) SVGA: chipset: ct68554 (--) SVGA: videoram: 1024k (**) SVGA: Using 8 bpp, Depth 8, Color weight: 666 (--) SVGA: Maximum allowed dot-clock: 70.158 MHz (--) SVGA: There is no mode definition named "1024x768" (--) SVGA: Removing mode "1024x768" from list of valid modes. (**) SVGA: Mode "800x600": mode clock = 40.000 (**) SVGA: Mode "640x480": mode clock = 31.500 (--) SVGA: Virtual resolution set to 800x600 (--) SVGA: SpeedUp code selection modified because virtualX != 1024 (--) SVGA: CHIPS: 453376 bytes off-screen memory available (--) SVGA: CHIPS: H/W cursor selected (--) SVGA: CHIPS: SpeedUps selected (Flags=0xF) (--) SVGA: CHIPS: Memory mapped I/O selected (--) SVGA: Using XAA (XFree86 Acceleration Architecture) (--) SVGA: XAA: Solid filled rectangles (--) SVGA: XAA: Screen-to-screen copy (--) SVGA: XAA: 8x8 pattern fill (--) SVGA: XAA: 8x8 color expand pattern fill (--) SVGA: XAA: CPU to screen color expansion (bitmap, TE/NonTE imagetext, TE/NonTE polytext) (--) SVGA: XAA: Using 6 128x128 areas for pixmap caching (--) SVGA: XAA: Caching tiles and stipples (--) SVGA: XAA: Horizontal and vertical lines and segments
The sound chip seems to be 100 % compatible with the SoundBlaster,
without the restrictions emphasized in Documentation/sound/README.OSS
(in the Linux kernel sources) under the title "THE BIGGEST MISTAKES YOU CAN MAKE".
So, I use the kernel compilation options:
And I load the sb
driver with the kernel module loader, kmod
. The
options are (I found them by looking at their values from MS-Windows 98,
which is faster than trial-and-error):
alias char-major-14 sb options sb io=0x220 irq=5 dma=1
If you use at least Debian 2.1 ("slink") you should no longer edit
/etc/conf.modules
directly. Instead, put the above options in a
file in /etc/modutils
such as sound
and run
update-modules
.
When loading the driver, the kernel messages are:
Soundblaster audio driver Copyright (C) by Hannu Savolainen 1993-1996 SB 3.01 detected OK (220)
And the program say
can play '.au' or '.wav' files without
trouble.
The two grey buttons on the right side of the machine works fine to control the volume.
The Linux laptop page is a very good starting point and includes a wonderful list of Web services (like the one you are just reading) presenting a setup of a specific laptop. Because each laptop model is really special, this is extremely useful.
Other useful pages:
Front view, open. Closest from you, the touchpad with its two buttons. At the top of the keyboard, the Suspend button (purple)
Rear view, closed. From left to right, the serial port, the parallel port (untested, but I had reports it works fine on Linux), an external video port (it works fine for a presentation, although I have to suspend/resume when switching from internal from or to external video, and I cannot use both videos at the same time), the power plug, with an unknown connector above, the fan output, the infrared port (untested), and a keyboard plug (untested but I had reports it works fine)
The PCMCIA slots and the floppy drive are on the left side of the machine.
In 2009, the machine still works and is used for tests.
Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)
Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)