目前製作交叉工具鏈的辦法,我所知道的:
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目錄下面,否則,一些頭文件和庫就找不到了。
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/hulifox007/archive/2009/02/19/3911217.aspx