I reconfigured my MacBook Pro laptop to tri boot OS X/ XP / Linux. I previously booted only OS X and Linux as explained here. This was the only way I could find to have both OS X and Linux and get legacy BIOS emulation, so that I could get accelerated 3d graphics, etc. I took rough notes and basically followed these directions. Here is another howto for the Macbook (not pro!), which I haven't looked at yet.
[] Use this command to partition with  
        20GB -- OS X
        52GB -- Linux
        20GB -- Windows XP

 sudo diskutil resizeVolume disk0s2 20G Linux Linux 52G "MS-DOS FAT32" Windows 20G
 
  Note that the sum must be 92G.

[] Create a Windows XP SP2 slipstream CD:
    (1) get the SP2 install program
    (2) follow these directions (which I've copied from some
        website):

   1.  Select location of Windows installation files: Click Browse... to select the CD drive that contains the Windows CD.
          * You will be prompted to select an empty folder to save the CD installation files. Use the "Browse for folder" dialog box to select c:\win4lin-cd.
          * The contents of the CD will be copied to c:\win4lin-cd.
          * Click Next after the Windows files are copied.
   2. Task Selection: Select "Integrate a Service Pack" and "Create a Bootable IS0" by clicking on each option. Click Next.
   3. Integrate a Service Pack: Use the Select button select the Windows Service Pack you downloaded in the "Download Windows Service Pack" section.
          * The files will be extracted from Service Pack and integrated with the CD installation files.
          * Select OK when prompted that the "integrated install has completed successfully."
          * The Integrate a Service Pack screen will update to include the new Windows version.
          * Click Next.
   4. Create a Bootable ISO: Select "Make ISO."
          * Select a location to store the iso. Name the file winxp-sp2.iso or win2k-sp4.iso depending on your Windows version.
          * Click Next after the ISO is created and then click Finish.


        (nLite, the suggested program, is *very* nice; using it 
         requires installing .net runtimes, which is easy)
    (3) result: get an iso
    (4) burn the iso under OS X...

[] install windows xp sp 2  (boot holding down option and select
the windows CD; multiple reboots.  hold down option.)

[] install apple's driver cd

[] maybe I'll use these at some point: right-clicking under windows:

      http://www.geocities.com/pronto4u/applemouse.html

   mac drive access from xp?

      http://www.mediafour.com/products/macdrive6/


LINUX:
[] Insert the live linux ubuntu for macbook CD in the drive.

[] Hold "option" key on bootup. Boot into the live environment.

[] login and startx

[] mkfs.ext3 /dev/sda3  <------- my linux partition

[] copy files:
    mount /dev/sda3 /mnt
    cd /
    time cp -arv bin data  etc  lib media opt  sbin  srv  tmp  var boot  dev  \
                 home root share  usr /mnt/


 Make sure you make these directories!!!

    mkdir /mnt/propc
    mkdir /mnt/sys


 Also, edit /etc/fstab appropriately...

[] lilo: 
    1. get lilo and lilo.real from here and put them in 
        /sbin/    and in /mnt/sbin

    2. Make /mnt/etc/lilo this:

My final lilo.conf file

# Global LILO settings
boot=/dev/sda3
prompt
timeout=4
default=Linux

# kernel specific LILO settings
image=/boot/vmlinuz-2.6.16.1
label=Linux
read-only
root=/dev/sda3
append="noapic"


     3. mount --bind /dev/ mnt/dev

     4. /sbin/lilo -r /mnt

Added Linux *           <--- you *must* see this or there's a problem
     
     5. umount /mnt/dev; umount /mnt

     6.  "You now need to mount your Windows partition, create a
         chainload file for ntldr and then add a reference to it in
         the Windows boot.ini file:"

mkdir /mnt/windows && mount -t vfat /dev/sda4 /mnt/windows
cd /mnt/windows
dd if=/dev/sda3 of=linux.mbr bs=512 count=1
echo 'C:\linux.mbr="Linux"' >> /mnt/windows/boot.ini
cd && umount /mnt/windows

       Be very  careful you got the above right!
       As a double check, e.g., type    
           more /mnt/windows/boot.init
       You should get lots of garbage. Type "reset" to fix
       your console.

       Once you have the above working, whenever you update
       lilo.conf, e.g., after building a new kernel, you
       can automate the above by typing 
                 /sbin/lilo-inst
       where lilo-inst is here.

[] I had a lot of trouble getting my linux kernel to boot.  I ended up:

  (1) putting the dapper drake live cd stuff on disk (as above); installing 
      gcc...

  (2) recompiling the kernel but with all frame buffer stuff off (!)

  (3) adding the noapic option


Here are some relevant files:
   * xorg.conf
   * config-2.6.16.16
   * directory related to ati video drivers

DVI out works: Note that with my xorg.conf if I *restart* my X server
with an external display or projector plugged in it mirrors the
internal display to the projector.
-------------------------------------------------------



From: Michael Kaufmann
To: [email protected]
Cc: "[email protected]" 
Subject: Re: [Mactel-linux-users] Re: Linux on a MacBook Pro

Hello William,
 
I used sfdisk (which is on the mactel live cd) to mirror the partition
from GPT to MBR. I marked a linux partition as active, installed lilo in
the mbr and everything worked (which means that the EFI enabled to BIOS
emulation).
There's another thread abouth this on this mailing list with a more
detailed description and a post in the gentoo forum.
 
-------------------------------------------

Subject: Re: ati hardware acceleration under linux on macbook pro

I managed to get it going in the end, turns out it's the imacfb patch
that was preventing the vbe stuff from running, recompiled with all fb
stuff disabled and it started up ok with dri active.  I still get an
error about libGL failing to load though.  I was attempting to get it
working using xom.efi to load the video bios i dumped from bootcamp,
exiting xom then running elilo so I wouldn't have to chainload.
Working good now both ways however