构建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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b38f60475e765ada391dd6388f60160402dec043e1977ccc7b590587faea5647 |
|
MD5 | 2caf712b9dc5ae9fc845ff8cded308e5 |
|
BLAKE2b-256 | 0e6aed837dd9d3c6936aace620e5f5b88cd2023cfaf6a8ae325bdf511e6a02af |
tuxbake-0.7.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 18f6306c0b1f8e24c70f983355534fb53a94822df658a72977bbbd9eb3cf358c |
|
MD5 | 0d989bffb8baf70e5609ab6f573e1aa5 |
|
BLAKE2b-256 | 03bda89242c8257350c40c41c634c2054dab2e8ab7299dcc7f425b0a958cc727 |