GPU Mining on ubuntu 18.04

## 環境
ubuntu 18.04 with CUDA

## 準備
```.sh
$ LANG=C xdg-user-dirs-gtk-update
$ sudo apt update
$ sudo apt install openssh-server
$ sudo apt install emacs
$ sudo apt install git
$ sudo apt install screen
$ sudo apt install zsh powerline fonts-powerline
$ chsh -s /bin/zsh
$ git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
$ cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
($ emacs -nw ~/.zshrc)
```

## cudaインストール等
[cuda toolkit 11.7](https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=18.04&target_type=deb_local)

## 推薦ドライバの確認と指定ドライバのインストール
これはt-rexが上記cudaでインストールされるドライバに対応していない場合に必要。
例えばt-rex 0.26.1はnvidia-driver-515では動作しないので510をインストールする。
```.sh
$ sudo apt update
$ ubuntu-drivers devices
$ sudo apt install -y nvidia-driver-510
```
## ☆ドライバのダウングレード
3060のマシンのnvidiaのドライバがubuntuのセキュリティーアップグレードによって510.85.02になってしまった。
このバージョンのドライバはLHRロックを解除できなくなる対策が施されている。
以下はこれを510.68.02にダウングレードしてロック解除できるようにする手段。
[NVIDIA DOWNLOAD DRIVERS](https://www.nvidia.com/Download/Find.aspx)
からlinux用の510.68.02をダウンロードする。（NVIDIA-Linux-x86_64-510.68.02.run）
/etc/default/grubを編集してnouveauを無効化する。
```
GRUB_CMDLINE_LINUX_DEFAULT="splash nouveau.modeset=0"
```
その設定を出力する。
```
sudo grub-mkconfig -o /boot/grub/grub.cfg
```
Xを停止
```
sudo systemctl set-default multi-user.target
```
nvidia関連パッケージを削除して再起動
```
sudo apt remove --purge "nvidia-*"
sudo reboot
```
先にダウンロードしたドライバをインストール（時間がかかります）して再起動
```
sudo sh NVIDIA-Linux-x86_64-410.68.02.run
sudo reboot
```
Xを起動して再起動
```
sudo systemctl set-default graphical.target
sudo reboot
```
これでドライバがダウングレードできているので以下のコマンドで確認
```
nvidia-smi
```



## Coolbitsの設定
```.sh
sudo emacs -nw /usr/share/X11/xorg.conf.d/10-nvidia.conf
Edit the "Coolbits" option to 31. Then your file should look like this:
Section "OutputClass"
    Identifier "nvidia"
    MatchDriver "nvidia-drm"
    Driver "nvidia"
    Option "AllowEmptyInitialConfiguration"
    Option "Coolbits" "31"
    ModulePath "/usr/lib/x86_64-linux-gnu/xorg"
EndSection
```

## GPU OverClock params for ETH with T-REX-0.24.7

| device | PL | Core | Memory | MH/s | KH/W |
|:-:|:-:|:-:|:-:|:-:|:-:|
| 3090  | 320 | 0 | +3200 | 127.4 | 398.1 |
| 3060 Ti LHR | 135 | -350 | +2200 | 45.3 | 335.6 |
| 3060 LHR  | 115 | -200 | +1900 | 35.5 | 308.7 |
| 1660 Super  | 90 | -200 | +1800 | 32.7 | 363.3 |
| 全体  | 660 |  |  | 240.9 | 365.0 |

## ☆GPU OverClock params for RVN with T-REX-0.26.5
ETHが終わろうとしているので一部のPCをRVN用に切り替えてやっている。
| device | PL | Core | Memory | MH/s | KH/W |
|:-:|:-:|:-:|:-:|:-:|:-:|
| 3060 Ti LHR | 150 | 125 | +2000 | 25.64 | 170 |
| 3060 LHR  | 135 | 125 | +2100 | 22.5 | 168 |
| 全体  | 285 |  |  | 48.14 | 169 |


#### 3060 LHR のOC用シェルスクリプト例 （他のPCからSSHでログインして使用することを想定）
```OverClock3060LHR.sh
#!/bin/sh                                                                                                                       
AUTH=`ps a |grep X | head -n 1 |sed -r 's/^.*-auth\s([/a-zA-Z0-9]+).*$/\1/'`
sudo nvidia-smi -pm 1
sudo nvidia-smi -pl 100
DISPLAY=:0 XAUTHORITY=$AUTH sudo nvidia-settings -a '[gpu:0]/GPUFanControlState=1'
DISPLAY=:0 XAUTHORITY=$AUTH sudo nvidia-settings -a '[fan:0]/GPUTargetFanSpeed=78'
DISPLAY=:0 XAUTHORITY=$AUTH sudo nvidia-settings -a '[fan:1]/GPUTargetFanSpeed=78'
DISPLAY=:0 XAUTHORITY=$AUTH sudo nvidia-settings -a '[gpu:0]/GPUPowerMizerMode=1'
DISPLAY=:0 XAUTHORITY=$AUTH sudo nvidia-settings -a '[gpu:0]/GPUGraphicsClockOffset[4]=-400'
DISPLAY=:0 XAUTHORITY=$AUTH sudo nvidia-settings -a '[gpu:0]/GPUMemoryTransferRateOffset[4]=2100'
```

## Wallet for ergo
[ergo Wallet](https://github.com/ergoplatform/ergo)
[yoroi](https://yoroi-wallet.com/#/)

## Mining tools for NVIDIA
[lolMiner](https://github.com/Lolliedieb/lolMiner-releases)
[nanominer](https://github.com/nanopool/nanominer)
[GMiner](https://github.com/develsoftware/GMinerRelease)
[T-Rex](https://github.com/trexminer/T-Rex)
[NBMiner](https://github.com/NebuTech/NBMiner)
[phoenix-miner](https://github.com/nanopool/phoenix-miner)

## Mining pools
[ethermine](https://ethermine.org/)
[nanopool](https://nanopool.org/)
[flexpool](https://www.flexpool.io/)
[2miners](https://2miners.com/)

## Find best pool & coin ...
[GPU mining](https://minerstat.com/hardware/gpus)
[GPU hash rate](https://www.hashrate.no/)

## Info
[reddit](https://www.reddit.com/r/EtherMining/)
[GPU overclock settings](https://miningchamber.com/gpu-mining/rtx-3060-lhr-mining-settings/)