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.
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.
Install Balena Etcher
Download from etcher.balena.io and run the installer. It's free, open source, and takes about 30 seconds to install.
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.
Flash with Etcher
Open Etcher, then:
- Click Flash from file → select your
.img.xz - Click Select target → choose your SD card (double-check the size matches)
- Click Flash! — Windows may ask for admin permission, allow it
- Wait 3–10 minutes. Etcher shows progress and automatically verifies when done
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.
dd via Terminal (faster, no app install). Both work perfectly. The dd path is shown here since most macOS users are comfortable with Terminal.Download the image
Click the Download button above. Save the .img.xz file to your Downloads folder or Desktop.
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.
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.
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.
Unmount the card (don't eject)
diskutil unmountDisk /dev/disk2
Replace disk2 with your actual disk number.
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.
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>
dd is the native tool. The commands below include pv for a progress bar — worth installing if you don't have it.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
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.
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.
lsblk once before inserting the card and once after — the new entry is your card.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.
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.
Sync and eject
sync && sudo eject /dev/sdX
Wait for the command to return before removing the card. The sync flushes any pending writes.
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.
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.
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.
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.
Need a board image not listed here? Open an issue on GitHub or reach out via the Nervos Nation community.
Wyltek Industries