I have one board which is being disabled showing the following error:
Read hash data: error sending control message: No such device: Disabling device
Sometimes after 10, 20 minutes, 1 hour, 3 hours.... anyway, enough to affect mining.
Firmware on the boards has been upgraded to the latest available version.
I believe I have ruled out a faulty USB hub and USB cables by swapping cables and plugging the board in directly to USB without an external hub.
Power supplies have been swapped with the same result. Eventually, I'll get around to making a cable for a large regulated power supply I have to completely rule out the power supply.
Until then I made a little
Expect script to detect and reset the disabled miner. Expect is a program that can "talk" to other interactive programs via a script. My script is by no mean perfect but gets the job done and it resets the miner and has been running unattended for the past day so I figured I would share it.
I have tested this on Debian linux, you need to install "expect" in order to run it.
should be enough on Debian or Ubuntu.
Then start monitoring the following command:
expect ztex_restart_disconnected.exp
More details about the scripts below.
- Lyddite
---
BTC: 14J26yT4e8xBbcP3XZEk4osLozf6eosmM1
LTC: LiCmLnRr8hCXhiATmBd6ekw4L3Q36AsijH
XPM: ANTYC4pAimVW726hufAFBgJb4VDeSQbYVT
Two scripts are needed first a simple script containing the you use to start BTCMiner. The scripts should in the same directory as BTCMiner.....jar
The first script, start_ztex is what you use to start your cluster. eg... with mine I connect to a local stratum pool. You will need you change at least the host, port , username , password and perhaps firmware.
start_ztex.sh#!/bin/bash
#
java -cp ZtexBTCMiner-121126.jar BTCMiner -v -host http://192.168.1.XX:XXXX -u XXXX -p x -f ztex_ufm1_15d.ihx -v -m c
The second script, is the expect script which monitors the output
ztex_restart_disconnected.exp#!/usr/bin/expect -f
#
set timeout -1
spawn $env(SHELL)
match_max 100000
expect "*\$ "
send -- "./start_ztex.sh"
expect "./start_ztex.sh"
send -- "\r"
expect "(Re)Scanning bus ... \r"
# wait for error, then send r return
# first check resets right after the error
# second line for other more rarely errors that may disable the device (resets on the next device status line)
while 1 {
expect {
"Read hash data: error sending control message: No such device: Disabling device\r"
{ sleep 10 ; send -- "r\r" ; exp_continue }
"Device disabled since\r"
{ send -- "r\r" ; exp_continue }
}
}