Linux on the Dell Latitude CPt C333 (and CPt C400) Laptop

Content

Disclaimer | Updates | Summary | Introduction | Installation | X-Windows | PCMCIA | Sound | Modem | APM | IrDA | Acknowledgements

Disclaimer

This is freely available information which comes with absolutely no guarantees. Use at your own risk.

Summary

Updated Summary: Linux runs very well on these boxes. X11 needs either fbdev (aka framebuffer device) in the kernel (see below) or the new XFree86 3.3.5 svga server binary (also more below). Sound now works with a kernel patch. PCMCIA, APM, IrDA, ... work no problem.

Linux runs well on this laptop, but installation was not all that easy due to the new graphics hardware. The basic system booted and installed right off the Debian GNU/Linux 2.1 (aka slink) cdrom. But the new Neomagic 256ZX chipset only works with the framebuffer xserver, so X11 was quite cumbersome to set up (as I hadn't played with the framebuffer stuff). Framebuffer support in turn requires a 2.2 kernel. Similarly, the 3com 10/100 LAN CardBus card requires a very recent version of pcmcia-cs. X11 works, but only after a few days of wrestling. I will have to configure sound next; pointers are welcome as I have little to information about the sound chip (other than that sound it is also driven by the Neomagic MagicMedia 256)

Updates

12 March 2000: Updated XFree86 Config for release 4.0 Jeff Gage already the new major release of XFree86, version 4.0, and was kind enough to send in the relevant section of his XF86Config file. 23 October 1999: Updated kernel and pcmcia packages With the release of kernel 2.2.13, and somechanges to my kernel config, I have updated the kernel package and the corresponding pcmcia package. The kernel is patched with version 1.1 of the sound patch (which reload after suspend/restore); version 1.0 is now in the 2.2.13 kernel itself.

15 October 1999: USB Support Jan Marius Evang wrote in again (thanks!) stating he merely had to switched on USB support in the kernel sources, recompile and was ready to use his USB mouse.

20 September 1999: Beam me up, Scotty! Jan Marius Evang wrote in telling me about IrDA support. See below for more. And Dave Shewfelt sent a XF86Config file for the 3.3.5 server; this one was created by Red Hat's configuration tool.

16 September 1999: Sound at last? Both Henri Orland and Tan Yong Tai wrote about a patch for sound with this Neomagic chip. Apply the patch, recompile the kernel, and enjoy sound!

15 September 1999: Disaster struck last Friday, and this server went down, either with a broken disk or a broken motherboard. While I maintain the server, I do live 3 hours away and haven't been able to look at it. These pages are now served from an older predecessor machine which isn't that healthy either. If you tried in vain to connect over the last few days, my apologies.

10 September 1999: Good news: Marc Jadoul reports that the new XFree86-3.3.5 server works in accelerated mode! He notes that one still has to set Chipset "NM2200" in the XF86Config file. It works just fine, but the svga xserver binary is a lot bigger than the fbdev one.

11 August 1999: Charles Bueche provides a hint regarding APM's save-to-disk feature: LILO has to be on the / partition.

9 August 1999: Frédéric Pierre kindly supplied a XF86Config file that shows how to use X-Windows with the svga xserver by pretending to have the older Neomagic chip. This works, and just like using the framebuffer device, does not provide hardware acceleration. Some operations seem faster, some seem slower.

26 July 1999: As per an email by Charles Bueche, the information on this webpage also pertains to the new 400 MHz version. Good to know.

2 July 1999: Dell's support answered an email question of mine; the two partitions are for suspend to disk, and 'reinstall support if needed'. I think I should just put a boot floppy on that 7 MB partition so that I don't have to rely on Loadlin.

Introduction

This file contains information relevant to installing, and using Debian GNU/Linux on a Dell Latitude CPt C333GT laptop computer that was purchased in June 1999. The model at hand contains a Celeron clocked at 333 MHz, 96 MB of RAM, a 6 GB harddisk, a 14 inch 1024-768 active matrix display, a 4 MB Neomagic 256ZX graphics card for a resolution of 1024x768 on the LCD, and higher on an external display, a soundblaster-compatible soundcard driven by the same Neomagic chip, built-in speaker, a combo of swappable cdrom and floppy, and other goodies I probably forgot. It weighs about 6.5 pounds with the cdrom, and is about 1.5 inches thick. A sleak machine, all-in-all. You'll find more details on the Dell web site.

Since the initial version of this page was written, several things improved. You no longer have to build a kernel with fbdev support to use X11, provided you get the new 3.3.5 svga server. Also, sound works, thanks to a patch. The patch is now part of the stable 2.2.* Linux kernel.

Installation

The disk was partitioned in a weird way. There were three partitions of 2 GB each. This looked very good at first: one partition for Windows, one for Linux and one for playing around, or more Linux. However, only one of these is a primary partition (and hence is the only one for booting), and it already contains Windows 98. The other two are logical partitions. There are two smaller primary partitions: one of about 100 MB. I still haven't figured out what that one is for -- maybe suspend to disk? However, Windows showed no `hibernation' feature in the Power Management setup. Lastly, there was an unused primary partiton of 7 MB; I am unsure exactly which purpose this serves.

The disk layout has another consequence: one cannot use Lilo to boot Linux as Lilo needs the / partition to reside on a primary partition. And those are already taken. Another choice is to use Loadlin and to boot a Linux kernel from Dos/Windows. Loadlin should come with all major distributions. For refernce, I provide the linux.bat file I am using to boot Linux. See the Loadlin doc, or the Linux+Win95 Mini-HOWTO for info on how to set up config.sys and autoexec.bat. One more point of note is that this laptop seems to require the mem=96M bootprompt option to recognise the additional memory. This might be specific to Loadlin, though.

So I booted from the Debian GNU/Linux 2.1 cdrom (which Debian developers received curtosy of Linux Central, so have to provide a shameless plug for them here in gratitude) and installed a basic system. As Debian GNU/Linux boots of the cdrom, I used the normal installation process to remove the third Windows partition, cut a swap partition of 128 MB off it, and used the rest for one Linux partition. Good for now until I figure out how to move the Windows partition around.

However, during the otherwise successful and painless installation, I discovered that a) X11 wouldn't work with XFree86 3.3.2.3a and b) the new Ethernet card (a 3c575) was supported only in a newer version of pcmcia-cs..

Hence the need for a new strategy: I `borrowed' the good old (cheap) IBM combo card from our old laptop and used it. I had compiled both 2.0.36 and 2.1.125 kernels from the Debian GNU/Linux 2.1 source packages on the cdrom, and also created matching pcmcia-modules packages. So it was just a matter of creating an appropriate network.opts file for my home network, and the recognised old pcmcia network card, all was fine in order to NFS mount my Debian GNU/Linux mirror at home.

I used this local mirror along with Debian GNU/Linux's powerful apt-get program to update the (small) Debian GNU/Linux installation from the 2.1 cdrom to the current unstable release -- as it provides the 2.2.* kernel, newer pcmcia-cs sources and the XFree86 3.3.3.1 with framebuffer support required for this laptop. I manually upgraded the core packages (using a single apt-get install dpkg to upgrade smoothly to the new glibc2.1 packages for the very core, then upgraded netstd, pcmcia-cs and pcmcia-sources, kernel-sources 2.2.10, built a new kernel and new pcmcia-modules and rebooted. From there, it was simply a matter of the commands apt-get update and apt-get dist-upgrade to upgrade everything I had installed. It stopped a few courier new on minor glitches, so I had to repeat the apt-get dist-upgrade command.

Now I was ready to install the new XFree86 version, and try the framebuffer support. Searching the Web and Usenet, I found a Usenet posting which put me on the right track. Once framebuffer support is compiled into the kernel, the Lilo option vga=ask can be used to select a particular framebuffer setting (see the Vesafb Mini-HOWTO)for more on this). It took some trial-and-error to find that the lilo prompt wants the hex format (without the leading 0x, though) whereas Loadlin requires the decimal version. It is worth repeating that a session started with vga=ask cannot be used to run X11. You have to use Lilo or Loadlin to pass the correct parameter to the kernel at boot time. A bit inconvenient, but worth it given how generally useful Framebuffer support, and especially as it requires no further mucking with hardware settings (as opposed to display modes for X11 or SVGA, for example).

As this might be useful for others, I am providing my kernel configuration file as well the Debian GNU/Linux packages for kernel 2.2.10 and the pcmcia-cs 3.0.12 modules. For reference, the dmesg output after booting is provided. Updated packages for kernel 2.2.12 and matching pcmcia-cs 3.0.14 modules are now available as well. Updated again: kernel package for 2.2.13 with neomagic patch 1.1 and the corresponding pcmcia package based on pcmcia-cs 3.1.1. These Debian GNU/Linux packages are useful for other distributions as they contain only the kernel and its modules which can be installed `by hand' if need. In a nutshell, the .deb format is simple an ar package around a .tar.gz file plus control information.

X-Windows

Once I had working Framebuffer support, and XFree86 3.3.31 from the current development version of the upcoming Debian GNU/Linux 2.2 release to provide the xserver-fbdev package, X11 was easy. It simply worked :-). For some reason, the xserver did not want to find the psaux device until I disabled a couple of things in the kernel config. I am still unsure what exactly caused this.

For reference, I also provide my XF86Config file. Note however that all gory details are handled by the Framebuffer device underlying the X11 server.

Update: Another XF86Config file has been provided by Frédéric Pierre. This enables the use of the standard svga xserver (in Neomagioc 256AV mode) with a depth of 24bit. It does not give hardware acceleration either. Some operations seem faster, some seem slower.

Update 2: You can use svga in accelerated mode provided you get the newest 3.3.5 server. This actually works with an older X11 distribution (i.e. libs, binaries, etc), simply replace the older svga binary with the new one. Update 3: Here is yet another XF86Config file, this time created by Red Hat's configuration tool. Thanks to Dave Shewfelt for sending it in. Update 4: For the new major release of XFree86, version 4.0, Jeff Gage was kind enough to send in the relevant section of his XF86Config file.

PCMCIA

The PCMCIA software works `out of the box'. Debian GNU/Linux has a nice setup where a kernel package is created via make-kpkg kernel_image and similarly, a matching pcmcia modules packages as make-kpkg modules_image. As mentioned above, a recent version of pcmcia is needed to get the 3com card working (the card identifies itself as a 3CCFE585BT). You can download my kernel 2.2.10 and pcmcia-cs 3.0.12 modules for 2.2.10 packages. Updated packages for kernel 2.2.12 and matching pcmcia-cs 3.0.14 modules are now available as well. Updated again: kernel package for 2.2.13 with neomagic patch 1.1 and the corresponding pcmcia package based on pcmcia-cs 3.1.1.

Sound

To be done. Pointers are welcome, I am not sure yet how his chipset is supported. I will post informationation about sound as soon as I received it, but I still have none, and don't have it working myself.

Update: Sound really works with this sound patch against the 2.2 kernel. See that page for more info. Nice to see how the pieces finally come together.

Modem

No hope in hell. From reading the Linux Laptop pages on other Dell models, it became clear that the on-board modem offered by Dell is of the lobotomized WinModem kind. So I opted for not ordering one.

Advanced Power Management (APM)

Works without a glitch, provided APM support is compiled into the kernel and the apmd package is installed.

Update: Charles Bueche points out that on a dual-boot (Win98 + Linux) configuration, lilo must be installed on the linux / partition for save-to-disk to work. If lilo is installed on the MBR, tarting the PC after a save-to-disk will try a normal boot, with the usual fsck's.

IrDA Infrared Support

According to Jan Marius Evang, this patch plus the following worked just fine:

1) Enable IrDA in the BIOS
2) make sure the /etc/irda/config file contains the correct TTY (I use
ttyS2)
3) there is no need for the toshiba driver, it's for fast-IR (4Mbps). I use
"Standard IR" with my GSM (Simens S25)

I don't have any equipment that funky so I can't test it myself.

Acknowledgements

Kudos to the excellent the Linux Laptop pages. I am also indebted to a Usenet posting by Pat Conroy without which I would not have gotten the framebuffer setup right. This page was written on Linux using the awesome SGML/HTML mode for Xemacs, and uses a stylesheet heavily influenced by the U of Toronto HTML Guide.

Thanks as well to everybody who sent me an email to improve this page.

Content

Disclaimer | Updates | Summary | Introduction | Installation | X-Windows | PCMCIA | Sound | Modem | APM | IrDA | Acknowledgements

Last modified: Sun Aug 6 16:53:58 EDT 2000