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/ppc64 | ||
Line 11: | Line 10: | ||
Client: http://www.gentoo.org/doc/en/cross-compiling-distcc.xml (Because it's much better written than anything I could do) | Client: http://www.gentoo.org/doc/en/cross-compiling-distcc.xml (Because it's much better written than anything I could do) | ||
== | == 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 37: | ||
* /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 | ||
Line 131: | Line 72: | ||
---- | ---- | ||
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> | ||
'''Wait for some time until it finishes compiling''' | '''Wait for some time until it finishes compiling''' | ||
---- | ---- | ||
Testing if your toolchain works properly | |||
<pre> | |||
export PATH="${PATH}:/home/user/toolchain/x-tools/powerpc64-unknown-linux-gnuspe/bin/" | |||
export PATH="${PATH}:/home/user/x-tools/powerpc64-unknown-linux- | |||
powerpc64-unknown-linux-gnuspe-gcc test.c -o test | powerpc64-unknown-linux-gnuspe-gcc test.c -o test | ||
</ | </pre> | ||
More info: http://www.ibm.com/developerworks/linux/tutorials/l-embedded-distro/section3.html | More info: http://www.ibm.com/developerworks/linux/tutorials/l-embedded-distro/section3.html | ||