安装交叉编译环境和编译U-BOOT
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
安装交叉编译环境和编译U-BOOT
新手第一次安装编译,按照LINUX书籍介绍的步骤和网上的帖子,一步步做,最后都失败。对我们新手来说找原因很困难,最后将网上搜到的帖子进行汇总,发现有些帖子或书籍没有把步骤写全,最后我按自己的步骤把搜集的资料整理一下和大家分享。
最初在Cygwin下调试,毕竟初学对Linux环境不熟悉,结果不能安装交叉编译环境,即使是用超级用户root也不成功。不得不安装个虚拟机进行试验。按书籍手工制作交叉编译环境也失败,原因到是编译glibc这步失败,找不到原因以后再试,只有先下个编译好的交叉编译环境用。
所用工具:
cross-3.0.tar.bz2
u-boot-1.1.6
环境:Fedora-13-i386 虚拟机7.1
Cross-3.0安装步骤:
一、首先将虚拟机共享文件夹功能开启。方法是关机,在VM菜单里面选择安装VMware tools 然后进入系统,cd /mnt/cdrom进入到光驱的目录下,使用ls可以看到这两个文件。VMwareTools-5.5.0-18463.i368.rpm
和VMwareTools-5.5.0-18463.tar.gz
第1步:cp VMwareTools-5.5.0-18463.tar.gz /tmp,把这个文件拷贝到tmp下
第2步:cd /tmp进入临时目录,ls 查看刚才的文件是否在这个目录下。
第3步:tar zxvf VMwareTools-5.5.0-18463.tar.gz 解压这个文件
第4步:使用第二步命令,进入tmp目录下的vmware-tools-distrib目录
第5步:./vmware-install.pl 执行这个文件,出现提示就回车。安装结束后重启
最后:打开VMware->工具栏—>虚拟机->选择设置->选项共享文件夹
点添加,按提示来添加一个windows下的文件夹。在/mnt/hgfs下就是你在windows 下共享的文件夹了。
二、在WINDOWS下将下载的cross-3.0.tar.bz2拷贝到共享目录。
三、在fedoral下输入su命令更换到root用户,如果不知道密码可用sudo passwd root 设置新密码。在linux的/usr/local目录下建立一个arm文件夹(因为cross-3.0.tar.bz2里面没有arm这个目录要自己建),将cross-3.0.tar.bz2解压到usr/local/arm/下,解压出来后应该在/usr/local/arm/3.0/下有arm-linux、bin等目录。
四、进入/usr/local/arm/3.0/bin目录下,用chmod 755修改所有文件。 ////////有的帖子没有这步
五、在fedoral下用vi /etc/profile;在出现pathmunge 的语句段后添加pathmunge /usr/local/arm/3.0/bin;(要在一行)然后source /etc/profile更新一下就可以用arm-linux-gcc进行编译了。测试是否可用:输入arm-linux-gcc -v,出现版本信息说明工具已经安装成功了,否则会提示bash: arm-linux-gcc: command not found 。可以建个hello.c文档,用arm-linux-gcc -o hello hello.c验证下是否编译成功。到这步就完成了交叉工具的安装。
u-boot移植的具体步骤:
一建立适合的board平台
参照board/smdk2410目录,我们在源码的board下建立自己的平台mini2440,步骤如下.
1 修改顶层Makefile
cd /root/build_uboot/u-boot
vi Makefile
找到:
smdk2410_config : unconfig
@./mkconfig $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
在其后面添加:
mini2440_config : unconfig
@./mkconfig $(@:_config=) arm arm920t mini2440 NULL s3c24x0
各项的意思如下:
arm: CPU的架构(ARCH)
arm920t: CPU的类型(CPU),其对应于cpu/arm920t子目录。
mini2440: 开发板的型号(BOARD),对应于board/mini2440目录。
NULL: 开发者/或经销商(vender)。
s3c24x0: 片上系统(SOC)。
我把我的板子起名叫mini2440,可以依自己的喜好修改
2 建立board/mini2440目录,拷贝board/mini2440下的文件到board/mini2440目录,将smdk2410.c更名为mini2440.c ////////有的帖子没有这步
cp -r board/smdk2410 board/mini2440
3 修改board/mini2440/Makefile
将:
COBJS := smdk2410.o flash.o
改为:
COBJS := mini2440.o flash.o
4 cp include/configs/smdk2410.h include/configs/mini2440.h
5 修改cpu/arm920t/config.mk文件 ////////有的帖子没有这步将:
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)
改为:
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,$(call
cc-option,-mabi=apcs-gnu),)
6 测试编译能否成功:利用上面建好的交叉编译环境