2018年6月21日木曜日

Linuxでモナーコインをマイニングする(自動化編)

Linuxでモナーコインをマイニングする(環境構築編)
Linuxでモナーコインをマイニングする(チューニング編1)
Linuxでモナーコインをマイニングする(チューニング編2)
Linuxでモナーコインをマイニングする(遠隔操作編)

の続きです。

Linuxでは、マイニングの処理や設定をシェルスクリプトにまとめて記述します。
我が家のマイニングマシンは、GeForce GTX1060 3GBの4枚構成なので、以下のように記述しています。
(VIP Poolでのプールマイニングの設定です。)
#!/bin/sh

PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
export PATH

log='/var/log/monamier.log'

if [ `whoami` != 'root' ]
then
        echo 'This shellscript must be run by user "root".'
        exit
fi

sleep 120

nvidia-smi -i 0 -pm 1 >> ${log} 2>&1
nvidia-smi -i 1 -pm 1 >> ${log} 2>&1
nvidia-smi -i 2 -pm 1 >> ${log} 2>&1
nvidia-smi -i 3 -pm 1 >> ${log} 2>&1
nvidia-smi -i 0 -pl 60 >> ${log} 2>&1
nvidia-smi -i 1 -pl 60 >> ${log} 2>&1
nvidia-smi -i 2 -pl 60 >> ${log} 2>&1
nvidia-smi -i 3 -pl 60 >> ${log} 2>&1

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a '[gpu:0]/GPUPowerMizerMode=1' >> ${log} 2>&1

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a '[gpu:1]/GPUPowerMizerMode=1' >> ${log} 2>&1

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a '[gpu:2]/GPUPowerMizerMode=1' >> ${log} 2>&1

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a '[gpu:3]/GPUPowerMizerMode=1' >> ${log} 2>&1

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a '[gpu:0]/GPUFanControlState=1' >> ${log} 2>&1

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a '[gpu:1]/GPUFanControlState=1' >> ${log} 2>&1

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a '[gpu:2]/GPUFanControlState=1' >> ${log} 2>&1

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a '[gpu:3]/GPUFanControlState=1' >> ${log} 2>&1

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a '[gpu:0]/GPUFanControlState=1' >> ${log} 2>&1

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a '[gpu:1]/GPUFanControlState=1' >> ${log} 2>&1

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a '[gpu:2]/GPUFanControlState=1' >> ${log} 2>&1

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a '[gpu:3]/GPUFanControlState=1' >> ${log} 2>&1

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a '[fan:0]/GPUTargetFanSpeed=100' >> ${log} 2>&1

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a '[fan:1]/GPUTargetFanSpeed=100' >> ${log} 2>&1

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a '[fan:2]/GPUTargetFanSpeed=100' >> ${log} 2>&1

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a '[fan:3]/GPUTargetFanSpeed=100' >> ${log} 2>&1

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a "[gpu:0]/GPUGraphicsClockOffset[3]=0" >> ${log} 2>&1

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a "[gpu:1]/GPUGraphicsClockOffset[3]=0" >> ${log} 2>&1

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a "[gpu:2]/GPUGraphicsClockOffset[3]=0" >> ${log} 2>&1

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a "[gpu:3]/GPUGraphicsClockOffset[3]=0" >> ${log} 2>&1

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a "[gpu:0]/GPUMemoryTransferRateOffset[3]=-1500" >> ${log} 2>&1

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a "[gpu:1]/GPUMemoryTransferRateOffset[3]=-1500" >> ${log} 2>&1

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a "[gpu:2]/GPUMemoryTransferRateOffset[3]=-1500" >> ${log} 2>&1

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 \
nvidia-settings -a "[gpu:3]/GPUMemoryTransferRateOffset[3]=-1500" >> ${log} 2>&1

ccminer -a lyra2v2 -o stratum+tcp://stratum1.vippool.net:8888 -u  USERNAME.WORKERNAME -p PASSWORD -d 0,1,2,3 >> ${log} 2>&1

shutdown now
記述内容は、GPUの数や接続先のプールの設定などにあわせて各々修正してください。

尚、最後にshutdownが記述されているのは、何らかの理由でccminerが異常終了した際に、マイングマシンの電源を切る為です。
ケースによっては、reboot(再起動)でもよいかも知れません。

編集が完了したら、このシェルスクリプトを任意の場所に保存します。

最後にマイニングマシンが起動したら、自動的にマイニングを開始するよう設定します。
crontabに以下のように記述すると、起動時に指定したシェルスクリプトを1回だけ実行するようになります。
@reboot 上記シェルスクリプトのパス
シェルスクリプトを実行したときの出力は、「/var/log/monamier.log」に吐かれます。
変更したい場合は、シェルスクリプト内の冒頭のlogの値を変更して下さい。

設定を間違えなければ、このマイニングマシンが起動して2分経過すると、自動的にマイニングを開始するようになります。

0 件のコメント:

コメントを投稿