Linux Kernel

From Free60

Jump to: navigation, search

There is a set of 7 patches available sent to the linuxppc mailing list on 08 March 2007, which have to be applied to Linux 2.6.20. If you're interested in kernel development and/or adding new features, please take a look at Linux Kernel Development.

To run linux, you need to use the Linux Bootloader available right now. To compile the kernel, you need to set up a [cross compiler] toolchain (unless you already have another PowerPC Linux machine).


Contents

[edit] Prerequisites

The minimal requirements for successfully cross compiling the Linux Kernel for your Xbox are (unverified):

  • A machine running a Linux based OS (most likely your PC)
  • Sources for the Linux Kernel
  • The Xenon patch or patchset
  • Binutils (targeting the powerpc architecture)
  • GCC (targeting the powerpc architecture)

[edit] Configuring and Compiling the Kernel

  1. Get the source for the Kernel from kernel.org and unpack it.

   cd
   wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.tar.bz2
   tar -xvjf linux-2.6.21.tar.bz2

  1. Download and apply the Xenon patch/patchset matching your kernel.

   cd linux-2.6.21/
   for patch in pci_ids.h.diff linux-2.6.21-xenon-cpu.diff linux-2.6.21-xenon.diff \
                linux-2.6.21-xenon-enet.diff linux-2.6.21-xenon-platform.diff \
                linux-2.6.21-xenon-sata.diff linux-2.6.21-xenon-smc.diff \
                linux-2.6.21-xenon-ugly-fb.diff linux-2.6.21-xenon-ugly-udbg.diff \
                interlace.diff ; do
           wget http://op-co.de/xbox360/2.6.21/$patch
           patch -p1 < $patch
   done

  1. Configure the Kernel. You can manually fetch a configuration file from the internet (e.g. here) and type:

   make ARCH=powerpc CROSS_COMPILE=powerpc64-unknown-linux-gnu- oldconfig

Of course, you can fine-tune your Kernel configuration to fit your needs using

   make ARCH=powerpc CROSS_COMPILE=powerpc64-unknown-linux-gnu- menuconfig

  1. Build the Kernel by typing:

   make ARCH=powerpc CROSS_COMPILE=powerpc64-unknown-linux-gnu- all

If everything goes well, you will end up with a file arch/powerpc/boot/zImage.xenon containing the kernel which can be loaded by the XeLL.

[edit] Configuring and Compiling the 2.6.24.3 Kernel (experimental)

  1. Get the source for the Linux 2.6.24.3 Kernel from kernel.org and unpack it.

   wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.3.tar.bz2
   tar -xvjf linux-2.6.24.3.tar.bz2

  1. Download and apply the experimental Xenon patch.

   wget http://home.comcast.net/~ssmurf/linux-2.6.24.3-xenon.diff
   cd linux-2.6.24.3/
   patch -p1 < ../linux-2.6.24.3-xenon.diff

  1. Configure the Kernel.

    make ARCH=powerpc CROSS_COMPILE=powerpc64-unknown-linux-gnu- menuconfig

  1. Build the Kernel by typing:

   make ARCH=powerpc CROSS_COMPILE=powerpc64-unknown-linux-gnu- all

If everything goes well, you will end up with a file arch/powerpc/boot/zImage.xenon containing the kernel which can be loaded by the XeLL.

Remember, these patches are Experimental!

[edit] Recent Kernels (2.6.33 and later)

Patches for recent kernels are available now, but considered highly experimental.

[edit] Rootfilesystem via NFS

  1. Configure the kernel (CONFIG_CMDLINE in .config) for NFS (see NFS-Root mini Howto for details) to match your local setup.
    example: CONFIG_CMDLINE=root=nfs video=xenonfb console=tty0 nfsroot=192.168.1.1:/mnt/nfsroot/xbox ip=dhcp
  2. Make sure that the IP Plug and Play (CONFIG_IP_PNP* in .config) options match your ip setup method.


[edit] Pre-compiled Kernels

http://home.comcast.net/~ssmurf/XeLL-Bootloader-sda2-v2.6.24.3.tar.gz

Personal tools