Skip to content

Instantly share code, notes, and snippets.

@omac777
Last active December 4, 2025 13:07
Show Gist options
  • Select an option

  • Save omac777/b7d2af50fc82f0764221d9533cab702f to your computer and use it in GitHub Desktop.

Select an option

Save omac777/b7d2af50fc82f0764221d9533cab702f to your computer and use it in GitHub Desktop.
my ferrocene usage notes for fedora 43 x86_64
toolbox enter fedora-toolbox-43
time git clone https://github.com/ferrocene/ferrocene.git
cd ferrocene/
time git submodule update --init --recursive
sudo dnf install clang llvm @development-tools
sudo dnf install cmake
sudo dnf install ninja
sudo dnf install clang llvm cmake ninja-build gcc gcc-c++ make pkg-config python3-devel
###sudo dnf install glibc-static libgcc-static
sudo dnf install glibc-static
uv python install 3.13
uv python pin 3.13
###uv sync --project /var/home/cissy/ferrocene/ferrocene/doc --locked
time ./configure
time uv run python3 x.py build --stage 2
export PATH="/var/home/cissy/ferrocene/build/x86_64-unknown-linux-gnu/stage2/bin:$PATH"
export PATH="/var/home/cissy/ferrocene/build/x86_64-unknown-linux-gnu/stage2-tools-bin:$PATH"
time uv run python3 x.py build ferrocene/tools
time uv run python3 x.py test
time uv run python3 x.py run update-certified-core-symbols
time curl --proto '=https' --tlsv1.2 -LsSf https://github.com/ferrocene/criticalup/releases/latest/download/criticalup-installer.sh | sh
###time uv run python3 x.py build ferrocene/self-test
###time ./build/x86_64-unknown-linux-gnu/stage2/bin/cargo build --manifest-path ferrocene/self-test/Cargo.toml
###time uv run ./x.py build ferrocene/tools/self-test
###time uv run ./x.py run ferrocene/tools/self-test
# Run the self-test suite (this compiles and runs the tests)
uv run ./x.py test ferrocene/tools/self-test
###uv run ./x.py test src/test/ui/hello.rs
uv run ./x.py test tests/ui
uv run ./x.py test tests/ui --test-args hello-world
uv run ./x.py test compiler
###uv run ./x.py test ferrocene/tools/self-test
time uv run python3 x.py run --help --verbose
uv run ./x.py run ferrocene/tools/traceability-matrix
# 1. Build your firmware with Ferrocene
/path/to/ferrocene/stage2/bin/cargo build --release
# 2. Generate symbol report (for traceability)
symbol-report --input target/release/my-firmware --output my-firmware.symbols.json
# 3. Create update package
criticalup create \
--binary target/release/my-firmware \
--symbols my-firmware.symbols.json \
--version 1.2.3 \
--output my-firmware.update
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment