一直在看韦东山的二期视频,打算跟着移植一个uboot,百度uboot,进入官网,左侧SourceCode下载最新的源码,此次用的是和韦东山同款的u-boot-2012.04.01。
步骤:
1.建立Source ubsight工程,把2440要用到的东西添加进去,如果记不清,就全加,SI只是用来阅读代码的,全加没有坏影响,只是查找函数之类的时候会找到你不需要的文件里面去。
2.把压缩文件通过FTP放入虚拟机/work/system目录,其实都可以,我放到了这里。
tar xjf u-boot-2012.04.01.tar.bz2
3.解压以后进入文件夹,要配置uboot,以2440适配的方式编译。观察以后发现u-boot-2012.04.01没有直接支持2440,但是2440和2410的差不多,就直接用2410试试。
make smdk2410_config
在window下打开解压后的文件,在u-boot-2012.04.01\board\samsung里面可以找到smdk2410文件夹,猜测上面的命令是从这里来的,下次移植到4418或者4412上的时候实践一下看看是不是这样。(后来实践过,确实是这样)
4.make编译,编译以后发现一百多个错误,这是因为uboot更新以后很多配置改了,编译器没跟上,下载一个新版的编译器,我下了arm-linux-gcc-4.3.2.tgz,是跟着韦东山下的,暂时不清楚编译器和内核之间的版本要不要匹配,等uboot全部移植成功了,下一个最新的编译器试试。
5.下载以后把压缩文件放入虚拟机/work/tool目录,也可以放别的目录,因为后缀是tgz,所以解压的命令是tar zxvf FileName.tgz这样的。建立一个tmp临时目录,先看看里面是什么东西,这个步骤可以跳过
tar zxvf arm-linux-gcc-4.3.2.tgz -C tmp/
解压到当前目录:
tar zxvf arm-linux-gcc-4.3.2.tgz -C /
6.进入tmp/usr/local/arm/4.3.2 ls bin/
可以看到各种工具链,很满意
可以把它直接解压到tool根目录一面去
7.linux里面有很多命令,它把命令都放在一个地方,输入命令以后去找,所以我们要配置环境,把命令的目录指向我们新的工具链的地方
echo $PATH 命令可以查看当前命令的地址,在没有更改的时候,我的返回值是这样的
/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/bin/usr/games:/work/tools/gcc-3.4.5-glibc-2.3.6/bin
可以看到有很多的命令,都用:隔开了,说明输入命令的时候它会去这些地方找,我们原先的工具链的地址在/work/tools/gcc-3.4.5-glibc-2.3.6/bin
,只需要修改这个地址就可以了,别的地址不用改
新的地址在/usr/local/arm/4.3.2/bin
设置新的环境变量
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/bin/usr/games:/usr/local/arm/4.3.2/bin
输入 arm-linux-gcc -v可以看到工具链的版本号已经更新了
如果不想每次都更改这个值,可以直接修改
vi /etc/exvironment
里面有PATH=。。。,同样最后的地址改一下就行了,这个是重启后生效。
8.重新编译
make distclean //把之前旧的编译器编译的垃圾删掉,重新make
编译通过,下载到开发板。因为是裸板程序,我通过oflash下载的,下进去以后什么反应都没有,看来不修改不能直接支持,下一节去修改这个。