Creación de secuencias de comandos de múltiples procesos de cgminer / ejecución en un enrutador

Estoy ejecutando TomatoUSB (un firmware basado en Linux) en un enrutador doméstico basado en Broadcom. Conectado al puerto USB del enrutador hay un concentrador D-Link de 7 puertos y una serie de eruptores de bloques USB Asicminer.

Estoy encontrando algunos comportamientos curiosos usando este binario cgminer 3.3.1 así:

./cgminer -o pool:port -u username.worker -p password

Una única instancia de cgminer funcionará a la velocidad anunciada de 333 MH/s si se conecta un dispositivo USB. Pero ese número cae precipitadamente cuando se agregan dispositivos adicionales.

Curiosamente, agregar el indicador "--usb: 1" (que restringe el proceso a usar un dispositivo hotplug) y luego activar n procesos de esta manera me da 333* n como esperaba.

(Creo) Necesito un trabajador para cada proceso (supongo que no es un gran problema). Sin embargo, en un sistema sin cabeza como este, ejecutarlos por separado puede volverse difícil de manejar muy rápidamente. Actualmente estoy ejecutando una ventana de cliente SSH para cada proceso y disparando cada uno desde la línea de comando.

¿Hay alguna manera conveniente de generar secuencias de comandos para que se disparen varios de estos a la vez, cada uno usando un dispositivo de conexión en caliente y, con suerte, redirigiendo las numerosas salidas de la consola a algún lugar útil? ¿Quizás de alguna manera compartir un archivo de configuración entre muchos procesos?

Respuestas (1)

Ese es un enfoque interesante. Probablemente sea más barato que un Raspberry Pi.

  1. Ponga su secuencia de comandos de inicio en un archivo:

    ./cgminer -o pool:port -u username.worker -p password --usb :$1
    

    Guardar en start_single.sh, luego

    $ chmod u+x start_single.sh
    
  2. Haz el guión final:

    NUM_MINERS = 7
    cd "$(dirname "$0")"
    parallel -j $NUM_MINERS -- ./start_single.sh $(seq 1 $NUM_MINERS)
    

    Guardar como start_all.sh, entonces

    $ chmod u+x start_all.sh
    
  3. Corre ./start_all.sha la mía.

Si desea iniciar el script al inicio, busque en Google 'Programa de inicio TomatoUSB al inicio'

El script funciona bien y tengo varios Block Erupters conectados, cada uno de los cuales alimenta un proceso. Aunque estoy obteniendo una tasa de error superior a la esperada. Por ejemplo, por cada 1000 bloques aceptados, recibo solo uno o dos bloques rechazados, pero entre 25 y 50 errores de "HW" (¿hardware, supongo?). De acuerdo con mi grupo, sigo produciendo al precio anunciado. Puedo intentar activar la depuración en cgminer para ver qué está pasando.