Yocto理论基础之定制镜像

发布于:2024-04-04 ⋅ 阅读:(93) ⋅ 点赞:(0)

一、使用local.conf定制

最简单的方式就是通过conf/local.conf文件来定制image的组件,比如:

IMAGE_INSTALL:append = " strace"

注意名字前面的空格是必须的!推荐使用append而不是+=来添加组件。
这个方式添加的组件会在编译所用image时都生效,如果你只想特定的image添加功能组件可以这么写:

IMAGE_INSTALL:append:pn-core-image-minimal = " strace"

这样只有在编译core-image-minimal 的时候才会添加strace组件到image中。

二、 使用IMAGE_FEATURES 和 EXTRA_IMAGE_FEATURES定制

另外一种定制image的方法就是通过IMAGE_FEATURES 和EXTRA_IMAGE_FEATURES这两个变量来定制系统,这两个变量作用几乎相同,但是惯例我们通常在recipes中使用IMAGE_FEATURES,而在local.conf中使用EXTRA_IMAGE_FEATURES。
通常一个feature会关联一系列package groups,常见的feature可以查看meta/classes-recipe/image.bbclass文件。比如常用的“debug-tweaks”feature就是一系列调试工具的合集。

三、通过Custom .bb文件定制

你也可以通过定义一个image的bb文件来实现系统定制,这时候通常需要继承core-image,然后添加自己定义的组件包:

inherit core-image

IMAGE_INSTALL = "packagegroup-core-x11-base package1 package2"

如果追加组件包可以使用+=:

IMAGE_INSTALL += "strace"

四、定制包组packagegroups

对于相对复杂的组件包来说可能很多个组件形成一个逻辑功能组,比如qt的组件包有很多,我们就可以根据自己的需求选择需要哪些组件,然后放到一个包组给我们的image bb文件调用,常见的包组格式如下:

DESCRIPTION = "My Custom Package Groups"

inherit packagegroup

PACKAGES = "\
    ${PN}-apps \
    ${PN}-tools \
    "

RDEPENDS:${PN}-apps = "\
    dropbear \
    portmap \
    psplash"

RDEPENDS:${PN}-tools = "\
    oprofile \
    oprofileui-server \
    lttng-tools"

RRECOMMENDS:${PN}-tools = "\
    kernel-module-oprofile"

五、定制系统名hostname

通常情况下linux的系统名和MACHINE 的变量名一致,如果希望自定义系统名可以设置如下变量:

hostname = "myhostname"

网站公告

今日签到

点亮在社区的每一天
去签到