Debian GNU/Linux

The tinyrocs operating system (OS) is based on Debian GNU/Linux.


Debian stable (bookworm/12) is the base installation.


Do a minimal Debian server installation, no GUI, just ssh.


Install dependencies from Debian repositories.

# Debian Repositories /etc/apt/sources.list
deb bookworm main
deb bookworm-security main
deb bookworm-updates main
deb bookworm-backports main

# Use IPv4 for apt
echo 'Acquire::ForceIPv4 "true";' | tee /etc/apt/apt.conf.d/99force-ipv4

# Install dependencies
apt update
apt install bc bison build-essential ccache cmake-curses-gui colordiff \
  cpufrequtils devscripts dpkg-dev equivs flex gfortran git haveged host \
  libbz2-dev libdrm-dev libedit-dev libegl1-mesa-dev libelf-dev libffi-dev \
  libglut-dev libhdf5-openmpi-dev liblzma-dev libncurses-dev libnuma-dev \
  libopenmpi-dev libpomp2-dev libsqlite3-dev libssl-dev libsystemd-dev \
  libudev-dev libxml2-dev libxml2-utils libz3-dev libzstd-dev lshw \
  lzma-dev mesa-common-dev net-tools ninja-build nlohmann-json3-dev \
  ntpsec-ntpdate nvme-cli ocl-icd-opencl-dev openmpi-bin pahole pkg-config \
  portaudio19-dev python3-argcomplete python3-pip python3-pygments \
  python3-venv python3-virtualenv python3-yaml quilt rsync rsyslog sshfs \
  sudo swig traceroute vim xxd python3-sphinx git-lfs hwdata \
  lua5.3 liblua5.3-dev libmpfr-dev libmsgpack-dev libfmt-dev \
  environment-modules python3-numpy pybind11-dev libopengl-dev zip zsh \
  hpcc gawk googletest libdw-dev libgtest-dev libsigsegv2 \
  libbabeltrace-dev libbabeltrace1 libbison-dev libncurses5-dev \
  libtext-unidecode-perl tex-common texinfo ucx-utils libucx-dev \

apt install -t bookworm-backports linux-cpupower

# Packages like this aren't used from Debian's repository.
# Make sure they are gone.
apt purge --autoremove firmware-amd-graphics libhsa-runtime64-1 \
  opencl-c-headers rocminfo

apt clean

OS Configuration

Operating system configuration.

# Lazy sudo
sed -i -e 's/%sudo\tALL=(ALL:ALL) ALL/%sudo ALL=(ALL) NOPASSWD: ALL/g' /etc/sudoers

# Add user to some groups (user name debian here):
adduser debian sudo
adduser debian render

# Disable various startup packages
systemctl disable XXX

User Configuration

Set up the user account. Configure to use various caching services already available in the cluster.


There is a redis ccache server on the tinyrocs network. Edit ~/.config/ccache/ccache.conf thusly:

remote_storage = redis://
remote_only = true
reshare = true


Add the ROCm binary path and ccache (XXX) to ~/.bashrc:


Python pip cache

Set up to use LAN pip cache pydev if available, by editing ~/.config/pip/pip.conf, such as:

trusted-host =
index-url =

index =

Monitoring and Control

Applications to monitor and control the hardware.

Most require dependenices built first.


nvtop is nice to quickly visualize the GPUs in a text console.

Something like:

git clone
cd nvtop
mkdir build
cd build
ccmake ..
# Disable other GPUs, enable AMD



git clone
cd btop/
rm -rf build
cmake -B build -G Ninja \

ninja -C build