Installing Linux/Win2K on a Dell Inspiron 8100


TOC


Abstract

This document describes steps and hurdles in order to install a dual-boot configuration of Debian Linux and Win2K on a Dell Inspiron 8100 laptop. Note: it does not contain a detailed step by step instruction on how to install Debian Linux for the first time (see below). Additionally, it is assumed you have a fair level of understanding of certain commands and on basic Linux issues. Finally, some configuration details may be Debian specific, but should hold for other distributions as well.
back to [TOC]


Formal disclaimer

No responsibilities for any damage or inconveniences due to following the advisories in this document are taken. Read this disclaimer for further information.
back to [TOC]


Updates

10.04.2002: updates in XFree section.
18.03.2002: updates in USB + FireWire sections.
04.03.2002: updates in XFree, IrDA, PCMCIA sections.
26.02.2002: kernel update and reconfiguration to 2.4.18.
16.02.2002: added readers' comments and contributions from some helpful minds.
14.02.2002: upgraded to XFree 4.1.0-13 without problems.
12.02.2002: patched the vanilla kernel with the "preemptable" patch. Damn, can't notice any differences .. ;)
15.01.2002: added a TOC. Whoa.
10.01.2002: BIOS upgrade from A04 to A07, corrections, updates.
28.12.2001: minor corrections.
22.12.2001: updates for PCMCIA, I8K, kernelconfig.
11.12.2001: initial revision.
back to [TOC]


Investigating the bitshifting device (aka Dell Inspiron 8100):

Fragments from /proc/pci:

    Host bridge: Intel Corp. 82815 815 Chipset Host Bridge and Memory Controller Hub (rev 4).
    IDE interface: Intel Corp. 82820 820 (Camino 2) Chipset IDE U100 (-M) (rev 3).
    USB Controller: Intel Corp. 82820 820 (Camino 2) Chipset USB (Hub A) (rev 3).
    Multimedia audio controller: ESS Technology ES1983S Maestro-3i PCI Audio Accelerator (rev 16).
    CardBus bridge: Texas Instruments PCI4451 PC card Cardbus Controller (rev 0).
    FireWire (IEEE 1394): PCI device 104c:8027 (Texas Instruments) (rev 0).
    Ethernet controller: Intel Corp. 82557 [Ethernet Pro 100] (rev 8).
    Communication controller: Lucent Microelectronics WinModem 56k (rev 1).
    

The IDE devices:

    /dev/hda: IC25T048ATDA05-0
    /dev/hdb: TOSHIBA DVD-ROM SD-C2502
    /dev/hdc: MATSHITA CD-RW UJDA33
    
back to [TOC]


Installation preparations

One of the first actions was to wipeout the factory-default installation of WinME that resided on a single and 48GB (*sigh*) partition.
back to [TOC]


Creating a "suspend to disk" partition

You can download a tool from Dell's support website. You need to search for an exact filename, namely:

This tool allows for the creation of a bootable floppy. Boot from it and run "mks2d.exe", go on as instructed. The created partition shows as "OS/2 hidden C: drive" partition type under fdisk.
In general it seems safe to make the suspend-to-disk partition the first partition on the drive. Some people have had success with making it the last partition on the drive, but I cannot help you further with that.
Note: there are reports that some people used another tool named "PHDISK.EXE" for the same purpose on Inspirons 8000/8100. Go with what ever works for you.

You can suspend to disk by pressing "Fn-A"; this rewrites the active partition flag in the partition table and upon the next reboot the s2d-partition is booted. This means: it might be better to install LILO into the boot sector of your root partition so on resuming the machine automagically restores the system state from the appropriate partition.

However, you can install LILO into the MBR, create a LILO entry for the s2d-partition and boot that from hand after suspend-to-disk - you just have to remember .. ;)
back to [TOC]


The partition scheme

After booting from the Debian 2.2.r4 install floppies I fdisk'ed the harddrive in the following way (output of "fdisk -l" follows):

    Disk /dev/hda: 255 heads, 63 sectors, 5836 cylinders
    Units = cylinders of 16065 * 512 bytes

       Device Boot    Start       End    Blocks   Id  System
    /dev/hda1             1        68    546178+  84  OS/2 hidden C: drive
    /dev/hda2            69       705   5116702+   7  HPFS/NTFS
    /dev/hda3   *       706      1343   5124735   83  Linux
    /dev/hda4          1344      5836  36090022+   5  Extended
    /dev/hda5          1344      1376    265041   83  Linux
    /dev/hda6          1377      2013   5116671    b  Win95 FAT32
    /dev/hda7          2014      5836  30708216    c  Win95 FAT32 (LBA)
    

The reason for one, big, single root partition is simply.. laziness. More elaborate partitioning schemes needed regular maintenance because the partitions tended to run out of space from time to time. It's no fun to move directories into strange places and create symbolic links to them just because you do not want to repartition the drive...

However: it is a good idea to add a small "/boot" partition (containing the boot kernel image etc.) as close to the drive's beginning as possible. This way you avoid running into trouble with older LILO versions (from older distributions maybe). Consider upgrading LILO to at least version 22.4 and add "lba32" to "/etc/lilo.conf" - runs trouble-free.

Win2K somehow refused to format a single 35GB partition with FAT32. What's the maximum size for FAT32 filesystems? Anyway, one smaller and one bigger partition could be formatted properly.
back to [TOC]



The installation

Win2K

Not too many details on this: insert the cd and install it. You can download the complete set of current drivers from Dell's website. You should be ok by using the supplied "Drivers and Applications" cd from Dell.
Not sure what happens if you want to install from a so-called "recovery cd", perhaps this procedure steps on your feet by recreating the factory-default partitioning scheme.
back to [TOC]


Debian Linux

Actually, no complete reinstall was done since I just wanted to transfer my existing Debian installation from my old laptop. The Debian installation was done in March 1999, since then the system could be kept in a proper shape by using apt-get and the unstable (aka sid) tree, so why do a reinstall and reconfiguration now?
Do the transfer e.g. like this:

Download the boot floppies from any Debian site near you, namely the following files:

After booting from the boot/root floppies follow the instructions up to the point where you can insert additional drivers and modules. Insert all the driver floppies.

Now is the time to leave the path of warm and comfortable predefined menues and instructions.

Change the virtual console by pressing Alt-F2. Create the filesystem, if you haven't already:

    # mk2efs /dev/hda3
    

or whatever your root filesystem is. Initialize the swap space:

    # mkswap /dev/hda5
    

or whatever your swap partition is. Continue like this:

    # modprobe nfs
    # modprobe eepro100
    

If these steps failed, you might have the 3Com MiniPCI combo card or maybe other networking hardware. Otherwise you now have enough networking support to continue. Go on with:

    # ifconfig eth0 192.168.0.111 netmask 255.255.255.0 broadcast 192.168.0.255 up
    

This assumes that you are on a LAN with these parameters; adjust them to your needs. Setup an nfs-server on your remote machine where you want to replicate from, see the docs on how to do that.

If your nfs-server is up and running, enter:

    # mkdir /mnt/remote
    # mkdir /mnt/target
    # mount 192.168.0.2:/ /mnt/remote
    # cd /mnt/remote
    # cp -dpR * /mnt/target
    

The "cp" command is over-simplified here. Maybe you should copy one directory after another and manually install the new "proc", "tmp" and other dirs with correct permissions on the target filesystem. The "dev" dir should work with "cp", though.

Replace "192.168.0.2" with the IP of your nfs-server. The copy process can suck up quite some time, you may check with "df". Go get a cup of coffee or do something valuable. =) (Took two hours for 2GB, nfs is slow ..)

When "cp has finished, do NOT forget to edit "etc/fstab" and "etc/lilo.conf" under "/mnt/target" prior to reinstalling lilo. Adjust both files to your specific configuration. Also, to avoid a system hang upon reboot when loading PCMCIA services exclude the following piece from "etc/pcmcia/config.opts":

    port 0x800-0x8f
    

so the respective line looks like:

    include port 0x100-0x4ff, port 0xc00-0xcff
    

By now, you should be good to do

    # /mnt/target/sbin/lilo -r /mnt/target
    

Voila, ready to boot into Linux!
back to [TOC]



System Setup

At the end of these notes you can find links to some config files.

Kernel options

You may need to reconfigure your kernel so you can use all the nifty new hardware you paid for.
Activate (among many others) the following kernel config options:

    CONFIG_MPENTIUMIII=y
    CONFIG_I8K=m
    CONFIG_APM=m
    CONFIG_APM_CPU_IDLE=y
    CONFIG_BLK_DEV_IDESCSI=m
    CONFIG_BLK_DEV_SR=m
    CONFIG_IEEE1394=m
    CONFIG_EEPRO100=m
    CONFIG_IRDA=m
    CONFIG_SMC_IRCC_FIR=m
    CONFIG_SOUND_MAESTRO3=m
    CONFIG_USB_UHCI=m
    CONFIG_AGP=m
    CONFIG_AGP_INTEL=y
    

With this machine I decided to give ext3 a first try. It has worked flawlessly until now. I have successfully used reiserfs before. Both are integrated into the stock Linux kernel 2.4.18 that is in use on this machine.
You can turn the newly created ext2 into an ext3 filesystem simply by entering e.g. (see man tune2fs):

    $ tune2fs -j /dev/hda3
    

Edit "/etc/fstab" afterwards and modify the filesystem entry for the root partition from "ext2" to "ext3".

Jonathan Taylor notes:

     "dell has a modified p3 that CANNOT handle APIC calls.  
      Which has been enabled by default in the kernel...
      do make menuconfig again and go into processor support

      DISABLE SMP -  Symmetrical multi processor or something :)
      then
      DISABLE USE APIC CALLS"
    

This is in fact a known problem, e.g. with SuSE 7.2. If you experience spontaneous freezes when switching from AC to batteries or vice versa, you should disable the above options.
back to [TOC]

Setting up XFree

At the time of first writing XFree 4.1.0-5 was installed on the system. An upgrade to 4.1.0-13 was troublefree. Go to NVidia's FTP site and get the following files:

Untar and make. There is good and substantial documentation available from NVidia on how to set up the Geforce2Go.

After the 28.80 drivers were released, I tested them only to discover that the "power management hack" does not work any longer. That's what you get when trying to suspend to ram:

     (II) PM Event received: User System Suspend Request
     (EE) NVIDIA(0): Failed to tear down DAC
      

Stay with the 28.02 drivers instead - working fine.

Some older driver versions (way before 23.13) needed an entry in /etc/modules.conf:

    alias char-major-195 NVdriver
    options NVDriver NVreg_Mobile=1
    

There is a known way how to enable power management with the NVidia card, it is described on http://www.whacked.net/ldl/faq.

In short, open "nv.c" from the NVidia Linux driver source package, go to lines 1761 and 1766 and change the "return 1;" to "return 0;". Recompile and install, exit X if necessary, unload and reload the "NVdriver" module and try it out. It actually WORKS!

However, on my system it was not 100% stable, especially after a resume XFree tends to crash from time to time. I have learned that others experienced similar effects and it has to do with some strange interaction with XFree and some "knee-deep in the kernel" stuff.

If you experience these symptoms: the pointer can still be moved, but the keyboard is locked and nothing reacts - then you might have this problem, too. No way out - press power to play or try to use the "Magic SysRq" - keys .. or login from remote and try a clean shutdown.

The machine behaves much better overall when adding the following to your /etc/lilo.conf:

    append="disableapic apm=off"
    
Or at least:
    append="disableapic"
    
It still does power management, e.g. screen blanking and switching off the backlight while on batteries. Sometimes after a resume from a suspend-2-ram it actually does resume from disk - nasty, but you should wait until it's finished, so the "active partition" flag gets rewritten. Better reboot afterwards.



On http://vergil.chemistry.gatech.edu/~park/dell.html another solution is described, also not running stable on my system.

If you have problems with your display switching off forever and the fans jumping after a short while (XFree under full CPU utilization) you might have the following line in your /etc/X11/XFree86Config-4:
     Option          "NvAGP" "1"
	
The "1" could as well be a "2" and tells the "NVdriver" module what AGP mode to use. I have repeatedly verified this problem and decided to go completely without AGP. Alter the line like this:
     Option          "NvAGP" "0"
	

This disables AGP, but it runs much more stable - bad for Linux quakers, though. My appeal:

NVIDIA - PLEASE, GIVE US PROPER DRIVER SUPPORT!!

You need a working XF86Config-4 file, see below for an example. This file already integrates TwinView support (commented out although), you may have to alter the respective options in the "Screen" section. I have tried TwinView successfully in Clone, LeftOf, RightOf mode with a second CRT monitor connected to the VGA slot. TV should work either, see the documentation. Also, an optional USB mouse is configured.
back to [TOC]


Setting up PCMCIA

Although there is kernel PCMCIA support, I am used to grab the pcmcia-cs sources and install them by hand. That's fairly simple; however, as opposed to other reports I answered "no" when prompted:

    Include PnP BIOS resource checking (y/n) [n]:
    

In an earlier revision of this document I stated to answer with "y". However, I found out that only one IRQ (9) was available for allocating as a resource for PCMCIA cards. This means, one could only insert one card, a second would fail with "resource busy". Don't know if IRQ assignment can be influenced somehow, not via the system BIOS.
The file "/etc/default/pcmcia" looks like:

    # Defaults for pcmcia (sourced by /etc/init.d/pcmcia)
    PCMCIA=yes
    PCIC=i82365
    PCIC_OPTS="irq_list=9,10,11,12,7,4,3,5,15"
    CORE_OPTS=
    CARDMGR_OPTS=
    

The IRQ 15 will only be used if you don't have a modular IDE device inserted at boot time. If anyone knows a way for hot-plugging devices in the module bays under Linux, let me know. IRQ's 5,10,11,12 are in use by soundcard, PCMCIA controller, NVidia card and PS/2 mouse in this order, but it does not hurt when probing these IRQ's.

Successfully tested were a Adaptec APA-1460 SCSI PCMCIA card and a Xircom CreditCard combo card, model CEM33, both synchronously active.

In "/etc/pcmcia/config.opts" delete

    port 0x800-0x8f
    

so the respective line looks like:

    include port 0x100-0x4ff, port 0xc00-0xcff
    

Currently in use: pcmcia-cs 3.1.30. Go to http://pcmcia-cs.sourceforge.net.
back to [TOC]


Network

The builtin Mini-PCI combo card integrates a network and a modem card, manufacturer is ActionTec (you might get a 3Com MiniPCI kit, its NIC is supported, too). Actually, the NIC is a Intel EtherExpressPro 100 and the modem is known as the famous LT-Modem, a winmodem.
Getting the NIC to work is easy: integrate the card driver into the kernel or build it as a module.
When using a module, add the following to "/etc/modules.conf" ("/etc/modutils/aliases" for Debian, issue "update-modules" afterwards):

    alias eth0 eepro100
    

This chip has massive problems with power management under Linux; after a resume it fails to reinitialize correctly. There is a tool to restore its PCI registers, however. See http://vergil.chemistry.gatech.edu/~park/dell to learn about it. It works good here - see the documentation on how to integrate it into the apmd scripts system.

Sid Steward notes:

    "My recently purchased i8100 has the 3com NIC (3c556) mentioned on your
    page.  I had complete success initializing this NIC by using the "3c59x"
    module, which is available in my 2.2 kernel source.  (I'm using stock
    Debian.)  I have not tried using it under power management."
    


back to [TOC]

Win-Modem magic

The builtin modem is a LT Modem, widely known as a winmodem. But fear no longer, there are linux drivers and they work. Get them from

http://www.physcip.uni-stuttgart.de/heby/ltmodem/

Again: there is excellent documentation coming with the package telling you how to install it. There is even an installer "autoload" and it knows how to configure the respective Debian configuration files for module handling.

Remember to use /dev/ttyLT when accessing the modem instead of the serial devices /dev/ttyS[n].

Mathieu Mourez notes (24.01.2002):

	"The lt_modem driver can't be installed with the debian package
	without breaking dependencies. The lt package depends on the
	kernel-headers-2.4.x package and the latest available is
	2.4.14."
	

back to [TOC]

Infrared

Seems to work ok with kernel 2.4.18.

Try the following:

    $ modprobe ircomm-tty
    $ irattach /dev/ttyS1 -s
    

After this I could connect to a Siemens S25's internal modem and synchronize a Palm III. However, with earlier kernel revisions after loading the "maestro3" module IrDA was a no-go. Comparing "irdadump" output in those situations did not show up any IR devices in range after "maestro3" was loaded.

See http://mobilix.org/ir_misc.html, there is a note about the Maestro3 conflicting with the SMC IR controller.

You can modify "/etc/irda.conf" for making the options above persistent.

There is a kernel module named "smc-ircc" for the builtin chip to do Fast-IrDA; upon its first insertion with "insmod" it bails out with errors, upon the second insertion the errors vanish. By now I could not manage to get Fast-IR working...
back to [TOC]


System Monitoring

My old laptop would tell its cpu temperature by some fiddling with lm-sensors and i2c. However, I could not find any configuration for monitoring the 8100, especially the "i2c-i810" module did not work although this seems be the correct module for the chipset.

Anyway, there is another _working_ tool. Get the latest package from http://people.debian.org/~dz/i8k/ named i8kutils. A README is available. With this package you can build and install a kernel module "i8k"; the userspace tools called "i8kctl" and "i8kmon" are used to show CPU temperature, fan speeds, BIOS revision and more. You can even control the fans manually if you want - be warned! You risk damaging your CPU...

With kernel 2.4.17 this module is available in the stock kernel under "Processor type and features" as "Dell Laptop support". You still need the userspace tools!
back to [TOC]


USB, FireWire and the rest

Finally, I bought a USB mouse - a Microsoft Intellimouse Explorer 3.0, an optical mouse with 5 buttons. It works flawlessly, though sometimes one needs to insert the jack two times until the mouse gets enabled.

For USB the following was added to /etc/modutils/actions:

    post-install usbcore insmod usb-uhci
    post-install hid insmod mousedev
    
And in /etc/modutils/aliases:
    alias usb-controller usb-uhci
    alias char-major-13 mousedev
	

On system boot the module "hid" gets automatically loaded via /etc/modules. The explicit insertion of the "usb-uhci" module by a "post-install" is necessary; you can load the "mousedev", "input", "usbcore" and "hid" modules but unless you load the respective module for your USB controller chip no mouse will be recognized. You can even unload the "hid" or "the usb-uhci" module which will result in an immediate loss of USB (mouse) functionality - until you reload the modules. I would have assumed these module would block an unload at least until no device any longer depends on them.

Mathieu Mourez notes:
    "The alias for the usb-controller module should be added to
    /etc/modutils/local or it breaks the update-modules
    script."
      
Mounting the usbdevfs works also.

Got the chance to test an external 60GB FireWire disk. Load the following modules:
    ieee1394
    ohci1394
    sbp2
    scsi_mod
    sd_mod
  
Do a "cat /proc/scsi/scsi", there are listed the newly added disks seen as SCSI disks. The disk could be accessed, partitions with a reiserfs filesystem mounted and a few gigs were copied without glitches. And quite fast that copying was. Be cautionary when unplugging external firewire devices, e.g. make sure to have unmounted all filesystems or similar stuff.
Still - anyone willing to donate a used digital camcorder? =)

If someone knows the correct aliases and options for loading the IEEE1394 related modules, let me know.

You can (should) speed up your IDE devices by issuing:
    $ hdparm -d1 /dev/hda
    $ hdparm -d1 /dev/hdb
    

Enabling DMA for the CD burner on "/dev/hdc" depends on wether you have enabled IDE-SCSI emulation for ide devices. If you want to use the modular CD burner e.g. with cdrecord, you could add the line "append="hdc=ide-scsi"" to your /etc/lilo.conf.

Further options for hdparm experiments are:

Make these changes persistent by modifying "/etc/init.d/hwtools".
back to [TOC]



Links and config files

Take my advice: there is plenty of valuable information about this and similar notebooks and using it with Linux available on the net. Prior to the installation I have read much of that stuff - and it helped a LOT!

Links

Config files


back to [TOC]



Conclusion

The good:
This machine is blazingly fast. A complete kernel compile takes 1:57 min, opposed to 12 min on my old machine. The harddisk runs with 5400 rpm and is the fastest notebook drive you can get - maybe faster than quite some 5400rpm desktop drives. The display is amazing - clear, crisp and just a dream with anti-aliased fonts under X. The components are of very high overall quality and this notebook is extremely feature-rich.

The bad:
The chassis is not stiff enough - and not good manufactured altogether. The NVidia driver support for Linux is - uhm, not nearly as good as one wants (think: still miserable). It has become better, though. With plugged-in earphones you can hear a subtle "static noise" when the harddisk or the internal network card are under high load - that's disturbing for such a high-priced monster.

There are a few problems with XFree and IR support that hopefully improve over time. I really hope Power Management improves also - though a no-name notebook, my old notebook (IPC StarNote98) could be suspended over and over again, had no trouble with its hardware upon resuming and could run for weeks .. this shiny new Dell machine needs a reboot every so often.
back to [TOC]


Feedback

If you have comments, corrections or advisories of any kind - feel free to mail me: frank@REMOVE.THIS.FOR.NO.SPAM.trenkamp.org.
back to [TOC]


Last change: 11.08.2003
Copyright © 2001-2003 Frank Trenkamp frank@REMOVE.THIS.FOR.NO.SPAM.trenkamp.org.

Valid HTML 4.01!