mirror of
https://github.com/librekeys/pico-fido-firmwares.git
synced 2026-03-18 15:00:21 +00:00
A custom build pico-fido firmware(s) with LibreKeys applied patches
Flake lock file updates:
• Updated input 'nixpkgs':
'github:NixOS/nixpkgs/aca4d95fce4914b3892661bcb80b8087293536c6?narHash=sha256-E1bxHxNKfDoQUuvriG71%2Bf%2Bs/NT0qWkImXsYZNFFfCs%3D' (2026-03-06)
→ 'github:NixOS/nixpkgs/c06b4ae3d6599a672a6210b7021d699c351eebda?narHash=sha256-wvfdLLWJ2I9oEpDd9PfMA8osfIZicoQ5MT1jIwNs9Tk%3D' (2026-03-13)
|
||
|---|---|---|
| .github/workflows | ||
| examples | ||
| lib | ||
| pkgs | ||
| .gitignore | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| README.md | ||
pico-fido-firmwares
A custom build pico-fido firmware(s) with LibreKeys applied patches
Build with Flakes
# Build a specific firmware
nix build .#pico-fido
nix build .#pico-fido2
nix build .#pico-openpgp
# Build all firmware variants (matrix build)
nix build .#pico-fido-firmwares
nix build .#pico-fido2-firmwares
nix build .#pico-openpgp-firmwares
For custom parameters, see the Non-Flakes section below (or modify flake.nix directly).
Build with Nix (Non-Flakes)
# Basic build (uses defaults)
nix-build -E 'with import <nixpkgs> {}; callPackage ./pkgs/pico-fido/default.nix {}'
nix-build -E 'with import <nixpkgs> {}; callPackage ./pkgs/pico-fido2/default.nix {}'
nix-build -E 'with import <nixpkgs> {}; callPackage ./pkgs/pico-openpgp/default.nix {}'
# Build matrix (all variants)
nix-build -E 'with import <nixpkgs> {}; callPackage ./pkgs/pico-firmwares/default.nix {}' -A pico-fido-firmwares
Custom Parameters
nix-build -E 'with import <nixpkgs> {}; callPackage ./pkgs/pico-fido/default.nix {
picoBoard = "waveshare_rp2350_one";
vidpid = "Yubikey5";
extraCmakeFlags = [ "-DPICO_DEBUG_INFO_IN_RELEASE=ON" ];
}'
Available Parameters
| Parameter | Default | Description |
|---|---|---|
picoBoard |
"pico" |
Target board (e.g., pico, pico2, waveshare_rp2350_one) |
vidpid |
"" |
VID/PID string (e.g., Yubikey5) |
usbVID |
"" |
USB Vendor ID (alternative to vidpid) |
usbPID |
"" |
USB Product ID (alternative to vidpid) |
enableEdDSA |
false |
Enable EdDSA support |
extraCmakeFlags |
[] |
Additional cmake flags |
secureBootPKey |
null |
Path to secure boot private key (NOT TESTED YET!) |
Note: vidpid and usbVID/usbPID cannot be used together.