Cross Compiling: Difference between revisions
m (minor corrections - path) |
(added how to compile the kernel and openssl) |
||
Line 12: | Line 12: | ||
== Ubuntu/Debian == | == Ubuntu/Debian == | ||
===Creating a cross compiler toolchain=== | |||
Install required packages | Install required packages | ||
Line 42: | Line 43: | ||
</pre> | </pre> | ||
Add the following | Add the following lines at the end of the file | ||
"export PATH="${PATH}:/home/user/crosstool/bin/" | "export PATH="${PATH}:/home/user/crosstool/bin/" | ||
"export PATH="${PATH}:/home/user/x-tools/powerpc64-unknown-linux-gnu/bin/" | |||
Line 96: | Line 98: | ||
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 | ||
===Cross compiling openssl=== | |||
Download openssl sources | |||
<pre> | |||
wget http://www.openssl.org/source/openssl-0.9.8g.tar.gz | |||
</pre> | |||
unpack the sources | |||
<pre> | |||
tar xvjf openssl-0.9.8g.tar.gz | |||
</pre> | |||
Go to openssl source path | |||
<pre> | |||
cd openssl-0.9.8g/ | |||
</pre> | |||
Change the following lines in the Makefile | |||
<pre> | |||
INSTALLTOP=/x-tools/powerpc64-unknown-linux-gnu/powerpc64-unknown-linux-gnu/sysroot/usr | |||
OPENSSLDIR=/x-tools/powerpc64-unknown-linux-gnu/powerpc64-unknown-linux-gnu/sysroot/usru | |||
CC= powerpc64-unknown-linux-gnu-gcc | |||
AR=xpowerpc64-unknown-linux-gnu-ar $(ARFLAGS) r | |||
RANLIB= powerpc64-unknown-linux-gnu-ranlib | |||
</pre> | |||
Finally | |||
<pre> | |||
make | |||
</pre> | |||
===Cross compiling graf_chokolo's tools=== | |||
Make sure you have a working toolchain and openssl installed | |||
Comment the current compiler and add your cross compiler in our case "powerpc64-unknown-linux-gnu-gcc" | |||
<pre> | |||
#CC=gcc | |||
CC=powerpc64-unknown-linux-gnu-gcc | |||
</pre> | |||
finally | |||
<pre> | |||
make | |||
</pre> | |||
you can find graf_chokolo tools and scripts here | |||
http://git.dukio.com/gitweb.cgi | |||
===Compiling graf_chokolo's kernel=== | |||
Set the following environmental variables | |||
If you haven't already | |||
<pre> | |||
export | |||
</pre> | |||
the cross compile environmental variables | |||
<pre> | |||
CROSS_COMPILE=powerpc64-unknown-linux-gnu- | |||
ARCH=powerpc | |||
</pre> | |||
Finally | |||
<pre> | |||
make | |||
</pre> |
Revision as of 04:47, 18 April 2011
Cross Compiling
This page shows how to cross compile for CellBE/ppc64
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)
Ubuntu/Debian
Creating a cross compiler toolchain
Install required packages
sudo apt-get install build-essential gawk bison flex automake libtool cvs lzma ncurses-dev texinfo patch g++ gcj
Create directories and compile crosstool
mkdir /home/user/crosstool mkdir /home/user/kernel mkdir -p /home/user/toolchain/powerpc tar xvjf crosstool-ng-1.10.0.tar.bz2 cd crosstool-ng-1.10.0/ ./configure --prefix=/home/user/crosstool/ make && make install
- /home/user/crosstool-ng-1.10.0/ -> crostool-ng sources
- /home/user/crosstool/ -> Crosstool install directory with binaries
- /home/user/toolchain/ -> Directory where the binary will be installed
- /home/user/toolchain/powerpc/ -> Crosstool files generated in this tutorial for powerpc
- /home/user/toolchain/x-tools/ -> generated toolchain
- /home/user/kernel -> Place were graf_chokolo's linux kernel tarball will be saved
Add the enviromental variable to bash
sudo gedit /etc/bash.bashrc
Add the following lines at the end of the file
"export PATH="${PATH}:/home/user/crosstool/bin/" "export PATH="${PATH}:/home/user/x-tools/powerpc64-unknown-linux-gnu/bin/"
Download graf_chokolo's 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
Copy the sample configuration file and modify it
cp /home/usr/crosstool/lib/ct-ng-1.10.0/samples/powerpc64-unknown-linux-gnu/* /home/usr/toolchain/powerpc/ cd /home/usr/toolchain/powerpc/ mv crosstool.config .config cd /home/usr/toolchain/powerpc/ ct-ng menuconfig
I've added graf_chokolos kernel
- Operating System -> Linux Kernel version -> custom tarball
- 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
cd /home/user/toolchain/powerppc/ ct-ng menuconfig
Compile ppc64 toolchain
unset LD_LIBRARY_PATH LIBRARY_PATH CPATH export LD_LIBRARY_PATH LIBRARY_PATH CPATH ct-ng build
Wait for some time until it finishes compiling
Testing if your toolchain works properly
export PATH="${PATH}:/home/user/x-tools/powerpc64-unknown-linux-gnu/bin/" powerpc64-unknown-linux-gnuspe-gcc test.c -o test
More info: http://www.ibm.com/developerworks/linux/tutorials/l-embedded-distro/section3.html
Cross compiling openssl
Download openssl sources
wget http://www.openssl.org/source/openssl-0.9.8g.tar.gz
unpack the sources
tar xvjf openssl-0.9.8g.tar.gz
Go to openssl source path
cd openssl-0.9.8g/
Change the following lines in the Makefile
INSTALLTOP=/x-tools/powerpc64-unknown-linux-gnu/powerpc64-unknown-linux-gnu/sysroot/usr OPENSSLDIR=/x-tools/powerpc64-unknown-linux-gnu/powerpc64-unknown-linux-gnu/sysroot/usru CC= powerpc64-unknown-linux-gnu-gcc AR=xpowerpc64-unknown-linux-gnu-ar $(ARFLAGS) r RANLIB= powerpc64-unknown-linux-gnu-ranlib
Finally
make
Cross compiling graf_chokolo's tools
Make sure you have a working toolchain and openssl installed
Comment the current compiler and add your cross compiler in our case "powerpc64-unknown-linux-gnu-gcc"
#CC=gcc CC=powerpc64-unknown-linux-gnu-gcc
finally
make
you can find graf_chokolo tools and scripts here
http://git.dukio.com/gitweb.cgi
Compiling graf_chokolo's kernel
Set the following environmental variables
If you haven't already
export
the cross compile environmental variables
CROSS_COMPILE=powerpc64-unknown-linux-gnu- ARCH=powerpc
Finally
make