I use a Dell Inspiron 5100 laptop for Linux - and for nothing else. It's taken some time, but right now I have the feeling that I have everything configured that I want configured. The only things that I've never put any attention to are PCMCIA, TV-OUT (and extra monitors) and FireWire. I've never felt inclined to use any of these. I've uploaded my .config file, maybe someone finds it useful.

Ethernet
The Gentoo LiveCD detected this perfectly, I then built the kernel and it worked fine. The NIC is an onboard Broadcom 4400, and it is well supported by both FreeBSD and Linux. I compile it into the kernel, but it works just as well when compiled as a module.

Touchpad
I never got this to work in FreeBSD. Just make sure you don't change any defaults in the kernel configuration regarding rodents, and use /dev/psaux as your device.

Sound
It took me quite some time to find out how this worked - but this was actually very easy. The problem was that I didn't know how to unmute sound levels in alsamixer. It is an onboard Intel i810 sound card, and the sound is terrible - use headphones for anything more than simple game tunes. Just like the rest, I compiled this into the kernel. For alsa to work you need both alsa-tools and alsa-utils. You can use alsa-driver instead of the support in the kernel if you want, but I prefer this way. The following stuff should be in the kernel:
<*> Sound card support
<*> Advanced Linux Sound Architecture
<*> Sequencer support
<*> OSS Mixer API
<*> OSS PCM (digital audio) API
[*] OSS Sequencer API
<*> Intel i8x0/MX440, SiS 7012; Ali 5455; NForce Audio; AMD768/8111
Now all you have to do is run alsamixer, unmute the levels with [M], turn them up with the [Up]-arrows, and press [Esc]. Then (as root) run alsactl store and setup the alsa-initscript. Test the sound by running cat /dev/urandom > /dev/dsp.

USB
I only recently found out how to do this. It isn't very hard - but you should be sure that everything is compiled AS A MODULE. WHEN IT IS NOT COMPILED AS A MODULE, IT WILL NOT WORK. I use USB for a Lexar MultiCard Reader (for compact flash) and for memory sticks.
Start off by setting up hotplug. You'll need support for this in the kernel and an initscript. When that works, compile all the modules, usbfs and vfat.
Reboot (of course) for usbfs and vfat to work and modprobe all the modules (sd_mod scsi_mod sg usb-storage uhci-hcd ehci-hcd usbcore). When that's done, mount usbfs if you have to (I don't need to mount it, perhaps hotplug does that for me, not sure). Then plug something in and run cat /proc/bus/usb/devices. The last entry should show some info about the plugged-in device.
Pay special interest to the "Driver=" part, that might give you some useful information. If it's usb-mass-storage you're lucky, because that's setup already. Just ls /dev and look for sda (USB devices are mounted as though SCSI). If you see only sda, have a look whether you see sg0 - if you don't see it you might have to wait a little time until sda1 shows up, or not - just try mounting it - mount /dev/sda -t auto /mnt/somemountpoint. If that doesn't work, find out for yourself what filesystem you need - probably vfat. If it's something else, compile that into your kernel as well. As soon as you know how to mount it put it in /etc/fstab.
[*] Support for hot-pluggable devices
<M> SCSI device support
<M> SCSI disk support
<M> SCSI generic support
<M> Support for Host-side USB
[*] USB device filesystem
<M> EHCI HCD (USB 2.0) support
<M> UHCI HCD (most Intel and VIA) support
<M> USB Mass Storage support
<*> VFAT (Win***s-95) fs support

GLX
I managed to get this working with DRI once, and have messed with it many times before, but without any success - until I lately found a post somewhere at the Gentoo Forums. It said that you could easily use trying the drivers from the kernel/Xorg. All you had to do was compile in the stuff for the GPU (Ati Radeon Mobile 7500), setup Xorg correctly (my xorg.conf) and it would work. Compile the following stuff into your kernel:
<*> /dev/agpgart (AGP Support)
<*> Intel 440LX/BX/GX, I8xx and E7x05 chipset support
[*] Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
<*> ATI Radeon
Then uncomment the lines Load "glx" and Load "dri" in your xorg.conf. Make the Driver in your video card section radeon. Then add (or uncomment) the following section:
Section "DRI" Mode 0666 EndSection
Restart X, and run glxinfo | grep Yes. If this returns direct rendering: Yes the GLX configuration is successful!

CDR/DVD
This worked for me from the start with the default kernel configuration. Confusing is that the device for the drive is /dev/hda - /dev/hdc is the hard-drive.

ACPI
I have the general stuff working, like temperature display and all the buttons work correctly and stuff like that, but that's all. I've tried using lm_sensors but the program reported that my hardware doesn't support it. I've seen other users of this laptop get the screen to go out when the lid is closed and stuff like that - but I don't think that's really important, as they reported that it didn't seem to change the power usage very much. I lately followed the Gentoo Power Management Guide and atm I have speedfreq running by default, since the ACPI events won't work correctly for my laptop. I'm kind of worried about the computer, because when running F@H it reaches temps to 77C (78C is critical). I haven't found out how to adjust fan speeds by hand (don't think it's possible at all). Very annoying. Good thing is that speedfreq generally keeps the speed down (between 2000 and 2400 MHz) - but I don't want a limp computer!