Linux Kernel: Difference between revisions

From Xenon Wiki
Jump to navigation Jump to search
imported>Tuxuser
imported>Tuxuser
m (Text replace - "Category:Linux" to "Category:Xbox360_Linux")
 
(5 intermediate revisions by the same user not shown)
Line 57: Line 57:
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]].
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]].


== Configuring and Compiling the 2.6.24.3 Kernel (experimental) ==
== Configuring and Compiling the 2.6.38.8 Kernel (experimental) ==


<ol start="1"><li>  Get the source for the Linux 2.6.24.3 Kernel from kernel.org and unpack it.</ol>  
[http://sourceforge.net/projects/free60/files/Linux%20Kernel Patches for recent kernels] are available now, but considered highly experimental.
 
<ol start="1"><li>  Get the source for the Linux 2.6.38.8 Kernel from kernel.org and unpack it.</ol>  
<code>
<code>
     wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.3.tar.bz2
     wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.8.tar.bz2
     tar -xvjf linux-2.6.24.3.tar.bz2
     tar -xvjf linux-2.6.38.8.tar.bz2
</code>
</code>


<ol start="2"><li>  Download and apply the experimental Xenon patch. </ol>  
<ol start="2"><li>  Download and apply the experimental Xenon patch & kernel config. </ol>  
<code>
<code>
     wget http://home.comcast.net/~ssmurf/linux-2.6.24.3-xenon.diff
     wget -O xenon_config http://sourceforge.net/projects/free60/files/Linux%20Kernel/xenon_config/download
     cd linux-2.6.24.3/
    wget -O patch-2.6.38.8-xbox0.11.1.diff http://sourceforge.net/projects/free60/files/Linux%20Kernel/v2.6.38/patch-2.6.38.8-xbox0.11.1.diff/download
     patch -p1 < ../linux-2.6.24.3-xenon.diff
     cd linux-2.6.38.8/
     patch -p1 < ../patch-2.6.38.8-xbox0.11.1.diff
    cp ../xenon_config .config
</code>
</code>


Line 85: Line 89:


Remember, these patches are Experimental!
Remember, these patches are Experimental!
== Recent Kernels (2.6.33 and later) ==
[http://vserver.13thfloor.at/Stuff/XBOX360/ Patches for recent kernels] are available now, but considered highly experimental.


== Rootfilesystem via NFS ==
== Rootfilesystem via NFS ==


# Configure the kernel (CONFIG_CMDLINE in .config) for NFS (see [[NFS_ROOT|NFS-Tutorial]] for details) to match your local setup.
# Configure the kernel (CONFIG_CMDLINE in .config) for NFS (see [[NFS_Root|NFS-Tutorial]] 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
#: ''example:'' CONFIG_CMDLINE="root=nfs video=xenonfb console=tty0 nfsroot=192.168.1.1:/mnt/nfsroot/xbox rw ip=dhcp"
# Make sure that the IP Plug and Play (CONFIG_IP_PNP* in .config) options match your ip setup method.
# Make sure that the IP Plug and Play (CONFIG_IP_PNP* in .config) options match your ip setup method.


Line 99: Line 99:
   
   
http://home.comcast.net/~ssmurf/XeLL-Bootloader-sda2-v2.6.24.3.tar.gz
http://home.comcast.net/~ssmurf/XeLL-Bootloader-sda2-v2.6.24.3.tar.gz
[[Category:Xbox360_Linux]]

Latest revision as of 00:30, 7 January 2014

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).


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)

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.

Configuring and Compiling the 2.6.38.8 Kernel (experimental)

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

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

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

  1. Download and apply the experimental Xenon patch & kernel config.

   wget -O xenon_config http://sourceforge.net/projects/free60/files/Linux%20Kernel/xenon_config/download
   wget -O patch-2.6.38.8-xbox0.11.1.diff http://sourceforge.net/projects/free60/files/Linux%20Kernel/v2.6.38/patch-2.6.38.8-xbox0.11.1.diff/download
   cd linux-2.6.38.8/
   patch -p1 < ../patch-2.6.38.8-xbox0.11.1.diff
   cp ../xenon_config .config

  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!

Rootfilesystem via NFS

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

Pre-compiled Kernels

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