我是“BitBake”的初学者。我需要修改源代码并构建它。我发现源代码位于build/tmp/work/目录中,目录的名称是git提交id。我想重建源头。所以我给了bitbake -c clean <package_name>,然后是bitbake <package_name>。图像被建好了。但是,当我回去修改源代码时,git存储库似乎在它的位置上丢失了。
( 1)如何取回来源?
( 2)修改后重建资源的安全途径是什么?
提前谢谢。
发布于 2016-05-10 08:10:11
( 1)如何取回来源?
bitbake -ccleansstate <package_name>
bitbake <package_name>这将确保bitbake不会使用共享状态,并且必须在第二个命令期间实际执行所有任务(包括解包和修补程序,后者将填充$WORKDIR目录中的源代码)。
( 2)修改后重建资源的安全途径是什么?
如果您想以快速的方式修改$WORKDIR中的源代码,那么
bitbake -f -ccompile <package_name>
bitbake <package_name>将编译任务标记为脏,当下一个命令生成配方时,从编译开始的所有任务都将被执行。注意,bitbake将警告您在执行cleansstate之前的脏状态,并且cleansstate将在更改的同时删除$WORKDIR :因此,这只对快速测试很有用。
如果您正在寻找一种方法来进行更多的开发,并且仍然在开发的同时使用yocto/OE构建快速测试一些东西,那么请看一看发展工具。我期望第4.3.1.2部分。(使用devtool修改来启用与现有菜谱相关的代码工作)可能与您相关。
发布于 2017-06-16 07:17:42
bitbake -c cleansstate <package name>不会删除源,因此do_fetch内容将保持原样。下一次
bitbake <package name>因此,do_fetch将不再执行下一次,而是执行其余的。例如do_patch、do_metadata、do_compile等。如果您想尝试在源级别进行一些更改,也可以尝试
bitbake <package name> -c devshell我发现devshell是一种方便的方法,可以尝试一些源代码或包内级别的更改和试用。它确实在包位置打开了一个新的shell。在这里您可以在本地提供命令。就像make一样简单。
发布于 2016-05-10 12:04:25
除了伟大的jku的回答:
加1)我怎样才能拿回资料来源?
您只需获取源代码,就不会执行其他任务:
bitbake -c fetch -f <package_name>一般通过:
bitbake -c clean <package_name>或使用武力选择:
bitbake -c clean -f <package_name>您已经从负责此包的配方中触发了任务do_clean。通过检查任务代码(直接在菜谱中或在继承的菜谱中),到底要做什么。同样,在同一个目录中,构建/tmp/work/您可以为每个已执行的任务找到一个/temp/和日志。例如: log.do_fetch将包含此特定包的任务do_fetch()的输出。
https://stackoverflow.com/questions/37131950
复制相似问题