My Experience with the Dell Inspiron 3800


Quick Links

Introduction

A good friend of mine sold me her old Dell Inspiron 3800. She had it dual booted with Windows 98 and Debian Linux. Of course, to make life interesting, I had to reload Debian from scratch. My excuse was that apt-get wasn't working correctly (which is true). The other was that I like having a completely clean installation.

Loading Linux

The Debian Woody installer pretty much figured out most stuff for me. I used the Debian 3.0 net installer CDROM. The only things I had to figure out for myself was sound, usb mouse and pcmcia support.

Sound

Googling around a bit helped me determine that I needed to load the maestro3 module on boot (add to /etc/modules) in order to get sound to work correctly. Once done, I could run mpg123 and play (from the sox Debian package) no problem.

X Windows

The nice thing about X is that you can have more than one mouse input device. This is good to have on a laptop, especially if you're like me and don't particularly like using the builtin mouse. I prefer to use a USB mouse (because I like to leave the PS/2 keyboard port open--that's nice for using a KVM switch).

X Monitor and Video Driver

The Inspiron 3800 uses the ATI chipset. Mine has an 800x600 LCD display. Here is an exceprt from my /etc/X11/XF86Config-4 file.

    Section "Device"
        Identifier      "Generic Video Card"
        Driver          "ati"
        Option          "AGPMode" "1"
        Option          "UseCCEFor2D" "false"
    EndSection

    Section "Monitor"
        Identifier      "Generic Monitor"
        HorizSync       31.5-60.0
        VertRefresh     50-90
        Option          "DPMS"
    EndSection
		

USB Mouse Support

Getting USB mouse support is a little different story. One requires several kernel modules loaded in order to accomplish this:

usb-uhci Universal Host Controller Interface
input HID Input Layer Support
hid Human Interface Devices

I put the above module names in my /etc/modules file and installed the usbmgr debian package. This package helps reinitialize usb components during suspend and hibernate.

Both Mice Behaving Nicely

Below is an exceprt from my /etc/X11/XF86Config-4 file:

    Section "InputDevice"
        Identifier      "Configured Mouse"
        Driver          "mouse"
        Option          "CorePointer"
        Option          "Device"                "/dev/psaux"
        Option          "Protocol"              "PS/2"
        Option          "Emulate3Buttons"       "true"
        Option          "ZAxisMapping"          "4 5"
    EndSection

    Section "InputDevice"
        Identifier      "Generic Mouse"
        Driver          "mouse"
        Option          "SendCoreEvents"        "true"
        Option          "Device"                "/dev/input/mice"
        Option          "Protocol"              "ImPS/2"
        Option          "ZAxisMapping"          "4 5"
    EndSection
		

The builtin mouse defaults to being a PS/2 mouse. The bios settings allow you to either have the touch pad mouse work while a PS/2 mouse is plugged in, or shut off in the presence of an external PS/2 mouse. At any rate, adding the second InputDevice section above allows the USB mouse to work correctly.

PCMCIA Support

Oh boy. This one was a lot more complicated. You'll see why below.

Debian Default 2.4.18-bf2 Kernel Installation

The Debian 3.0 installer disk mentioned above defaults to a 2.2.x kernel, or you can choose the 2.4.18-bf2 installer. This is nice because you get a very up-to-date kernel. The installer figures out your PCMCIA controller module very nicely and loads up the pcmcia_cs and kernel-pcmcia-modules Debian packages. The module for the PCMCIA controller is i82365. I have a Lucent Technologies WaveLan card, which it figured out nicely (the orinoco_cs module).

My home network setup is such that I have a firewall computer with three network cards:


I run a DHCP server, so I don't have to fuhtz with keeping IP numbers straight. So, on my laptop I make sure the following line appears in my /etc/network/interfaces file:

	iface eth0 inet dhcp
		

Once I plug the wireless card in, voila, it figures it out!

Upgrading to a Better Kernel Image

The trouble with the net installer's stock 2.4.18-bf2 kernel is that it is attenuated in functionality. I like to run with the latest stable kernel in the Debian Woody distribution, which happens to be 2.4.18. Not a problem, you say, just

and we're off to the races.


But as soon as I upgrade, I notice that PCMCIA support is now broken. Executing the command

	modprobe i82365 
		

reports that the device cannot be found. Crud!

Loading the Correct PCMCIA Controller Module

Some googling and experimenting helped me to determine the actual controller's name in the new kernel: yenta_socket. Once loaded, the pcmcia_cs package does a good job in determining the correct kernel module to load to handle my wireless card: again, the orinoco_cs module (fortunately, that did not change).

Of note also, I inherited with the notebook at Xircom RealPort(tm) CardBus Ethernet 10/100+ Modem 56 pcmcia card. With the newer kernel image loaded, this support seems to work fine. The modules of note are xircom_cb and serial_cs.

Suspend To Disk

I looked at the partition table and noticed that there was a partition, about 78MB big, with code 84. This, it turns out, is what the bios needs to execute S2D (Suspend To Disk).

Deciding the Paritioning Method

Actually, there are two ways to do S2D:

The MS/DOS Way

The first way is to have a very tiny S2D parition and another larger MSDOS partition (FAT16/32). The bios stores part of the memory to hiberate in the S2D partition, then the rest in a file on the adjacent MSDOS parition.

The advantage:


The disadvantages:


The MS/DOS-Is-Not-Needed Way

One can create a partition large enough to hold core memory. If you add more memory to your laptop, then you can easily adjust the size of your partitions using the gpart package.

Creating the S2D partition

Unfortunately, I don't know of any cool open source tool to create this partition. You need to go to http://support.dell.com to download the tools. You should download the file D5788807.exe. This will allow you to make a bootable floppy disk. The downside is that you have to run this thing under Windows. I got around this by using Win4Lin. It might work using the Debian wine package, but I didn't try that.

NOTE: You may also want to upgrade your bios to the latest version. A flash installer is available at the Dell support site.

Suspending to Disk and Resuming

Suspending to disk is pretty easy on the Inspiron 3800. Hit the <FN> A key, and away it goes. However, restoring is another matter. You need to make an entry in your boot loader for the S2D partition. So, if you use lilo, then the entry in your /etc/lilo.conf file should look something like this:

    other=/dev/hda1
    	label=Resume
		

When you suspend to disk, the memory image is written out to the S2D parition, and the bootable flag is toggled in the partition table. When you power your machine back on, you must arrow down to your "Resume" boot loader line. I imagine that if you suspend to disk then choose a normal bootup, this could potentially cause big problems with your file system. I don't know of a way to automate this, but it does work--you just have to remember whether you hibernated on last power down.

Conclusion

The Dell Inspiron 3800 laptop is easy to use and easy to configure, just a few hoops to jump through. I hope that this page helps you to get your system up and running quickly. Please contact me at the address below if you have any questions.

NOTE: Please excuse the javascript below--it is a technique I use to obscure my email address from spammers' bots.

References

My /etc/X11/XF86Config-4 file
http://danplanet.com/dell_3800.html
http://legoland.mednet.ucla.edu/loening/linux-3800.html
http://www.math.ucla.edu/~jimc/inspir3800.html
http://support.dell.com


Doug's Icon
EMAIL :
HOMEPAGE : http://www.dooglio.net