Started July 22, 2002
Last updated
Send comments and suggestions to "maccabe at cs.unm.edu"
The backlight on my Thinkpad T21 died over the July 4th holiday. When I returned on Monday the 8th, I looked to find a replacement for a trip I was taking on the 9th. The lab staff was building a Dell Latitude x200 for the chairman, but they were about to return it because they couldn't get the DVD CD/RW working under Linux (we did manage to get it working). I needed a laptop for a trip and didn't really care about having the disk work. I grabbed the x200 and have been having fun ever since.
The intent of this page is to document how I got various things working under Linux on a Dell Latitude x200. While my machine is dual booted, I almost never run MS Windows, so making things work under Linux is pretty critical to me.
I assume that you are fairly familiar with Linux and are comfortable doing things like re-building kernels. As such, lots of those kinds of details are not documented here. If you need something that isn't documented, feel free to drop me a note and I'll try to answer your question.
I have been running Linux on laptops since 1994 when I convinced my wife that it would be OK to buy that Sharp notebook. As I recall, the machine had 8MB of RAM, a 1GB drive, a floppy drive, and a VGA display (it was important to shut down X when compiling the kernel). Slackware required 52 floppies. Since that machine, I have had two Gateway laptops (an original Solo and a 2300) and the Thinkpad T21.
There aren't very many pages on this machine yet. The Gateway 200 is virtually the same machine, but it is almost impossible to define a search for the Gateway 200 (too bad they didn't use something other than "200"). It seems pretty clear that both the Latitude X200 and the Gateway 200 are really Samsung Q10's with minor modifications. A saleskid at the local Gateway store tried to convince me that they were both made by Sony. The machines certainly share many features with the Viaos (battery in the back), but there are significant differences (the video chipset, the ports are on the left instead of the right, the display border is not the same shape as any of the Sonys, etc).
In any event, here are the pages that I have found:
Dell Latitude x200: Brian's page covers the steps in getting RedHat 7.3 (now the beta release of RedHat) working.
Liberating the Dell Latitude C400: The C400 and the X200 share quite a few components in common and this site has good information on how to configure these components for Linux.
Linux Install Instructions for Dell Latitude X200: This page describes how to install Linux (RedHat 7.3). (I'm not sure that I would actually remove the 802.11 hardware, you should be able to get the same effect using “cardctl eject”.)
Setting up FreeBSD on a Dell Latitude x200 laptop: When things work in FreeBSD, it is so much easier to configure.
Note, there may be many more pages out there. Google seems to take a couple of weeks to "find" new pages and the Linux on Laptops page hasn't been updated since March 26th!
This is a fantastic laptop. It is amazingly light (less than 3 lbs), but feels very sturdy. The display (1024x768) is small (compared to the 1400x1050 on the Thinkpad), but very bright and clear. The battery life with the default battery is only 2 hours, far too short for any significant travel. I have ordered the larger battery.
I live on my laptop. I do not have a desktop in my office and rarely use my desktop at home. Given this, I had assumed that I really needed a "desktop replacement" class machine. The x200 is changing my perspective.
Overall, this is a keeper. IBM has fixed my Thinkpad (we sent the machine in on a Friday and it came back on Monday!), so I'm facing a tough decision. When I use the Thinkpad, it doesn't seem too heavy, but when I go back to the Dell, I am amazed at how light it is..... At this point, I use the X200 when I'm in travel mode and the T21 when I'm in mostly in town.
The base machine costs about $1,680 and comes with a 12.1" XGA display, 128MB RAM, a 30 GB Ultra ATA disk, an internal 56K winmodem, an internal 3Com 10/100 Ethernet card, an 800 MHz Mobile PIII processor, an external (firewire) CD ROM, and a single (Type 1 or 2) PCMCIA slot.
Adding 512MB RAM (total 640MB), a bigger battery, an extra power brick, internal wireless, and upgrading the external drive to a DVD CD/RW combo, brings the price to about $2,650.
There is no IrDA! A bit annoying because I was using IR to sync my Sony Clié. I managed to get USB based synchronization working. While it means that I have to use the cradle to sync, it is faster and more reliable.
I am running Debian GNU Linux (sid, AKA unstable), Linux kernel 2.4.20 and XFree86 4.2.
Everything pretty much works.
The internal 3Com card works.
PCMCIA services work.
USB works.
Mini PCI wireless works. It gets handled like a PCMCIA card, so you can use cardctl to "eject" and "insert" the wireless.
The internal modem works, but you need to hack the source code for the driver.
The external DVD CD/RW works, but you need to run a very recent kernel and use modules for the firewire drivers. You can burn audio and data CDs. DVDs work just fine (using ogle).
X11 works, although you need to run XFree86 4.2. DRM and DRI do not work. According to Intel's Web pages, you need to download the xfree86 source code an build the i830 module. Unfortunately, neither the i810 nor the i830 kernel modules compile cleanly with 2.4.19rc3. I haven't looked into this too deeply, and it may be easy to fix. For now, it's low priority.
The hard drive is not correctly identified by the kernel. Running "hdparm -t -T /dev/hda" reports good cached reads (166 MB/s), but very poor buffered reads (3.2 MB/s). It is my understanding that this will be fixed in the 2.4.20 kernel.
The sound card works for the most part, but does not play wav files. This means that you cannot turn on gratuitous sounds for Gnome. I also have problems with most CD players.
I have installed ALSA drivers and things improved quite a bit: wav files work and the alsaplayer will play audio CDs. While this is working, I really do not like the whole ALSA thing (configuration is a nightmare) and will continue to consider that sound is broken until it is fixed in the kernel.
APM also works, but I have encountered hard lockups when I plug in the AC power. This is very infrequent. Running ACPI might fix this problem, but seems to conflict with PCMCIA services. I have not looked into this yet.
When I received this machine, the support staff had already partitioned the disk and installed Linux, so I didn't have the joy of doing the initial install.
The system should boot from the CD without any trouble (the BIOS understands the firewire drive). However, once it is booted, the Linux kernel will not recognize the drive, unless your distribution uses a fairly recent kernel and you can install the appropriate modules (see the discussion related to the external disk below). This would be a show stopper, except that the kernel will recognize the built-in network controller, so you should be able to do a network install.
From Christian Perrier:
Genuine Debian 3.0 installation CD's kinda work on the X200, but you cannot install from the CD's as the generic kernel (kernel-image-2.2.20-idepci) does not have proper support for the DVD/CDRW. Anyway, network installation works like a charm, either by putting the CD's elsewhere on the network and accessing them via NFS, or by directly download the packages from Debian sites. The bf24 kernel (also on Debian CD1) does not have proper support for the integrated Ethernet card, so it is not very useful there (I did not checked wether modules are included). I did not check with other kernels (those on CD2) Anyway, I always use my custom kernels so this is not really a big problem. I already have compiled a custom kernel package which is suppose to include the support for Firewire. Another idea would be compiling a special kernel with the appropriate support inside, then the modules for Firewire and put all these on Debian "rescue" and "drivers" diskettes....
Here's my current XF86Config-4 file and here's my current kernel .config file.
The video chip is an Intel 830M. This is a fairly new chip, but it is well supported by Intel, they even provide Linux support.
You must run Xfree86 4.2 to use this chipset. While the standard Debian distribution does not support this release of Xfree86, testing debs are available from the maintainer for sid (unstable).
From Christian Perrier:
The appropriate APT entry for sources.list is: # EXPERIMENTAL XFree 4.2 packages for Debian unstable # DO NOT USE Debian BTS for reporting bugs deb http://people.debian.org/~branden/ sid/i386/
In the Character devices section, enable:
/dev/agpgart (AGP Support)
Intel 440LX/BX/GX and I815/I820/I830M...
Intel 810/815/830M (on-board) support
Direct Rendering Manager (XFree86 DRI support)
Intel 810 (under DRM 4.1 drivers)
Here are the Module and Device sections from /etc/X11/XF83Config-4:
Section "Module" Load "GLcore" Load "bitmap" Load "dbe" Load "ddc" Load "dri" Load "extmod" Load "freetype" Load "glx" Load "int10" Load "pex5" Load "record" Load "speedo" Load "type1" Load "vbe" Load "xie" EndSection Section "Device" Identifier "Generic Video Card" Driver "i810" VideoRam 8192 EndSection
From lspci -v:
00:02.1 Display controller: Intel Corp. 82830 CGC [Chipset Graphics Controller] Subsystem: Dell Computer Corporation: Unknown device 0122 Flags: bus master, fast devsel, latency 0 Memory at f0000000 (32-bit, prefetchable) [size=128M] Memory at e0080000 (32-bit, non-prefetchable) [size=512K] Capabilities: [d0] Power Management version 1
From the boot messages:
Jul 23 09:14:17 munchkin kernel: Linux agpgart interface v0.99 (c) Jeff Hartmann Jul 23 09:14:17 munchkin kernel: agpgart: Maximum main memory to use for agp memory: 556M Jul 23 09:14:17 munchkin kernel: agpgart: Detected an Intel 830M Chipset. Jul 23 09:14:17 munchkin kernel: agpgart: detected 8060K stolen memory. Jul 23 09:14:17 munchkin kernel: agpgart: AGP aperture is 128M @ 0xe8000000 Jul 23 09:14:17 munchkin kernel: [drm] AGP 0.99 on Intel i810 @ 0xe8000000 128MB Jul 23 09:14:17 munchkin kernel: [drm] Initialized i810 1.1.0 20010616 on minor 0
From /var/log/XFree86.0.log:
(--) PCI:*(0:2:0) Intel i830M rev 4, Mem @ 0xe8000000/27, 0xe0000000/19 (--) PCI: (0:2:1) Intel i830M rev 0, Mem @ 0xf0000000/27, 0xe0080000/19
lots of stuff omitted
(II) LoadModule: "i810" (II) Loading /usr/X11R6/lib/modules/drivers/i810_drv.o (II) Module i810: vendor="The XFree86 Project" compiled for 4.2.0, module version = 1.1.0 Module class: XFree86 Video Driver ABI class: XFree86 Video Driver, version 0.5 (II) LoadModule: "mouse" (II) Loading /usr/X11R6/lib/modules/input/mouse_drv.o (II) Module mouse: vendor="The XFree86 Project" compiled for 4.2.0, module version = 1.0.0 Module class: XFree86 XInput Driver ABI class: XFree86 XInput driver, version 0.3 (II) I810: Driver for Intel i810 chipset: i810, i810-dc100, i810e, i815, i830M (II) Primary Device is: PCI 00:02:0 (--) Assigning device section with no busID to primary device (WW) I810: No matching Device section for instance (BusID PCI:0:2:1) found (--) Chipset i830M found
lots of stuff omitted
(II) Loading sub module "int10" (II) LoadModule: "int10" (II) Reloading /usr/X11R6/lib/modules/linux/libint10.a (**) I810(0): Depth 16, (--) framebuffer bpp 16 (==) I810(0): RGB weight 565 (==) I810(0): Default visual is TrueColor (WW) I810(0): Bad V_BIOS checksum (II) I810(0): Primary V_BIOS segment is: 0xc000 (--) I810(0): Chipset: "i830" (--) I810(0): Linear framebuffer at 0xE8000000 (--) I810(0): IO registers at addr 0xE0000000 (II) I810(0): detected 8192K stolen memory. (II) I810(0): I810CheckAvailableMemory: 569340k available (==) I810(0): Will alloc AGP framebuffer: 16384 kByte (==) I810(0): Using gamma correction (1.0, 1.0, 1.0) (II) I810(0): Currently active displays on Pipe A: (II) I810(0): LFP (Local Flat Panel) child device (II) Loading sub module "vbe" (II) LoadModule: "vbe" (II) Reloading /usr/X11R6/lib/modules/libvbe.a (II) VESA BIOS detected (II) VESA VBE Version 3.0 (II) VESA VBE Total Mem: 8000 kB (II) VESA VBE OEM: Almador Graphics Chip Accelerated VGA BIOS (II) VESA VBE OEM Software Rev: 1.0 (II) VESA VBE OEM Vendor: Intel Corporation (II) VESA VBE OEM Product: Almador Graphics Controller (II) VESA VBE OEM Product Rev: Hardware Version 0.0 (II) Loading sub module "ddc" (II) LoadModule: "ddc" (II) Reloading /usr/X11R6/lib/modules/libddc.a (II) I810(0): VESA VBE DDC supported (II) I810(0): VESA VBE DDC Level none (II) I810(0): VESA VBE DDC transfer in appr. 0 sec. (II) I810(0): VESA VBE DDC read failed (==) I810(0): DPI set to (75, 75) (--) I810(0): Virtual size is 1024x768 (pitch 1024) (**) I810(0): Default mode "1024x768" (**) I810(0): Default mode "800x600" (**) I810(0): Default mode "640x480"
lots of stuff omitted
(==) I810(0): Default visual is TrueColor
lots of stuff omitted
(II) I810(0): [drm] drmOpen failed (EE) I810(0): [dri] DRIScreenInit failed. Disabling DRI. (WW) System lacks support for changing MTRRs (II) I810(0): vgaHWGetIOBase: hwp->IOBase is 0x03d0, hwp->PIOOffset is 0x0000 (II) I810(0): Adding 768 scanlines for pixmap caching (II) I810(0): Allocated Scratch Memory (II) I810(0): Using XFree86 Acceleration Architecture (XAA) Screen to screen bit blits Solid filled rectangles 8x8 mono pattern filled rectangles Indirect CPU to Screen color expansion Solid Horizontal and Vertical Lines Offscreen Pixmaps Setting up tile and stipple cache: 24 128x128 slots 6 256x256 slots (==) I810(0): Backing store disabled (==) I810(0): Silken mouse enabled (II) I810(0): Initializing HW Cursor
In ATA/IDE/MFM/RLL support, in IDE, ATA, and ATAPI Block Devices, enable:
Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy suport
Include IDE/ATA-2 DISK support
PCMCIA IDE support --so you can use PCMCIA Flash cards
Generic PCI IDE chipset support
Sharing PCI IDE interrupts support
Generic PCI bus-master DMA support
Use PCI DMA by default when available
Intel PIIXn chipset support
PIIXn Tuning support
From lspci -v:
00:1f.1 IDE interface: Intel Corp. 82801CAM IDE U100 (rev 02) (prog-if 8a [Master SecP PriP]) Subsystem: Dell Computer Corporation: Unknown device 0122 Flags: bus master, medium devsel, latency 0, IRQ 11 I/O ports at [size=8] I/O ports at [size=4] I/O ports at [size=8] I/O ports at [size=4] I/O ports at 9000 [size=16] Memory at 28000000 (32-bit, non-prefetchable) [disabled] [size=1K]
From the boot messages:
Jul 23 09:14:17 munchkin kernel: Uniform Multi-Platform E-IDE driver Revision: 6.31 Jul 23 09:14:17 munchkin kernel: ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx Jul 23 09:14:17 munchkin kernel: ICH3M: IDE controller on PCI bus 00 dev f9 Jul 23 09:14:17 munchkin kernel: ICH3M: (ide_setup_pci_device:) Could not enable device. Jul 23 09:14:17 munchkin kernel: hda: IC25N030ATCS04-0, ATA DISK drive Jul 23 09:14:17 munchkin kernel: ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 Jul 23 09:14:17 munchkin kernel: hda: 58605120 sectors (30006 MB) w/1768KiB Cache, CHS=3648/255/63 Jul 23 09:14:17 munchkin kernel: Partition check: Jul 23 09:14:17 munchkin kernel: hda: hda1 hda2 hda3 hda4
From hdparm:
/dev/hda: Model=IC25N030ATCS04-0, FwRev=CA3OA72A, SerialNo=CSH305DAGGTYGB Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs } RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4 BuffType=DualPortCache, BuffSize=1768kB, MaxMultSect=16, MultSect=16 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=58605120 IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5 AdvancedPM=yes: mode=0x80 (128) WriteCache=enabled Drive Supports : ATA/ATAPI-5 T13 1321D revision 3 : ATA-2 ATA-3 ATA-4 ATA-5
This machines uses a pctel modem. Linux drivers are available from The unofficial PCTEL linux modem site. The current version, 0.9.3, requires a slight modification to work with the x200.
Here are the steps to building and installing the modules:
Download and untar the source tree.
Configure the code: "./configure --with-hal=i810"
Now, you need to modify the file src/ptserial/ptserial.c. In particular, change the #define on line 296 to read:
#define PCI_DEVICE_ID_I810_MR_LAPTOP 0x2486 /* laptop */
This was taken from Liberating the Dell Latitude C400. This makes the modem work, but I suspect that something more is needed as I do not hear any of the standard modem sounds when the modem is dialing or connecting.
Now, do the "make install" thing to install the modules.
If you want the modules automatically installed on boot (the pctel.o module is pretty large, so you may want to install it as needed), add pctel and ptserial to /etc/modules.
Remember to enable PPP in the Network Device Support part of the kernel configuration.
When it is installed, the modem will be attached to /dev/ttyS15, i.e., "ln -s /dev/ttyS15 /dev/modem"
From lspci -v:
00:1f.6 Modem: Intel Corp. 82801CA/CAM AC'97 Modem (rev 02) (prog-if 00 [Generic]) Subsystem: PCTel Inc: Unknown device 4c21 Flags: bus master, medium devsel, latency 0, IRQ 11 I/O ports at 8800 [size=256] I/O ports at 8c00 [size=128]
From the boot messages:
Jul 23 10:13:18 munchkin kernel: ac97_codec: AC97 Modem codec, id: 0x5349:0x4c21 (Unknown)
After the pctel module is installed
Jul 23 10:13:18 munchkin kernel: AC97 modem device found: devnum = 8000FE00, devid = 8086/2486 Jul 23 10:13:18 munchkin kernel: iobase_0=0x8800, iobase_1=0x8c00,irq=11 Jul 23 10:13:18 munchkin kernel: PCTel driver version 0.9.3 [5.05c-4.27.215 (09-14-2001)] (MR) (2002-01-31) with MANY_PORTS SHARE_IRQ SERIAL_PCI AUDIO_ROUTING[INTEL] enabled. Jul 23 10:13:18 munchkin kernel: PCTel driver built on [Linux 2.4.19-rc3 i686 unknown "2.4.19-rc3 <132115>"] with gcc-2.95.4. Jul 23 10:13:18 munchkin kernel: ttyS15 at 0x8800 (irq = 11) is a PCTel
In addition to the modem, this machines comes with a built-in 3Com Ethernet controller. This works fine.
In the Network Device Support, in the Ethernet(10 or 100Mbit) menu, enable:
Ethernet (10 or 100Mbit)
3COM cards
3c590/3c900 series (592/595/597) "Vortex/Boomerang" support
From lspci -v:
02:05.0 Ethernet controller: 3Com Corporation 3c905C-TX/TX-M [Tornado] (rev 78) Subsystem: Dell Computer Corporation: Unknown device 0122 Flags: bus master, medium devsel, latency 80, IRQ 11 I/O ports at a000 [size=128] Memory at e0200800 (32-bit, non-prefetchable) [size=128] Expansion ROM at [disabled] [size=128K] Capabilities: [dc] Power Management version 2
From the boot messages:
Jul 22 16:44:40 munchkin kernel: 3c59x: Donald Becker and others. www.scyld.com/network/vortex.html Jul 22 16:44:40 munchkin kernel: 02:05.0: 3Com PCI 3c905C Tornado at 0xa000. Vers LK1.1.16
PCMCIA works fine.
In the General Setup menu, in the PCMCIA/Cardbus Support menu, enable:
PCMCIA/Cardbus support
Cardbus support
From lspci -v:
02:03.0 CardBus bridge: Ricoh Co Ltd RL5c475 (rev b8) Subsystem: Dell Computer Corporation: Unknown device 0122 Flags: bus master, medium devsel, latency 168, IRQ 10 Memory at e0201000 (32-bit, non-prefetchable) [size=4K] Bus: primary=02, secondary=03, subordinate=03, sec-latency=176 I/O window 0: 0000a400-0000a4ff I/O window 1: 0000a800-0000a8ff 16-bit legacy interface ports at 0001
From the boot messages:
Jul 23 10:13:18 munchkin kernel: Linux Kernel Card Services 3.1.22 Jul 23 10:13:18 munchkin kernel: options: [pci] [cardbus] [pm]
As noted earlier, making the external DVD CD/RW work under Linux is not a high priority for me, but I did manage to get it working to an extent. I suspect that the big problem is in the hotplug support -- this is a new machine and it looks like the Linux hot plug stuff doesn't quite know about this particular drive yet.
I have not tried playing a DVD. I can read and write CDs. I have tried to play an audio CD, the disk spins and the cdplayer thinks it is making progress. I suspect that the problem is with the sound card, not the disk. (See the discussion below.)
The trick to making things work is to attach the drive before inserting (modprobe) the appropriate modules. Once the disk has been connected, you should insert the following modules:
ieee1394 (you can probably insert this before connecting the disk)
ohci1394
sbp2
If you compiled them as modules, you will also need to insert:
scsi_mod
sd_mod
Once everything is in place, the device will be /dev/scd0, i.e., "ln -s /dev/scd0 /dev/cdrom"
Once it is recognized, this device will be a SCSI disk, in the SCSI support menu, enable:
SCSI support
SCSI disk support
SCSI CD-ROM support I use a module for this one
SCSI generic support again, a module
The disk is accessed through the Firewire port. In the IEEE1394 (Firewire) support (EXPERIMENTAL) menu, enable:
IEEE1394 (Firewire) support (EXPERIMENTAL) as a module
OHCI-1394 support as a module
SBP-2 support (Harddisks etc.) as a module
Enable Phys DMA support for SBP2 (Debug)
Raw IEEE1394 I/O support as a module
From lspci -v:
02:03.1 FireWire (IEEE 1394): Ricoh Co Ltd: Unknown device 0551 (prog-if 10 [OHCI]) Subsystem: Dell Computer Corporation: Unknown device 0122 Flags: bus master, medium devsel, latency 64, IRQ 11 Memory at e0200000 (32-bit, non-prefetchable) [size=2K] Capabilities: [dc] Power Management version 2
From the boot messages:
after "modprobe ieee1394; modprobe ohci1394"
Jul 23 13:52:29 munchkin kernel: ohci1394: $Rev: 515 $ Ben Collins Jul 23 13:52:29 munchkin kernel: PCI: Found IRQ 11 for device 02:03.1 Jul 23 13:52:29 munchkin kernel: PCI: Sharing IRQ 11 with 00:1d.2 Jul 23 13:52:29 munchkin kernel: PCI: Sharing IRQ 11 with 00:1f.1 Jul 23 13:52:29 munchkin kernel: ohci1394_0: OHCI-1394 1.1 (PCI): IRQ=[11] MMIO=[e0200000-e0200800] Max Packet=[2048]
after "modprobe sbp2"
Jul 23 13:53:38 munchkin kernel: ieee1394: sbp2: Logged into SBP-2 device Jul 23 13:53:38 munchkin kernel: scsi0 : IEEE-1394 SBP-2 protocol driver (host: ohci1394) Jul 23 13:53:38 munchkin kernel: $Rev: 515 $ James Goodwin Jul 23 13:53:38 munchkin kernel: SBP-2 module load options: Jul 23 13:53:38 munchkin kernel: - Max speed supported: S400 Jul 23 13:53:38 munchkin kernel: - Max sectors per I/O supported: 255 Jul 23 13:53:38 munchkin kernel: - Max outstanding commands supported: 8 Jul 23 13:53:38 munchkin kernel: - Max outstanding commands per lun supported: 1 Jul 23 13:53:38 munchkin kernel: - Serialized I/O (debug): no Jul 23 13:53:38 munchkin kernel: - Exclusive login: yes Jul 23 13:53:38 munchkin kernel: Vendor: TOSHIBA Model: CDRW/DVD SDR2102 Rev: 1D13 Jul 23 13:53:38 munchkin kernel: Type: CD-ROM ANSI SCSI revision: 02
after "mount /cdrom"
Jul 23 13:54:39 munchkin kernel: Attached scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0 Jul 23 13:54:39 munchkin kernel: sr0: scsi3-mmc drive: 24x/24x writer cd/rw xa/form2 cdda tray Jul 23 13:54:39 munchkin kernel: Uniform CD-ROM driver Revision: 3.12
at this point, the kernel also inserts the cdrom and sr_mod modules.
The sound card sort of works. It seems to be detected correctly, but it has problems playing wav files.
Freeamp seems to work just fine for playing mp3's.
The sound card is a Cirrus Logic CS4299 integrated in the Intel i810. I have not tried using the ALSA modules.
In the Sound menu, enable:
Sound card support
Intel ICH (i8xx), SiS 7012, NVidia nForce Audio or AMD 768
From lspci -v:
00:1f.5 Multimedia audio controller: Intel Corp. 82801CA/CAM AC'97 Audio (rev 02) Subsystem: Dell Computer Corporation: Unknown device 0122 Flags: bus master, medium devsel, latency 0, IRQ 11 I/O ports at 8400 [size=256] I/O ports at 80c0 [size=64]
From the boot messages:
Jul 22 16:44:40 munchkin kernel: i810: Intel ICH3 found at IO 0x80c0 and 0x8400, IRQ 11 Jul 22 16:44:40 munchkin kernel: i810_audio: Audio Controller supports 6 channels. Jul 22 16:44:40 munchkin kernel: ac97_codec: AC97 Audio codec, id: 0x4352:0x5934 (Cirrus Logic CS4299 rev D) Jul 22 16:44:40 munchkin kernel: i810_audio: AC'97 codec 0 supports AMAP, total channels = 2
This machine has three USB controllers! The important thing is that it has two USB connectors, one on the left and another on the right.
My goal in enabling USB support was to make it possible to sync my Sony Clié using gnome-pilot. If you have other USB devices, you may need to change things a bit, but it should work.
In the USB support menu, enable:
USB support
Preliminary USB device filesystem
UHCI Alternate Driver (JE) support
The "Preliminary USB device filesystem" makes it possible for the USB drivers to register devices in the /proc file system. In order to make this visible, you also need to mount the usbdevfs filesystem. You can do this by hand:
# mount -t usbdevfs none /proc/bus/usb
Or, you may want to add the following line to /etc/fstab (right after the line that mounts the /proc filesystem):
none /proc/bus/usb usbdevfs defaults,auto 0 0
In the USB Serial Converter support menu, enable:
USB Serial Converter support (module)
USB Generic Serial Driver
USB Handspring Visor / Palm m50x / Sony Clie Driver
Notice that the serial converter components are compiled as modules. The modules are usbserial.o and visor.o. I added these to /etc/modules so I don't have to remember to insert them. Alternately, you could use "modprobe visor.o"
From lspci -v:
00:1d.0 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #1) (rev 02) (prog-if 00 [UHCI]) Subsystem: Dell Computer Corporation: Unknown device 0122 Flags: bus master, medium devsel, latency 0, IRQ 10 I/O ports at 8c80 [size=32] 00:1d.1 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #2) (rev 02) (prog-if 00 [UHCI]) Subsystem: Dell Computer Corporation: Unknown device 0122 Flags: bus master, medium devsel, latency 0, IRQ 11 I/O ports at 8ca0 [size=32] 00:1d.2 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #3) (rev 02) (prog-if 00 [UHCI]) Subsystem: Dell Computer Corporation: Unknown device 0122 Flags: bus master, medium devsel, latency 0, IRQ 11 I/O ports at 8cc0 [size=32]
From the boot messages:
Jul 28 23:55:26 munchkin kernel: usb.c: registered new driver usbdevfs Jul 28 23:55:26 munchkin kernel: usb.c: registered new driver hub Jul 28 23:55:26 munchkin kernel: Yenta IRQ list 02b8, PCI irq10 Jul 28 23:55:26 munchkin kernel: Socket status: 30000410 Jul 28 23:55:26 munchkin kernel: uhci.c: USB Universal Host Controller Interface driver v1.1 Jul 28 23:55:26 munchkin kernel: PCI: Found IRQ 10 for device 00:1d.0 Jul 28 23:55:26 munchkin kernel: PCI: Sharing IRQ 10 with 00:02.0 Jul 28 23:55:26 munchkin kernel: PCI: Sharing IRQ 10 with 02:03.0 Jul 28 23:55:26 munchkin kernel: PCI: Setting latency timer of device 00:1d.0 to 64 Jul 28 23:55:26 munchkin kernel: uhci.c: USB UHCI at I/O 0x8c80, IRQ 10 Jul 28 23:55:26 munchkin kernel: usb.c: new USB bus registered, assigned bus number 1 Jul 28 23:55:26 munchkin kernel: hub.c: USB hub found Jul 28 23:55:26 munchkin kernel: hub.c: 2 ports detected Jul 28 23:55:26 munchkin kernel: PCI: Found IRQ 11 for device 00:1d.1 Jul 28 23:55:26 munchkin kernel: PCI: Sharing IRQ 11 with 02:05.0 Jul 28 23:55:26 munchkin kernel: PCI: Setting latency timer of device 00:1d.1 to 64 Jul 28 23:55:26 munchkin kernel: uhci.c: USB UHCI at I/O 0x8ca0, IRQ 11 Jul 28 23:55:26 munchkin kernel: usb.c: new USB bus registered, assigned bus number 2 Jul 28 23:55:26 munchkin kernel: hub.c: USB hub found Jul 28 23:55:26 munchkin kernel: hub.c: 2 ports detected Jul 28 23:55:26 munchkin kernel: PCI: Found IRQ 11 for device 00:1d.2 Jul 28 23:55:26 munchkin kernel: PCI: Sharing IRQ 11 with 00:1f.1 Jul 28 23:55:26 munchkin kernel: PCI: Sharing IRQ 11 with 02:03.1 Jul 28 23:55:26 munchkin kernel: PCI: Setting latency timer of device 00:1d.2 to 64 Jul 28 23:55:26 munchkin kernel: uhci.c: USB UHCI at I/O 0x8cc0, IRQ 11 Jul 28 23:55:26 munchkin kernel: usb.c: new USB bus registered, assigned bus number 3 Jul 28 23:55:26 munchkin kernel: hub.c: USB hub found Jul 28 23:55:26 munchkin kernel: hub.c: 2 ports detected
When the usbserial and visor modules get loaded:
Jul 28 23:55:26 munchkin kernel: usb.c: registered new driver serial Jul 28 23:55:26 munchkin kernel: usbserial.c: USB Serial support registered for Generic Jul 28 23:55:26 munchkin kernel: usbserial.c: USB Serial Driver core v1.4 Jul 28 23:55:26 munchkin kernel: usbserial.c: USB Serial support registered for Handspring Visor Jul 28 23:55:26 munchkin kernel: usbserial.c: USB Serial support registered for Palm 4.0 Jul 28 23:55:26 munchkin kernel: usbserial.c: USB Serial support registered for Sony Clié 3.5 Jul 28 23:55:26 munchkin kernel: usbserial.c: USB Serial support registered for Sony Clié 4.x Jul 28 23:55:26 munchkin kernel: visor.c: USB HandSpring Visor, Palm m50x, Sony Clié driver v1.5
Finally, when you push the "Hot sync" button on the USB cradle, you should get something like the following:
Jul 28 23:57:23 munchkin kernel: hub.c: USB new device connect on bus1/1, assigned device number 2 Jul 28 23:57:23 munchkin kernel: usbserial.c: Sony Clié 4.x converter detected Jul 28 23:57:23 munchkin kernel: visor.c: Sony Clié 4.x: Number of ports: 2 Jul 28 23:57:23 munchkin kernel: visor.c: Sony Clié 4.x: port 1, is for Generic use and is bound to ttyUSB0 Jul 28 23:57:23 munchkin kernel: visor.c: Sony Clié 4.x: port 2, is for HotSync use and is bound to ttyUSB1 Jul 28 23:57:23 munchkin kernel: usbserial.c: Sony Clié 4.x converter now attached to ttyUSB0 (or usb/tts/0 for devfs) Jul 28 23:57:23 munchkin kernel: usbserial.c: Sony Clié 4.x converter now attached to ttyUSB1 (or usb/tts/1 for devfs) Jul 28 23:57:28 munchkin kernel: usb.c: USB disconnect on device 2 Jul 28 23:57:28 munchkin kernel: usbserial.c: Sony Clié 4.x converter now disconnected from ttyUSB0 Jul 28 23:57:28 munchkin kernel: usbserial.c: Sony Clié 4.x converter now disconnected from ttyUSB1
From "ls /proc/bus/usb"
001 002 003 devices drivers
From "cat /proc/bus/usb/devices"
T: Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.00 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 0.00 S: Product=USB UHCI-alt Root Hub S: SerialNumber=8cc0 C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=255ms T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.00 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 0.00 S: Product=USB UHCI-alt Root Hub S: SerialNumber=8ca0 C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=255ms T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.00 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 0.00 S: Product=USB UHCI-alt Root Hub S: SerialNumber=8c80 C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=255ms
For my purposes, APM provides two critical services: suspend/resume and an indication of how much battery remains. Both of these work, although the battery only reports percentage remaining.
On several occasions my machine has frozen when I plug in the power cord while running on battery. I can move the mouse cursor for several seconds after plugging in the power cord. Then the screen goes white and the machine is locked up. The only thing I can do is to power cycle it.
I tried enabling ACPI; however, there is a conflict with pcmcia services and I have not explored this in any depth.