Yocto如何产生这些的/ etc /限制文件(How Yocto generating these

2019-10-18 11:53发布

我一直在使用Yocto建立system.Now我想改变一个文件/ etc /极限/在我开始我的体型,但构建定制化的内核映像,当我试图找到这个文件的“极限”,找不到任何文件名的限制并谙编译后生成此文件。

我期待找到这个文件(编译前)在元目录中,就像一个名为“个人资料”的文件在某个地方有在狭小的目录。

现在的问题是如何建立yocto系统生成此文件/ etc / limits文件,在哪里可以找到构建之前这个文件

Answer 1:

我有checke两者丹尼分支(Yocto 1.3)和Dylan分支(Yocto 1.4)和在这两个这些版本,文件/ etc限制由阴影封装件产生/的。 所以我不知道为什么你说的那个文件编译后生成的。 一般情况下,当我需要找出一个文件从何而来,我搜索生成的二进制软件包。 在你的情况,建立核心影像基地后,我进行这个快速搜索:

$ cd tmp/deploy/rpm
$ find . -name '*.rpm' | while read A; do $RPM -qpl $A | grep etc/limits; \
if [ $? -eq 0 ]; then echo $A; fi; done
/etc/limits
./armv7a_vfp_neon/shadow-4.1.4.3-r13.armv7a_vfp_neon.rpm

这告诉我,限制文件所来自的影子包。 当执行bitbake的该软件包的do_install()任务,包自己的Makefile文件从包含在阴影包模板安装该文件。

有两种简单的方法来改变你的文件的根文件系统上这个文件的内容。 正确的方法是用自定义更改添加图层:创建影子包bbappend,使用SRC_URI =“文件://限制”加入自己的极限文件,并添加do_install_append()方法后安装自定义文件包装自己的安装方法。 有很多在狭小使用这种技术的例子。

另一种方法是使用一个后处理命令。

ROOTFS_POSTPROCESS_COMMAND += "use_my_limits_file; "

其中use_my_limits_file是一个简单的bash shell的功能安装自定义限制的文件。 见狭小的insserv.bbclass的结构使用ROOTFS_POSTPROCESS_COMMAND的例子。

希望这可以帮助。 快乐的黑客攻击!



文章来源: How Yocto generating these /etc/limits files