写在前面:
由于九鼎X210开发板配套的uboot和kernel版本较低(uboot1.3.6,kernel2.6),为了能让开发板支持高版本的QT等软件,所以打算移植高版本的内核,那既然都打算移植高版本的内核了,所以索性移植一下高版本的uboot吧,这里选择了2014.10版的uboot。
断断续续花了大概一个多星期的时间,最近抽空整理了一下,就拿出来帖到论坛上好了。感触一下,毕业上班之后,想要拥有大段时间来学校,真的很难得了。
1、首先将2014.10版的uboot解压到工作目录中,那么一开始,先尝试编译一下,看基本的环境有没有搭建好。
2、解压完uboot源码,在根目录下执行。
make s5p_goni_defconfig
然后再执行:
make
如果不出意外,会提示下图:
3、从中可以看出,在编译asm-offsets.s时出错了,因为-march的值不对,现在需要编译的是arm架构上的代码
,
实际上用的是本机默认的GCC,所以应该是没有指定架构和交叉编译器,我们只需要在顶层目录Makefile中指
定一下就好了
查看makefile如下:
填充:
CROSS_COMPILE=/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/arm-linux-gnueabihf-
Ps:我这里使用的交叉编译工具是4.7版的,交叉编译工具链的路径因人而异。
4、配置完交叉编译工具链之后,再次执行make后,如果出现如下错误:
这里是说我的ubuntu的dtc版本太低了,需要更新一下。
解决方法是:安装device-tree-compiler
在ubuntu下执行命令:apt-get install device-tree-compiler,安装后就可以成功编译。
如果交叉编译器没有问题的话就能顺利编译通过了,在这里我选的是公司里面的交叉编译工具链,所以应该不会有问题,然后,就可以在目录下看到编译好的uboot.bin文件。
当然,这个文件肯定是不能使用的,我们只是在测试编译环境是否正确。