使用OE制作arm-linux交叉工具链

目前制作交叉工具链的办法,我所知道的:
1.手工编译,这个太复杂了,我试过几次,都没成功
2.使用crosstool,这个比较方便,但是好像crosstool没有维护了。
3.使用oe,这个方法不错,而且将来也可以用oe来编译其他的包,直至编译整个系统。

所有工作都在 ~/oe 下完成
mkdir ~/oe
cd ~/oe

1.获取bitbake
cd ~/oe
svn co svn://svn.berlios.de/bitbake/branches/bitbake-1.8/ bitbake

2.获取oe
cd ~/oe
git clone git://git.openembedded.net/openembedded

3.准备oe的配置文件
cd ~/oe
mkdir build
mkdir build/conf
cp openembedded/conf/local.conf.sample build/conf/local.conf

vim local.conf

下面是需要改动的地方:

oe会将下载的sources放在这个目录:
DL_DIR = "${HOME}/oe/sources"

所有.bb file的位置
BBFILES := "${HOME}/oe/openembedded/packages/*/*.bb"

目标平台,这里面定义了CPU类型,我用的是s3c2440, 跟smdk2440开发板用的CPU一样,所以就指定了这个,所有的MACHINE可以参见 openembedded/conf/machine
MACHINE="smdk2440"
DISTRO = "angstrom-2008.1"

同时运行的线程数,如果是多核CPU的话,指定这个可以提高编译速度
BB_NUMBER_THREADS = 3

最后工具链生成的地方:
TMPDIR = /opt/armcross

注意最后的 REMOVE_THIS_LINE,要把这行注释掉。

4.开始编译toolchian
export BBPATH=~/oe/build/:~/oe/openembedded/
export PATH=~/oe/bitbake/bin/:$PATH
bitbake meta-toolchain
如果提示缺少某些包,则要先安装这些包。

整个编译过程完成后,/opt/armcross目录下,除了cross和staging目录保留外,其他的都可以删除,toolchain就在/opt/armcross/cross/armv4t/bin下面。可以将/opt/armcross目录打个包,以便安装到另外的机器上。需要注意的是,将toolchain安装到另外的机器上时,要保证仍是安装在/opt/armcross目录下面,否则,一些头文件和库就找不到了。

你可能感兴趣的:(工作,SVN,File,git,Path,工具)