ethOS 設定まとめ

ethOSの記事がゴチャゴチャになってきたので改めてまとめてみます。前提として、RIGをWindows10で予め動かしている程度の状態とします。私はRadeonを持ってないのでGeForceでの設定例です。ETH+SCをClaymoreで掘ります。それ以外は触れていませんのでご参考までに。

ethOSとは

ubuntuベースのマイニング用LinuxOSです。AMD Radeonシリーズに最適化されていましたが、1.2.3よりGeForceもサポートされました。設定と管理がとても手軽なのが最大の利点です。有料ですが、Windowsよりも安く、安定しています。

要件

  • 少なくとも8GBのUSB3メモリ / HDD / SSD。
  • 64ビットシステム
  • 4GB RAM

購入

gpuShackから購入します。単品$39ですが、3ライセンス以上購入する場合、”DIGITALBULK”のプロモコードを入力すると1つにつき$10OFFになります。単品の場合も”VOFF5″とか”ASCEND”で$5OFFになります。SSDやUSBメモリを購入するとプリインストールされたものが届くようですが、日本からだと送料がかかってしまいます。

ethOSのライセンスは「赤い目の山羊ライセンス」と呼ばれています。

ethOS is released under the “Small Goat with Red Eyes” license. You should buy one ethOS from gpuShack.com per each rig on which you intend to run ethOS. If you don’t, a small goat with red eyes will visit you while you sleep.

要するに特にプロダクトコードなどは無いけど、ちゃんと買いましょうね。という紳士協定です。

ちなみに今何台のethOSが動いてるか公式は把握してるので、販売数との比べればどれくらいが非正規品か簡単にわかるんじゃないかなと思います。2017/09/15現在30,913rigが稼働しているようです。すごいですね。

インストール

USBメモリの場合はRufus、SSDの場合はHDD Raw Copy Toolを使用。
詳細は過去記事(SSD)とかこれとか(USB)イーサ先輩の記事とか下記動画を見ると良いです。

USBメモリの場合USB3.0のものを利用しましょう。USB2.0だとアップデート時にトラブルが起こる可能性があるようです。

設定

RIGにUSB or SSDを接続して起動します。モニタの接続はマザーボードからの出力(iGPU)ではなく、グラフィックボードから出力します。PCIe x16に刺さっているグラボにさせばOKです。
オンボード出力だと画面が出ない事があります。

アップデート

2017/09/04現在、最新バージョンは1.2.4ですが、ISOイメージは1.2.3までしかでていませんので、アップデートが必要です。
2017/09/15 ethOS1.2.5がリリースされました。

起動直後に下記コマンドを打ちましょう。
sudo ethos-update && sleep 5 && r

うまくいくと再起動します。再起動後、調子がおかしいときは更に下記コマンドを。
sudo ethos-update reupdate && sleep 5 && r

それでも駄目ならイメージを再書き込みして、最新版のISOが出るのを待ちましょう。。

GUI画面上にIPアドレスなどの情報がでるので、以降はsshでリモートで作業します。もちろんローカルのまま作業しても大丈夫ですが、キーボードレイアウトがUS配列なので日本語キーボードを使う場合は注意が必要です。

セキュリティ設定

▼パスワードの変更
passwd ethos
sudo passwd root
※デフォルトパスワードはlive

▼sshでのルートログインの禁止
sudo vi /etc/ssh/sshd_config
PermitRootLogin yes→no
※この設定はethOSアップデート時に消えるので注意
ethOS1.2.5から消えなくなりました

▼そもそもルートログインの禁止
sudo usermod -L root
※これはアプデで消えないので安心

初期設定

▼IPアドレスの固定
RIGに固定IPを設定するのではなく、ルータのDHCP設定で固定にする方法を推奨します。通常はルータにてMACアドレスと配布するIPを紐付けることが可能です。もしくは動的IPのままでも特に問題はないかと思います。管理パネルからIPが確認できるため、あえて固定する意味はないかもしれません。どうしてもRIG側で固定したい場合は↓
sudo vi /etc/network/interfaces
iface eth0 inet dhcp
を下記に書き換える。
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
gateway 192.168.0.1
dns-nameservers 8.8.8.8
※各自自分のアドレスに書き換えてください

▼キーボードレイアウト変更
sudo vi /etc/default/keyboard
us→jp

▼リモートコンフィグ無効
echo -n “” > /home/ethos/remote.conf && echo “remote config turned off”
もしくはremote.confの中身を消せばOK

ethOS 1.2.4からは下記コマンドでremote.confの中身が空っぽになります。
force-local

local.confの設定

▼ローカルコンフィグ書き換え
# vi local.conf

globalminer claymore ←マイナーにクレイモアを使用
maxgputemp 85
stratumproxy enabled
proxywallet 0xef3fb55733fdcc515289c5ddb7cc34d6688898fb ←自分のウォレットに書き換えます
proxypool1 us2.ethermine.org:4444 ←各自使うプールに書き換え
proxypool2 us1.ethermine.org:4444 ←各自使うプールに書き換え
flags –cl-global-work 8192 –farm-recheck 200
globalfan 100 ←ファン回転数(無人部屋に置くので100%)
autoreboot 3 ←ソフトクラッシュの場合にリグを自動復帰させる。指定した回数だけ。clear-thermalでカウントリセット。

custompanel publicsecret ←ethosdistro.comの管理パネルのIDを指定できます。最初の6文字がID、あとの6文字が秘密鍵(パスワード)

loc f547c3 Rig1
loc 496406 Rig2
loc 074ac8 SubPC_HI

loc [ホスト名] [worker名] ホスト名はMacアドレスから自動で設定されます。worker名はpoolに通知したい名称を自分で指定できます。

poolemail [メールアドレス] ←ethOS 1.2.4で追加された設定「イベントや問題について警告するためにプールで使用するメール」となってますがnanopoolなどのメール認証が必要なpool用かな?念のため設定します。

以下bios name別の個別設定、bios nameはグラボの型番ごとの固有値です。同じグラボをまとめて設定できます。他にも指定の方法はありますが、この方法が一番スマートだと思うので紹介。
メモリクロックのOC(mem)はまともに動かないの使いません。(#でコメントアウト)
ethOS1.2.5でまともに動くようになりました。
bios nameは”show stats”から確認できます。

# palit geforce gtx 1060 3gb Single Fan
# 86.06.3C.00.40
# [type] [bios name] [value]
# ——————————————————
mem 86.06.3C.00.40 4201 ←メモリクロックのオーバークロック
pwr 86.06.3C.00.40 60 ←消費電力制限(ラデオンの場合指定方法が違うので注意)
fan 86.06.3C.00.40 100 ←ファン回転数
# ——————————————————

# palit geforce gtx 1060 3gb Dual Fan
# 86.04.54.00.3A
# [type] [bios name] [value]
# ——————————————————
mem 86.04.54.00.3A 4303
pwr 86.04.54.00.3A 60
fan 86.04.54.00.3A 100
# ——————————————————

# EVGA geforce gtx 1060 3gb
# 86.06.3C.00.60
# [type] [bios name] [value]
# ——————————————————
mem 86.06.3C.00.60 4201
pwr 86.06.3C.00.60 80
fan 86.06.3C.00.60 100
# ——————————————————

# EVGA geforce gtx 1060 6gb
# 86.06.45.00.60
# [type] [bios name] [value]
# ——————————————————
mem 86.06.45.00.60 4608
pwr 86.06.45.00.60 80
fan 86.06.45.00.60 100
# ——————————————————

# EVGA geforce gtx 1070 SC
# 86.04.50.00.72
# [type] [bios name] [value]
# ——————————————————
mem 86.04.50.00.72 4404
pwr 86.04.50.00.72 110
fan 86.04.50.00.72 100
# ——————————————————

# EVGA geforce gtx 1070 SC2
# 86.04.50.00.70
# [type] [bios name] [value]
# ——————————————————
mem 86.04.50.00.70 4404
pwr 86.04.50.00.70 110
fan 86.04.50.00.70 100
# ——————————————————

# EVGA geforce gtx 1060 SC 3gb
# 86.06.59.00.60
# [type] [bios name] [value]
# ——————————————————
mem 86.06.59.00.60 4303
pwr 86.06.59.00.60 70
fan 86.06.59.00.60 100
# ——————————————————

claymore.stub.confの設定

クレイモアの設定です。まずはデフォルトのconfファイルをコピーしておきましょう。
cp claymore.stub.conf claymore.stub.conf.bk

▼クレイモアの設定
vi claymore.stub.conf
-colors 1 ←色がつくようになります

-mode 0 ←Dualモードの場合は0のまま変えなくてOK、1はEtherreum-onlyモードです。Dev feeがDualは2%、Ethのみが1%です。

DualMiningでSCを掘ります
-dcoin sia
-dpool sia-asia1.nanopool.org:7777 ←プール
-dwal ウォレット/worker名/メールアドレス ←各自書き換え
-dpsw x

remote.confの設定

Webサーバを用意します。例:example.com
local.confの中身をtxtに書き込んで”remote.conf.txt”等の名前で保存し、Web鯖に格納します。
URL例→http://example.com/remote.conf.txt

ConfigMakerというサービスを使う方法もあります。詳細はイーサ先輩へ!

ethOSのremote.confに書き込みます。
echo -n “https://example.com/remote.conf.txt” > /home/ethos/remote.conf

もしくはremote.confに直接URLを書く。
vi remote.conf

putconf && minestopコマンドで反映します。
pwrの設定などは再起動しないと反映されないので、rで再起動でもいいかも。

その他よく使うコマンド

再起動
# r

ステータスを見る
# show stats

採掘状況を見る
# show miner

configで有効行のみ出力する
# cat /home/ethos/local.conf | grep -v ‘^#’

設定を反映
# putconf && minestop

オーバークロックを反映
# putconf && ethos-overclock

両方
# putconf && minestop && ethos-overclock

GeForce関連情報表示
# nvidia-smi

シャットダウン
# sudo shutdown -h now

オーバークロック

loca.confのmemでもメモリクロックのOCは可能ですが、何故か設定する値と実測値が異なり安定しないので、nvidia-settingsというコマンドを用います。

ethOS1.2.5からlocal.confのmemが正常に機能するようになりました。OCはお好みの方法でどうぞ。

local.conf

local.confによるOCは色々方法がありますが、bios name指定による方法が良いかと思います。

▼local.conf

▼show stats

このように反映されます。(ethOS1.2.5から)

nvidia-settings

細かい使い方を確認するためには下記コマンド(ヘルプ)を実行します。
nvidia-settings -h

ごちゃごちゃ書いてあるけど実際に設定するのは下記です。
nvidia-settings -c :0 -a ‘[gpu:0]/GPUMemoryTransferRateOffset[3]=1600’
GPU0のメモリクロックを+800MHzします。
-cでXdisplay制御してます。(これがないとGUIが立ち上がっちゃう)
オフセット値は指定した数値の半分が盛られるようです。

でもこれだとGPU番号が変わったときに指定がズレてしまいます。そこで、コマンドには、GPU番号指定ではなく、UUIDで指定しましょう。
nvidia-xconfig -query-gpu-info

このコマンドでUUIDが調べられます。GPUの固有値なので、接続を変えてGPU番号が変わろうが関係ないです。

nvidia-settings -c :0 -a ‘[GPU-fb93e11d-d20a-0330-2304-3d55a175385a]/GPUMemoryTransferRateOffset[3]=1600’

うちのGPU0ちゃんの場合、こんな感じになりました。このコマンドを実行するとメモリクロックがOCされます。show statsなどで確認してみましょう。

custom.sh

起動時に自動実行したいですよね。簡単です。custom.shに書けばOKです。最後にexit 0がくるように書きましょう。

nvidia-settings -c :0 -a '[GPU-fb93e11d-d20a-0330-2304-3d55a175385a]/GPUMemoryTransferRateOffset[3]=1600'
nvidia-settings -c :0 -a '[GPU-03dc7396-f102-f12d-14f7-ce97815fb086]/GPUMemoryTransferRateOffset[3]=1000'
nvidia-settings -c :0 -a '[GPU-ee05adb7-b142-5349-714e-cbd4d9ee908d]/GPUMemoryTransferRateOffset[3]=1000'

exit 0

これで起動時に実行されます。これに気づくまでは自分で.shファイルを作り、~/.config/lxsession/LXDE/autostart に書き込んで自動実行させたりしてましたが、最初から用意されていました。。。

powerlimit

おまけ、うちの環境ではpwr設定が効いてるので未使用ですが、たまに効かない場合があるようです。その場合はnvidia-smiコマンドでplをかけましょう。

▼全GPUをPL100(100wまでに制限する)
sudo nvidia-smi -pl 100

▼GPU0だけPL100にする
sudo nvidia-smi -i 0 -pl 100

これもcustom.shに書けばたぶん動きます。

リモート接続

LAN外からリモートする方法は、軽く3つほどあります。
VPNSSHTeamViewer(ethOS 1.2.4で追加)
お好きなのをどうぞ。