To get my Inspiron 8200 up and running Linux was no problem. However, to get the modem, and suspend/resume running well was not so easy. Here is a short page of tips for the I8200 (some things specific for model with 1400x1050 display), running RedHat 7.3.

The XFree NVidia driver does not seem to be completely finished for the geforce 4, so you may want to temporarily use the NVidia supplied driver (closed-source binary driver, with source code kernel stub). The XF86Config-4 file I have provided here allows me to run X11 with the XFree86 VESA driver, or the NVidia driver, by simply providing the startx -- -layout option. The VESA driver only works if the Load glx line is commented. There are a couple of modes that you can use as examples to try to get dual-monitor support working.

Dual monitor support works okay, but power management does not work for external monitor. In certain cases, if you use Fn-D to turn of your monitors, you can't get the external one back on. Workaround: boot with external monitor connected, blank the screen, and then go to a virtual terminal to get the monitor to come back on.

If you run XFree at a lower resolution than 1400x1050, you will either have a small screen set in the middle of your LCD, or the lower resolution will get blown up to 1400x1050, resulting in strange moire patterns and very poor text quality. You can alternate between these two by pressing Fn-F7. If you really need a low-resolution mode (because you can't get fonts for a certain application to be displayed bigger, for example), you can use the modeline I have provided for 700x525 (if your LCD blows up, I'm not responsible. Use at your own risk!). The advantage of THIS modeline is that every pixel gets blown up to 4 pixels, and so the text quality doesn't look all that bad).

To get your modem working, use the Connexant hsflinmodem package. Search for it on the net--I don't remember where I found it. Here in Switzerland, I have problems with disconnects. I used minicom -o followed by AT#UG and AT#UD to find out why it was disconnecting. It turns out it was having problems with transmission errors. So I added

  Init1 = ATZ
  Init2 = ATW1
  Init3 = AT+MS=V90,1,75,14400,75,28800
  
to my /etc/wvdial.conf file to slow down transmission a lot, and reception a little. This results in slow but reliable connections. I'm not sure if my modem, the swiss lines, my provider, or the Linux modem driver is the problem here.

To customize the fan behavior, and read laptop the temperature sensor and fan speed, you can install the i8kutils package found on the net.

I tried to get hibernate to work with no success. I downloaded the special hibernate partition program that Dell provides for older Inspirons, and could not get it to work. If you do get it to work, PLEASE contact me at jazzdaq funny-at-symbol mail.yahoo.com or my sourceforge e-mail address.

After quite a bit of effort, I have more or less gotten suspend to work with X11. If you use the VESA driver, you can suspend right out of X11 (with a mouse problem and a fan problem described later). If you want to suspend from the nVidia supplied driver, you will have to edit and recompile the source code kernel stub NVdriver, and recompile your kernel without AGP support. There is a patch somewhere floating around on the net, but the patch is so simple that it is just as easy to edit the NVdriver source code in the file nv.c. First, recompile your kernel without any AGP support. Maybe it is possible to simple remove the agpgart.o file from your /lib/modules directory, and reboot. I have not tried that. I recompiled the pure kernel sources from kernel.org after removing AGP support. Then, edit the NVIDIA_kernel-1.0-3123 file nv.c, changing return codes on two lines from 1 to 0, so that the source looks like:

#else
        case PM_RESUME:
        case PM_SUSPEND:
        //    printk("NVRM: avoiding suspend request, don't want to shutdown!!\n");
            return 0;
#endif

        default:
        //    printk("NVRM: received unknown PM event: 0x%x\n", rqst);
            return 0;
    }
  
Now, install the new kernel, install the new NVdriver, set the NvAGP option in your XF86Config-4 file to 0, reboot, and run X. Press Fn-Est to suspend.

If your setup is anything like mine, you will have two problems. First, from time to time your fan will go haywire, blowing away all the papers on your desk, and frightening your dog. The /proc/i8k will indicate falsely that the CPU is at 85 degrees celsius. Second, quite often your X11 mouse and keyboard will get weird on resume. Keyboard repeat will no longer work some of the time, and each mouse clicks will be interpreted as a single, double, or triple click, depending on the weather, your mood, or something else.

The first problem has a simple solution (if you know about it). Recently somebody discovered that by pressing Fn-z, or the corresponding key found in the lower left on international keyboards, the fan and temp sensor will go back to normal.

The second problem occurs because of a clock problem. This seems to be the RedHat Linux 7.3 that does not correctly set up hwclock to switch between universal and local time like it should. If I tell the data/time manager to set universal time, it does so in /etc/sysconfig/clock, but it does not do it correctly in /etc/adjtime. This results in the time being incorrect by a couple of hours if I go into the BIOS, or suspend/resume. But apmd corrects this problem on suspend/resume and you usually don't notice it. But it screws up X11. So what I did was simply make sure UTC was being used in /etc/sysconfig/clock and also /etc/adjtime. Now my clock does not jump around like it did, and the problem is solved.

Unfortunately, I am sometimes getting some hangs when doing a suspend. For the last couple of suspends, I have unloaded all possible kernel modules before running suspend (notably, the usb modules and pcmcia modules), and it seems to work better. More to come...

I have now suspended about 15 times without any trouble. I have removed pcmcia from all startup scripts, and I commented the usb-controller line in /etc/modules.conf. I now believe I have a functional and reliable suspend/resume configuration.

Much of this information comes from other web pages. Much thanks to the authors of those pages! This information is provided as-is, with no guarantee. If you choose to use this information and it results in lost data, lost hair, or computer damage, I decline all responsibility.