【问题标题】:How can I set U-boot CONFIG_MYBOARD_XXXX values from the command line?如何从命令行设置 U-boot CONFIG_MYBOARD_XXXX 值?
【发布时间】:2018-10-08 08:10:00
【问题描述】:

我正在开发定制硬件,并在我的 U-boot 复制品中添加了一个新的 myboard 板。 make 模式非常标准:

make myboard_defconfig
make

将 U-Boot 配置设置为 myboard 默认值,然后构建生成的 U-boot 映像。一切正常,但我需要更进一步。

硬件实际上有两种密切相关的风格,我需要为这两种风格构建略有不同的 U-Boot 映像。我不想定义两个完全不同的板,而是两次构建相同的板类型,但 CONFIG_MYBOARD_XXXX 符号具有不同的值。然后我的myboard.c 文件将有一个#if CONFIG_MYBOARD_XXXX == YYYY 测试来区分结果。

问题:我想在我的父级 Makefile 中设置 CONFIG_MYBOARD_XXXX 的值,而不是通过运行像 make menuconfig 这样的任何交互方式。

这样做的“正确”方法是什么?

【问题讨论】:

  • IMO 的“正确方法” 是彻底改变您的想法,为您的两块板提供一个通用版本的 U-Boot。拥有可以识别哪个板正在使用的代码。工程、生产和支持必须处理的程序变化越少越好。这种做法的一个极端例子是 Nvidia 的统一驱动程序:对于一个 Windows 操作系统版本,所有 Nvidia 图形适配器只有一个驱动程序。
  • 点得很好,但我的“两种不同风格”实际上是不同启动配置的同一块板。因此,make 进程将构建这两种类型以创建灵活的启动映像。 (还有,谢谢。)

标签: configuration u-boot


【解决方案1】:

U-boot make 进程有很多神奇之处,似乎有许多关于如何命名文件的未说明规则。所以,我假设configs/myboard_defconfig 文件和make myboard_defconfig 的参数必须与我的董事会的正式名称后面跟_defconfig 匹配。

原来我错了:这些文件可以任意命名,只要它们以_defconfig 结尾。所以,要拥有两个密切相关的 myboard 版本,我只有两个不同的 defconfig 文件,例如myboard_one_defconfigmyboard_two_defconfig,两个文件中的配置值指定了两种不同风格的 myboard 的配置。

简单易懂!

【讨论】:

  • IMO 你已经开始走上维护/分销地狱之路。
  • 如果我们计划不时更新我们的 U-Boot 版本,这将是正确的。但是,一旦这种方法奏效,我们可能在产品的整个生命周期内都不会再碰它了。因此,让它工作胜过长期维护。
猜你喜欢
  • 2020-08-24
  • 2016-09-10
  • 1970-01-01
  • 2011-06-28
  • 2019-01-10
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 2016-01-04
相关资源
最近更新 更多