Differences between revisions 9 and 10
Revision 9 as of 2007-06-15 03:37:56
Size: 9156
Editor: RicardoYanez
Comment:
Revision 10 as of 2007-06-15 12:39:02
Size: 9163
Editor: RicardoYanez
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
This page describes a method to install Debian on Apple Intel Mac Pro computers. It has been tested in two computer systems with a Quad-Core and dual Quad-core Xeon 5300-series "Clovertown" machines. This page describes a method to install Debian on Apple Intel Mac Pro computers. It has been tested in two computer systems with a Quad-Core and dual Quad-core Xeon 5300-series "Clovertown" processors.
Line 7: Line 7:
If you have already tried to install Debian on Intel Mac Pro, you may have experienced the fact that the Debian Installer CD boots and allows you to configure the early steps of installation, like language, keyboard, etc. but it doesn't mount the CD-ROM. Eventually, no media is available to continue with the base-system installation. If you have already tried to install Debian on Intel Mac Pro, you may have noticed the Debian Installer CD boots and allows you to configure the early steps of installation, like language, keyboard, etc. but it doesn't mount the CD-ROM. Eventually, no media is available to continue with the base-system installation.
Line 9: Line 9:
For the inpatient, the next section explains how to install Debian with a custom mini installer CD and custom kernel in few steps. For the inpatient, the next section explains how to install Debian with a custom Debian Installer mini CD and custom Linux kernel in few steps.
Line 15: Line 15:
Download this [http://debian.calel.org/macpro/mini.iso Debian Installer Mini CD for Intel Mac Pro] (md5sum {{{355637030cc685b1c37d037ee9ec926b}}}), burn it to a CD, for example, Download the [http://debian.calel.org/macpro/mini.iso Debian Installer Mini CD for Intel Mac Pro] (md5sum {{{355637030cc685b1c37d037ee9ec926b}}}), burn it to a CD, for example,
Line 25: Line 25:
Boot the installer in expert mode. Install as you would in any system, except when partitioning the disk. Choose to partition manually, then set the '''bootable flag''' on the partition mounted in /. During the installation of the base system choose '{{{none}}}' for the kernel to install. During GRUB installation, install GRUB in MBR (won't destroy rEFIt, nor any Mac partition). Boot the installer in '''expert''' mode. Install as you would in any system, except when partitioning the disk. Choose to partition manually, then set the '''bootable flag''' on the root partition, mounted in /. During the installation of the base system, choose '{{{none}}}' for the kernel to install. During GRUB installation, install GRUB in MBR (won't destroy rEFIt, nor any Mac partition).
Line 27: Line 27:
After GRUB installation, just before finishing the installation and rebooting, open a virtual terminal, <ctrl>-<alt>-<f2> for instance, '{{{chroot /target}}}', get the [http://debian.calel.org/macpro/linux-image-2.6.20-macpro-amd64_2.4.20_amd64.deb Custom Intel Mac Pro Linux kernel image] (md5sum {{{97e201408b7bd1a5848d6be2f682dbb5}}}) and install it with '{{{dpkg -i}}}'. After GRUB installation, just before finishing the installation and rebooting, open a virtual terminal, {{{<ctrl>-<alt>-<f2>}}} for instance, '{{{chroot /target}}}', get the [http://debian.calel.org/macpro/linux-image-2.6.20-macpro-amd64_2.4.20_amd64.deb Custom Intel Mac Pro Linux kernel image] (md5sum {{{97e201408b7bd1a5848d6be2f682dbb5}}}) and install it with '{{{dpkg -i}}}'.
Line 31: Line 31:
To get the custom kernel I used a USB key. I did '{{{tail -f /var/log/syslog}}}' before inserting the key to get the device it attached to, then I put the custom kernel in a USB key, did '{{{tail -f /var/log/syslog}}}' before inserting it to get the device it attached to, then
Line 35: Line 35:
'{{{update-grub}}}' just in case, then go back to the installation terminal, <ctrl>-<alt>-<f1> and finish the installation. '{{{update-grub}}}' just in case, then go back to the installation terminal, {{{<ctrl>-<alt>-<f1>}}} and finish the installation.
Line 43: Line 43:
(This part requires you have some familiarity with kernel compilation and debian packaging). (This part requires some familiarity with kernel compilation and debian packaging).
Line 49: Line 49:
The Debian installer boots and allows me to configure the early steps of installation, like language, keyboard, but it doesn't mount the CD-ROM. Eventually, no media is available to continue the base-system installation. I tried the standard approaches given in several wikies on the subject, e.g. boot parameters like '{{{install noapic irqpoll acpi=force}}}', and combinations thereof, but none really helped. I also tried a USB-key installation, only to learn that Mac firmware does not support USB-key installations. The Debian installer boots and allows me to configure the early steps of installation, like language, keyboard, but it doesn't mount the CD-ROM. Eventually, no media is available to continue the base-system installation. I tried the standard approaches given in several wikies on the subject, e.g. boot parameters like '{{{install noapic irqpoll acpi=force}}}', and combinations thereof, but none really helped. I also tried a USB-key installation, only to learn Mac firmware does not support USB-key installations.
Line 70: Line 70:
I compiled the kernel in the HP server running Debian Etch. I used kernel version 2.6.20 downloaded from kernel.org. Untar the tarball in {{{/usr/src}}}. I compiled the kernel in the HP server running Debian Etch. I used kernel version 2.6.20, downloaded from kernel.org. Untar the tarball in {{{/usr/src}}}.
Line 102: Line 102:
I'm repeating here some of the ["DebianInstaller/Modify/CustomKernel"] wiki. I'm repeating here some, if not most, of the ["DebianInstaller/Modify/CustomKernel"] wiki.
Line 114: Line 114:
If you have a GPG signature you can do '{{{debchange -i}}}' to edit the changelog with your e-mail address and some comments. The directory name will change reflecting the new version number. You will have to go to the parent directory, then back into the new directory. You may also want to change the Maintainer: field in {{{debian/control.stub}}}, and define the {{{EMAIL}}} and {{{GNUPGHOME}}} environment variables in the user's {{{.bashrc}}} with appropriate values, then source it. If you have a GPG signature you can do '{{{debchange -i}}}' to edit the changelog with your e-mail address and some comments. The directory name will change, reflecting the new version number. You will have to go to the parent directory, then back into the new directory. You may also want to change the {{{Maintainer:}}} field in {{{debian/control.stub}}}, and define the {{{EMAIL}}} and {{{GNUPGHOME}}} environment variables in the user's {{{.bashrc}}}, then source it.
Line 124: Line 124:
You end up with a bunch of udebs in the parent directory. You should end up with a bunch of udebs in the parent directory.
Line 143: Line 143:
The image is in {{{dest/monolithic}}}. The image is placed in {{{dest/monolithic}}}.

Introduction

Written by Ricardo Yanez

This page describes a method to install Debian on Apple Intel Mac Pro computers. It has been tested in two computer systems with a Quad-Core and dual Quad-core Xeon 5300-series "Clovertown" processors.

If you have already tried to install Debian on Intel Mac Pro, you may have noticed the Debian Installer CD boots and allows you to configure the early steps of installation, like language, keyboard, etc. but it doesn't mount the CD-ROM. Eventually, no media is available to continue with the base-system installation.

For the inpatient, the next section explains how to install Debian with a custom Debian Installer mini CD and custom Linux kernel in few steps.

In the long version section I explain how I made the Debian Installer CD.

Short-short version

Download the [http://debian.calel.org/macpro/mini.iso Debian Installer Mini CD for Intel Mac Pro] (md5sum 355637030cc685b1c37d037ee9ec926b), burn it to a CD, for example,

$ wodim -v -eject dev=/dev/cdrw -data mini.iso

Being a mini CD, it contains only .udeb packages, no .deb packages. You will need a network connection to install the base system.

Under Mac OS X, install [http://refit.sourceforge.net/ rEFIt], the EFI boot menu for Intel Mac. Easiest is to download the Mac disk image, double click on the icon and run the installer.

Still under Mac OS X, open the CD tray, insert the Debian Installer Mini CD and reboot. In the boot menu choose the penguin CD.

Boot the installer in expert mode. Install as you would in any system, except when partitioning the disk. Choose to partition manually, then set the bootable flag on the root partition, mounted in /. During the installation of the base system, choose 'none' for the kernel to install. During GRUB installation, install GRUB in MBR (won't destroy rEFIt, nor any Mac partition).

After GRUB installation, just before finishing the installation and rebooting, open a virtual terminal, <ctrl>-<alt>-<f2> for instance, 'chroot /target', get the [http://debian.calel.org/macpro/linux-image-2.6.20-macpro-amd64_2.4.20_amd64.deb Custom Intel Mac Pro Linux kernel image] (md5sum 97e201408b7bd1a5848d6be2f682dbb5) and install it with 'dpkg -i'.

You may have to install initramfs-tools with, 'apt-get -f install initramfs-tools' before installing the kernel, depending on what software you installed during software installation.

I put the custom kernel in a USB key, did 'tail -f /var/log/syslog' before inserting it to get the device it attached to, then 'chroot /target', mounted the key 'mount /dev/sdb1 /mnt' and installed the kernel image 'dpkg -i /mnt/linux-image-2.6.20-macpro-amd64_2.4.20_amd64.deb'. You may use the network to get the kernel image as well, for example, with wget.

'update-grub' just in case, then go back to the installation terminal, <ctrl>-<alt>-<f1> and finish the installation.

In the boot menu choose the penguin disk.

After boot, you may want to install the [http://debian.calel.org/macpro/linux-headers-2.6.20-macpro-amd64_2.4.20_amd64.deb Custom Intel Mac Pro Linux kernel headers] (md5sum 10faa85348474389be7e81501ff067a3).

Long version

(This part requires some familiarity with kernel compilation and debian packaging).

I have two 64-bit dual Quad-Core Xeon E5335 "Clovertown" machines at work. One is an HP server, the other an Apple Intel Mac Pro. Both are primarily used to run Monte Carlo simulations in parallel, or otherwise.

I obviously had no trouble installing Debian Etch on the HP server. On the Mac, the first thing one needs to do is to install rEFIt under Mac OS X, open the CD tray to insert the installation CD, boot and choose the penguin.

The Debian installer boots and allows me to configure the early steps of installation, like language, keyboard, but it doesn't mount the CD-ROM. Eventually, no media is available to continue the base-system installation. I tried the standard approaches given in several wikies on the subject, e.g. boot parameters like 'install noapic irqpoll acpi=force', and combinations thereof, but none really helped. I also tried a USB-key installation, only to learn Mac firmware does not support USB-key installations.

Then a co-worker handed me an Ubuntu 7.04 Feisty server installation CD, which recognized the CD-ROM, mounted the CD, installed the base system, and went all the way to the finish line. After boot, the kernel would not load, though. I read several guides describing some very intricate recipes, which included the need of Live CDs and disk partition utilities. None of these approaches is really necessary, once you realize the only thing they are trying to do is to set the boot flag on the root partition (Why this is necessary beats me). Here is my infinitely simpler recipe:

  • Install in expert mode
  • GPT partition type
  • Flag the root partition as bootable
  • Install GRUB in MBR (won't destroy rEFIt, nor Mac partition)

This may work with other Linux distributions than Ubuntu.

This exercise made me realize the installer needs to attach the CD-ROM as SCSI, not IDE as the Debian Installer does, perhaps under SATA (not sure here.)

My plan of action was then to compile a custom kernel a la Ubuntu, that attaches the CD-ROM as the hardware requires, then make a new Debian Installer CD with it.

I followed closely the ["DebianInstaller/Modify/CustomKernel"] wiki and the ["DebianInstaller/BuildEtch"] wiki.

In short, kernel 2.6.20 is compiled with the mactel-linux patches, then debian-installer is used to create the mini installation image.

Custom kernel 2.6

I compiled the kernel in the HP server running Debian Etch. I used kernel version 2.6.20, downloaded from kernel.org. Untar the tarball in /usr/src.

Install subversion and get the mactel-linux kernel patches,

# svn co https://mactel-linux.svn.sourceforge.net/svnroot/mactel-linux mactel-linux

Go to trunk/kernel/mactel-patches-[kernel-version] and apply patches with,

# ./apply /usr/src/[linux-source-directory]

Install kernel-package and libncurses5-dev. Go the the kernel source directory and 'make menuconfig'.

I configured the kernel as generic as possible, plus mactel-linux addenda,

Device Drivers  --->

  •         Hardware Monitoring support  --->                 < > Apple SMC (Motion sensor, light sensor, keyboard backlight)         USB support  --->                 <M> Apple Mac Mini USB IR receiver (built in)

The Apple SMC module failed to compile, so it was unmarked.

This is the [http://debian.calel.org/macpro/config-2.6.20-macpro-amd64 .config] file.

Compile,

# make-kpkg --initrd --append-to-version=-macpro-amd64 --revision=2.4.20 kernel_image kernel_headers

Install the custom kernel. No need to boot it.

Kernel udebs

I'm repeating here some, if not most, of the ["DebianInstaller/Modify/CustomKernel"] wiki.

Install devscripts and kernel-wedge.

Unpack the source package linux-kernel-di-amd64-2.6,

# apt-get source linux-kernel-di-amd64-2.6

Go to the directory and edit kernel-versions to match the new version, 2.6.20-macpro-amd64. Comment out or delete the existing line.

Check for build dependencies with dpkg-checkbuilddeps, and install dependencies as needed.

If you have a GPG signature you can do 'debchange -i' to edit the changelog with your e-mail address and some comments. The directory name will change, reflecting the new version number. You will have to go to the parent directory, then back into the new directory. You may also want to change the Maintainer: field in debian/control.stub, and define the EMAIL and GNUPGHOME environment variables in the user's .bashrc, then source it.

Build the package with debuild, or 'debuild -rfakeroot' if not root.

If you have no GPG signature, build with 'debuild binary', or 'debuild -rfakeroot binary' if not root instead.

The building may fail due to missing kernel modules. Edit module listings in modules/amd64 needed be. I copied some of the include files into the directory and put a ? at the end of the missing module. See kernel-wedge documentation for more options.

If you have a GPG signature, sign the files.

You should end up with a bunch of udebs in the parent directory.

Debian Installer

Get the source,

# apt-get source debian-installer

Go to directory and check for dependencies.

Edit build/config/amd64.cfg and change KERNELVERSION. Uncomment monolithic image type.

Copy all kernel udebs into build/localudebs.

Go to build/ and build the monolithic image,

# make build_monolithic

The image is placed in dest/monolithic.

Now you have the CD image and the kernel image. Install as described in the short-short version section.

Good luck!