SeedSigner OS | Minimal Raspberry Pi image made for SeedSigner
  • Shell 88.4%
  • Makefile 9.2%
  • Python 1.7%
  • Dockerfile 0.4%
  • Batchfile 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
3rd Iteration 932fe45bf9
Fix mtools partition syntax in post-image scripts (#107)
* Fix mtools partition syntax in post-image scripts

The ::1 suffix is not a valid partition specifier for mtools; it's
interpreted as a drive letter mapping (C:), causing mmd to fail with
exit code 2. Remove the ::1 so mtools auto-detects the first MBR
partition on seedsigner_os.img.

* Use :p1 partition syntax for mtools instead of bare image

* Fix mtools: use @@offset syntax with dynamic MBR partition read

The :p1 suffix is not valid mtools command-line syntax. The correct
approach is to read the partition 1 start sector from the MBR (byte
454, little-endian uint32) and pass it as @@OFFSET to mtools' -i flag.

Also adds tests/test_post_image_mtools.sh which creates a synthetic
MBR+FAT32 disk image and validates all 5 post-image scripts against it.

* Add AGENTS.md with build and testing guidelines
2026-06-16 09:42:55 -04:00
.devcontainer removing unnecessary comments from dev container 2023-08-25 20:20:32 +00:00
.github/workflows Add separate seedsigner and seedsigner-os release tag inputs to build workflow (#95) 2026-03-11 20:15:21 -04:00
docs Load authorized_keys from microSD, replacing built-in default (#90) 2026-02-28 19:11:57 -05:00
images pi0 and pi02w working 2022-11-08 15:40:38 -05:00
opt Fix mtools partition syntax in post-image scripts (#107) 2026-06-16 09:42:55 -04:00
tests Fix mtools partition syntax in post-image scripts (#107) 2026-06-16 09:42:55 -04:00
.gitignore Align keycard-py Buildroot patch with flit_core 3.10.1 (#98) 2026-06-08 11:13:05 -04:00
.gitmodules - Update buildroot submodule to pull from seedsigner controlled fork 2023-07-11 16:30:15 -04:00
AGENTS.md Fix mtools partition syntax in post-image scripts (#107) 2026-06-16 09:42:55 -04:00
docker-compose.yml Remove obsolete docker compose version 2025-04-15 20:29:25 -04:00
Dockerfile Enable pgpy, pyasn1 for BIP85 GPG + buildroot update fixes (#40) 2025-09-02 09:59:18 -04:00
LICENSE.md License added 2022-05-31 20:39:19 +00:00
README.md Update README.md 2023-12-18 08:40:41 +02:00
temp.cap Add PyGP buildroot package and keycard applet to smartcard profiles (#103) 2026-06-12 06:46:54 -04:00

Gitea

SeedSigner OS


JUMP STRAIGHT TO: 🔥🔥🔥🛠 Quickstart: SeedSigner Reproducible Build! 🛠🔥🔥🔥



Overview

A custom linux based operating system built to manage software running on airgapped Bitcoin signing device. SeedSigner is both the project name and application running on airgapped hardware. This custom operating system, like all operating systems, manages the hardware resources and provides them to the application code. It's currently designed to run on common Raspberry Pi hardware with accessories. The goal of SeedSigner OS is to provide an easy, fast, and secure way to build microSD card image to securely run SeedSigner code.

⚙️ Under the Hood

SeedSigner OS is built using Buildroot. Buildroot is a simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation. SeedSigner OS does not fork Buildroot, but uses Buildroot with custom configurations to build microSD card images tailor made for running SeedSigner.

🛂 Security

SeedSigner OS is built to reduce the attack surface area and enable additional application functionality. The OS is an order of magnitude smaller in size than Raspberry Pi OS (which is what typically is used to run software on a Pi device). Here are a list of some security and functional advantages of using SeedSigner OS.

  • Boots 100% from RAM. This means, once you see the SeedSigner splash screen, you can remove the microSD card because no disk I/O is needed after boot!
  • One FAT32 partition on the microSD card
  • Removes these standard Raspberry Pi OS Kernel modules:
    • Networking and Bluetooth
    • SWAP
    • I2C
    • Serial
    • USB
    • Pulse-Width Modulation (PWM)
  • NO HDMI support
  • NO Serial connection TTL support
  • NO Software supporting any wireless or networking chips
  • A single read only zImage file on the boot partition containing the entire Linux kernel and filesystem