Skip to content

We're upgrading our operations to serve you better. Orders ship as usual from Laval, QC. Questions? Contact us

Bitcoin accepted at checkout  |  Ships from Laval, QC, Canada  |  Expert support since 2016

STEALTH_CGMINER Info

StealthMiner – cgminer Compatibility / Missing Driver

StealthMiner cgminer compatibility / driver scope — which firmware forks run on the D-Central Loki control board, which to avoid, and how to factory-reset, SSH-configure, and UART-recover the unit safely.

Informational — Monitor and address as needed

Affected Models: D-Central StealthMiner residential mining heater — every edition (recycled Antminer S17 / S17 Pro / S19 / S19 Pro / S19j Pro / S19k Pro hashboards on the D-Central Loki control board, Loki revisions v1.0 / v1.1 / v1.2)

Symptoms

  • Operating a D-Central StealthMiner residential heater (Noctua-cooled, 120 V, sub-60 dB), not a stock Antminer in a custom shroud
  • Web UI masthead reads 'StealthMiner' or 'D-Central StealthMiner', not 'Antminer'
  • `cat /etc/issue` over SSH returns a `StealthMiner` build string, not `Antminer-S19-Pro` or similar
  • `cgminer --version` returns `cgminer-loki-X.Y` or `cgminer 4.11.x-stealth`, not stock cgminer or `bmminer`
  • Tried flashing a stock Bitmain `.img` or Braiins OS+ `.tar.bz2` and the unit rejected the checksum, hung at 'Flashing...' for >10 minutes, or boot-looped after flashing
  • Web UI does not expose a setting (solo mode, custom voltage / frequency, custom worker name) that you have seen on Braiins OS+ for the matching Antminer model
  • Unit was working at purchase, then a third-party Antminer firmware was flashed and the rear LED is now solid red with no network response
  • Researching whether DCENT_OS can be flashed onto the StealthMiner for per-chip HW% diagnostics
  • Loki control board silkscreen reads `LOKI_v1.0`, `LOKI_v1.1`, or `LOKI_v1.2` and you need an authoritative firmware-compat answer for that revision
  • Want to script settings changes from a config-management host (Ansible, salt, plain `ssh` + `sed`) instead of clicking through the web UI
  • Two fans reporting in `hwmon` (Antminer firmware loaded by mistake) instead of the single Noctua, or PWM hard-clamped at 100%
  • `bmminer`, `bosminer`, or `luxminer` shows in `ps aux` instead of `cgminer-loki` (off-spec firmware loaded)

Step-by-Step Fix

1

Reboot the StealthMiner cleanly: `ssh root@<IP> 'reboot'`. Wait 90 seconds and reconnect. Many 'settings won't apply' reports clear here because cgminer needs a fresh process to pick up `cgminer.conf` edits. Confirm the unit comes back on its expected DHCP address; if it does not, the saved network config has wedged and you need a factory reset.

2

Verify pool config via the web UI. Browser to `http://<IP>` then Pools tab. Default StealthMiner pool URL is your configured pool, not a D-Central proxy. Confirm `stratum+tcp://<your-pool>:<port>`, worker name, password. Save. Watch the dashboard for accepted shares within 5 minutes. If shares do not arrive, escalate to Step 3.

3

Change settings via SSH for fields not in the web UI. `ssh root@<IP>`, then `vi /config/cgminer.conf` (path may be `/etc/cgminer.conf` or `/home/admin/cgminer.conf` depending on Loki firmware build). Edit `pools`, `intensity`, `api-listen` flags. Save. `/etc/init.d/cgminer restart` or the equivalent (init script `S99cgminer-loki` on `Loki_v1.1+`). Tail the log: `tail -f /var/log/cgminer.log`.

4

Apply a D-Central-signed firmware update via the web UI. Settings then Firmware then 'Check for updates'. With internet access, the UI checks `firmware.d-central.tech/stealthminer/` and presents a one-click update path. This is the supported upgrade workflow. Always update on a power-stable circuit. Do not yank power during the flash.

5

Reset Noctua fan curve to default. Web UI then Cooling then 'Reset to default profile'. If chassis temperature has been climbing without changes to ambient, a stuck PWM duty (often 30% floor stuck after a config error) resolves with a curve reset.

6

Enable solo mining mode. Edit `/config/cgminer.conf`, set the pool to your local solo bitcoind or public-pool.io endpoint, set `coinbase-address` (the BTC address that gets paid if your StealthMiner finds a block). Set this first, double-check by copy-paste from a hardware wallet. Restart cgminer. Watch share count: solo expected variance is brutal.

7

Apply a custom worker name and pool failover. Web UI exposes worker name. SSH expose the failover stanza in `cgminer.conf` with primary plus failover pool URLs. Restart cgminer, confirm both pools `Alive` in `cgminer-api stats`.

8

Tune voltage / frequency conservatively (advanced operators only). D-Central's per-board profile is tuned for longevity. If you understand the tradeoff, edit `/config/profile.json` and bump frequency in 25 MHz increments, observing chip temp and HW% for 30 minutes after each step. Stop before HW% > 2% or chip temp > 85 °C, whichever comes first. Document your starting profile so you can revert.

9

Set up SSH key auth and disable password. `ssh-copy-id root@<IP>` from your control host. SSH back in, edit `/etc/ssh/sshd_config` setting `PasswordAuthentication no`. `service sshd restart`. The StealthMiner is now key-only — protect the key file. Hygiene step every operator with a public-IP StealthMiner should do.

10

Schedule firmware-version logging. Cron-job a daily SSH from your management host: `ssh root@<IP> 'cgminer --version; cat /etc/issue' >> /var/log/stealthminer-versions.log`. Catches accidental firmware drift, accidental flashes, or supply-chain image swaps. Five-minute setup, lifetime peace of mind.

11

Factory reset via web UI. Settings then Maintenance then 'Factory reset'. Two-confirmation modal. Unit reboots, wipes user config, returns to default `cgminer.conf`, default pool fields blank, default fan profile. Use this when SSH config edits have made the unit unreachable in the UI but the unit still boots.

12

Factory reset via Loki RECOVERY button. Power off. Hold `RECOVERY` (recessed switch on the back of the Loki, paperclip-accessible through the rear panel). Power on while holding for 10 seconds. Rear LED blinks amber at ~2 Hz confirming recovery mode. Connect to `StealthMiner-Recovery-XXXX` AP at `192.168.4.1`. Web UI in recovery mode shows 'Reset config' and 'Reflash from eMMC backup'. Pick one. Recovers from a config error that prevents normal boot.

13

UART recovery for boot-looping or off-spec-flashed units. Open the unit. Connect a `CP2102` or `CH340G` USB-to-TTL adapter to the Loki debug header: `UART_TX` Loki → `RX` adapter, `UART_RX` Loki → `TX` adapter, `GND` ↔ `GND`. Do not connect VCC. On the host: `screen /dev/ttyUSB0 115200` (Mac / Linux) or PuTTY `COM4 @ 115200 8N1` (Windows). Power on; press any key during the u-boot countdown to interrupt to the `=> ` prompt.

14

Re-flash a D-Central-signed StealthMiner image from u-boot. Set up TFTP on your management host (`atftpd` Linux, Tftpd64 Windows). On Loki: `setenv ipaddr 192.168.1.50; setenv serverip 192.168.1.10; tftp 0x42000000 stealthminer-loki-v1.x-YYYYMMDD.img; mmc dev 0; mmc erase 0 0x800; mmc write 0x42000000 0 0x800; reset`. Block sizes / offsets illustrative — verify the canonical procedure URL and exact offsets in the D-Central support archive before flashing. Always use a D-Central-signed image.

15

If Loki is fully bricked (no UART activity, no LED), it is bench territory. Cracked eMMC, dead SoC, or blown power input. JTAG re-flash of the SPI boot ROM, eMMC replacement, or full Loki swap. Ship the unit (or just the Loki) to D-Central with a note describing the state.

16

Stop DIY and ship to D-Central when: UART access does not get to the u-boot prompt; rear LED stays solid red after a recovery attempt; the unit smells of burnt component; the eMMC chip on the Loki is visibly damaged; or you have attempted a TFTP recovery twice and the unit still does not boot. Book D-Central ASIC Repair and flag 'StealthMiner Loki recovery' in the ticket.

17

What the D-Central bench does on a Loki repair: physical inspection of Loki and hashboard; JTAG dump of boot ROM and eMMC; image-level diagnosis (was the eMMC partition table corrupted by a wrong-image flash, or is the SoC itself faulty?); Loki swap with a spare unit if board-level repair is not economical; full chassis-level burn-in (24 hours at default profile) before return. Per-edition StealthMiner profile is re-baked into eMMC during burn-in.

18

Shipping notes. Ship the whole unit if the chassis or hashboard might also need attention. Ship Loki-only (anti-static bag, double-boxed) if you are certain only the control board is faulty and you have a spare hashboard you can plug a returned Loki into. Include: photo of the unit's QR card, last-known firmware version, what you flashed (if anything), exact symptoms in chronological order. Saves bench time, saves you money.

When to Seek Professional Repair

If the steps above do not resolve the issue, or if you are not comfortable performing these repairs yourself, professional service is recommended. Attempting advanced repairs without proper equipment can cause further damage.

Related Error Codes

Still Having Issues?

Our team of Bitcoin Mining Hackers has been repairing ASIC miners since 2016. We have seen it all and fixed it all. Get a professional diagnosis.