[  Specs  ]
 [  X  ]
 [  IrDA  ]
 [  Sound  ]
 [  Docking  ]
 [  APM  ]
 [  PCCards  ]
 [  USB  ]
 [  Misc  ]
 [  Links  ]

Linux on the Dell Latitude CPi A366XT

DO NOT EMAIL REGARDING LINUX ON DELL LAPTOPS!


Announcement (5 Nov 2000) : I have not had access to a Dell laptop for about 6 months now. While I will still be occasionally updating this web page as it relates to the CPi A366XT, I will not be actively updating this page. I am not really in a position where I can help troubleshoot problems that you may be having, so I will only respond to email121112111211s I can quickly answer. And most of those answers are specifically outlined in this document. Read it over and over if you are having problems. But if you can't get the solution from this page, I will not be able to help you via email121112111211. Thanks for everyone's support. I know that this page has helped a lot of people get Linux going on various Dell laptops. I think it will continue to be of assistance in the future as a static document for older hardware.

5 Nov 2000: An IRDA update!

15 Jun 2000: A few updates, including removing the kernel patch for sound. Several suggestions/ideas/information for email121112111211s.

19 Jan 2000: A couple of updates. Check out the X Window System and the APM sections. The main thing that will help make linux run easier with the latitude CPi A series is to upgrade important packages. For example, with Linux kernel 2.2.14, you won't have to patch in the NeoMagic sound stuff. With newer PCMCIA packages (I'm currently using pcmcia-cs-3.1.8), you don't have to worry about many PC Cards not working (including the cool Xircom RealPort cards). Finally, get updates from support.dell.com for their non-windows updates (BIOS and other firmware). I have BIOS A06 going with no problems.

15 Sep 1999: Sound Works!

Generally speaking, Linux runs great the Dell Latitude CPi A Series laptops. Sound is even now configurable on the CPi A series. The X Window System is easy to configure, apps run snappy, IrDA and pretty much all other hardware works properly. I've tried to describe all essential components for running Linux on this Dell Laptop. Perhaps these comments will apply to other Dell machines, but I cannot confirm that.

My configuration is the Dell Latitude CPi A366XT. I will summarize the features of the CPi A laptop series, but my installation and configuration remarks will be directly related to the A366XT. Presumably, these notes should apply to the entire CPi A series, based on the hardware configurations. If you have any specific questions about running Linux on the CPi A366 that aren't addressed here, please email121112111211 xxx-email121112111211-deleted-xxx.

13 August, 1999: I've spent part of week installing Linux on several CPi A366XT's and assisting with a CPi R400GT (not a CPi A and not my machine, but I hope to put a page together on this fine machine as well--it's a little trickier than the CPi A). I've also received a lot of email121112111211 from fellow Latitude/Linux folks out there. This helps me see where my page is falling short. So now I'm going to try to regularly add to this page according to the questions I'm asked via email121112111211. You're making a difference!

I should point out that although I have installed Caldera OpenLinux 2.2 on the CPi A366XT once, all of this documentation is really focused around RedHat 6.0. My recent installs reminded me that installation from a bootable RH 6.0 CD Rom is a snap. All of this information will apply to other distributions, but may take some translation of wording or file location to get just right.

UPDATE 8/23: Dell has released BIOS A04 as well as firmware updates for both versions of the CPi A-series CD-Roms (Toshiba and Samsung). You can pick them up here. No guarantees, but I installed the A04 FlashBIOS upgrade and the Toshiba firmware upgrade without trouble to my Linux configuration.

Specifications ^top^

Here is a summary of the specifications as given by Dell Computer documentation. Complete technical specifications can be found here.

Chipset: IntelÆ Mobile 440BX PCI chipset
AGP bus: 66 MHz
PCI bus: 33 MHz
CardBus controller: Texas Instruments PCI 1225 CardBus controller
PC Card connectors: 2
Memory architecture: SDRAM
Standard RAM: 64 MB
Maximum RAM: 256 MB
Serial: 1x16550-compatible, 16-byte buffer connector
Parallel: 1 unidirectional, bidirectional, or ECP connector
Video: NeoMagic 2200 (2.5 MB AGP)
Display: 13.3" Thin-Film-Transistor (or 12.1")
Infrared: 1 port compatible with both Fast IR and Slow IR
Audio: 16-bit NeoMagic 2200 AC97 Codec
Speakers: 2x 8 ohm/1 watt stereo speakers
Mouse: PS/2-compatible Synaptics touchpad
Disk: 6.4 GB (available 4.8 - 10.0 GB)
Additional Drive Options: Modular bay accepts floppy, CD-Rom, DVD, add'l battery, add'l hard drive, LS-120 drive
Battery: 1x 8-cell, 44Whr Lithium-Ion battery (up to 4 hours per battery, dual battery capable)
Docking: Choice of C/Port (port replicator) or C/Dock (docking station)
CPU: Intel Mobile PII (mendocino) operating at 366 MHz (available 300 - 400 MHz)
Additional Features: here

X Window System ^top^

UPDATE 6/15: Suggestions from email121112111211:
A reader pointed out that 24-bit coor is rather slow in X, since the SVGA server is unaccelerated.

"One reason I'm writing is to let you know about my early experiences with LCD projectors and different video resolutions.  It turns out (as far as I can tell from README.neo) that by default the Neomagic driver ignores the specific sync settings on the mode line. That's nice, because it means you don't have to fiddle around. However, it worries me with respect to trying to drive an LCD projector, which I do frequently.  Fortunately, I'm in a position to do some experimentation, perhaps as early as tomorrow afternoon, so I should be able to tell you more.

In the meantime, here is some info I've discovered:

1. 24bpp seems to work.  I selected it as my default depth, the server accepted it, and I'm not having troubles.
2. You can get lower-resolution modes by simply adding the following lines to your "Monitor" section:

   Modeline  "1024x768"   65.00 1024 1032 1176 1344 768 771 777 806 -hsync -vsync
   Modeline  "800x600"    50.00 800 856 976 1040 600 637 643 666 +hsync +vsync
   Modeline  "640x480"    36.00 640 696 752 832 480 481 484 509 -hsync -vsync

You can then switch between resolutions by typing Control-Fn-Alt-; (keypad plus) and Control-Fn-Alt-p (keypad minus).  By default, the lower-resolution modes are "stretched" to take up as much of the display as possible.  You can disable this behavior by uncommenting the following line in your "Device" section:

   Option     "no_stretch"

The lower-resolution modes will then appear in the upper-left corner.  You can get them to center instead (which is what Windows does) by uncommenting:

    Option     "lcd_center"

3. Fn-F8 works to some extent for switching between LCD-only, LCD-plus-external, and external-only.  However, I have had trouble getting synchronization between the LCD and the external display (projector) in some modes and resolutions.  The other problem is that switching resolution always turns off the external display, so you have to first pick your resolution and then go external.

4. In experimenting at home tonight, I found that changing hsync/vsync from - to + in the 1024x768 mode line might have some beneficial effects on the external projector, without affecting the LCD-only display.  However, I haven't had a chance to experiment when hooked up, so that's still in limbo.

In summary: 24bpp works.  You can use all three common laptop resolutions, and you can choose stretched vs. unstretched and upper-left vs. centered modes.  1024x768 LCD projectors work in some circumstances.  Lower-resolution projectors are still an open question."

If you are interested in upgrading to XFree86 4.0 on your Dell Lattitude,you might want to check out a patch a certain reader just prepared. XFree86 currently has problems with 24-bit support on the NeoMagic chips, especially the 256ZX. You can find his patch at: http://pages.nyu.edu/~gmp216/neomagic

Another reader pointed out that you can fix the problem with the XF86_SVGA when there is distortion moving things sideways off and on the screen. Remove option "mmio" and add option "no_mmio" to the Section "Device". It will look something like this:

Section "Device"
    Identifier  "My Video Card"
    VendorName  "Unknown"
    BoardName   "Unknown"
#    VideoRam    4096
#    Chipset    "NM2160"
#    IOBase     0xfea00000
#    MemBase    0xfd000000
#    VideoRam   2048
#    DacSpeed   90
#    Option     "linear"
#    Option     "nolinear"
#    Option     "sw_cursor"
#    Option     "hw_cursor"
#    Option     "no_accel"
#    Option     "intern_disp"
     Option     "extern_disp"
#    Option     "mmio"
    Option     "no_mmio"

UPDATE 1/19: OK. OK. I hope that this means we can now stop email121112111211ing me about the Dell 400GT and X. All you should have to do is add the following to your XF86Config in your Section "Device":


    Chipset    "NM2160"
    IOBase     0xfea00000
    MemBase    0xfd000000
      

UPDATE 9/10: Several people have written me asking about a strange little situation with the XFree86. It is a fact that certain actions cause a buggy situation. I don't know if the problems lies in XFree86 or the software or a combination, but here's the situation. If you move certain items horizontally across the screen from an off-screen position, when it is "pulled" onto the screen, the part that is redrawn is mangled. It seems to happen more with right-to-left movement than with left-to-right movement.

The most reproducible example of this is with KDE's kpanel app. Put the panel on the bottom or top. Then pres the "hide panel" button on the right side of the panel. Then press the "show panel" button (the same button) on the right side of the screen. The panel should slide across onto the screen and be very garbled. I don't know what to do about it, but I've received so much mail121112111211 about this situation that I thougth I'd put it out there so you'll know.

The X Window System (XFree86) is easy to configure, once you know the video chipset. The card database lists the card as NeoMagic (laptop/notebook) MagicGraph 128 series. This chipset is handled by the SVGA server. These laptops support up to 16 bpp with up to 800x600 resolution for 12.1" TFT displays and up to 1024x748 for 13.3" TFT displays. The laptops support up to 1280x1024 resolution for external monitors.

Here are my XF86Config files for the laptop's display and for my external monitor. A few things to note in XF6Config files.... I swap 75dpi and 100dpi fonts paths for display on my laptop display, because my eyes are old enough to have a tougher time reading on a 13" screen vs. a 17" screen. Also, the laptop display includes TrueType fonts.

The recent installs I did (13 Aug) reminded me that there wasn't very much to configuring X. The important things to remember during Xconfiguration (not so much with xf86config) are:

  • select the NeoMagic (laptop/notebook) MagicGraph 128 series
  • select LCD Panel 1024x768 (or 800x600 for 12" screens)
  • DON'T probe for default color depth and resolution
  • although I don't think it matters (it gets commented out in XF86Config), I select 4MB of video memory
  • select No Clockchip Setting (recommended) and SKIP the Probe for Clocks
  • in Select Video Modes, only select 16 bit 1024x768 (or 800x600)

Those settings have always given me the best X for the laptop display.

IrDA ^top^

Thanks to Hendy for allowing me to put his post to the linux-irda list. Here it is.

As far as I have been able to tell, the only way to configure IrDA is by using SIR mode (Slow InfraRed). I have not been able to find a FIR mode (Fast InfraRed) dongle that works with the SMC InfraRed hardware on my CPi A laptop. Forcing the CPi A series laptop into SIR mode is accomplished by upgrading to BIOS version A02 or later. This FlashBIOS update was posted at http://support.dell.com/filelib/system.asp?sysid=LAT_PNT_MOB_CPi_A on 11 June, 1999. (I make no guarantees about that web link working.) This BIOS update allows you to force the infrared system of the CPi A into SIR mode, at which point, normal SIR modules in the 2.2.x kernels will work (I have tested only with kernel 2.2.9, but know of no specific problems with earlier 2.2.x kernels). My kernel config will be added here later.

Sound ^top^

SOUND WORKS!

UPDATE 6/15: I have removed links to the kernel patch. The site was not up regularly and since the changes have been officially integrated into the kernel source since 2.2.14, there is no reason to create confusion. Bite the bandwidth bullet and download the 12MB+ tarball and work with a fresh/new/updated kernel tree (unless you're some kernel developer who has done all sorts of tweaking, plus bandwidth is nothing these days, right?).

Suggestions from email121112111211:
If you get errors doing "insmod sound", try "options sound dmabuf=1" in /etc/modules.conf. Also, try "modprobe sound" instead.

UPDATE 9/15:Thanks to Peter Vancorenland for the information that enabled me to get sound working on my CPi A! There was a kernel patch from the people at www.uglx.org that compiles into a kernel modules (no paid OSS license) that supports full-duplex (simultaneous record and play) with the NM256AV chipset! There are different versions of this patch--I recommend that you get the one from uglx (version 0.75). (Information specifically related to Sony notebooks can be found at http://www.weitz.de/vaio.html.)

Here is a summary of what to do after you've downloaded a recent kernel and extracted it into /usr/src/linux:

  • cd /usr/src/linux
  • make config (or menuconfig or xconfig) and configure sound sa a module and the NM256 driver as a module (it will be near the bottom of the list).
  • Compile/install a new kernel and new modules (as described in HOWTOs).
  • Edit your /etc/conf.modules file. All that is necessary relative to sound will be:
            alias char-major-14 nm256
            post-install nm256 /usr/bin/aumix -v 100,100 
    (The last line is optional. You can use a command of your choice after "post-install nm256av" to automatically set the sound volume to your preferred level.)
  • If you have the following lines in /etc/conf.modules, you'll have to comment them out (or delete them):
            #alias char-major-14 off 
            #alias sound off 
            #alias midi off 
  • now doing:
            insmod sound 
            insmod soundcore 
            insmod nm256 
  • if you're not using version 0.75 of the patch, you'll have to replace all references to "nm256" above to "nm256av".

My sound is working!!! If you have any questions or comments, email121112111211 xxx-email121112111211-deleted-xxx with any help you need. BIG THANKS go out to Christian Ritchie (of Dell) and Peter Vancorenland for lots and lots of help regarding sound.

Docking/Port Replicating ^top^

Technically speaking, I'm discussing the "advanced port replicator*" here, but the genereal idea should apply to an actual docking station. This may be the only document that details how to get Linux to recognize and work with the replicator.

The trick to recognizing the port replicator on these CPi A machines is to carefully build the kernel properly. There should only be 2 ways to have an ethernet connection with these laptops. 1) install a PC card that supports ethernet. 2) is to use the ethernet card in the docking station or port replicator. I know that the port replicator uses the 3c905 adapter which uses the kernel module 3c59x (vortex). So manually build the kernel with exactly 1 type of ethernet adapter build (the "vortex", or other card if the docking station has a different card, but I doubt it). This must be built as a module!

Two other assumptions are that PC card ethernet is handled by PCMCIA stuff (see links below), and that I know of no PC card "vortex" ethernet adapter. Therefore, if the kernel is built with only one possible ethernet card as a module, when the machine is in the port replicator and booted, the module should load and you can identify the existence of the "vortex", and thereby identify the port replicator. I do this in /etc/rc.d/rc.local with the following logic:

# JLJ | This will test whether or not you are docked
        and prep X accordingly. # | (Currently based on the 3c590 card
        built into the docking station) docked=`lsmod | grep 3c59x |
        wc -l` if [ $docked -ge 1 ]; then echo "Presuming the computer
        is docked..." cp /etc/X11/XF86Config.dock /etc/X11/XF86Config
        else echo "Presuming the computer is not docked..."
        cp /etc/X11/XF86Config.lap /etc/X11/XF86Config fi 

This logic presumes that the files identified in >X Window System are saved as /etc/X11/XF86Config.dock and /etc/X11/XF86Config.lap respectively. Please be careful with the dock version of the config file, because it is specifically set to work with my Dell 17" monitor and my Microsoft IntelliMouse. Both files have a lot of extraneous stuff in them, but they work really well for me.

The important part is to have Option "extern_disp" set for the external monitor and Option "intern_disp" set for working with the laptop displays. And remember that you can't just switch between internal and external displays without updating your XF86Config and restarting X, or YOU CAN DAMAGE YOUR DISPLAYS!

*The advanced port replicator allows laptop users to have external devices permantly connected to the replicator. When they want to work at their desk, they simply slide the Latitude into the replicator, turn the laptop on, and they have an external keyboard, monitor, mouse, speaker, USB devices--basically everything you need to communicate with/work on the laptop. The docking station is a little more advanced than a port replicator. It has PCI slots in addition to the replicated ports, which allow the user to add video cards or other comentents to the system.

Advanced Power Management ^top^

Suggestion from email121112111211:
When I need to step away from my laptop or focus my attention briefly elsewhere I like to use the Fn + D key combination.  When I'm able to resume work I press any random key and my screen returns.  This has been working flawlessly even with X Windows.

I have APM working to some extent on the CPi A366XT. It works quite well when I go into suspend mode while in X and in console (frame buffer) mode. Since I updated to kernel 2.2.14, sound does not stop when it comes out of suspend mode. Here are are my kernel selections for APM:

        CONFIG_APM=y 
        # CONFIG_APM_IGNORE_USER_SUSPEND is not set 
        # CONFIG_APM_DO_ENABLE is not set 
        # CONFIG_APM_CPU_IDLE is not set 
        CONFIG_APM_DISPLAY_BLANK=y 
        CONFIG_APM_POWER_OFF=y 
        CONFIG_APM_IGNORE_MULTIPLE_SUSPEND=y 
        CONFIG_APM_IGNORE_SUSPEND_BOUNCE=y 
        CONFIG_APM_RTC_IS_GMT=y 
        # CONFIG_APM_ALLOW_INTS is not set 

PC Cards ^top^

The package pcmcia-cs-3.0.13 (24 June, 1999) from http://pcmcia.sourceforge.org works great on the CPi A series. (I've used this software back to version 3.0.9 with kernel 2.2.6 and later.) I have used Dell's 3c575-compatible 10/100 PC Card ethernet adapter, 3COM's 56k Cellular Modem card, and Xircom's RBEM56G-100 realport card with the CPi A366XT. I have no problems with any of them now, although it did take quite a while for the RBEM56G-100 driver to be included in tulip.c. (see also http://pcmcia.sourceforge.org for FAQs and information about using the RBEM56G-100 card.)

13 August, 1999: The pcmcia 3.0.14 package is now out. This in combination with kernel 2.2.11 picks up my Xircom RBEM56G-100 without any problems (although IF YOU'VE USED THE PATCH you have to take out one line from /etc/pcmcia/config.opts). I recommend this combo to anyone who is having problems with an PC Cards in Linux.

Universal Serial Bus ^top^

UPDATED 6/15: One reader suggested that kernel 2.3.x (unstable and in development) is better for playing around with USB. I haven't even touched USB yet.

Not tested yet. Will test and give details RSN. If any of you have information about using USB on the CPi A series and Linux, please contact xxx-email121112111211-deleted-xxx.

Miscellaneous Configurations ^top^

Here are some miscellaneous tips, configurations, and fixes:

  • NumLock doesn't set properly on bootup. In /etc/rc.d/rc.local put:
    # This will reset numlock for tty in /dev/tty[1-9]*
              do setleds -D -num <$tty>/dev/null done 

Links ^top^

Linux on Laptops

Dell Computer

http://support.dell.com/filelib/system.asp?sysid=LAT_PNT_MOB_CPi_A

http://pcmcia.sourceforge.org

Special thanks to RAD Cyberzine for supplying the high-speed web space for this page.

Web Page History:
5 November, 2000 - a major anouncement, an IRDA update
15 June, 2000 - a few updates, including removal of links to the kernel sound patch, and several suggestions and ideas from email121112111211s
19 January, 2000 - version 1.6.0 400GT info, APM, minor other fixes
15 September, 1999 - version 1.5.1 Sound is working!!! (BIG HUGE THANKS, Peter Vancorenland)
14 September, 1999 - version 1.5.0b Minor spelling/link fixes
10 September, 1999 - version 1.5.0 Big sound update, big overhaul (thanks, Christian)
23 August, 1999 - version 1.0.2 Big sound updates, misc other updates
13 August, 1999 - version 1.0.1 LOTS of updates/moved last update time/date to top of page
11 August, 1999 - version 1.0.0 officially put in all I wanted for basic configuration/added "misc" section
11 August, 1999 - version 0.9.3 updated xf86config links and port replicator information
5 August, 1999 - version 0.9.2 added links to email121112111211s from OSS & Dell
23 July, 1999 - version 0.9.1 adds links, updates layout
22 July, 1999 - version 0.9.0 is first posted