Skip to main content
TuxSuite Logo

Pipeline Status coverage report PyPI version Docker Pulls Code style: black PyPI - License

Documentation - Repository - Issues

TuxSuite, by Linaro, is a suite of tools and services to help with Linux kernel development. The TuxSuite CLI (this repo) is the supported interface to TuxBuild and TuxTest.

tuxsuite screencast

To request access, email us at tuxsuite@linaro.org or fill out our access request form.

[[TOC]]

Introduction

The TuxSuite CLI supports two services: TuxBuild and TuxTest.

TuxBuild

TuxBuild Logo

TuxBuild is an on demand API for building massive quantities of Linux kernels in parallel. It is used at scale in production by LKFT and ClangBuiltLinux as well as many individual Linux kernel engineers.

TuxBuild is accessed by running tuxsuite build and tuxsuite build-set.

TuxTest

TuxTest Logo

TuxTest is an on demand API for testing Linux kernels reliably and quickly. It is currently in Alpha phase and will soon be available to TuxBuild users.

Install and Configure

Install using pip

TuxSuite requires Python version 3.6 or greater, and is available using pip.

To install tuxsuite on your system globally:

sudo pip3 install -U tuxsuite

To install tuxsuite to your home directory at ~/.local/bin:

pip3 install -U --user tuxsuite

To upgrade tuxsuite to the latest version, run the same command you ran to install it.

Install using docker

tuxsuite is also available as a docker container at tuxsuite/tuxsuite.

For example, to run tuxsuite via docker:

docker run tuxsuite/tuxsuite tuxsuite build --help

Setup Config

The Authentication token needs to be stored in ~/.config/tuxsuite/config.ini. The minimal format of the ini file is given below:

$ cat ~/.config/tuxsuite/config.ini
[default]
token=vXXXXXXXYYYYYYYYYZZZZZZZZZZZZZZZZZZZg

Alternatively, the TUXSUITE_TOKEN environment variable may be provided.

If you do not have a tuxsuite token, please reach out to us at tuxsuite@linaro.org.

Examples

tuxsuite build

Submit a build request using the tuxsuite command line interface. This will wait for the build to complete before returning by default.

tuxsuite build --git-repo 'https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git' --git-ref master --target-arch arm64 --kconfig defconfig --toolchain gcc-9

tuxsuite build-set

Create a tuxsuite config file with a basic set of build combinations defined.

cat <<EOF > basic.yaml
sets:
  - name: basic
    builds:
      - {target_arch: arm,    toolchain: gcc-9,    kconfig: multi_v7_defconfig}
      - {target_arch: arm,    toolchain: gcc-10,   kconfig: multi_v7_defconfig}
      - {target_arch: arm,    toolchain: clang-10, kconfig: multi_v7_defconfig}
      - {target_arch: arm64,  toolchain: gcc-9,    kconfig: defconfig}
      - {target_arch: arm64,  toolchain: gcc-10,   kconfig: defconfig}
      - {target_arch: arm64,  toolchain: clang-10, kconfig: defconfig}
      - {target_arch: i386,   toolchain: gcc-9,    kconfig: defconfig}
      - {target_arch: i386,   toolchain: gcc-10,   kconfig: defconfig}
      - {target_arch: x86_64, toolchain: gcc-9,    kconfig: defconfig}
      - {target_arch: x86_64, toolchain: gcc-10,   kconfig: defconfig}
      - {target_arch: x86_64, toolchain: clang-10, kconfig: defconfig}
      - {target_arch: arc,    toolchain: gcc-10,   kconfig: hsdk_defconfig}
      - {target_arch: riscv,  toolchain: gcc-10,   kconfig: defconfig}
      - {target_arch: mips,   toolchain: gcc-10,   kconfig: ci20_defconfig}
EOF
# Build the build set defined in the config file named 'basic.yaml'
tuxsuite build-set --git-repo 'https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git' --git-ref master --tux-config basic.yaml --set-name basic

All the parameters can be specified in the build-set itself and invoke tuxsuite "tuxsuite build-set --tux-config <basic>.yaml --set-name <set-name>"

Projects and Developers using tuxsuite

  • LKFT - Linaro's Linux Kernel Functional Testing uses tuxsuite with gitlab-ci to continuously build upstream Linux kernels. The kernels are then functionally tested on a variety of hardware using LAVA.
  • ClangBuiltLinux uses TuxBuild to validate hundreds of combinations of Linux kernels and LLVM environments.
  • Lee Jones uses a GitLab CI pipeline to validate his 3.18 kernel maintainership. The gitlab pipeline, tuxsuite config, and README.md documenting its setup are defined in the kernel-pipeline repository.

Community and Support

The TuxSuite team may be engaged through chat, email, or gitlab issues.

To chat with us, join our public Discord, or our IRC channels #tuxsuite and #tuxmake on freenode.net.

Questions, comments or feedback are always welcome by private email at tuxsuite@linaro.org.

Finally, gitlab issues are used to track bugs and feature requests in both tuxsuite and tuxmake projects.

Release files for tuxsuite 0.23.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tuxsuite 0.23.0
File Size Uploaded
tuxsuite-0.23.0.tar.gz 105.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tuxsuite 0.23.0
File Interpreter ABI Platform
tuxsuite-0.23.0-py3-none-any.whl Python 3 none any Details

Total release size: 143.1 kB

Release files / tuxsuite-0.23.0.tar.gz

Download URL tuxsuite-0.23.0.tar.gz
Size 105.1 kB
Tags Source
SHA-256 checksum
How to use checksums
0b507c685f52b92936705c637b6f8402f74d0a283bf733643e9a22898398fceb
BLAKE2b-256 checksum
How to use checksums
1a8673cf009054783d27984768f52b1a503fdfb8312d2c7dcdb3325c52fab463
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.10

Release files / tuxsuite-0.23.0-py3-none-any.whl

Download URL tuxsuite-0.23.0-py3-none-any.whl
Size 37.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ca59e181f3e14ea80e1633afa96928f10fc9fafe95140f2075ffb59d1469229a
BLAKE2b-256 checksum
How to use checksums
4a4c3f6520cb2b38addc0e65f84e8ccc5b8460dcb5d391819747b8823d1836ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.10

Release history Release notifications | RSS feed

1.46.0

2 release files

1.45.3

2 release files

1.45.1

2 release files

1.44.5

2 release files

1.44.4

2 release files

1.44.3

2 release files

1.44.2

2 release files

1.44.1

2 release files

1.44.0

2 release files

1.43.0

2 release files

1.42.2

2 release files

1.42.1

2 release files

1.42.0

2 release files

1.41.4

2 release files

1.41.2

2 release files

1.41.1

2 release files

1.41.0

2 release files

1.40.1

2 release files

1.40.0

2 release files

1.38.2

2 release files

1.38.1

2 release files

1.37.2

2 release files

1.36.0

2 release files

1.35.2

2 release files

1.35.1

2 release files

1.35.0

2 release files

1.34.0

2 release files

1.30.0

2 release files

1.29.0

2 release files

1.27.2

2 release files

1.27.1

2 release files

1.27.0

2 release files

1.25.1

2 release files

1.24.1

2 release files

1.24.0

2 release files

1.23.0

2 release files

1.22.1

2 release files

1.22.0

2 release files

1.21.0

2 release files

1.20.0

2 release files

1.19.0

2 release files

1.17.0

2 release files

1.16.0

2 release files

1.15.1

2 release files

1.15.0

2 release files

1.14.0

2 release files

1.13.0

2 release files

1.12.0

2 release files

1.11.2

2 release files

1.9.0

2 release files

1.8.0

2 release files

1.7.4

2 release files

1.7.3

2 release files

1.7.2

2 release files

1.7.1

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.50.2

2 release files

0.50.1

2 release files

0.50.0

2 release files

0.48.1

2 release files

0.48.0

2 release files

0.47.0

2 release files

0.46.1

2 release files

0.46.0

2 release files

0.45.0

2 release files

0.44.0

2 release files

0.43.9

2 release files

0.43.8

2 release files

0.43.7

2 release files

0.43.6

2 release files

0.43.3

2 release files

0.43.2

2 release files

0.43.0

2 release files

0.42.2

2 release files

0.42.1

2 release files

0.42.0

2 release files

0.41.1

2 release files

0.40.2

2 release files

0.40.1

2 release files

0.40.0

2 release files

0.39.0

2 release files

0.38.4

2 release files

0.38.3

2 release files

0.38.2

2 release files

0.38.1

2 release files

0.38.0

2 release files

0.35.0

2 release files

0.34.3

2 release files

0.34.2

2 release files

0.33.0

2 release files

0.32.0

2 release files

0.25.0

2 release files

This release

0.23.0 This release

2 release files

0.21.0

2 release files

0.20.0

2 release files

0.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page