关于uboot版本选择以及新旧版本的区别

写这一篇文章我因为我正在学习linux内核以及文件系统的移植,查阅了一些文章,做如下记录,非原创,只是觉得有的写的好像有点道理,所以把一些文章的内容集中在此,希望得到大家的建议与指导:

=================================================================================

一、uboot版本选择

U-boot版本下载:ftp://ftp.denx.de/pub/u-boot

U-boot版本选择:

     当我们打开上诉的网址,一看,哇,这么多版本,那么到底应该选择哪一个呢?有些人可能会说当然是越新越好啦。其实呢不是这个样子的,因为Uboot本身也是在不断的开发和进化当中的。可能作者在某一个版本中加入了一些新的特性,然后呢过一段时间又发现他不是很稳定,就把它删掉了。这样就对我们移植Uboot来说就会增加很多不必要的复杂性。所以一般的原则就是够用就可以了。

如何选择够用呢:

    1、打开下载的U-boot目录下的:arch/arm/cpu目录,确认使用的cpu型号是否支持及对应。

    2、打开U-boot目录下的:board查看相对应的外设是否都支持。eq: u-boot/board/samsung/

uboot版本越新支持的开发板和CPU就越多,代码量就越多,如果我们的CPU和开发板的并没有这么多东西,那我们可以不用新的。而用合适我们的,一般结合开发板处来的日期,和uboot的日期来结合找到合适的uboot。

一般情况下,uboot的common目录下,和drivers目录下,fs文件系统目录下等一些是不会有很多变化的,变化最大的就是board目录下和CPU目录下,因为这目录下的内容都是和CPU和开发板相关的,不同的CPU开发板,当然差别会很大了。

二、新旧版本区别

新版本:u-boot-2015.04

旧版本:u-boot-2012.04.01

1、编译方法

1.1 其中最不同的就是我们所熟悉的在u-boot-2014.04中的boards.cfg和mkconfig没有了,而同时又在u-boot-2015.01的顶层目录下多出了一个configs目录,还有一个Kconfig文件,可以看到现在的uboot编译方法和linux kernel的编译方法非常的接近。

 

1.2编译方法区别:

新版的uboot 使用现成的 make xx_defconfig 就会像编译kernel一样在顶层目录生成.config文件。

复制代码

liam@ubuntu:~/uboot/uboot_2015.04$ make distclean
  CLEAN   scripts/basic
  CLEAN   scripts/kconfig
  CLEAN   include/config include/generated
  CLEAN   .config include/autoconf.mk include/autoconf.mk.dep include/config.h
liam@ubuntu:~/uboot/uboot_2015.04$ make  smdk2410_defconfig
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
  SHIPPED scripts/kconfig/zconf.tab.c
  SHIPPED scripts/kconfig/zconf.lex.c
  SHIPPED scripts/kconfig/zconf.hash.c
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
#
# configuration written to .config
#

复制代码

 

也可以用make menuconfig手动配置。

新版本中:make xxx_defconfig主要完成了以下工作:

  1 编译fixdep;

  2 编译conf;

  3 执行conf 二进制文件,生成.config

  注意:include/config.h文件时在make all的时候生成的。

 

旧版

liam@ubuntu:~/uboot/uboot_2012.04.01$ make smdk2410_config 
Configuring for smdk2410 board...

然后再include目录下会得到:

config.mk 

ARCH   = arm
CPU    = arm920t
BOARD  = smdk2410
VENDOR = samsung
SOC    = s3c24x0

config.h

复制代码

/* Automatically generated - do not edit */
#define CONFIG_BOARDDIR board/samsung/smdk2410
#include <config_cmd_defaults.h>
#include <config_defaults.h>
#include <configs/smdk2410.h>
#include <asm/config.h>

复制代码

另外还会在根目录生成:.boards.depend 

asm arch proc三个symlink文件,作用不明。

make xxxconfig后均是直接执行make进行编译。

 

2、交叉编译CROSS_COMPILE定义:

旧版:

./arch/arm/config.mk

./arch/mips/config.mk

CROSS_COMPILE ?= arm-linux-

这样目录的mk文件里面的文件开头处定义的。

新版可以直接在顶层目录:Makefile里面修改

 ifeq ($(HOSTARCH),$(ARCH))
 CROSS_COMPILE ?= arm-linux-
 endif
 
 CROSS_COMPILE = arm-linux-

注意:这里需要提到if endif外面来。否则读取不到CROSS_COMPILE的。

三、参考文章
版权声明:本文为CSDN博主「曦饶」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/q980655156/article/details/80140030

版权声明:本文为CSDN博主「艾特号」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lpwsw/java/article/details/104945628

https://www.cnblogs.com/awsqsh/articles/4508726.html

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值