Linux内核移植 part3:Exynos4412内核编译

为了在exynos 4412平台上运行系统,选择了linux来测试,因为只是用来测试的,所以并没有完整功能的移植,只要能启动就可以了。兼顾方便和先进性,选择了4.1这个长期支持版本。从清华的源上下载速度比较快。

因为选择的是uboot启动,执行

$ make exynos_defconfig
$ make uImage

注:如果找不到mkimage工具,在uboot根目录tools目录下有,放到/usr/local/bin即可。

编译的时候竟然报错了

multiple (or no) load addresses: 
This is incompatible with uImages
Specify LOADADDR on the commandline to build an uImage

这个log是在arch/arm/boot/Makefile中打印的。相关代码如下

check_for_multiple_loadaddr = \
if [ $(words $(UIMAGE_LOADADDR)) -ne 1 ]; then \
    echo 'multiple (or no) load addresses: $(UIMAGE_LOADADDR)'; \
    echo 'This is incompatible with uImages'; \
    echo 'Specify LOADADDR on the commandline to build an uImage'; \
    false; \
fi

而UIMAGE_LOADADDR的定义则为

ifneq ($(LOADADDR),)
  UIMAGE_LOADADDR=$(LOADADDR)
else
  ifeq ($(CONFIG_ZBOOT_ROM),y)
    UIMAGE_LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
  else
    UIMAGE_LOADADDR=$(ZRELADDR)
  endif
endif

经过一系列的检查,发现LOADADDR为空,而ZRELADDR又是和MACHINE变量有关,在exynos_defconfig后会选择MULTIPLATFORM,使得MACHINE为空。现在直接在这个Makefile中添加了

LOADADDR := 0x40007000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶玄青

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值