Linux Kernel: Difference between revisions
(Undo revision 558 by 85.233.172.249 (Talk)) |
imported>Tuxuser m (Text replace - "Category:Linux" to "Category:Xbox360_Linux") |
||
(7 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
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]]. | |||
*[http://ozlabs.org/pipermail/linuxppc-dev/2007-March/032705.html (patch 1/7) xenon: add PCI Vendor ID: Microsoft] | |||
*[http://ozlabs.org/pipermail/linuxppc-dev/2007-March/032704.html (patch 2/7) xenon: add platform support] | |||
*[http://ozlabs.org/pipermail/linuxppc-dev/2007-March/032701.html (patch 3/7) xenon: udbg support (ugly)] | |||
*[http://ozlabs.org/pipermail/linuxppc-dev/2007-March/032703.html (patch 4/7) xenon: add southbridge ethernet support] | |||
*[http://ozlabs.org/pipermail/linuxppc-dev/2007-March/032702.html (patch 5/7) xenon: add SATA support ] | |||
*[http://ozlabs.org/pipermail/linuxppc-dev/2007-March/032707.html (patch 6/7) xenon: add SMC support ] | |||
*[http://ozlabs.org/pipermail/linuxppc-dev/2007-March/032708.html (patch 7/7) xenon: add framebuffer support (ugly) ] | |||
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 [http://www.kernel.org Linux Kernel] | |||
* The Xenon patch or patchset | |||
* Binutils (targeting the powerpc architecture) | |||
* GCC (targeting the powerpc architecture) | |||
== Configuring and Compiling the Kernel == | |||
<ol start="1"><li> Get the source for the Kernel from [http://www.kernel.org kernel.org] and unpack it. </ol> | |||
<code> | |||
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 | |||
</code> | |||
<ol start="2"><li> Download and apply the Xenon patch/patchset matching your kernel. </ol> | |||
<code> | |||
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 | |||
</code> | |||
<ol start="3"><li> Configure the Kernel. You can manually fetch a configuration file from the internet (e.g. here) and type: </ol> | |||
<code> | |||
make ARCH=powerpc CROSS_COMPILE=powerpc64-unknown-linux-gnu- oldconfig | |||
</code> | |||
: Of course, you can fine-tune your Kernel configuration to fit your needs using | |||
<code> | |||
make ARCH=powerpc CROSS_COMPILE=powerpc64-unknown-linux-gnu- menuconfig | |||
</code> | |||
<ol start="4"><li> Build the Kernel by typing:</ol> | |||
<code> | |||
make ARCH=powerpc CROSS_COMPILE=powerpc64-unknown-linux-gnu- all | |||
</code> | |||
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) == | |||
[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> | |||
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 | |||
</code> | |||
<ol start="2"><li> Download and apply the experimental Xenon patch & kernel config. </ol> | |||
<code> | |||
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 | |||
</code> | |||
<ol start="3"><li> Configure the Kernel. </ol> | |||
<code> | |||
make ARCH=powerpc CROSS_COMPILE=powerpc64-unknown-linux-gnu- menuconfig | |||
</code> | |||
<ol start="4"><li> Build the Kernel by typing: </ol> | |||
<code> | |||
make ARCH=powerpc CROSS_COMPILE=powerpc64-unknown-linux-gnu- all | |||
</code> | |||
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 == | |||
# 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 rw ip=dhcp" | |||
# 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 | |||
[[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.
- (patch 1/7) xenon: add PCI Vendor ID: Microsoft
- (patch 2/7) xenon: add platform support
- (patch 3/7) xenon: udbg support (ugly)
- (patch 4/7) xenon: add southbridge ethernet support
- (patch 5/7) xenon: add SATA support
- (patch 6/7) xenon: add SMC support
- (patch 7/7) xenon: add framebuffer support (ugly)
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
- 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
- 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
- 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
- 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.
- 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
- 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
- Configure the Kernel.
make ARCH=powerpc CROSS_COMPILE=powerpc64-unknown-linux-gnu- menuconfig
- 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
- 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"
- 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