Dual Boot XP/Suse 9.0 with GRUB in /root on Dell D800 1920x1200 WUXGA

 

 

This site provides information (and my XF86Config file) to help in setting up a dual boot XP/Linux (Suse 9.0) Dell D800 using GRUB as the bootloader, locating GRUB in the /root partition of linux rather than in the MBR (if you wish to put it in the MBR you probably won’t need much help beyond the installer). The advantages to putting it in the /root partition include leaving the XP bootloader untouched in the MBR, and the ability to reinstall XP without damaging parts of Linux and it’s booting utilities.

 

There are several great D800 links here on Linux-on-Laptops to help you get Linux running on a D800, such as Mike Hardy’s (linked below for convenience). This site defers to them for those issues (with the exception of screen resolutions). The Yahoo forum set up by Mike is the best place to go and where I got the best help, see his page. My site is specifically here to provide the information I needed and wish I had been able to find in one place. It describes the steps that finally worked for me to achieve my specific goal of setting up a dual-boot system in a particular way. I hope it helps somebody else.

 

I do address getting WUXGA resolutions working, including 1920x1200. My Dell D800 screen is a WUXGA. While I used the Suse distro, it should generalize to other distros. You may wish to read this completely before using it.

 

My XF86Config file is at the bottom. For comments, questions, or to report broken links, please email me at jimkk at umich dot edu.

 

Bon Voyage,

Jim

Home Page

 

 

 

Good Linux on D800 Websites:

 

http://mikehardy.net/linux_latitude_d800/     (Mike Hardy)

http://www.geocities.com/epark/linux/grub-w2k-HOWTO.html  (referenced below)

http://ds9a.nl/dell-d800/

http://jutila.net/articles/d800/

http://www.hpcc.uh.edu/~tonyc/latitude/

http://pileouface.org.free.fr//linux/documentation/install_d800.pdf     (French)

 

 

 

Setting up a  Dual-Boot  Suse/XP  D800  with GRUB in /root

 

1. Partition your drive.

Use the XP installer CD to create the first two (then format the first two in XP as NTSF), and later when installing Suse Linux, use the YaST installer to create and format the rest of the partitions:

 

(be careful not to remove the first 39 meg partition put there by Dell containing Dell diagnostics)

 

(if you already have XP installed and don’t want to disturb it, you can shrink the partition it’s on if necessary using Partition Magic or possibly YaST or other Linux utilities, then create the additional partitions for Linux. Of course, if you shrink too much you may lose stuff.)

 

(change as desired)

 

- NTFS 7 gigs for XP

- NTFS 2 gigs for XP swap (page file)

- 7 gigs FAT32 ext3 for /root (heard complaints about Reiser, may not be a problem)

- 2 gigs FAT32 swap for linux swap

- 28 gig FAT32 data partition (so that both Linux and XP can write to it. Told there are problems with XP and FAT32 partitions larger than 32gigs, so I created a 28 and a 10 gig FAT32 partition since I had about 38 gigs for data)

- 10 gig FAT32 data partition

 

(note I did not put the boot loader in the first 1024 cylinders, as you must with some older BIOSs)

 

2. Install XP in the first partition using Windows XP CD.

 

3. Go to http://www.geocities.com/epark/linux/grub-w2k-HOWTO.html, and follow the steps there exactly. This will include your install (first Suse CD only will be used, then it will reboot; later it will install the rest of the OS from the remaining CDs). Many thanks to Ed Park.

 

a. If desired, an easier way to edit boot.ini in XP than the one Ed describes:

- start -> my computer -> properties -> advanced -> startup and recovery settings -> edit

- change the boot.ini code

- save

 

b. When I installed, I put linux.bin onto hda7, the 28 gig partition which I called bigpartition. I could not put it on a floppy, I got an error "type msdos not recognized", so I used the available partition, but first you must:

- mount it: Log in as root, or use the following to become root. All of the following changes require root privileges. During install you established a root account and at least one user account….you normally are logged in as the user but if you log out you can log in as root, or just type:

 

xhost +localhost  (this allows X security to obey a new user in the existing user’s environment)

su (it will need root password)

whoami

 

As root, type:

mkdir /mnt/bigpartition

mount /dev/hda7 /mnt/bigpartition

substitute appropriately for hda7 and bigpartition…if you use the Suse CD’s recovery mode to get a terminal, you can log in as root, then type:

fdisk /dev/hda

then enter the command “p” to see the partition table to get the label of the partition you want to use.

- edit /etc/fstab, add the line: 

/dev/hda7 /mnt/bigpartition vfat defaults 0 0

(again, substitute your values for hda7 and bigpartition)

 

c. It's a good idea to connect all peripherals etc. before installing...Suse YaST will detect them and install drivers for them.

 

d. Ed’s web site describes an XP/Red Hat system. Suse’s YaST interface is different from the RH installer but you can accomplish the same things.

 

4. Reboot into Linux (should see a choice of XP or Linux now when booting, use the down arrow to pick Linux), it will ask to finish the install, finish now with rest of CDs. In YaST, I changed the keyboard from 104 to 105 key configuration to get the punctuation characters (#$%...) working, but you may not need to. After the install is complete it should boot to KDE desktop.

 

5. Go to the NVIDIA web site www.nvidia.com, to drivers, to linux drivers, download the first (of four) driver (ia32).

 

6. Reboot into linux, before the scroll bar at the menu completes type "3", 3 will appear in the boot options dialog box, press return, now you will go into run level 3 in a terminal window.

 

7. Type

rmmod nvidia

(not necessary unless you already have nvidia driver installed.  I did not use this, but it's in the instructions for installing the driver that are on the NVIDIA website. These instructions did not work for me; I took the steps below, under the guidance of Andy at NVIDIA…thank you Andy! )

 

8. Insert Suse CD 2, mount it (mount /media/cdrom). The following rpm is on that CD. For other distros, check with support if necessary.

 

9. Type

rpm /media/cdrom/suse/i586/kernel-source-2.4.21-99.i586.rpm

let rpm install finish.

 

10. Use YaST Online Update:   type "you".

 

11. YOU will now see the package you just installed with the rpm command above, and automatically go and get the newer version of it (the older one won't let you install the NVIDIA driver). Of course you have to be connect to the internet.

 

12. Go to the directory to which you downloaded the NVIDIA driver.

 

13. Type

sh [the name of the driver]

 

14. Click through the program, installing the driver (let it create the kernel).

 

15. As root, edit /etc/X11/XF86Config: change nv to nvidia. There are other changes usually required in XF86Config, however in the version created in the Suse install, those other changes were not necessary. If you have trouble, check the other D800 sites here for details on that first. If SAX pops up and tells you that it has detected a new card, you should cancel it.  If you let it update your configuration, it will overwrite the changes you’ve just made to your /etc/X11/XF86Config.

 

16. Type

startx

you should see KDE desktop start up.

 

17. Log in as root. Type:

 

cd /etc/X11

 

Now put a copy of the XF86Config file included below in this directory and name it XF86Config_new_version. Then type:

 

cp XF86Config XF86Config_a_safe_copy

cp XF86Config_new_version XF86Config

 

You now have a safe copy of your old config file and the version below is your new XF86Config file.

 

18. Reboot into KDE. Open a shell, su to root as describe above, and type

krandrtray

(or you can open the Suse menu, open Run Command, and type krandrtray)

This will put a little screen icon in the tray in your command bar. Click on it and you should see several screen resolution options. If you wish additional resolution options, you must create a modeline for each of them in the XF86Config file, then add the resolution to the mode line in the screen section. Explaining how to do this is beyond the scope of this site. To really understand it, read

XFree86-Video-Timings-HOWTO, available at http://www.linux.org/docs/ldp/howto/HOWTO-INDEX/howtos.html. Note that this document refers to CRT monitors, not LCD monitors. I’ve been told by Dell tech support that the dangers about harming monitors is not true for LCD screens since they don’t use a raster gun to paint the screen in lines. But, the various specifications on the modeline should thus not matter, but I found they did matter in that I could not get 1920x1200 resolution until I changed the hsync and vsync ranges (increased them to 110 from the defaults). So I am not clear on this and recommend you understand it to protect your monitor. There are a couple websites that let you plug in monitor specs then calculate modelines for you such as

http://xtiming.sourceforge.net/cgi-bin/xtiming.pl.  My approach will be to simply google for additional 1.6 ratio resolution (WUXGA screen is 1.6 ratio width/height) modelines and copy them, or if I get a chance to finish reading the HOWTO, I may calculate them myself or use the calculator. Choose whatever approach you feel appropriately prudent.

 

Note the following file differs from the one generated during the Suse install only in the monitor, screen, and modes sections. These I copied from one posted by Ralf Krzyzaniak (may the angel of good fortune smile upon Ralf) and available here:

http://www.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=c0knl2%24g7f%2401%241%40news.t-online.com

To these sections I added additional resolutions (modeline and resolution in modes) and increased the vsync and hsync range maximums to 110 (why it worked for Ralf and not me probably has something to do with his generosity).

 

copyright © 2004 Jim Kroger

 

 

XF86Config file

 

This file is also available as a text file at:

 

http://www.psych.nmsu.edu/~jkroger/linux/XF86Config.txt

 

 

 

-----------------------------  XF86Config  ----------------------------------

 

# /.../

# SaX generated XFree86 config file

# Created on: 2004-02-10T01:23:26-0700.

#

# Version: 4.7

# Contact: Marcus Schaefer <sax@suse.de>, 2002

#

# Automatically generated by [ISaX] (4.7)

# PLEASE DO NOT EDIT THIS FILE!

#

 

Section "Files"

  FontPath     "/usr/X11R6/lib/X11/fonts/misc:unscaled"

  FontPath     "/usr/X11R6/lib/X11/fonts/local"

  FontPath     "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"

  FontPath     "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"

  FontPath     "/usr/X11R6/lib/X11/fonts/Type1"

  FontPath     "/usr/X11R6/lib/X11/fonts/URW"

  FontPath     "/usr/X11R6/lib/X11/fonts/Speedo"

  FontPath     "/usr/X11R6/lib/X11/fonts/PEX"

  FontPath     "/usr/X11R6/lib/X11/fonts/cyrillic"

  FontPath     "/usr/X11R6/lib/X11/fonts/latin2/misc:unscaled"

  FontPath     "/usr/X11R6/lib/X11/fonts/latin2/75dpi:unscaled"

  FontPath     "/usr/X11R6/lib/X11/fonts/latin2/100dpi:unscaled"

  FontPath     "/usr/X11R6/lib/X11/fonts/latin2/Type1"

  FontPath     "/usr/X11R6/lib/X11/fonts/latin7/75dpi:unscaled"

  FontPath     "/usr/X11R6/lib/X11/fonts/baekmuk:unscaled"

  FontPath     "/usr/X11R6/lib/X11/fonts/japanese:unscaled"

  FontPath     "/usr/X11R6/lib/X11/fonts/kwintv"

  FontPath     "/usr/X11R6/lib/X11/fonts/truetype"

  FontPath     "/usr/X11R6/lib/X11/fonts/uni:unscaled"

  FontPath     "/usr/X11R6/lib/X11/fonts/CID"

  FontPath     "/usr/X11R6/lib/X11/fonts/ucs/misc:unscaled"

  FontPath     "/usr/X11R6/lib/X11/fonts/ucs/75dpi:unscaled"

  FontPath     "/usr/X11R6/lib/X11/fonts/ucs/100dpi:unscaled"

  FontPath     "/usr/X11R6/lib/X11/fonts/hellas/misc:unscaled"

  FontPath     "/usr/X11R6/lib/X11/fonts/hellas/75dpi:unscaled"

  FontPath     "/usr/X11R6/lib/X11/fonts/hellas/100dpi:unscaled"

  FontPath     "/usr/X11R6/lib/X11/fonts/hellas/Type1"

  FontPath     "/usr/X11R6/lib/X11/fonts/misc/sgi:unscaled"

  FontPath     "/usr/X11R6/lib/X11/fonts/xtest"

  InputDevices "/dev/ttyS0"

  InputDevices "/dev/ttyS1"

  InputDevices "/dev/ttyS2"

  InputDevices "/dev/ttyS3"

  InputDevices "/dev/ttyS4"

  InputDevices "/dev/ttyS5"

  InputDevices "/dev/ttyS6"

  InputDevices "/dev/ttyS7"

  InputDevices "/dev/ttyS8"

  InputDevices "/dev/psaux"

  InputDevices "/dev/logibm"

  InputDevices "/dev/sunmouse"

  InputDevices "/dev/atibm"

  InputDevices "/dev/amigamouse"

  InputDevices "/dev/atarimouse"

  InputDevices "/dev/inportbm"

  InputDevices "/dev/gpmdata"

  InputDevices "/dev/mouse"

  InputDevices "/dev/usbmouse"

  InputDevices "/dev/adbmouse"

  InputDevices "/dev/input/mice"

  InputDevices "/dev/input/event0"

  InputDevices "/dev/pointer0"

  InputDevices "/dev/pointer1"

  InputDevices "/dev/pointer2"

  InputDevices "/dev/pointer3"

EndSection

 

Section "ServerFlags"

  Option       "AllowMouseOpenFail"

EndSection

 

Section "Module"

  Load         "glx"

  Load         "type1"

  Load         "speedo"

  Load         "extmod"

  Load         "dbe"

  Load         "v4l"

  Load         "freetype"

EndSection

 

Section "InputDevice"

  Driver       "Keyboard"

  Identifier   "Keyboard[0]"

  Option       "Protocol" "Standard"

  Option       "XkbLayout" "us"

  Option       "XkbModel" "pc105"

  Option       "XkbRules" "xfree86"

EndSection

 

 

Section "InputDevice"

  Driver       "mouse"

  Identifier   "Mouse[1]"

  Option       "ButtonNumber" "3"

  Option       "Buttons" "5"

  Option       "Device" "/dev/mouse"

  Option       "Name" "Autodetection"

  Option       "Protocol" "PS/2"

  Option       "Vendor" "Sysp"

  Option       "ZAxisMapping" "4 5"

EndSection

 

##

 

Section "Monitor"

  Option       "CalcAlgorithm" "CheckDesktopGeometry"

  HorizSync    30-110

  Identifier   "Monitor[0]"

  ModelName    "1920x1200@60HZ"

  VendorName   "--> LCD"

  VertRefresh  40-110

  Option       "DPMS"

  UseModes     "Modes[0]"

EndSection

 

Section "Modes"

  Identifier   "Modes[0]"

 

ModeLine "1920x1200" 162 1920 1984 2176 2480 1200 1201 1204 1250 +hsync +vsync

ModeLine "1680x1050" 147.14 1680 1784 1968 2256 1050 1051 1054 1087 +hsync

+vsync

 

Modeline "1600x1024" 198.832 1600 1712 1888 2176 1024 1027 1030 1075 +hsync +vsync

 

ModeLine "1440x900" 130 1440 1452 1572 1896 900 901 904 937 +HSync +VSync

ModeLine "960x600" 60 960 968 1048 1264 600 601 603 625 +HSync +VSync

 

#  Modeline      "1920x1200" 186.57 1920 2048 2256 2592 1200 1201 1204 1241

#  Modeline      "1024x768" 65.00 1024 1048 1184 1344 768 771 777 806 -HSync

-VSync

#  Modeline      "1600x1200" 202.50 1600 1664 1856 2160 1200 1201 1204 1250

 

EndSection

 

Section "Screen"

  DefaultDepth 24

  SubSection "Display"

    Depth      24

 

    Modes      "1920x1200" "1680x1050" "1600x1024" "1440X900" "960X600"

#    Modes      "1920x1200" "1680x1050" "1600X1224" "1440X900" "1366X768" "1280X800" "960X600"

 

  EndSubSection

#  SubSection "Display"

#    Depth      15

#    Modes      "1024x768"

#  EndSubSection

#  SubSection "Display"

#    Depth      16

#    Modes      "1600x1200"

#  EndSubSection

#  SubSection "Display"

#    Depth      32

#    Modes      "1024x768"

#  EndSubSection

#  SubSection "Display"

#    Depth      8

#    Modes      "1024x768"

#  EndSubSection

  Device       "Device[0]"

  Identifier   "Screen[0]"

  Monitor      "Monitor[0]"

EndSection

 

 

##

 

Section "Device"

  BoardName    "GeForce4 4200 Go"

  BusID        "1:0:0"

  Driver       "nvidia"

  Identifier   "Device[0]"

  Screen       0

  VendorName   "NVidia"

EndSection

 

 

Section "ServerLayout"

  Identifier   "Layout[all]"

  InputDevice  "Keyboard[0]" "CoreKeyboard"

  InputDevice  "Mouse[1]" "CorePointer"

  Option       "Clone" "off"

  Option       "Xinerama" "off"

  Screen       "Screen[0]"

EndSection

 

Section "DRI"

    Group      "video"

    Mode       0660

EndSection