GNU/Linux Desktop Survival Guide
by Graham Williams
Dell Latitude XPi (Rose)
This older notebook PC has limited resources but works quite well with a basic installation and on a network with a more powerfull server. At the time the XWindows driver for the NeoMagic chip was not part of the XFree86 distribution (it has been since version 3.3.3). This Dell Latitude XPi P133ST has a NeoMagic NM2070 chipset. The machine has 24MB of memory and a 1.2 GB hard disk, using a PCMCIA modem card with PPP.
The 1.2GB hard disk was partitioned into two equal partitions, the first for Windows95, the second for Linux. Windows95 offers less functionality, is slower, has more bugs, and consumes considerably more disk space than the Linux installation which includes X, TeX, and much more!
Originally installed Debian GNU/Linux 1.1 with individual package updates as needed.
Checking NeoMagic's web pages at the time found that ``NeoMagic does not support Unix drivers, and cannot provide device/programming information to end-users,'' protecting their intellectual property rights. So for the NeoMagic chipset there was no SVGA driver (800x600x8bpp 256 colors) in XFree86 prior to version 3.3.3--only the simple VGA16 driver (800x600x4bpp 16 colours) could be used. There was a RedHat rpm with a driver for this chip with XFree86 versions prior to 3.3.3 available and a commercial (approximately US$250) X11 server from Xi Graphics with a NeoMagic driver for Linux, with many positive reports.
Running an older version of XFree86 and of the kernel, you will find that the VGA16 server from XFree86 version 3.1 works with the NM2070, giving just 16 colours. A ``trick'' is required to get the server to use the whole screen (800x600) rather than the 640x480 default or the split screen effect. This requires putting the monitor into 800x600 mode on bootup. A consequence of this is that the normal console is turned off, and you will need to go directly into XWindows, via xdm. This is not usually a problem.
Note that using the Neomagic 2070 xserver provided with XFree86 version 4 works fine with both 8bit and 16bit on 640x480 and 800x600 but causes a corrupted screen (vanishing window content etc.) in all x-applications if used with default settings. To fix the problem append both Xaa-options in the screen-section of the x86config:
Option "XaaNoPixmapCache" Option "XaaNoScreenToScreenCopy"
No further hacks or tricks were required on the from SuSE-Linux distribution 7.2 on a Dell Latitude xps p133st Bios rev. 11.
The simplest way to turn on the 800x600 mode is to use LILO and to change ``vga=normal'' to ``vga=770'' in /etc/lilo.conf (or to add it there if not present as in Red Hat Linux). You can also create alternative lilo startups so that you can choose to go with xdm or not with an "append=4" or "append=5" (an init 4 or 5 will start xdm depending on your setup--Red Hat uses init 5 for xdm).
A kernel patch could also be used to switch to 800x600 mode (notice that 770 is the decimal equivalent of 0x0302). The modification is to the file /usr/src/linux/arch/i386/boot/video.S in the Linux kernel.
From: mode_set: mov bx,ax cmp ah,#0xff jz setalias To: mode_set: mov ax,#0x0302 <- Insert this line mov bx,ax cmp ah,#0xff jz setalias
The Compaq Presario 1020 notebook (which also uses a NeoMagic NM2070 chip) requires no LILO switches nor kernel patches. Similarly the NEC Versa 4200 also uses the NeoMagic and no hacks are required to get it to run in 800x600x4bpp mode.