Custom SBC Images

Ready-to-flash
board images

Pre-configured Armbian and Linux images for Orange Pi, Raspberry Pi, and compatible boards. CKB node tooling, Nervos infrastructure, and embedded builder stack included out of the box.

🔧

First images coming soon

Getting the build formula right before publishing. First target: Orange Pi 3B with Waveshare 5" DSI display support — the board running our CKB node.

Images are GPG-signed and SHA256 verified. Same pipeline as the CKB chain snapshots.

📋 Image roadmap
🍊 Orange Pi 3B — CKB Node Building
Armbian Bookworm (kernel 6.1x) for OPi 3B. Pre-installed: CKB node v0.204+, dashboard, stratum proxy, auto-start services. Optional: Waveshare 5" DSI display.
RK3566 aarch64 CKB node Armbian
⬇ Download — coming soon
🍊 Orange Pi 5 / 5+ — CKB Node Planned
Same CKB node stack on RK3588S. Faster sync, more RAM headroom. Target: full node + Fiber network node pre-configured.
RK3588S aarch64 CKB node Fiber
⬇ Download — planned
🥧 Raspberry Pi 4/5 — CKB Node Planned
Raspberry Pi OS Lite (64-bit) base with CKB node, dashboard, and stratum proxy. The most accessible entry point for new node operators.
BCM2711/BCM2712 aarch64 CKB node RPi OS
⬇ Download — planned
🔶 Orange Pi 3B — Kiosk Display Planned
Armbian with Waveshare 5" DSI display driver baked in. Boots straight to a CKB stats kiosk or can be used as a general-purpose touchscreen terminal.
RK3566 DSI display Kiosk
⬇ Download — planned
⚡ How to flash
Windows users: Balena Etcher is the easiest path — no command line needed, handles compressed images automatically, verifies after writing.
1

Download the image

Click the Download button above. Save the .img.xz file somewhere you can find it — Desktop is fine. Do not extract it, Etcher reads compressed images directly.

2

Verify the download (recommended)

Open PowerShell and run:

Get-FileHash .\wyltek-opi3b-ckbnode-*.img.xz -Algorithm SHA256

Compare the hash shown against the .sha256 file linked on the download card. They must match exactly. If they don't, re-download.

3

Install Balena Etcher

Download from etcher.balena.io and run the installer. It's free, open source, and takes about 30 seconds to install.

4

Insert your SD card

Plug in your SD card or microSD via adapter. Use a card that's at least 16 GB. Class 10 / A1 or faster recommended — cheap slow cards will make the system painful to use.

5

Flash with Etcher

Open Etcher, then:

  1. Click Flash from file → select your .img.xz
  2. Click Select target → choose your SD card (double-check the size matches)
  3. Click Flash! — Windows may ask for admin permission, allow it
  4. Wait 3–10 minutes. Etcher shows progress and automatically verifies when done
6

Eject and boot

Etcher ejects automatically when done. Remove the SD card, insert it into your board, and power on. First boot takes 60–90 seconds while the filesystem expands — this is normal. SSH is enabled by default:

ssh root@<board-ip>

Find the IP in your router's DHCP table, or connect a monitor on first boot to see it printed to the console. Default credentials are listed in the release notes.

macOS users: Two options — Etcher (easiest, no terminal) or dd via Terminal (faster, no app install). Both work perfectly. The dd path is shown here since most macOS users are comfortable with Terminal.
1

Download the image

Click the Download button above. Save the .img.xz file to your Downloads folder or Desktop.

2

Verify the download

Open Terminal and run:

cd ~/Downloads
shasum -a 256 wyltek-opi3b-ckbnode-*.img.xz

Compare the output against the .sha256 file linked on the download card.

3

Extract the image

cd ~/Downloads
xz -d wyltek-opi3b-ckbnode-*.img.xz

This creates a .img file. Takes 1–3 minutes depending on your machine. The compressed file is deleted automatically.

4

Insert your SD card and find its device path

Insert the card, then in Terminal:

diskutil list

Look for your SD card — it'll show as something like /dev/disk2 with the right size. Note the number carefully — writing to the wrong disk will destroy data.

5

Unmount the card (don't eject)

diskutil unmountDisk /dev/disk2

Replace disk2 with your actual disk number.

6

Write the image

sudo dd if=wyltek-opi3b-ckbnode-*.img of=/dev/rdisk2 bs=4m status=progress

Note rdisk2 (raw disk, not disk2) — it's significantly faster on macOS. Takes 3–8 minutes. You'll see a summary line when it's done.

7

Eject and boot

diskutil eject /dev/disk2

Remove the card, insert into your board, power on. SSH in once it appears on your network:

ssh root@<board-ip>
Linux users: dd is the native tool. The commands below include pv for a progress bar — worth installing if you don't have it.
1

Download the image

Click the Download button above, or use the terminal:

wget https://r2.wyltekindustries.com/sbc-images/wyltek-opi3b-ckbnode-latest.img.xz
wget https://r2.wyltekindustries.com/sbc-images/wyltek-opi3b-ckbnode-latest.img.xz.sha256
2

Verify the download

sha256sum -c wyltek-opi3b-ckbnode-*.img.xz.sha256

Should print wyltek-opi3b-ckbnode-*.img.xz: OK. If it fails, the file is corrupted — re-download.

3

Insert your SD card and find its device path

lsblk

Your card will show up as something like /dev/sdb, /dev/sdc, or /dev/mmcblk0. Check the size column to confirm. Do not guess — wrong device = data loss.

💡 If you're unsure, run lsblk once before inserting the card and once after — the new entry is your card.
4

Flash — with progress bar

# Install pv if needed
sudo apt install pv   # Debian/Ubuntu
sudo dnf install pv   # Fedora

# Flash (replace /dev/sdX with your card)
xz -dc wyltek-opi3b-ckbnode-*.img.xz | \
  pv | \
  sudo dd of=/dev/sdX bs=4M conv=fsync

Takes 3–8 minutes. pv shows throughput and a progress bar.

4b

Flash — without pv (simpler)

xz -dc wyltek-opi3b-ckbnode-*.img.xz | \
  sudo dd of=/dev/sdX bs=4M conv=fsync status=progress

status=progress gives basic byte count output without needing pv.

5

Sync and eject

sync && sudo eject /dev/sdX

Wait for the command to return before removing the card. The sync flushes any pending writes.

6

First boot

Insert the card into your board and power on. First boot takes 60–90 seconds. SSH is enabled by default:

ssh root@<board-ip>

To find the IP: check your router's DHCP list, or use nmap -sn 192.168.1.0/24 (adjust for your subnet) to scan for new devices.

All images are SHA256 checksummed and GPG-signed. The checksum confirms the file arrived intact. The GPG signature confirms it came from Wyltek Industries and hasn't been tampered with.
1

Verify SHA256 checksum

# Linux / macOS
sha256sum -c wyltek-opi3b-ckbnode-*.img.xz.sha256

# macOS alternative
shasum -a 256 -c wyltek-opi3b-ckbnode-*.img.xz.sha256

# Windows PowerShell
$hash = Get-FileHash wyltek-opi3b-ckbnode-*.img.xz -Algorithm SHA256
$hash.Hash   # compare this against the .sha256 file

Linux/macOS should print OK. If anything else prints, the download is corrupted — delete and re-download.

2

Verify GPG signature

# Import the Wyltek Industries signing key (one-time)
gpg --keyserver keys.openpgp.org --recv-keys CFF9573B87BB90B7

# Verify the image signature
gpg --verify wyltek-opi3b-ckbnode-*.img.xz.asc wyltek-opi3b-ckbnode-*.img.xz

A valid image shows:

gpg: Good signature from "Wyltek Industries <build@wyltekindustries.com>"

The warning about key not being certified is normal unless you've explicitly trusted the key — the Good signature line is what matters.

3

Why bother?

You're putting this image on a device that will run on your network, possibly as a CKB node handling real funds. A tampered image could steal keys, phone home, or worse. 30 seconds to verify is worth it.

☁️ Hosting
Images hosted on Cloudflare R2. Same infrastructure as the CKB chain snapshots — free egress, global CDN, no bandwidth bill. Images are compressed with xz (~60% smaller than raw) and verified before publishing.

Need a board image not listed here? Open an issue on GitHub or reach out via the Nervos Nation community.