Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Intended Audience

Community

Bugs and Feature Requests

Bugs and feature requests should be submitted to the dedicated distribution bugtracker on GitHub.

Discussions

Long-form discussions about project direction and large changes takes place on GitHub Discussions.

Social Media

Project updates are also published on social media, if that’s your preferred way of keeping up. Here’s a list of TeamSBC’s official media accounts.

Introduction

Thank you for your interest in TeamSBC. In this chapter we will go over what TeamSBC is and how it is structured.

You can read this chapter to learn:

  • What TeamSBC is.
  • How TeamSBC relates to Fedora.
  • The history of TeamSBC.
  • The goals of TeamSBC.
  • Where the name TeamSBC comes from.

What is TeamSBC?

TeamSBC is a Linux distribution.

Relation to Fedora

TeamSBC is a Fedora Remix. This means that it takes its packages from Fedora but then layers its own on top. TeamSBC makes its own decisions on service configuration, what services are used for what, and what should be installed on a system.

Differences with Fedora

If you are a Fedora user or have used it previously then it’s useful to know what the differences are.

systemd

TeamSBC prefers to use systemd functionality when possible. This leads to a smaller and more integrated system.

systemd-homed

Fedora doesn’t use systemd-homed by default. TeamSBC has it set up and prefers to use it whenever possible to manage local users. See managing users for more information on how to use systemd-homed.

systemd-networkd

Fedora uses NetworkManager to manage networks, TeamSBC uses systemd-networkd. See managing networks how this works.

sudo

TeamSBC does not include sudo by default instead it uses run0.

History of TeamSBC

Goals of TeamSBC

What does the name mean?

Variants

TeamSBC ships in variants. Variants allow for people to pick the flavour they prefer for maintaining their devices. Currently TeamSBC ships two variants. Standard, and Legacy. However, we keep room for more in the future.

Standard

The standard variant is package-based. This is probably the type of setup that you are most familiar with if you’ve previously used any of the traditional Linux distributions.

Legacy

An adjusted standard variant that uses DOS-partitioned disk images. This means that some of the capabilities of the standard variant are unavailable. Otherwise it contains the same packages and configuration as standard.

Installation

TeamSBC builds and provides specific disk images that are optimized for specific devices. Disk images are provided for each variant. Before starting any installation pick the variant you want to use and familiarize yourself with its concepts.

Installation on single board computers involves downloading the appropriate image for the device you have and then copying the disk image onto its storage. Usually a micro SD card.

Installation Steps

Installation steps are the same for all TeamSBC variants.

  1. Find the image for your device in the supported devices list and download it on your system.

When testing out in a virtual machine; point your preferred virtual machine manager at the disk image and run, otherwise continue on.

microSD

Most Single Board Computers have some form of external storage, commonly a microSD card. Put a microSD card into a card reader attached to your computer. After this you can write the downloaded image directly onto the microSD card. This method applies to most Single Board Computers that have microSD storage.

  1. Find the device for your microSD card (let’s say it’s /dev/sde).
  2. Unpack the image, unxz teamsbc-44-standard-rpi4.raw.xz.

If you wish this is the time to perform offline provisioning on the disk image.

  1. Write the image onto the microSD card, dd if=teamsbc-44-standard-rpi4.raw of=/dev/sde progress=verbose.

After the image has been written to your microSD card you can unmount your card and plug it into your device to boot from.

Supported Devices

Find the device you want to run TeamSBC on in the following list. If your device is not listed that means we don’t produce images for it. You might want to file a request to see if it can be a supported device in the future.

Virtual Machine

To run TeamSBC on virtual machines we provide the virt image type for the standard variant. You can download the latest built images from the following URLs:

Stable

x86_64
aarch64

Experimental

x86_64
aarch64

Single Board Computers

Raspberry Pi Zero 2 W

To run TeamSBC on the Raspberry Pi Zero 2 W we provide the rpi02w image type for the legacy variant. You can download the latest built images from the following URLs.

Stable

aarch64

Experimental

aarch64

Raspberry Pi 3

To run TeamSBC on the Raspberry Pi 3 we provide the rpi3 image type for the legacy variant. You can download the latest built images from the following URLs.

Stable

aarch64

Experimental

aarch64

Raspberry Pi 4

To run TeamSBC on the Raspberry Pi 4 we provide the rpi4 image type for the standard variant. You can download the latest built images from the following URLs.

Stable

aarch64

Experimental

aarch64

Provisioning

Basics

Updating

Installing Applications

Users

You are able to manage users in more traditional ways through the shadow-utils provided tooling (useradd, passwd, etc) but TeamSBC intends for you to manage users through systemd-homed.

The preferred way in TeamSBC to manage local users is by using systemd-homed. This allows for portable, encrypted home directories for each user which get unlocked on user login. TeamSBC is configured to allow local and remote logins to systemd-homed managed users by default.

Managing Users

Adding a user

$ homectl create $username
# pick a password

Removing a user

Removing users is a destructive action. Their home area will be destroyed and thus all data in there will be gone forever. Think twice if this is what you want and consider making a backup of the relevant home area.

If you are certain you want to remove the user you can use the following command. There is no confirmation prompt, the user will be gone immediately.

$ homectl remove $username

Inspecting a user

$ homectl inspect $username

Networking

Build Your Own

Packages

Artifacts

Infrastructure

Domains

TeamSBC largely uses two separate domains to serve content.

teamsbc.org (and its subdomains) are used to serve text content such as the homepage and documentation. teamsbc.net is used to serve binary data such as our artifacts, packages, and other large files.

Build System

Testing