Experiences setting up Linux on a Dell Inspiron 3800
James F. Carter <jimc@math.ucla.edu>
2000-05-12, revised 2000-07-16
I'm very pleased with my Inspiron 3800. After one initial problem it's
performed reliably, and it's easy and fun to use. In my opinion it is
ergonomically comfortable. The screen (1024x768) of course is smaller than
on my desktop machine (1600x1200) but with an adjustment in work methods
I find that's not as much of a problem as I had feared. There's enough
firepower to do anything I ask of the machine. Being to work comfortably
``anywhere'' (not in bright light) rather than being tied to the desk is
a big plus to using a laptop machine with a wireless network card.
I use the machine for:
- Code development
- Technical writing
- Mathematical simulations and symbolic math
- System administration of remote machines (using ssh and DSL)
- Photo editing
Features:
- CPU:
- Intel Pentium III 500 MHz ``Coppermine''
- Graphics:
- ATI RAGE Mobility-M1 AGP 2x (Mach-64, 8 Mb video RAM)
- Screen:
- 14.1 inch (diag), 1024x768x18 bits (use as 24 bpp)
Colors are quite good even without
xcmsdb
,
and better when properly calibrated.
- Pointer:
- Dual touchpad and force stick, 2 buttons for each.
I find the touchpad easy to use for text work, though
for graphics I prefer the force stick.
- Keyboard:
- 78 keys: 2 Alt keys; inverted T arrows; delete, PgUp,
etc. on the top row. I like the feel.
- Memory:
- 64 Mb (2 slots, 32-64-128-256 Mb in one or both)
- Disc:
- 4.8 Mb (bigger is available)
- CDROM:
- 24x. DVD is available, as is a CD burner.
- Removable media:
- Floppy drive. Zip drive is available.
- Sound:
- ESS Maestro 3i (Windows driver says 3P). Sound
quality from the internal speakers is low-fi, though
adequate for non-music applications. When the
headphone jack is inserted the speakers are muted, and
phone sound quality is excellent. See below about the
necessary driver.
- Modem:
- 56K, internal winmodem integrated with the sound
chip.
- PCMCIA slots:
- two, 32 bits.
- Battery:
- Li Ion, 53 amp-hours at 14.8 volts. Nominal run
time is about 3 hours, though with care keeping the
disc off, and APM activated so the CPU halts when idle,
I can run 5 1/3 hours on one battery while editing
stuff and occasionally compiling. Suspend to ram, it
lasts over 100 hours. You can load 2 batteries (in
place of the CDROM). Nominal battery life is 400 full
charge/discharge cycles or 2000 ``partial'' cycles. No
memory effect in Li Ion batteries; partial cycles
aren't bad for it. Estimated self-discharge rate: 6%
in 5 weeks.
- Bundled software:
- Windows 98 2nd edition; Microsoft Works 2000;
Quicken Promotional Package incl. TurboTax. WinNT
and Microsoft Office available at extra cost.
Installation Issues:
Preparing to install Linux, I de-installed most of the factory-installed
Windows software (to be transferred to another machine where it will be
useful). I overdid it, trashed Windows, and ended up repartitioning the
disc the way I wanted it, and reinstalling Windows.
Installing Slackware v7 (Linux 2.2.13, November 1999): I ran setup to boot
from the floppy, CDROM and hard disc (in that order). Install the CDROM in the
media bay, to boot the distribution CD from, and attach the floppy to the
parallel port; have your formatted floppies ready to write a repair disc on.
Installation was uneventful with one exception. The setup program hunts for
the CDROM by trying to mount various devices, and it hung. I suspect it was
trying to mount the Zip drive, which was not installed. To work around this, I
made a directory and premounted the CDROM on it, and gave the appropriate path
name to the setup program (/mycd/slakware
).
I had no problem with the Slackware installation kernel, although I didn't
try to activate my PCMCIA Ethernet card. (Someone else reported a problem doing
that with the Red Hat installation kernel). However, the kernel on the
Slackware live filesystem CDROM/repair disc has some kind of non-obvious
problem reading the CDROM. Hoped-for solution: use the latest Slackware.
Version 2.2.16 update (Slackware 7.1 dated July 2000): The kernel on the
live filesystem disc now works. See additional items about the X-server.
What works with Linux:
- LILO dual boot with Win98 and Linux: Works
- Suspend to RAM: Works. X-windows comes back fine with XF86_Mach64 and
XF86_FBDev from XFree86-3.3.5. However, with XF86_Mach64 from version
3.3.6 that comes with Slackware 7.1, you have to switch virtual
consoles as with suspend to disc (see below for the procedure).
- Suspend to disc: Works without hassles with the VESA framebuffer X-server
(XF86_FBDev). With the ATI accelerated server (XF86_Mach64), it takes
a special procedure (see below) but it works. It takes about 30
seconds to suspend or restore since all of memory is written to disc.
- Hot swap PCMCIA cards: Works. I'm using pcmcia-cs-3.1.14 by David Hinds;
see
http://pcmcia.sourceforge.org
- Hot swap CD vs. floppy in media bay: Partial success. If you suspend to
RAM or disc, then swap drives/batteries, the newly inserted drive will
be useable when you resume. If you compile the kernel with floppy and
CDROM support as modules, and if you boot with the CDROM inserted, and
if you unload the relevant module before removing the CDROM or floppy,
then hot-swapping actually works. But if you boot without the CDROM
the non-module toplevel IDE driver permanently ignores it (the floppy
can still be hot-swapped). Dell provides a special program, Softex
``Bay Manager'', which handles hot-swapping for Win98.
- Floppy on the parallel port: Works (same terms as hot swapping in the media
bay). They give you a cable by which you can connect the floppy to the
parallel port, so you can use it at the same time as the CDROM.
- Xircom 10/100 Ethernet PCMCIA card: Works, using module tulip_cb. One
gotcha: on the University network (which uses Cisco switched ethernet)
you need ``ifconfig eth0 trailers'' or it can't hear ARP replies. On
the home net (dumb hub to Linux and Win95 machines), or with a 3com
Megahertz 10 Mbps LAN PC Card, you don't need trailers.
dhcpcd
turns off trailers by default.
- Proxim Symphony PCMCIA card: Works. The driver I'm using is rl2-1.6.0beta0
by Dave Koberstein. See
http://www.komacke.com
.
There's an unresolved problem with this driver involving ``cardctl
eject''. Kernel v2.2.16 update: it's stopped working. Check back on
Dave's page for an updated driver.
- Sound chip: A driver for the ESS Maestro 3i is available for $30 from
http://www.opensound.com.
It installed without problems. If you want MIDI you will need to
obtain patches (sounds) separately; http://www.anime.net/~goemon/timidity
has been recommended; copies also can be found on KDE archive sites.
With all this, the sound mixer can be set, WAV files can be played,
MIDI files can be played using the included software synth module,
and an audio CD can be played in the drive. I didn't try recording
from a microphone. As for free software,
as of July 2000 a driver for the ESS Maestro 3i is planned
but isn't ready. See
http://www.alsa-project.org/
. Also see
http://www.linuxsound.at/drivers.html
.
As of December 2000 a free driver has been written by Zach Brown:
http://www.zabbo.net/maestro3
.
It compiled error-free. I was not able to adjust the mixer, apparently
due to the lack of unrelated sound modules, but I have to admit
that I didn't put a lot of effort into tracking down the problem.
Other people report success with this driver on an Inspiron 3800.
- Internal modem: It's a stupid Winmodem, implemented in intimate entanglement
with the sound chip! Doesn't work under Linux.
- Pointing devices: Work in 2 button mode. See
http://www.compass.com/synaptics
Except it's an Alps combined touchpad and force stick. The author has
begun to add support for this combination to his utility package (version
3.1), but not a lot is implemented yet. For X setup, put these in the
Pointer section of /etc/XF86Config
or
/var/X11R6/lib/XF86Config
:
Pointer
Protocol "PS/2"
Device "/dev/psaux"
Emulate3Buttons
Emulate3Timeout 50
EndSection
There is supposed to be a program to set the parameters of the
Alps touchpad and stick...
- Winbond chip (temperature sensor, etc.): Has the sensor, but it isn't
the chip supported by the ``health-0.3'' driver.
- USB port. Has a UHCI interface. Kernel v2.2.16 with the v2.4.0 backport
of the USB drivers can communicate with a Kodak DC280 digital camera,
and gphoto v0.4.3 could download photos and manage the camera. Use
``
mknod /dev/camera c 180 80
''. Kernel v2.2.13 with its
matching USB backport encountered a protocol error on the Inspiron,
though it succeeded on a Dell Dimension desktop machine. It wants
``mknod /dev/camera c 10 170
''.
- XF86_FBDev (VESA framebuffer X-server, not accelerated): Works, provided
the boot-time VESA video mode matches the color depth specified in
XF86_Config
(sought first in /etc
and then in
/var/X11R6/lib
). If not, the server exits saying ``vesafb
does not support changing the video mode''. Use mode 0x305 = 773
decimal for 8 bits, 0x317 = 791 for 16 bits, 0x318 = 792 for 24 bits,
and specify ``vga=792'' (or whatever depth) in
/etc/lilo.conf
or as a boot-time parameter.
- XF86_Mach64 (ATI Mach64 accelerated X-server): Works. It's using the
standard VESA modes, 1024x768 @ 70 Hz vsync, 56.5 kHz hsync, 75 MHz dot
clock. In XFree86 v3.3.6 it is incompatible with the VESA framebuffer,
flickering annoyingly at about 15 Hz. To avoid this, specify
vga=normal in
/etc/lilo.conf
). The XFree86 v3.3.5 driver
(with kernel v2.2.13) had no problems with the framebuffer. Testing
with xgc, the accelerated driver is from 4 to 100 times faster than the
plain framebuffer, excelling on filled areas. However, testing with a
tcl/tk application that draws a lot of random rectangles, triangles,
ovals, etc., the speeds are within 20% of same. Disappointing; this is
tk's ``fault'' for implementing the Canvas simply. See below for how
to suspend with this X-server. In XF86_Config use these monitor,
device and screen sections (probably putting the modeline all on one
line):
Section "Monitor"
Identifier "Dell I-3800"
VendorName "Dell"
ModelName "I-3800"
HorizSync 31.5 - 60.0
VertRefresh 50-90
# 1024x768 @ 70 Hz, 56.5 kHz hsync
Modeline "1024x768" 75 1024 1048 1184 1328 \
768 771 777 806 -hsync -vsync
EndSection
Section "Device"
Identifier "ATI-RAGE"
VendorName "ATI"
BoardName "RAGE-Mobility"
Option "power_saver"
EndSection
Section "Screen"
Driver "accel"
Device "ATI-RAGE"
Monitor "Dell I-3800"
# Choose your preferred default color depth: 8, 16 or 24.
DefaultColorDepth 24
Subsection "Display"
Depth 8
Modes "1024x768"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 16
Modes "1024x768"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 24
Modes "1024x768"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 32
Modes "1024x768"
ViewPort 0 0
EndSubsection
EndSection
Kudos and Gotcha's:
- The CDROM power/data connector is quite stiff and you have to wiggle the
drive from side to side to get it to go into the media bay. Notice how far the
floppy drive sits in the media bay, before removing it, and don't stop wiggling
until the CDROM is similarly fully seated. This observation applies to two
different drives.
- The system as delivered failed to recognize the CDROM drive. Suspecting
a problem with the onboard controller, the Dell tech support person
replaced the entire system with no hassle. It arrived promptly.
- When suspending (to RAM or to disc) using the XF86_Mach64 X-server v3.3.6
and kernel v2.2.16, you need to change to a text virtual terminal, or the
server (or something) will freeze during suspend. The program ``chvt''
suitably called from your power management script can handle this automatically
(-P argument to apmd). Manually, Ctrl-Alt-F1 will switch to terminal 1,
invariably a text terminal. To get back, Ctrl-Alt-F7 if your X-server has
taken over terminal 7 (look in the X-server output, which may be in
/var/X11R6/lib/xdm/xdm-errors
or /var/adm/x0-errors
depending on how you start X). If you have any fancy keymappings that change
Ctrl or Alt in X or in text mode, follow your custom map for the mode you are
in.
Which X-Servers can be Suspended
Kernel | XFree86 | X-Server | To RAM | To Disc
|
---|
v2.2.16 | v3.3.6 | XF86_Mach64 | Switch text | Switch text
|
v2.2.16 | v3.3.6 | XF86_FBDev | Not tested | Not tested
|
v2.2.13 | v3.3.5 | XF86_Mach64 | X OK | Switch text
|
v2.2.13 | v3.3.5 | XF86_FBDev | X OK | X OK
|
- There is a small disc partition for suspending to disc. Do not delete
this partition, or suspend to disc won't work. The Dell reference guide
gives instructions for rebuilding it if you wreck it. Here is the procedure
to suspend to disc.
- Exit from applications depending on your PCMCIA cards. Unmount PCMCIA
media such as flash memory. Eject all PCMCIA cards (software eject,
using ``cardctl eject'', is OK). Your power management script can do
the software eject, but not the rest. Switch to a text virtual
console (see above for the procedure; this too can be automated).
- Press Fn-A to save. It take about 30 seconds and the screen will go
blank for a few seconds at the end. Power shuts off completely when
it's done.
- To restore, boot the save partition using an ``other'' stanza in
lilo.conf. Beware: do not fail to restore the saved image! If you
execute linux and make any changes to your filesystems, then when you
restore, the running kernel won't know about the changes and will
corrupt the filesystem. Also if you've saved an image the BIOS won't
let you save another until the first one is restored. (Rebuild the
partition to recover). I've hacked rc.S and rc.apm to create a marker
file in
/etc
when suspending (to ram or disc; it can't
tell which) and to complain bitterly, and give the user a chance to
/sbin/reboot -f
, if the marker file is/is not present when
expected. Use -f to avoid additional damage to your root filesystem.
- If you switched virtual consoles, now switch back, to reset the
X-server. This can be automated. If you forgot to switch consoles you
can switch to a text console now, then immediately switch back. In
that case you'll want to have your window manager ``refresh screen''
because before the switch you will have gotten unsightly mouse
droppings.
- Re-insert PCMCIA cards if any, and if needed.
References for Linux on Inspiron: