- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
使用 Yocto 项目为 iMX6 开发板构建 linux,我想更改用于构建 u-boot-imx(iMX 开发板的 u-boot)的 .config - 例如例如,将自动启动延迟更改为 1 秒。
我可以编辑配置(例如找到构建目录并运行 make menuconfig),但是当我运行 bitbake 重建图像时,它会再次用默认值覆盖 .config。 xxx_defconfig文件很多,不知道用的是哪个。
我关注了this guide用于 Yocto 项目的内核配置。我对 .config 文件进行了更改,并将其复制到我的图层并重命名为“defconfig”。我用 u-boot-imx_2017.03.bbappend 创建了一个新层来扩展 u-boot-imx_2017.03.bb(u-boot-imx 的配方).
这是我的u-boot-imx_2017.03.bbappend
FILESEXTRAPATHS_prepend := "${THISDIR}:"
SRC_URI += "file://defconfig"
我还将它添加到我的 layer.conf 中的“BBFILES”
我重建u-boot如下:
bitbake -f -D u-boot-imx -c compile
当我执行此操作时,构建目录中的 .config 文件恢复为默认配置(不是我更改的版本)并且生成的 u-boot 二进制文件没有更改(启动延迟仍为 3 秒)。
我认为我的图层正在处理中,因为我在输出中看到了这一点:
DEBUG: Appending .bbappend file /home/bob/yocto/morty/sources/meta-mylayer/imx/meta-bsp/recipes-bsp/u-boot/u-boot-imx_2017.03.bbappend to /home/bob/yocto/morty/sources/meta-fsl-bsp-release/imx/meta-bsp/recipes-bsp/u-boot/u-boot-imx_2017.03.bb
我看不到任何调试输出表明有错误(例如找不到我的 defconfig 文件)。
我如何使用 Yocto 对 u-boot 配置进行这种更改?
===== 编辑 =====
我按照下面 LetoThe2nd 的回答中的说明进行操作。这是我发现的:
bitbake-layers show-appends
有用!在我看到的层中:
u-boot-imx_2017.03.bb:
/home/bob/yocto/morty/sources/meta-mylayer/imx/meta-bsp/recipes-bsp/u-boot/u-boot-imx_2017.03.bbappend
看起来它找到了图层。
bitbake -e -c clean u-boot-imx | tee 构建日志
在 build.log 中搜索“SRC_URI”,我发现了这个:
# $SRC_URI [6 operations]
...
# pre-expansion value:
# "${UBOOT_SRC};branch=${SRCBRANCH} file://defconfig"
SRC_URI="git://git.freescale.com/imx/uboot-imx.git;protocol=git;branch=imx_v2017.03_4.9.11_1.0.0_ga file://defconfig"
file://defconfig 来 self 的 bbappend。
搜索 UBOOT_MACHINE,我发现:
# $UBOOT_MACHINE [2 operations]
...
UBOOT_MACHINE=" mx6ull_14x14_evk_config"
这看起来是正确的!
我检查了 u-boot-imx 构建目录中的 .config;它仍然不正确。
(我将我层的 defconfig 中的 CONFIG_BOOTDELAY 值与 u-boot-imx 构建目录中的 .config 中的值进行了比较)。
===== 编辑 2 =====
我遵循了下面 LetoThe2nd 的回答附录中的建议 1。即:
为我的评估板构建 u-boot-imx 时使用的 xxx_defconfig 文件创建补丁(在本例中,[SOURCE DIR]/configs/mx6ull_14x14_evk_defconfig)
使用 .bbappend 将补丁放在我的图层目录中
将 .bbappend 更改为如下行:
_
FILESEXTRAPATHS_prepend := "${THISDIR}:"
SRC_URI += " file://mx6ull_14x14_evk_defconfig.patch;patchdir=${S}/configs "
这成功了! (即我在补丁中放置的调整后的自动启动延迟用于 u-boot-imx)。
我没有尝试过建议 2,因为第一种方法听起来更好。
最佳答案
从技术上讲,您描述的过程对我来说是正确的。但是有几个障碍需要注意,分别需要检查:
虽然这对你来说似乎是这种情况(你通过调试输出发现)这通常更容易检查:
bitbake-layers show-appends
这将为您提供在当前构建情况下有效的所有附加的完整详细列表。
如果涉及多个配方,事情就会变得复杂,并且会相互覆盖。检查
bitbake -e u-boot-imx
看看到底发生了什么。这最好结合管道进入 less(或您选择的寻呼机),然后搜索修改后的值,如 SRC_URI。
鉴于来自 2. 的信息,这相当简单:检查名为的变量
UBOOT_MACHINE
因为这是 u-boot 真正应该看到的。
特别是组合 -f 和 -c 开关可能会产生意想不到的结果,因为您基本上是在修改任务依赖性。以我的经验,一些事情发生了
bitbake -c clean u-boot-imx && bitbake u-boot-imx
应该工作得更好,因为它贯穿了整个构建依赖性,包括配置、修补等。
编辑/附录
我已经与 OE 开发人员核实过,主要问题是 defconfig 机制是特定于 (linux-) 内核的,这也是内核开发手册中对其进行解释的原因。
因此,要将您的配置放入实际构建中,有一个半解决方案。
为 u-boot 源准备一个补丁。在你的情况下,这可能只是对已经在使用的 defconfig 文件的一个小修改。拥有规范格式的补丁并将其添加到 SRC_URI,然后它应该会自动被拾取并执行此操作。
以完整格式准备您的配置(不是 defconfig 精简版)。然后将其添加到 SRC_URI 并通过 .bbappend 中的附加任务使用它:
do_compile_prepend() {
cp YOURFILENAME ${S}/.config
}
这应该在编译开始之前直接注入(inject)新配置。它可能需要一些修补,但您肯定明白了。另一种方法是在原始文件上注入(inject) defconfig。
话虽如此,我强烈推荐第一种方式。
关于linux - 如何在 Yocto 中更改 u-boot 的配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47047209/
有人可以解释一下 spring-boot-parent 和 spring-boot-starter-parent 之间的区别吗,正如我在下面附加的 GIT HUB 代码链接之一中看到的,他们为 spr
我有与 jersey 框架集成的 Spring Boot 应用程序。 现在,当我尝试运行该应用程序时,它只是停留在 Spring 启动徽标上,之后没有任何 react 。 我也尝试添加 -X ,但徽标
我指的是 Spring Boot 关于 的文档自动配置 和 执行器 模块: 自动配置: Spring Boot AutoConfiguration attempts to automatically
我正在尝试将 apache log4j 集成到我的 Spring boot 应用程序中。这是我的 build.gradle 文件: build.gradle buildscript { rep
使用 Spring Boot Maven 插件的以下命令在生产中启动 Spring Boot 应用程序是否是一个好主意或实践? mvn spring-boot:run 最佳答案 不,这是个坏主意。 您
据我所知,spring boot 和 spring session 为我们提供了一站式自动配置,但是当我的应用程序使用 session redis 和应用程序缓存 redis 时,不是同一个 redi
我希望使用Spring Boot创建一个新的Web应用程序。不幸的是,我的服务器在技术堆栈方面相当有限。它安装了Java 5。 谁能告诉我spring boot是否可以在Java 1.5上运行以及什么
我有3个实体 CarWash(设置Wash) Wash(car_wash_id FK到CarWash) WashComment(wash_id FK到Wash) 有什么办法可以写这个查询 @Qu
我一直在关注this文章。 我正在尝试在Spring-boot应用程序中优雅地处理gRPC错误,的主要目标是能够在gRPC客户端中获取错误状态。 在上面的文章之后,我坚持为异常添加拦截器。如何在Spr
我有一个要使用的自定义log4j布局插件。在IntelliJ中运行或与./gradlew bootRun一起运行时,插件可以正常工作。不使用./gradlew bootJar构建启动jar。 启用-D
我想在给定范围 (5001-5100) 的随机端口上启动 Spring Cloud 应用程序(Spring Boot 1.5.14,Spring Cloud Edgware.SR4)。我知道我们可以使
任何人都可以向我展示或指出不使用 spring boot gradle 插件的 spring boot gradle 项目。 我正在寻找类似不使用 gradle 插件的 spring boot sta
我当时尝试包含上述依赖项之一,但找不到任何区别: spring boot starter web:我可以看到 Flux 和 Mono 类并制作一个响应式(Reactive)休息 Controller
我们一直在为我们的应用程序使用 Springboot 1.X。 现在准备开始一些新的应用程序,想知道我们是应该使用 SpringBoot2.0 还是坚持使用 SpringBoot 1.X? 对一种方式
我希望记录应用程序正在加载 application-profile.propeties 或 application.yml。怎么做。在哪种方法中,我可以听取它并检测它是成功加载还是失败。 最佳答案 您
当我在 pom.xml 中添加简单的 spring-boot-starter-data-jpa 依赖项时,在 pom.xml 文件中出现错误。如果我删除该依赖项,则不会再有错误。我不确定为什么会发生这
我希望记录应用程序正在加载 application-profile.propeties 或 application.yml。怎么做。在哪种方法中,我可以听取它并检测它是成功加载还是失败。 最佳答案 您
我在网上看了很多关于 spring-boot-devtools 的文章和问题,但仍然无法弄清楚为什么它对我不起作用。每次运行我的应用程序时,我都会得到以下信息: 17:54:28.057 [main]
我正在尝试将现有的 Spring 应用程序移植到 Spring Boot。我不使用 spring-boot-starter-data-solr 启动器,但是我的类路径上有 apache solrj (
(这主要是一个历史问题。Pivotal 建议所有论坛讨论都在 StackOverflow 上进行,这就是我在这里问它的原因。) Spring Boot 项目用来证明将应用程序的类和依赖项从可执行 ja
我是一名优秀的程序员,十分优秀!