12 3000대 nvdia를 활용한 UBUNTU 채굴기

퀘이사존 언제나즐겁게
12 1377

2021.05.03 20:20

계속 눈팅만 하다가 1월부터 스트레스 해소 겸 취미로 시작한 채굴에 대한 글을 써봅니다. 

윈도우즈 기반 ( 라이선스 없이) 사용하는 부분이나 에러 핸들링과 모니터링에 대한 불안정성 때문에 리눅스 기반의 운영체제를 활용한 채굴기 셋팅을 고민해 왔었고 채굴기를 일시 중지하고 우분투 설정을 해보았습니다. 

또한 기존 사용하던 피닉스 마이너에서 데브피가 존재하지 않는 ethminer와 지갑으로 이체 수수료가 없는 ethermine을 활용한 설정입니다. 


실력이 많이 부족하지만 여름 대비 장비 정리 전에 저와 같은 생각을 가지고 계신 분들을 위하여 글을 남겨 봅니다. 

현재 채굴장비는 3070 4way 1대, 3070 5way 1대 운영하고 있습니다. 

사양은 다음과 같습니다. 

1. 4way 

    CPU : G3930

    MB : Gigabyte GA-H110-D3A BTC 

    RAM : 삼성 DDR4 4G PC4-19200 

    HDD : 120G 860

    VGA : 3070 4대

    POWER : PNC PARTNER EVEREST 1600AP 88+ 

    CASE : 밀폐형 6U (6Way/ 8Way) 아틱팬으로 교체 

2. 5way

    CPU : 라이젠 3500 

    MB : MSI x470 Gaming Plus

    HDD : 120G 860

    VGA : 3070 5대 

    POWER : 잘만 1200W 풀모듈러 ZM1200-ARX 80PLUS PLATINUM

    CASE : 밀폐형 4U 아틱팬 교체


============================================================

바이오스 설정부분은 

PCI 구동부 X1 설정 

above 4g decoding 활성화

내장그래픽 비활성화(설정해서 사용도 가능하지만 그래픽 카드 인식 등의 여러가지 이슈로 끄는 걸 추천드립니다)

정도가 중요하고 나머지 세부사항은 스킵하도록 하겠습니다. 

============================================================

우분투의 설치 

https://ubuntu.com/#download 에서 20.04 LTS를 받아서 balenaEtcher과 같은 프로그램을 사용하여 부팅 가능한 USB를 만들어 설치를 진행합니다. 자세한 설치 과정은 온라인에도 많이 있는 관계로 생략하겠습니다. 

한글 설치도 가능하지만 한글 깨짐 등의 현상을 우려하여 원천 배제차원에서 영문으로 설치 하였으며 

Updates and Other Software 화면에서 Normal installation이 아닌 minimal installation을 선택하여 설치를 진행하였습니다. locale은 그냥 서울로 하였습니다. 

============================================================

외부텔넷 접속 

우분투 설치 이후 telnet을 통한 접속(putty를 활용한 접속)이 가능하도록 하기 위하여 터미널을 실행하고(단축키 Ctrl + Alt + T) 다음과 같은 명령어를 순차적으로 실행합니다. 

sudo apt update 

sudo apt upgrade

sudo apt install openssh-server

apt update와 apt upgrade를 실행하여 우선 업데이트를 진행하고 

sudo apt install openssh-server 명령어 실행을 통해 ssh 서버를 설치 합니다. 


해당 설치가 완료되면 다른 PC에서 putty 등의 텔넷 프로그램을 이용하여 22번 포트의 ssh접근이 가능해 집니다.

 퀘이사존

putty 실행 화면 (빨간색 부분에 우분투가 설치된 채굴기의 IP주소를 넣으면 됩니다.)

퀘이사존

우분투 설치시 입력한 아이디와 비밀번호를 통해 로그인이 가능합니다. 

=============================================================

콘솔모드로 변경 

우분투 20.04 LTS를 설치 하시면 그래픽 화면으로 출력이 되는데 이것을 텍스트라인만 보이는 콘솔모드로 변경하였습니다. 

sudo cp -n /etc/default/grub /etc/default/grub.backup

해당 명령어를 실행하여 우선 grub파일을 백업해주고 

sudo nano /etc/default/grub

위의 명령어를 실행하여 grub파일을 편집해 줍니다. 

퀘이사존

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 라인 앞에 #을 붙여주어 주석처리 합니다.(지워도 무방하지만 향후 복구를 위해 주석 처리 하는 것이 좋습니다.)

GRUB_CMDLINE_LINUX="" 를 GRUB_CMDLINE_LINUX="text" 로 변경합니다. 

#GRUB_TERMINAL="console" 라인 앞에있는 #을 제거하여 위와 같이 활성화 시켜 줍니다. 

ctrl + x를 눌러 종료하며 저장합니다. 

sudo update-grub

명령어를 실행하여 변경한 grub를 적용합니다. 

sudo systemctl set-default multi-user.target

명령어를 실행합니다. 

sudo reboot 

명령어를 실행하여 재부팅하면 그래픽이 아닌 콘솔모드로 부팅이 됩니다. 

=========================================================

이후 진행부터는 텔넷접속을 통해 모두 진행합니다. 

=========================================================

SWAP 용량 변경 

sudo swapoff -v /swapfile

명령을 실행하여 스왑을 끄고 

sudo fallocate -l 60G /swapfile

명령을 실행하여 60기가로 변경

sudo chmod 600 /swapfile

명령을 실행하여 권한변경

sudo mkswap /swapfile

명령을 실행하여 Swap파일을 만듭니다. 

sudo swapon /swapfile

명령을 실행하여 Swap파일을 활성화 합니다. 

free -m을 실행하면 현재 스왑 용량을 확인할 수 있습니다. 

==========================================================

nvidia 드라이버 설치 

ubuntu-drivers devices

명령어를 실행하시면 설치 가능한 드라이버 확인이 가능합니다. 

lspci | grep -i nvidia

명령어를 실행하시면 사용가능한(인식이 된) nvidia 그래픽카드 확인이 가능합니다. 

드라이버 설치는 권장 드라이버 자동설치와 원하는 버전의 수동설치가 가능한데 자동 설치로 진행하였습니다. 

3060의 경우 채굴락으로 특정 개발자 버전의 드라이버를 수동설치 해야 하는 것으로 알고 있지만 해당사항은 확인하지 못했습니다. 

sudo ubuntu-drivers autoinstall

명령어를 실행하시면 최신의 권장 드라이버가 자동으로 설치 됩니다. 

sudo reboot 

명령어를 실행하여 재부팅을 진행합니다. 

===========================================================

오버클럭을 위한 준비

sudo nvidia-xconfig --enable-all-gpus

sudo nvidia-xconfig --cool-bits=28

위 두 명령을 각각 실행하여 xorg.conf파일을 생성합니다.

sudo nano /etc/X11/Xwrapper.config

명령어를 실행하여 Xwrapper.config파일을 수정합니다. 

퀘이사존

위 이미지와 같이 allowed_users=anybody로 수정하고 ctrl+x 를 눌러 저장 종료 합니다. 

sudo reboot 

명령어를 실행하여 재시작합니다. 

오버클럭 설정을 위한 배치파일 생성은 ethminer 설치 뒤에 다루도록 하겠습니다. 

=====================================================================

ethminer 설치 준비

ethminer는 오픈소스 기반의 마이닝 소프트웨어로 우분투에서 직접 컴파일하여 사용할 수 있는 무료버전입니다. 최근에 업데이트가 많지 않아서 아쉬움이 있지만 3천번대의 지원은 작업이 되어있는 상황입니다. 

우선 컴파일을 하기 위한 소프트웨어 설치가 필요합니다. 

sudo apt -y install build-essential

sudo apt -y install gcc-8 g++-8 gcc-9 g++-9

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 8 --slave /usr/bin/g++ g++ /usr/bin/g++-8

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 9 --slave /usr/bin/g++ g++ /usr/bin/g++-9

위의 4 명령어를 각각 실행시켜 줍니다. 


==========================================================================

cuda 툴킷 설치

ethminer를 컴파일 하기 위해서 cuda 툴킷의 설치가 필요합니다. 11.1.1위의 버전도 나와 있지만 테스트 된 11.1.1 버전 설치로 진행하겠습니다. 

wget https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda_11.1.1_455.32.00_linux.run

명령어를 실행하여 파일을 받아줍니다. 

chmod +x cuda_11.1.1_455.32.00_linux.run

명령어를 실행하여 cuda_11.1.1_455.32.00_linux.run 파일을 실행 가능한 파일로 바꿔줍니다. 

sudo ./cuda_11.1.1_455.32.00_linux.run

명령어를 실행하여 설치를 진행합니다. 실행 자체에 시간이 좀 걸려서 기다리셔야 합니다. 

퀘이사존

이런 식으로 대기가 오래 걸립니다. 

퀘이사존

위와같은 화면이 나오면 continue를 선택하시고 넘어가시면됩니다. 

퀘이사존

여기서 accept 쓰고 엔터 누르시면 

퀘이사존

driver를 꼭 해제 하시고 (이미 설치 했기 때문) Install 버튼을 선택하시면 됩니다. 설치도 시간이 좀 걸립니다. 

sudo reboot

명령어를 실행하여 재부팅합니다. 

====================================================================

오버클럭 

nano init_ethminer.sh

명령어를 실행하여 오버클럭용 배치 파일을 생성합니다. 

sudo nvidia-smi -pm 1

sudo nvidia-smi -i 0 -pl 130

sudo nvidia-smi -i 1 -pl 130

sudo nvidia-smi -i 2 -pl 130

sudo nvidia-smi -i 3 -pl 130

#sudo nvidia-smi -i 4 -pl 123

#sudo nvidia-smi -i 5 -pl 123

xinit /usr/bin/nvidia-settings -a [gpu:0]/GpuPowerMizerMode=1 -a [gpu:0]/GPUGraphicsClockOffset[4]=-500 -a [gpu:0]/GPUMemoryTransferRateOffset[4]=2000 -a [gpu:0]/GPUFanControlState=1 -a [fan:0]/GPUTargetFanSpeed=65 -a [fan:1]/GPUTargetFanSpeed=65 \

-a [gpu:1]/GpuPowerMizerMode=1 -a [gpu:1]/GPUGraphicsClockOffset[4]=-500 -a [gpu:1]/GPUMemoryTransferRateOffset[4]=1900 -a [gpu:1]/GPUFanControlState=1 -a [fan:2]/GPUTargetFanSpeed=65 -a [fan:3]/GPUTargetFanSpeed=65 \

-a [gpu:2]/GpuPowerMizerMode=1 -a [gpu:2]/GPUGraphicsClockOffset[4]=-500 -a [gpu:2]/GPUMemoryTransferRateOffset[4]=2000 -a [gpu:2]/GPUFanControlState=1 -a [fan:4]/GPUTargetFanSpeed=55 -a [fan:5]/GPUTargetFanSpeed=55 \

-a [gpu:3]/GpuPowerMizerMode=1 -a [gpu:3]/GPUGraphicsClockOffset[4]=-500 -a [gpu:3]/GPUMemoryTransferRateOffset[4]=2000 -a [gpu:3]/GPUFanControlState=1 -a [fan:6]/GPUTargetFanSpeed=55 -a [fan:7]/GPUTargetFanSpeed=55 -- :1 -once

#-a [gpu:4]/GpuPowerMizerMode=1 -a [gpu:4]/GPUGraphicsClockOffset[4]=-500 -a [gpu:4]/GPUMemoryTransferRateOffset[4]=2050 -a [gpu:4]/GPUFanControlState=1 -a [fan:8]/GPUTargetFanSpeed=50 -a [fan:9]/GPUTargetFanSpeed=50 \

#-a [gpu:5]/GpuPowerMizerMode=1 -a [gpu:5]/GPUGraphicsClockOffset[4]=-500 -a [gpu:5]/GPUMemoryTransferRateOffset[4]=2050 -a [gpu:5]/GPUFanControlState=1 -a [fan:10]/GPUTargetFanSpeed=50 -a [fan:11]/GPUTargetFanSpeed=50 -- :1 -once

위 텍스트를 긁어 붙인 후 수정을 하여야 합니다. 

퀘이사존

수정법을 설명드리겠습니다. 

우선 제일 첫줄의 

sudo nvidia-smi -pm 1 는 그래픽카드의 퍼포먼스 모드 설정명령입니다. 해당 설정을 통해 오버/언더 클럭이 가능하도록 합니다. 

sudo nvidia-smi -i 0 -pl 130 이거는 1번쨰 그래픽카드의 전력 설정입니다. 0의 숫자를 바꿔가며 그래픽카드별로 전력 설정을 바꿀 수 있습니다. 저는 일단 튜닝이 귀찮아 130으로 맞췄습니다. 

해당 장비에 그래픽카드가 총 4장이 있어서 

sudo nvidia-smi -pm 1

sudo nvidia-smi -i 0 -pl 130

sudo nvidia-smi -i 1 -pl 130

sudo nvidia-smi -i 2 -pl 130

sudo nvidia-smi -i 3 -pl 130

로 설정하였습니다. 

xinit 부분부터 설명을 드리겠습니다. xinit명령은 xorg를 통해 원격으로 그래픽 카드의 코어클럭 및 메모리 클럭의 제어가 가능하도록합니다. 

xinit /usr/bin/nvidia-settings -a [gpu:0]/GpuPowerMizerMode=1 -a [gpu:0]/GPUGraphicsClockOffset[4]=-500 -a [gpu:0]/GPUMemoryTransferRateOffset[4]=2000 -a [gpu:0]/GPUFanControlState=1 -a [fan:0]/GPUTargetFanSpeed=65 -a [fan:1]/GPUTargetFanSpeed=65

/usr/bin/nvidia-settings 이 프로그램으로 실질적인 제어를 합니다. -a는 항목을 뜻하는 옵션입니다. 

[gpu:0]/GpuPowerMizerMode=1 gpu0번의 파워마이저모드를 활성화 한다. 

 [gpu:0]/GPUGraphicsClockOffset[4]=-500 gpu0번의 코어클럭을 -500으로 한다. [4]는 그래픽 카드의 종류마다 숫자가 다른데 3천번대는 4번을 사용합니다. 

[gpu:0]/GPUMemoryTransferRateOffset[4]=2000 gpu0번의 메모리 클럭을 +2000으로 한다.(에프터버너의 1000MH) 

[gpu:0]/GPUFanControlState=1 gpu 0번의 팬 컨트롤 모드를 활성화 한다. 

[fan:0]/GPUTargetFanSpeed=65 fan0 번의 속도를 65%로 한다.

팬은 0번부터 쭉 올라가는 방식이며 GPU 1개당 2개(3팬이어도) 있다고 보시면 됩니다. 따라서 0번 GPU는 0 , 1 / 1번GPU는 2, 3 이런 방식입니다. 

[fan:1]/GPUTargetFanSpeed=65  fan1번의 속도를 65%로 한다. 

해당 줄 맨 뒤에 나오는  \ 는 편집을 용이하게 하기 위해 명령어가 줄바꿈 되었다는 표시입니다. 

GPU 갯수에 맞춰 편집하시고 마지막에  -- :1 -once 를 붙여주시고 저장하시면 됩니다. 

편집이 완료 되셨다면 

chmod 755 init_ethminer.sh

명령어를 실행하여 실행가능한 배치 파일로 바꿔주시고 

sudo ./init_ethminer.sh

를 실행하여 위 설정값을 적용하시면 됩니다. 

ethminer 구동전에 꼭 해주셔야 합니다. 전력 부족방지 및 오버클럭을 위해. 

 

====================================================================

ethminer 컴파일을 위한 과정

sudo apt-get install git mesa-common-dev cmake

위 명령어를 실행하여 필요한 소프트웨어를 설치합니다.

mkdir ethminer && cd ethminer

ethminer 소스를 받기위한 폴더를 생성하고 해당폴더로 이동합니다.

git clone https://github.com/ethereum-mining/ethminer .

명령어를 실행하여 소스코드를 받습니다. 

git submodule update --init --recursive

서브모듈 소스코드도 다 받습니다. 3천번대 패치가 있음으로 필수적으로 받아야 합니다. 

mkdir build && cd build

컴파일 결과물을 만들 폴더를 만들고 해당폴더로 이동합니다.

cmake .. -DETHASHCUDA=ON -DETHASHCL=OFF

cmake --build .

위 두 명령어를 각각 실행합니다. 각각 시간이 좀 걸립니다. 

sudo make install

이제 최종 설치를 진행합니다. /usr/bin에 ethminer 실행파일이 들어가기 때문에 그냥 실행이 가능합니다. 

cd

위 명령어를 실행하여 유저 최상위 폴더로 이동합시다. 

nohup ethminer -U -P stratum1+tcp://지갑주소.워커명@asia1.ethermine.org:14444 &

위의 명령어를 실행하면 ethermine.org의 풀을 사용하여 실행이 됩니다. 

(워커명은 채굴기별로 구분짓기 위한것 임으로 아무거나 넣어도 됩니다만 채굴기별로 다르게 설정해 주셔야 하고 지갑의 경우 이더마인풀에서 일정양 이상 채굴 후 이동시키는 자기 지갑주소 입니다. 저같은 경우 거래소 지갑주소를 사용합니다.)

ethminer가 백그라운드에서 실행하도록 하는 명령어 입니다. 

퀘이사존

위 이미지에서 처럼 nohup.out에 실행 결과가 출력됩니다. 

tail -f nohup.out 

명령어를 실행하여 모니터링 할 수 있습니다. 

퀘이사존

==========================================================

위의 모든 과정을 진행하셨다면 장비가 켜진 후에 

sudo ./init_ethminer.sh

nohup ethminer -U -P stratum1+tcp://지갑주소.워커명@asia1.ethermine.org:14444 &

두 명령만 순차적으로 실행하시면 오버클럭과 채굴을 시작하실 수 있습니다. 

==============================================================

두서없이 쓰다보니 이해가 어려우실 것 같아서 좀 걱정이네요. 조금이나마 도움이 됐으면 합니다. 

댓글: 12

추천 분류 제목 닉네임 조회수 날짜
0 질문

3060 해시값이 반토막 나네요.....

퀘이사존 user_520173
12 05:50
0 질문

해쉬값이 0.3정도 내려갔는데 원래 흔들리는건가요?

퀘이사존 psnow
20 05:39
0 질문

3070 2대중 1대가 마이너 작동이 안됩니다.

퀘이사존 AdultVideo
27 05:13
0 잡담

지극히 개인적이지만 이더가떨어지면 무조건삼 ㅋ

퀘이사존 또영이파파
69 05:07
0 잡담

코인이 빠지는 이유야 복합적이겠지만..

퀘이사존 Naar
136 04:25
0 잡담

이제 6700xt 한대값만 남았네요

퀘이사존 현장네고자제요
121 03:42
0 잡담

현시점 채굴 CPU or 메인보드 추천 드립니다.

퀘이사존 홈런샷
79 03:41
1 잡담

(뇌피셜주의) 제생각엔 대충 6,70프로까진 떨구지 않을까합니다 2

퀘이사존 호있호있
265 03:17
2 잡담

기본적이고도 간단하지만 매우 중요한 팁 알려드립니다 1

퀘이사존 레이무
239 03:05
0 잡담

이더리움 계속 떨어지네요 6

퀘이사존 임포스터
325 03:02
0 질문

3060 인코렉트.. 어떻게 해야할까요 2

퀘이사존 user_520134
101 02:43
0 잡담

와.. 아직 여름도아닌데 더위가 장난아니네요ㅣ; 2

퀘이사존 제티말랑코
139 02:41
1 잡담

채굴량 반토막패치는 7월14일예정입니다 3

퀘이사존 언리얼
452 02:18
0 잡담

써멀 패드 얼추 성공한 것 같습니다.

퀘이사존 아라랏산
99 02:07
0 사이다

Rtx 2060 8웨이 사용중인데 온도 유독 낮은gpu는 문제될게 없나요? 2

퀘이사존 user_518886
93 01:53
0 잡담

패드 상태 어떤가요? 6

퀘이사존 아라랏산
190 01:01
0 잡담

이더 채굴량 변동이 왜 심하나요~? 7

퀘이사존 삼더리움
550 00:54
0 질문

채굴 이렇게 냅둬도 문제 없을까요?

퀘이사존 user_486255
242 00:52
0 질문

갑자기 글카 성능이 이렇게 바뀔수가 있나요???? 3

퀘이사존 개미는오늘도뚠뚠
371 00:43
0 잡담

와 일단 B550m 박격포 글카 2개 설치 성공했습니다.!!ㅠㅠ 5

퀘이사존 하롱이
161 00:42
1 질문

3090슈프림 채굴 세팅 도움필요해요.. 6

퀘이사존 user_520086
158 00:32
0 사이다

마풀허 사용하시는 분들 레이븐이나 이클로 환전해서 전송 하시나요? 8

퀘이사존 사루만
220 00:31
0 사이다

그래픽카드 파워 8핀 하나만 끼워도 되너요? 3

퀘이사존 BenzP7
225 00:23
0 잡담

채린이 인사 드립니다. 1

퀘이사존 user_517578
94 00:16
0 잡담

와.. 이젠 해시 얼마안나오는 1070ti도 가격이 상당하네요 ㅋㅋㅋ 4

퀘이사존 2070FE
340 00:11
0 잡담

ASUS TUF RX 6700 XT 그래픽카드 사용기(이벤트 참여)

퀘이사존 user_459978
151 00:07
2 잡담

엔비디아 주식 떡상하겠네요 7

퀘이사존 RTX3090FEx2
616 00:06
0 잡담

슬슬 시즌종료대비하고있읍니다.

퀘이사존 user_453159
465 05-15
0 잡담

리플 가즈아 4

퀘이사존 쇼티준한
138 05-15
1 잡담

하다 하다 이젠 채굴하는 시뮬레이션 게임도 나왔네요.. 4

퀘이사존 Antaka
302 05-15

신고하기

신고대상


신고사유

투표 참여자 보기