跳转到主要内容

构建OpenEmbedded和Yocto镜像的命令行工具

项目描述

TuxBake,由Linaro提供,是一个命令行工具和Python库,提供可移植和可重复的OE构建。TuxBake是TuxSuite的一部分,TuxSuite是一套工具和服务,旨在帮助开发者构建和启动测试Linux内核和OE发行版。

[[目录]]

关于TuxBake

TuxBake是一个用于构建OE发行版的Python应用程序。它接受一个json文件作为输入,该文件描述了需要下载的层、local_conf和bblayers_conf参数以及机器、发行版目标。它使用git协议或repo工具下载层。它使用容器(Docker和Podman)提供一个标准化的构建环境,以便其他用户可以轻松复制构建过程。

安装Tuxbake

安装TuxBake(TuxMake是前提条件)有几种选项

pip3 install tuxmake
git clone https://gitlab.com/Linaro/tuxbake
cd tuxbake/
pip3 install .

所需工具

需要在主机系统上安装的工具包括

docker or podman, git, repo

带有repo的build-definition.json模板

{
  "container": "ubuntu-20.04",
  "distro": "rpb",
  "envsetup": "setup-environment",
  "machine": "dragonboard-845c",
  "extraconfigs": [],
  "sources": {
    "repo": {
      "branch": "qcom/dunfell",
      "manifest": "default.xml",
      "url": "https://github.com/96boards/oe-rpb-manifest.git"
    }
  },
  "target": "rpb-console-image rpb-console-image-test rpb-desktop-image rpb-desktop-image-test"
}

带有git仓库的build-definition.json模板

{
  "sources": {
    "git_trees": [
      {
        "url": "http://git.yoctoproject.org/git/poky",
        "branch": "honister"
      },
      {
        "url": "https://github.com/ndechesne/meta-qcom",
        "branch": "honister"
      }
    ]
  },
  "container": "ubuntu-20.04",
  "envsetup": "poky/oe-init-build-env",
  "extraconfigs": [],
  "distro": "poky",
  "machine": "dragonboard-845c",
  "target": "core-image-minimal",
  "bblayers_conf": [
  "BBLAYERS += \"../meta-qcom/\""
  ],
    "environment": {
  }

build-defintion.json的字段

来源

来源是一个包含单个条目的字典。它可以是git_trees或repo。

git_trees

git_trees 是一个字典对象列表。每个字典对象将包含 "url" 字段和以下之一 "branch","ref" 或 "sha" 字段。如果指定 "ref" 字段,则其格式可以是以下之一

"ref": "refs/pull/number/head" "ref": "refs/pull/number/merge" "ref": "refs/tags/tag"

注意:"number" 是拉取请求的编号。在 Gitlab 的合并请求中,只需将 "pull" 更改为 "merge-requests"。

repo

repo 字段是一个字典对象。该字典应包含 "branch","manifest" 和 "url" 字段,这些字段描述了存储清单的位置以及构建时使用的分支和清单文件。

distro

这是传递给 OE 构建的 distro 变量。

dl_dir

这应该是传递给 OE 构建的下载目录的绝对路径。注意:在路径中指定 'dl_dir' 字符串包含 '~/' 或 '$HOME' 将无法正常工作。

sstate_dir

这应该是传递给 OE 构建的 sstate-cache 目录的绝对路径。注意:在路径中指定 'sstate_dir' 字符串包含 '~/' 或 '$HOME' 将无法正常工作。

sstate_mirror

这应该以 'file:///some/local/dir/sstate/PATH' 和/或 'https://someserver.tld/share/sstate/PATH;downloadfilename=PATH' 开头,是传递给 OE 构建的 sstate-cache 目录。

envsetup

这是相对于源目录的脚本路径,需要运行以设置 bitbake 构建环境。

extraconfigs

这是一个字符串列表,每个条目对应在构建目标时使用的额外配置。

machine

这是传递给 OE 构建的 machine 变量。

target

这是传递给 bitbake 命令的目标。

container

这是 Docker 或 Podman 用于构建的容器。我们目前支持 ubuntu-16.04,ubuntu-18.04,ubuntu-20.04,ubuntu-22.04,centos-8,debian-bullseye,debian-buster,debian-stretch,fedora-33,fedora-34,opensuse-leap-15.1,opensuse-leap-15.2

local_conf

这是一个字符串列表,每个条目对应于 local.conf 文件中的一行。字符串列表被转换为 local.conf 文件。

bblayers_conf

这是一个字符串列表,每个条目对应于 bblayers.conf 文件中的一行。字符串列表被转换为 bblayers.conf 文件。

environment

这是一个在调用 bitbake 之前设置的环镜变量字典。

使用 TuxBake

TuxBake 以构建定义作为输入,同时包含下载代码的源目录路径。

示例

构建 OE 示例

$ tuxbake --build-definition examples/oe-rpb.json --src-dir $PWD/oe/

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分发

tuxbake-0.7.0.tar.gz (73.3 kB 查看哈希)

上传

构建分发

tuxbake-0.7.0-py3-none-any.whl (19.2 kB 查看哈希值)

上传时间 Python 3

由以下支持