Dual Booting the
Clemson Dell Latitude C600:
Windows 2000 and Red Hat Linux 7.3

Bill Moss
May 2002

This article is for owners of CES Laptop Program Dell C600's who want to dual boot to Red Hat Linux 7.3. These instructions, with minor modifications, should also work for a Dell C610. Here I outline the installation of Red Hat 7.3 onto a hard disk that already contains the 2001 CES Windows 2000 image. For more Linux installation details, see the Red Hat 7.3 manuals and the Release Notes.

The Red Hat 7.3 distribution can be downloaded from http://www.redhat.com/apps/download/ or one of the Red Hat mirror sites. I downloaded the following disk images and burned them on CD's using EZ CD Creator under Windows 2000.

ftp-linux.cc.gatech.edu
cd /pub/Linux/distributions/redhat/redhat-7.3-en/iso/i386
binary
get
valhalla-i386-disc1.iso
valhalla-i386-disc2.iso
valhalla-i386-disc3.iso

First, Partition Magic 7.0 was used to create the following partition table. The C and D partitions from the 2001 CES Windows 2000 image were resized but otherwise the Windows installation was not affected.

Partition Table, Dell C600, dual boot Windows 2000 and RH 7.3

drive letter/mount point
partition
cylinders
size (MB)
type
pri/log
C
/dev/hda1
1-635
4981.1
fat32
primary
/dev/hda2
642-2432
14049.0
extended
primary
/boot
/dev/hda3
636-641
47.1
linux ext2
primary
D
/dev/hda5
642-1794
9044.4
fat32
logical
/home
/dev/hda6
1795-2034
1882.6
linux ext2
logical
/
/dev/hda7
2035-2366
2604.3
linux ext2
logical
swap
/dev/hda8
2367-2432
517.7
linux ext2
logical

I did a laptop install directly from the CD's because the Dell A17 BIOS supports booting from a CD-ROM. I chose the option of using Disk Druid to manually configure the partitions. Since the partitions had already been created, all I had to do was set the mount points. I formated /boot and / using the ext3 filesystem, but chose not to format /home because I wanted to preserve my personal data from a previous installation. I chose the default GRUB bootloader and installed it in the /boot partition /dev/hda3. I replaced the default Windows label DOS with Windows2000. Here you also have a choice of which OS you want to be the default. The installation program recognized the wireless and wired Ethernet interfaces. I configured eth0 and eth1 to be active on boot and to use DHCP. I did not choose to activate a firewall. I set the root password and create a user account. I selected all four software packages, including both the GNOME and KDE desktops. Finally, I selected GNOME as the default desktop.

When the installation was finished, I rebooted to Windows and used Partition Magic to make /dev/hda3 the active partition. On reboot, the GRUB bootloader gave me the option of booting Red Hat Linux or Windows 2000. I chose Linux, logged in as root, and created a boot disk using the "Create a boot disk" option under the System control panel (Foot -> Programs -> System).

In order to activate wireless networking, two files had to be edited. First, I edited the file /etc/pcmcia/config. I searched for the text

card "Intersil PRISM2 11 Mbps Wireless Adapter"
manfid 0x0156, 0x0002
bind "wvlan_cs"

and changed wvlan_cs to orinoco_cs. Second, I edited the file /etc/sysconfig/network-scripts/ifcfg-eth1 and changed TYPE=Ethernet to TYPE=Wireless. The first edit is necessary to get the right driver for the Dell wireless mini-PC card. Under the System control panel, I selected "Network Configuration" tool and edited eth0 and eth1, choosing the "Allow all users to enable and disable the device" option for both interfaces. When editing eth1, I also selected the "Wireless Settings" tab and input the SSID cuairnet and the Clemson wireless key.

I rebooted and logged in as a user. Both network interfaces were active and could be turned on and off using the "Network Device Control" on the System control panel. Note that setting the interfaces to be inactive on boot using the "Network Configuration" tool does not work. This was also true with Red Hat 7.2, but at least we now have a user level tool that can bring the network interfaces up and down (see the work around below).

In Windows "Suspend to disk" can be activated by the Fn-Esc key combination. You get a fast bootdown and bootup. With the above setup, this key combination also works with Red Hat Linux 7.3.

Note that Red Hat continually releases updates including a kernel updates. It is strongly recommended that you follow the recommendations in my article on updating your system.

Bugs and Work Arounds

The Red Hat 7.3 installation program creates the file /etc/sysconfig/network-scripts/ifcfg-eth1 with the configuration option DEVICE=eth1 but if you use the "Network Configuration" tool to do additional configuration, you find that the this file is rewritten with DEVICE='eth1'. The addition of the single quotes by the "Network Configuration" tool is a bug. The startup script /etc/rc.d/init.d/network does not correctly read ifcfg-eth1 because of these single quotes so the solution is to remove them. The configuration option ONBOOT=no is suppose to leave the interface inactive on boot. This does not work on any PC card interface. There are two such interfaces in the CES laptop Dell C600, the Xircom NIC/modem card and the Dell TrueMobile wireless mini-PC card. The start up sequence for these interfaces is

network script -> pcmcia script -> start cardmgr -> register cards -> hotplug interface startup events

If ONBOOT=no is set, the interface is not made active by the network script but is always started as a hotplug event. It doesn't matter how ONBOOT is set, the interface will always be started. It is possible to recover the correct behaviour by editing the last startup script, rc.local, that is executed on boot. Add the following lines to the file /etc/rc.d/rc.local

if egrep "^ONBOOT=\"?[Nn][Oo]\"?" /etc/sysconfig/network-scripts/ifcfg-eth0 ; then
    ifdown eth0
    echo "eth0 down in rc.local"
else
    echo "eth0 down failed in rc.local"
fi

if egrep "^ONBOOT=\"?[Nn][Oo]\"?" /etc/sysconfig/network-scripts/ifcfg-eth1 ; then
    ifdown eth1
    echo "eth1 down in rc.local"
else
    echo "eth1 down failed in rc.local"
fi