用于构建Linux内核的轻量级封装
项目描述
TuxMake,由Linaro提供,是一个命令行工具和Python库,它为各种架构、工具链、内核配置和make目标提供了可移植和可重复的Linux内核构建。TuxMake是TuxSuite的一部分,TuxSuite是一套工具和服务,有助于Linux内核开发。
[[目录]]
关于TuxMake
构建Linux很容易,对吧?你只需要运行“make defconfig; make”!
当你想要支持以下组合时,事情会变得复杂
- 架构(arc、arm、arm64、i386、mips、parisc、powerpc、riscv、s390、sh、sparc、x86_64等)
- 工具链(gcc-8、gcc-9、gcc-10、clang-10、clang-11、clang-nightly等)
- 配置(defconfig、distro configs、allmodconfigs、randconfig等)
- 目标(内核镜像、文档、自检、性能、cpupower等)
- 构建时验证(coccinelle、sparse checker等)
每个项目都需要特定的配置,支持所有组合都很困难。TuxMake通过为上述列出的每个组合提供一致的命令行界面,旨在简化Linux内核的构建。您可以在命令行中指定要构建的内容,TuxMake将为您驱动构建,每次都以相同的方式执行相同的步骤。
真正的力量来自于使用TuxMake精心挑选的、可移植的构建环境,这些环境作为Docker/Podman容器镜像分发。当使用这些经过版本化和密封的文件系统镜像时,您的团队可以在不同的工作站平台上使用完全相同的工具链。通过与他人共享TuxMake命令行,报告和重现构建失败变得非常简单。
安装TuxMake
安装TuxMake有多种选择
使用TuxMake
要使用TuxMake,请导航到Linux源树(您通常在那里运行make
),并运行tuxmake
。默认情况下,它将在您的本地架构上执行defconfig构建,使用默认编译器(gcc
)。
可以使用命令行参数修改构建的行为。运行tuxmake --help
以查看所有命令行参数。
示例
从当前目录构建
$ tuxmake
使用Podman构建
$ tuxmake --runtime podman
从特定目录构建
$ tuxmake --directory /path/to/linux
构建arm64内核
$ tuxmake --target-arch=arm64
使用gcc-10构建arm64内核
$ tuxmake --target-arch=arm64 --toolchain=gcc-10
使用clang-10构建arm64内核
$ tuxmake --target-arch=arm64 --toolchain=clang-10
使用gcc-9在arm64上构建tinyconfig
$ tuxmake -a arm64 -t gcc-9 -k tinyconfig
使用文件中的附加配置构建defconfig
$ tuxmake --kconfig-add /path/to/my.config
使用URL中的附加配置构建defconfig
$ tuxmake --kconfig-add https://foo.com/my.config
使用树内附加配置构建defconfig
$ tuxmake --kconfig-add kvm_guest.config
使用内联附加配置构建defconfig
$ tuxmake --kconfig-add CONFIG_KVM_GUEST=y
使用docker在arm64上构建gcc-9的tinyconfig
$ tuxmake -r docker -a arm64 -t gcc-9 -k tinyconfig
使用podman在arm64上构建DTBs
$ tuxmake -r podman -a arm64 -t gcc-9 dtbs
可以通过重用构建目录来执行增量构建
$ tuxmake --build-dir=/path/to/output
# hack on source ...
$ tuxmake --build-dir=/path/to/output
# only rebuilds what is needed
使用配置文件
# reads command line options from ~/.config/tuxmake/myconfig
$ tuxmake @myconfig
# reads command line options from /tmp/myconfig
$ tuxmake @/tmp/myconfig
显示所有选项
$ tuxmake --help
为TuxMake做出贡献
有关如何为TuxMake做出贡献的详细信息,请参阅贡献指南文档。贡献者应遵循TuxMake行为准则(与Linux内核社区采用的行为准则相同)。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定该选择哪个,请了解有关 安装包 的更多信息。