Editing Cross Compiling
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
=Cross Compiling= | =Cross Compiling= | ||
This page shows how to cross compile for | This page shows how to cross compile for cellBE/ppc | ||
== Ubuntu/Debian == | |||
Install required packages | |||
<pre> | |||
sudo apt-get install build-essential gawk bison flex automake libtool cvs lzma ncurses-dev | |||
sudo apt-get install texinfo patch g++ gcj | |||
</pre> | |||
Create directories and compile crosstool | |||
<pre> | |||
Create directories and compile crosstool | |||
mkdir /home/user/crosstool | mkdir /home/user/crosstool | ||
mkdir /home/user/kernel | mkdir /home/user/kernel | ||
mkdir -p /home/user/toolchain/powerpc | mkdir -p /home/user/toolchain/powerpc | ||
tar xvjf crosstool-ng-1.10.0.tar.bz2 | |||
cd crosstool-ng | cd crosstool-ng-1.10.0/ | ||
./configure --prefix=/home/user/crosstool | ./configure --prefix=/home/user/crosstool/ | ||
make && make install | make && make install | ||
</ | </pre> | ||
* /home/user/crosstool-ng/ -> ''' | * /home/user/crosstool-ng-1.10.0/ -> '''crostool-ng sources''' | ||
* /home/user/crosstool/ -> '''Crosstool install directory with binaries''' | * /home/user/crosstool/ -> '''Crosstool install directory with binaries''' | ||
* /home/user/toolchain/ -> '''Directory where the binary will be installed''' | * /home/user/toolchain/ -> '''Directory where the binary will be installed''' | ||
Line 69: | Line 30: | ||
* /home/user/kernel -> '''Place were graf_chokolo's linux kernel tarball will be saved''' | * /home/user/kernel -> '''Place were graf_chokolo's linux kernel tarball will be saved''' | ||
Add enviromental variable | |||
<pre> | <pre> | ||
sudo gedit /etc/bash.bashrc | |||
</pre> | </pre> | ||
Add the following line at the end of the file | |||
"export PATH="${PATH}:/home/user/crosstool/bin/" | |||
Download graf_chokolo's kernel | Download graf_chokolo's kernel | ||
<pre> | |||
cd /home/user/kernel | cd /home/user/kernel | ||
wget -O linux-2.6.tar.gz http://git.dukio.com/gitweb.cgi?p=linux-2.6\;a=snapshot\;h=HEAD\;sf=tgz | |||
</pre> | |||
</ | |||
Copy the sample configuration file and modify it | Copy the sample configuration file and modify it | ||
<pre> | |||
cp /home/user/crosstool/lib/ct-ng- | cp /home/user/crosstool/lib/ct-ng-1.10.0/samples/powerpc64-unknown-linux-gnu/* /home/user/toolchain/powerppc/ | ||
mv crosstool.config .config | mv crosstool.config .config | ||
cd /home/user/toolchain/ | cd /home/user/toolchain/powerppc/ | ||
ct-ng menuconfig | ct-ng menuconfig | ||
</ | </pre> | ||
I | I added graf_chokolos kernell | ||
*Operating System -> Linux Kernel version -> custom tarball | *Operating System -> Linux Kernel version -> custom tarball | ||
*Operating System -> Path to custom tarball -> /home/user/kernel/linux-2.6.tar.gz | *Operating System -> Path to custom tarball -> /home/user/kernel/linux-2.6.tar.gz | ||
=or= | |||
Start from scratch and configure the toolchain the way you want | Start from scratch and configure the toolchain the way you want | ||
<pre> | |||
cd /home/user/toolchain/powerppc/ | cd /home/user/toolchain/powerppc/ | ||
ct-ng menuconfig | ct-ng menuconfig | ||
</ | </pre> | ||
Compile ppc64 toolchain | Compile ppc64 toolchain | ||
<pre> | |||
unset LD_LIBRARY_PATH LIBRARY_PATH CPATH | unset LD_LIBRARY_PATH LIBRARY_PATH CPATH | ||
export LD_LIBRARY_PATH LIBRARY_PATH CPATH | export LD_LIBRARY_PATH LIBRARY_PATH CPATH | ||
ct-ng build | ct-ng build | ||
</pre> | </pre> | ||
=Wait for some time until it finishes compiling= | |||
Trying if your toolchain works properly | |||
<pre> | <pre> | ||
export PATH="${PATH}:/home/user/toolchain/x-tools/powerpc64-unknown-linux-gnuspe/bin/" | |||
powerpc64-unknown-linux-gnuspe-gcc test.c -o test | |||
</pre> | </pre> | ||
More info: http://www.ibm.com/developerworks/linux/tutorials/l-embedded-distro/section3.html | |||
== Gentoo == | |||
Server: Emerge distcc crossdev & env-update & source /etc/profile & crossdev -t powerpc64-unknown-linux-gnu | |||
Client: http://www.gentoo.org/doc/en/cross-compiling-distcc.xml (Because it's much better written than anything I could do) | |||