交叉編譯環境搭建
本文介紹了在fedora系統環境下,使用sb2模擬arm開發板的交叉編譯環境。
假設交叉編譯的工具鏈和gcc編譯器已經做成。
1.交叉編譯工具ScratchBox2安裝
1.獲取編譯工具ScratchBox2安裝包
官網下載:
http://maemo.gitorious.org/scratchbox2/scratchbox2/trees/master
2.編譯安裝ScratchBox2。
前提:系統安裝了qemu,可執行 yum install qemu 安裝
①將安裝包拷貝到任意目錄,解壓scratchbox2-scratchbox2-master.tar.gz。
執行命令:tar zxvf scratchbox2-scratchbox2-master.tar.gz
②進入解壓縮後的目錄
cd /scratchbox2-scratchbox2/
③文本工具查看文件夾下README文件,可以得到安裝步驟
1) for Debian (Ubuntu系統等):
$ cd scratchbox2
$ dpkg-buildpackage -rfakeroot
$ cd ..
$ sudo dpkg -i libsb2*deb scratchbox2*deb
2) for non-debian systems(Fedora系統等):
$ ./autogen.sh
$ make
$ make install prefix=$HOME/sb2(安裝路徑)
④修改環境變量
vi /etc/ profile
添加一行:export PATH=“$PATH:$HOME/sb2/bin”(對應安裝路徑)
保存退出,註銷用戶,重新登錄。
2.交叉編譯環境配置
1.取得需要的交叉編譯器和根文件系統
TflusSVN上獲取:
gcc交叉編譯器:
根文件系統:
target-iMX5-rootfs-DEVELOP.tar.bz2
2.環境配置
①新建任意目錄
假設在/home/work/新建work_build
cd /home/work/
mkdir work_build
進入work_build 新建目錄 rootfs,
cd work_build
mkdir rootfs
②將gcc編譯器拷貝到work_build下解壓縮。
tar zxvf arm-imx5x-linux-gcc.tar.gz
將根文件系統拷貝到:/home/work/work_build/rootfs下解壓縮。
tar jxvf target-iMX5-rootfs-DEVELOP.tar.bz2
③初始化交叉編譯器
現在根文件系統 位於 /home/work/work_build/rootfs 中。
交叉編譯器 位於 /home/work/work_build/arm-imx5x-linux- gcc 中。
補充說明,交叉編譯初始化需要連接網絡,如果需要代理上網(比如公司),需要先配置.wgetrc上網代理。
cd /home/work
touch .wgetrc
vi .wgetrc
然後添加如下
http_proxy=xxx.xxx.xxx.xxx:8888(代理ip:端口)
--proxy-user=xxx(用戶名)
--proxy-passwd= xxx(密碼)
2)執行如下命令
進入根文件系統所在目錄
cd /home/work/work_build/rootfs
執行如下命令:
sb2-init -c /usr/bin/qemu-arm iMX5 (可以是任意名稱,根據自己需要隨便定義) /home/work/work_build/arm-imx5x-linux-gcc/bin/arm-linux-gcc
等待看到 sucssecful,表示初始化成功。
3.進行交叉編譯
①打開終端
②輸入命令
sb2 –t iMX5
終端顯示[SB2 sample iMx5] 說明編譯器啓動成功,可以進入要編譯的代碼進行交叉編譯了。