Linux on the Dell Inspiron 8600 HOWTO

      News (as of 2004-10-24):
        Suspend to RAM is working with the 2.6.9 kernel.
        Little acpid hack added.

      Summary:
        A nice notebook, but needs a recent kernel and some patching.
        Every part of the hardware can be used under Linux (AFAIK).
        Some drawbacks:
        • The notebook is not completely silent (but is much better than a Mobile P4 based notebook).
        • It is too warm for using it on your "lap top" for more than 2 hours.
        • The keyboard is not the best and even debounces sometimes.


      Status:
        Ethernet (Broadcomm BCM 4401) Works (needs kernel >= 2.4.23)
        IDE (855PM) Works (needs kernel >= 2.4.23)
        X11 (NVidia GeForce FX Go 9650) Works (needs a recent X)
        Video output Works (using the NVIDIA binary X11 driver)
        Sound (SigmaTel 9750) Works after patching
        CD/DVD (NEC DVD+RW ND5100A) Works after patching
        Additional keys Works after patching
        ACPI Works nearly perfect
        WLAN (Intel PRO/Wireless 2100) Works after patching
        USB (2.0) Works out of the box
        PCMCIA Works out of the box
        Modem (Pctel 2304WT) Works after patching with the 2.4 kernel
        IEEE1394 Not tested (the chipset is recognized out of the box)
        BIOS Version A00 is quiet with Linux

      Private opinion:
        This notebook was one of the most Linux-resistant ones (as of 2003-10-15) I ever saw. Almost nothing worked out of the box. And I even made the mistake to change HW and OS version at the same time.
        Using recent software it is a nearly perfect one. The aspect ratio of the screen (8:5) is more comfortable then the usual 4:3, but needs some tweaking if using fullscreen applications (like mplayer).

      Bootstrapping:
        First I used PartitionMagic to remove the Dell partition, to make place for a Linux partition and to convert the XP filesystem from NTFS to VFAT.

        Then I booted XP, downloaded the newest 2.4 kernel (2.4.23-pre7), the network driver, installed Redhat 9.0 and compiled the new kernel and the network driver.
        Currently I am using the arch distribution, it needs the same tweaking as Redhat, but it is more friendly to people used to command-line tools like me.

      Builtin ethernet support
        The builtin ethernet is supported by the 2.4.X kernel (X>=23) and the 2.6.Y ones (Y>=0).
        For earlier kernels get the driver v2.0.0 (or newer), compile and insert it as a module.
        The chipset is able to saturate a 100MBit connection.

      IDE Chipset
        The IDE chipset is not recognized by the standard Redhat 9.0 kernel, ergo dma is not usable: you get about 2-3MB throughput (according to hdparm -t). Using kernel 2.4.23 or better the throughput is about 24MB to the Fujitsu MHT2060AT

      X11:
        Out of the box Redhat was using VESA with a an 800x600 resolution, but I have a 1600x1050 LCD.
        Either use a current binary driver from nVidia (e.g. version 6106), the 4.4 XFree86 server or the Xorg server.. The current nvidia binary server has following advantages/problems when comparing it to the XFree86 one:
        • 3D support (2560 glxgears), playing Unreal Turnament 2004 in the highest resolution makes fun.
        • Support for low resolutions up to 320x200, XFree86 has support for "only" 640x350
        • Support for video output
        • It "blinks" once every 5 minutes, which annoys me
          Note:There is a workaround for this problem (described here), and the latest NVidia driver should not have the problem either.
        I am using the XFree86 one, although the binary is preconfigured and easy to enable by commenting in the "nvidia binary" entry and commenting out the "nvidia free" line in my XF86Config file.

      Video output:
        The video signal receiver has to be switched on and connected (e.g. via a standard S-Video cable) before starting X11, and you have to use the nVidia binary driver. Read the README file in the binary driver package, it describes the plethora of the XFConfig options.
        NOTE: If using my XF86Config file, you have to switch to the middle or low resolution to enable the video output.

      Sound
        As we have an AC'97 compatible audio controller, you have the choice of using the OSS i810 audio driver or the Alsa intel8x0. I had the same problem on my previous Inspiron 8200, so I have two preconfigured entries in the modules.conf. Note: this is a handcrafted file, and it may not work as expected on your machine.
        The OSS module works but only at fixed 48kHz. If not using the clocking=48000 parameter, you get only 50% of the time correct audio. The alsa driver (0.9.7c) supports converting formats, but panics if loaded.

      CD/DVD
        Reading the CD/DVD and writing CD's (with cdrecord) works out of the box.
        As the DVD writer is of +RW type, we have no support out of the box. But after reading this page and downloading the dvd+rw-tools, writing a DVD is as easy as typing

        shell# growisofs -Z /dev/hdc -R -J /some/files

        Take care, DVD's "extended" with growisofs -M cannot be read at least on Windows 2000 (but are perfectly readable under Linux).
        Speed: The drive claims to be a 4x one, the first 40% are written with 2.4X then after an audible recalibration the rest is written with 4X giving an overall speed of 3.16X.

        I use the DVD for my backup, in the following way:

        shell# mkzftree -z 5 /home/rudi tmp-dir/home/rudi
        shell# mkzftree -z 5 /etc tmp-dir/etc
        shell# mkzftree -z 5 ...
        shell# growisofs -Z /dev/hdc -z -R tmp-dir
        shell# rm tmp-dir


      Additional keys
        As I did not found anything usable for me and the additional keys are generating normal X-keyboard events, I wrote a small program to adjust the volume, etc. You have to compile it with

        shell% cc -o audio_keys audio_keys.c -L/usr/X11R6/lib -lX11

        and insert it into your X11 startup script.
        For the 2.6 kernel add following in one of the rc scripts:

        #e005=Darker; e006=Lighter; e007=Battery; e008=WiFi; e009=Eject;
        setkeycodes e005 133 e006 134 e007 135 e008 136 e009 137

        else the kernel will bark.

      ACPI
      • Suspend to RAM works !!! (as of kernel 2.6.9-rc4).
        I have everything as loadable module (wlan, ethernet, usb, etc) and before suspending everything gets deconfigured and unloaded (with a small shell script, which is called by acpid). After resume I have to configure wlan/lan again, but this is how I want it to be. It may work without unloading the modules too, but I haven't tested it.
        Note: The only issue I have is: accessing the CD/DVD after wakeup locks the machine.
      • Battery status is reported correctly. I am using this small, self-written TCL/TK program for displaying the battery status.
      • cpudynd seems to run, but does not have any noticeable effect in silencing the machine. Note: Kernel 2.4 needs a cpufreq patch.
      • I have configured acpid to shut down the machine if the power button is pressed and enter suspend if "FN-Esc" is pressed.
        Little problem: When resuming in battery mode, the maximum CPU frequency is set to 600MHz, and this won't be raised again when connected to power -> ask acpid to do it via
        # echo 1400000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

        You can do this on the AC event, or (as I prefer it) each time after resume. As I did not see a "resume" event, I used a (small) hack:
        Acpid evaluates all event files for a given event, so we have to give him a file, which is executed for the suspend event, but it is called after the real suspend. Acpid version 1.03 executes the scripts in the order they are stored in the directory (i.e. not sorted), that means we have to create the suspend and resume files in that order.

      BIOS
        My machine came with BIOS version A00. There are several newer BIOS versions available, I tried nearly every one till A11 but all of them are much louder then A00, so I downgraded again. With windows the fan is quiet in all versions, with linux each one (except A00) keeps the fan at near the maximum speed.

      WLAN
        The Intel WLAN is supported through one of the following driver:
        • Linuxant driverloader, which is binary only and costs 20USD after one month of free testing. Version 1.52 works well if using an older Windows driver (version 1.1.5.0).
        • A similar method is used by the free ndiswrapper project, this is at least as stable and can use the newer drivers. This is my preferred solution now, it even works with suspend-to-ram.
        • The real driver is still not production quality as of version 0.47 (see the problems with C3)

      USB
        If using the ehci-hcd driver for usb instead of uhci you get USB 2.0 even with the 2.4 kernel. Testing USB with a memory stick I got about 5-6MByte/sec, I dont know who is the bottleneck here.
        Note: the uhci driver seems to recognize more devices than ehci, especially a usb based flashcard reader is not recognized with the ehci driver while it is with the uhci one.

      Modem
        I downloaded the linux pctel driver (version 0.9.7-9), and configured it using hal i8xx. After loading the module it will surface as /dev/ttyS15.
        Note: I tested this only with the 2.4 kerrnel. According to reports it won't compile cleanly with the 2.6 series.
      Links:
        SuSE Linux 9.0 on the Dell Inspiron 8600
        Linux on the Dell Inspiron 8500 (I8500)
        Testimony: Getting Linux on the Dell Inspiron 8500
        DVD+RW on Linux
        ACPI4Linux
        Another guide