Dual Booting the
Clemson IBM R31:
Windows XP and Red Hat Linux 7.3
Bill Moss
June 2002
rev 2
This is a preliminary report for the laptop help desk at Clemson concerning the dual booting of the Clemson, IBM R31, big buy laptop with Windows XP and Red Hat Linux 7.3. 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. The following disk images can be downloaded and burned on CD's using Windows XP.
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
Partition the Hard Drive
In my previous articles, I used Partiton Magic to partition the hard drive. Here I use GNU Parted so that the resulting image can be freely distributed. I booted the R31, hit F12, inserted disc1, selected boot from CD-ROM, typed linux rescue at the prompt, selected Eng, selected us, selected skip, and typed parted at the prompt. I used the following Parted commands.
rm 1
rm 2
mkpartfs primary fat 0 7494
set 1 boot on
mkpartfs primary ext2 7493.555 7537.854
mkpart extended 7537.852 28615
mkpartfs logical fat 7537.853 21358.853
mkpartfs logical ext2 21358.477 23964.477
mkpartfs logical ext2 23964.610 28091.610
mkpartfs logical linux-swap 28091.602 28615.781
To see the resulting partition table, the print command can be used. The output is in the first 6 columns of the Table 1. You may find it convenient to use the print command after each alteration of the partition table to make sure that you haven't made a typo.
Table 1: R31 Partition Table
Partition
|
Start (MB)
|
End (MB)
|
Type
|
Filesystem
|
label
|
Device
|
Mount Point
|
1
|
0.031
|
7493.554
|
primary
|
FAT
|
boot
|
/dev/hda1
|
C
|
2
|
7493.555
|
7537.851
|
primary
|
ext2
|
/dev/hda2
|
/boot
|
|
3
|
7537.852
|
28615.781
|
extended
|
lba
|
/dev/hda3
|
||
5
|
7537.882
|
21358.476
|
logical
|
FAT
|
lba
|
/dev/hda5
|
D
|
6
|
21358.507
|
23964.609
|
logical
|
ext2
|
/dev/hda6
|
/home
|
|
7
|
23964.640
|
28091.601
|
logical
|
ext2
|
/dev/hda7
|
/
|
|
8
|
28091.632
|
28615.781
|
linux-swap
|
/dev/hda8
|
swap
|
Installing Windows XP
I installed Windows XP twice. First, I used the Clemson Windows XP installation disks. I booted, hit F12, inserted disk 1, selected boot from CD-ROM, and took an hour break. The installer made three corrections to the partition table that had to do with LBA and CHS numbers not matching. ATA disks use two different addressing schemes LBA and CHS. It turned out that these installation disks were missing many R31 drivers so I decided to load Windows XP again using the the recovery disks that came with the R31. These disks contain most, if not all, of the IBM utilities that came in the factory image but were still missing five drivers. After connecting to the internet, one of the five was automatically downloaded and installed. It was the wireless driver. There remained 4 yellow sploshes in the device manager for unconfigured devices. The IBM utilities were not automatically installed but could be installed using the provided setup files. The help desk will have to choose the best method for creating the fall 2002 Windows and student data images (C and D). One option is to start with the factory image, update all the drivers, delete the junk, and add the university licensed utilities.
Installing Red Hat Linux 7.3
To install Red Hat 7.3, I booted disc1, chose a laptop install, and configured a two button USB mouse (there is no PS/2 port). Disk Druid was used to edit the Linux partitions. The devices and mount points are indicated in the last two columns of Table 1. I chose to convert the ext2 filesystems to the ext3 journaling filesystem for partitions 2, 6, and 7. I selected the GRUB loader, selected boot to /dev/hda2, DHCP setup for the Ethernet interface eth0, no firewall, and all four laptop packages including GNOME and KDE. I skipped the "make a boot disk" step at the end since the R31 does not come with a floppy. Red Hat disc1 can be used to boot the system to rescue mode if necessary. After the installation was finished, I rebooted disc1 in rescue mode and used parted to make partition 2 active using the command
set 2 boot on
Finally, booted again and used GRUB to choose Red Hat Linux.
So far I have looked at three hardware problems and found partial solutions: trackpoint, wireless, and modem.
Trackpoint
To get both the USB mouse and the trackpoint working at the same time the file XF86Config-4 in /etc/X11/ must be edited as follows.
Section "ServerLayout"
Identifier "Anaconda Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Mouse1" "SendCoreEvents"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection# This is the TrackPoint
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Device" "/dev/psaux"
Option "Protocol" "PS/2"
Option "ZAxisMapping" "4 5"
EndSection# This is the USB mouse
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Device" "/dev/input/mice"
Option "Protocol" "IMPS/2"
Option "Emulate3Buttons" "yes"
Option "ZAxisMapping" "4 5"
EndSection
The trackpoint is rather sensitive. There beta trackpoint configuration utility available at
http://wwwcssrv.almaden.ibm.com/trackpoint/download_beta.html
which allows adjustment of the trackpoint sensitivity. Download the libc6 version. More on this later.
Modem
This laptop has one empty PCMCIA slot and no internal PCMCIA cards. The wireless interface and modem are housed on an IBM High Rate Wireless LAN combo mini-PCI card. The wireless interface is based on the Intersil (formerly Harris) Prism 2.5 chipset while the modem is a product of Actiontec, Inc. The command lspci generates 15 lines of output, three of which follow.
00:1f.6 Modem: Intel Corp. 82801CA/CAM AC '97 Modem (rev
02)
01:05.0 Network controller: Harris Semiconductor: Unknown device 3873 (rev 01)
01:08.0 Ethernet controller: Intel Corp. 82801CAM (ICH3) Chipset Ethernet Controller
(rev 42)
A driver for this modem is in the works from the AMR Driver Project. On the project homepage, we find
"It is the goal of the AC '97 Modem Driver Project to develope an Open Source driver for Intel's AC '97 Codec Audio/Modem Riser for the Linux operating system. The AC '97 Modem driver is a mid-level driver, providing an interface between the linmodem software driver and the low-level card-specific driver, in much the same way as the AC '97 Audio driver provides an interface between OSS and the low-level audio card. This project is still very much a work in progress. It would be generous to the point of obsurdity to consider it pre-Alpha."
Wireless
The wireless interface is native PCI. I have successfully installed the latest stable driver prism2_pci version 0.1.13 from linux-wlan.org. This is an open source project funded by Intersil (what a great idea). The RPMS for this driver are available at http://prism2.unixguru.raleigh.nc.us/ for Red Hat 7.3 (distribution kernel 2.4.18-3). The package contains four drivers but you only need one of them. It is easy to compile the driver yourself and even create your own RPM package. I expect there will be some of this going on over the next year at Clemson because this driver is still very much a work in progress and sufficient on-campus testing has not yet been completed. Red Hat releases updated kernels every month or so and new versions of this driver come out about every month so you may want to learn how to compile this driver your self. Here are the steps.
EXTRAVERSION = -3custom to EXTRAVERSION = -3
dot11PrivacyInvoked=true
dot11WEPDefaultKey0=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
DesiredSSID="cuairnet"
DEVICE=wlan0
BOOTPROTO=dhcp
ONBOOT=yes
Type=Wireless
USERCTL=yes
PEERDNS=yes
DHCPCDARGS="-d -t 20"
Testing so far has been limited to home use with a configuration Clemson's. After about one hour of inactivity, the wireless interface wlan0 goes to sleep. Pinging an external interface from wlan0 results in a Destination Host Unreachable error message. Pinging wlan0 from an external source, wakes wlan0 up immediately. The command ./etc/rc.d/init.d/wlan restart also makes wlan0 operational once again. I have tried turning off PCI power managment in the BIOS but this does not help. There have been similar reports on the linux-wlan-ng mailing list along with reports of loss of network connection in the middle of large file transfers. A check of versions showed that the IBM recovery disks did not have the latest wireless drivers. I updated to driver 1.07.35, configuration utility 1.07.36, and firmware 1.04.02.00 on the windows side. Only the firmware upgrade will affect the Linux side. After a day of banging on the wireless, my tentative conclusion is that the firmware upgrade fixed the sleep problem. I also tested large file transfers by putting and getting a 20 MB file via sftp many times. I did have one failure which I do not think is the fault of the wireless interface. Recently, the Linux kernel added a new daemon ksoftirqd. On rare occasions of high network activity, this daemon can run away. I saw this happen once in a day of testing. By running top during the file transfer I saw ksoftirqd_CPU0 gobble up over 93% of the CPU which brought the file transfer to a halt. Try as I might I could not duplicate this problem. A quick Web search revealed that discussions on ksoftirqd continue.