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]
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]
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]
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]
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]
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]
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]
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]
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]
At the end of these notes you can find links to some config files.
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]
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.
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]
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]
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."
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."
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]
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]
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.
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.
$ 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]
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!
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]
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.