Пошаговая настройка Ubuntu для майнинга в автоматическом режиме с удаленным контролем
Приветствую, Хабрачитатель.В этой статье я постараюсь подробно изобразить последовательность действий, которую нужно совершить для настройки фермы генерации Биткоинов на базе Ubuntu 11.04. Безусловно, такой информации в сети более чем достаточно, но я постараюсь описать полностью завершенный и отлаженный процесс, неоднократно испробованный лично и затрону некоторые нюансы, касающиеся тонкой настройки системы.
О самих биткоинах, их целессообразности и будущем пусть каждый делает выводы по своему усмотрению, я же в данной статье буду иметь дело только с технической стороной вопроса.
Вводные данные
Будем считать что у нас уже имеется системный блок с одной или несколькими видеокартами ATI серии 5xxx или 6xxx (с Nvidia тут делать нечего) и установленная Ubuntu Linux. Я использовал последнюю 64 битную версию и все ссылки ниже в коде даны для этой версии софта, хотя их не сложно будет привести к 32 битной, если возникнет такая необходимость.
Обновление системы и установка необходимых пакетов.
Последовательно вводим команды, при необходимости — пароль администратора:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get remove nvidia-common
sudo apt-get install libqtgui4 python-setuptools python-numpy subversion g++ libboost-all-dev
Устанавливаем драйвера видео
cd ~
wget http://www2.ati.com/drivers/linux/ati-driver-installer-11-6-x86.x86_64.run
sudo sh ati-driver-installer-11-6-x86.x86_64.run --buildpkg Ubuntu/natty
sudo dpkg -i *.deb
sudo apt-get -f install
sudo aticonfig -f --initial --adapter=all
sudo reboot
Здесь нужно заметить, что версия драйвера используется не самая последняя и на то есть причины — при использовании последней на данный момент 11.7 многие отмечали серьезную загрузку центрального процессора, одного или сразу всех ядер. Прироста проиводительности это не даст, а лишнюю нагрузку на блок питания — запросто.
Устанавливаем python-jsonrpc
cd ~
svn checkout http://svn.json-rpc.org/trunk/python-jsonrpc
cd python-jsonrpc/
sudo python setup.py install
Если не работает основной svn, скачать архив можно отсюда
Устанавливаем AMD APP SDK 2.4
cd ~
wget http://download2-developer.amd.com/amd/APPSDK/AMD-APP-SDK-v2.4-lnx64.tgz
tar xvzf AMD-APP-SDK-v2.4-lnx64.tgz
echo export AMDAPPSDKROOT=${HOME}/AMD-APP-SDK-v2.4-lnx64/ >> ~/.bashrc
echo export AMDAPPSDKSAMPLESROOT=${HOME}/AMD-APP-SDK-v2.4-lnx64/ >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=${AMDAPPSDKROOT}lib/x86_64:${LD_LIBRARY_PATH}' >> ~/.bashrc
source ~/.bashrc
cd /
sudo tar xfz $AMDAPPSDKROOT/icd-registration.tgz
На данный момент доступна версия AMD APP SDK 2.5, но лично я ее проверить в работе еще не успел, поэтому и советовать не рискну.
Устанавливаем pyopencl-0.92
cd ~
wget http://pypi.python.org/packages/source/p/pyopencl/pyopencl-0.92.tar.gz
tar xzvf pyopencl-0.92.tar.gz
cd pyopencl-0.92
./configure.py --cl-inc-dir=${AMDAPPSDKROOT}include --cl-lib-dir=${AMDAPPSDKROOT}lib/x86_64
make
sudo make install
Установка майнера, подключение к пулу и настройка стартового скрипта
В этом месте каждый решает сам для себя, какой программой-майнером пользоваться и к какому совместному пулу подключаться. И тех и других достаточное количество, я остановился на Phoenix Miner в качестве первого и deepbit.net в качестве второго.
Устанавливаем и допиливаем Phoenix Miner 1.50
cd ~
wget http://svn3.xp-dev.com/svn/phoenix-miner/files/phoenix-1.50.tar.bz2
tar xvf phoenix*.bz2
Это базовая установка, для начала можно оставить как есть, но желающим получить дополнительный прирост производительности порядка 3-4% советую посетить следующую ветку форума
Регистрация в пуле совместного майнинга
Выбор пула — дело сугубо индивидуальное, как вариант дальше я рассматриваю deepbit. Регистрируемся здесь deepbit.net и создаем воркеров по количеству имеющихся видеокарт. Отличаться они будут хвостом логина (он же передается как параметр в скрипте, поэтому советую делать 0, 1 и т.д.) Пароль к воркерам проще делать одинаковый.
Создаем стартовый скрипт
cd ~
sudo touch /usr/local/bin/startminer.sh
sudo chmod 755 /usr/local/bin/startminer.sh
sudo gedit /usr/local/bin/startminer.sh
Собственно, сам скрипт с комментариями
# далее вместо user подставляем имя пользователя в ubuntu, ниже адрес пула, тело логина и пароль
HOMEDIR=/home/user
MINERSERV=pit.deepbit.net:8332
MINERUSER=login_${1}
MINERPASS=password
export AMDAPPSDKROOT=${HOMEDIR}/AMD-APP-SDK-v2.4-lnx64/
export AMDAPPSDKSAMPLESROOT=${HOMEDIR}/AMD-APP-SDK-v2.4-lnx64/
export LD_LIBRARY_PATH=${AMDAPPSDKROOT}lib/x86_64:${LD_LIBRARY_PATH}
#разгоняем GPU до 875Mhz или больше руководствуясь здравым смыслом и рабочими частотами, частоту памяти наоборот, понижаем до 300
DISPLAY=:0 aticonfig —od-enable —adapter=all
DISPLAY=:0 aticonfig —od-setclocks=875,300 —adapter=${1}
#можно больше или меньше, температура желательна не больше 80 по Цельсию
DISPLAY=:0.${1} aticonfig —pplib-cmd «set fanspeed 0 50»
cd ${HOMEDIR}/phoenix-1.50
echo «Startming Miner: ${1}»
${HOMEDIR}/phoenix-1.50/phoenix.py -u http://${MINERUSER}:${MINERPASS}@${MINERSERV} -k phatk VECTORS BFI_INT AGGRESSION=13 WORKSIZE=128 DEVICE=${1}
Настраиваем скрипты загрузки и удаленный мониторинг
При выполнении следующих действий необходимо учитывать, что при следующей загрузке графической оболочки больше не будет и все дальнейшие корректировки можно будет производить только в консоли или удаленно по ssh.
sudo apt-get install ssh screen
sudo mv /etc/init/gdm.conf /etc/init/gdm.org
sudo gedit /etc/init/startx.conf
Скрипт startx.confdescription "Start X Server for btc mining"
start on runlevel [2345]
stop on runlevel [!2345]
kill timeout 30
script
exec /usr/bin/X 2>&1
end script
Создаем еще один или несколько файлов конфигурации (по количеству видеокарт — btcminer_0.conf, btcminer_1.conf и т.д. Содержание их идентично.description "Start BTC Mining"
start on runlevel [2345]
stop on runlevel [!2345]
kill timeout 30
script
#вместо user подставляем имя пользователя
sleep 30
exec /usr/bin/screen -dmS gpu0 su -c '/usr/local/bin/startminer.sh 0' ${LOGINUSER}
end script
Если системный блок подлючен к роутеру и получает DHCP адрес — одной проблемой меньше, если же он подключается по pppoe или Wi-Fi — могу порекомендовать следующую статью по настройке сетевых интерфейсов из консоли:
настройка сети вручную
Вот, собственно, и все. В качестве финальных штрихов устанавливаем в BIOS автоматический старт при отключении электричества и отключение ошибок при отсутствии клавиатуры. Можно отключить периферию и монитор — они нам больше не нужны.
Список некоторых полезных команд для удаленного мониторинга:
#мониторим работу майнераsudo screen -r gpu0
#если несколько видеокартsudo screen -r gpu1
и т.д.
Для отключения нажимаем Control-A + Control-D.
#мониторим температуру видеокартDISPLAY=:0 sudo aticonfig --odgt --adapter=all
#обороты кулера видеокарты смотрим так DISPLAY=:0.0 sudo aticonfig --pplib-cmd "get fanspeed 0"
DISPLAY=:0.1 для второй видеокарты и т.д.
#устанавливаем скорость вращения кулера видеокарты, где 50 — обороты в %DISPLAY=:0.0 sudo aticonfig --pplib-cmd "set fanspeed 0 50"
Майнинг на Ubuntu и мониторинг
Сегодня мы «хайпанем немножечко». В мае 2017 майнинг стал столь популярным, что уже у бабушек фермы с видеокартами начали вытеснять рассаду на балконах. И все это из-за сверхприбылей, которые в мае-июне позволяли окупать вложения за 3 месяца, даже с учетом диких наценок на комплектующие. Я тоже решил вспомнить молодость и собрать конструктор под названием ферма для майнинга. Но, как оказалось, это было самое простое. С софтом проблем оказалось много больше.
Кому просто интересны цифры, они есть.
Хоть я и осилил 60 уроков “Соло на клавиатуре”, много печатать по-прежнему не люблю. Поэтому коротко: все майнеры сидели на винде. Проблема номер один: если карточку перегнать, система начинает настолько дико тормозить, что даже перезагрузить машину становится довольно тяжело. Ну, и, проблема номер два: удаленно управлять кроме как через TeamViewer, по-сути, нечем. RDP как-то туго заводился, с учетом того, что к системе не было подключено монитора.
Выход был простым — попробовать Linux. После некоторого шаманства, я смог завести на машине Ubuntu Server 16.04, установил драйнера на карточки. Запустил майнер Claymore настроенный на NanoPool. Все работает – круто! Никакой винды, счастью нет предела. На машинку захожу через ssh [email protected]
и смотрю все, что мне нужно. Дальше началось шаманство с разгоном карточек NVIDIA, ведь без разгона они дают так называемый Hashrate около 19 с карточки, а с разгоном около 23. Выяснилось, что разгонять можно через утилиту
. Только вот эта штука требует запущенных иксов. А у нас Ubuntu Server. Окей, делаем workaround — запускаем в фоне иксы, и утилита отрабатывает. Правда, если вы до этого сгенерировали верный Xorg.conf
. Даю по памяти +800Mhz как на винде в MSI Afterburner – хэшрейт намного ниже. Не понимаю в чем проблема. Методом тыка выяснется, что в линуксе чтобы дать эквивалент в +800 на винде, нужно выставить где-то +1500. И получаем те же заветные 23 мегахэша. Далее нужно сделать, чтобы все это дело запускалось при старте системы.
Для этого создаем файл демона
.
[Unit]
Description=Claymore Miner
After=network.target
[Service]
User=deploy
WorkingDirectory=/home/deploy/claymore
ExecStart=/home/deploy/claymore/start.sh
Restart=always
RestartSec=60
[Install]
WantedBy=multi-user.target
Кодим файлик start.sh
.
#!/bin/sh
notify() {
curl https://api.telegram.org/bot***/sendMessage -d "chat_id=***" -d "text=${1}"
}
EMAIL="[email protected]"
ETH_WALLET="0x837ddd8528fa1961e960704ca4ed5bcdf9603685"
SC_WALLET="b77c4bdce8033e61a33352773156a91e385efa62f5a130bfa8fcca4f58559d5979ac158d52e6"
HOSTNAME=`uname -n`
SERVER_IPS=`ip -o -4 addr list | grep -v 127.0.0.1 | awk '{print $4}' | tr '\n' ' ' | sed -e 's/\s*$//'`
notify "Starting miner on ${HOSTNAME} located at ${SERVER_IPS}"
# overclock
sudo X :1 &
for i in $(seq 0 5); do
sudo nvidia-settings --display :1 -a "[gpu:$i]/GPUFanControlState=1" -a "[fan:$i]/GPUTargetFanSpeed=80"
sudo nvidia-settings --display :1 -a "[gpu:$i]/GPUMemoryTransferRateOffset[3]=1500"
sudo nvidia-settings --display :1 -a "[gpu:$i]/GPUGraphicsClockOffset[3]=50"
sleep 5
done
# start claymore
export GPU_FORCE_64BIT_PTR=0
export GPU_MAX_HEAP_SIZE=100
export GPU_USE_SYNC_OBJECTS=1
export GPU_MAX_ALLOC_PERCENT=100
export GPU_SINGLE_ALLOC_PERCENT=100
if [ -z "$SC_WALLET" ]; then
COMMAND="./ethdcrminer64 -epool eth-eu1.nanopool.org:9999 -ewal ${ETH_WALLET}.${HOSTNAME}/${EMAIL} -epsw x -mode 1 -ftime 10 -tt -80 -ttli 75 -tstop 80 -r 1"
else
COMMAND="./ethdcrminer64 -epool eth-eu1.nanopool.org:9999 -ewal ${ETH_WALLET}.${HOSTNAME}/${EMAIL} -epsw x -dcoin sia -dpool sia-eu1.nanopool.org:7777 -dwal ${SC_WALLET}/${HOSTNAME}/${EMAIL} -dpsw x -ftime 10 -tt -80 -ttli 75 -tstop 80 -r 1 -dcri 20 -ttdcr 70"
fi
notify "${COMMAND}"
$COMMAND
Далее systemctl enable claymore
и systemctl start claymore
.
Думаю, суть понятна. Скрипт запусился — кричим об этом в телеграм. Разгоняем все 6 карточек по очереди, запустив перед этим иксы. Затем, запускаем Claymore в соло или дуал майнинге. Не хватает лишь мониторинга. Вдруг температура выросла или хэшрейт упал, как об этом узнать. Окей, пишу свой первый в жизни скрипт на питоне. Правда, перед этим сначала лезу в доку Claymore чтобы посмотреть API. Но там пишут, мол, лень писать доку по API, юзайте tcpdump
или Wireshark и сами разберетесь. Удивился, но что делать, пришлось скачать Wireshark и посмотреть, что за пакетики там летают. Оказалось, там JSON RPC.
#!/usr/bin/env python
import socket
import json
import requests
def notify(text):
url = "https://api.telegram.org/bot***/sendMessage"
payload = {
'chat_id': '***',
'text': text
}
r = requests.post(url, data=payload)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('127.0.0.1', 3333))
s.sendall('{"id":0,"jsonrpc":"2.0","method":"miner_getstat1"}.')
s.shutdown(socket.SHUT_WR)
response = ''
while 1:
data = s.recv(1024)
if not data:
break
response += data
s.close()
json = json.loads(response)
rate_string = json['result'][3].split(';')
for rate in rate_string:
if int(rate) > 18000:
continue
notify(response)
break
temp_string = json['result'][6].split(';')
for i, temp in enumerate(temp_string):
if i % 2 != 0 or int(temp) < 70:
continue
notify(response)
break
А питон не так уж и плох! На этом этапе я остановился и забыл на пару дней про ферму. Не считая того, что я хотел возможность логиниться на нее из любой точки, а не только из локальной сети, поэтому мне пришлось понднять OpenVPN сервер на своем VPS и сделать, чтобы ферма при загрузке коннектилась к этому серверу. Таким образом, подключивишь с ноута к VPN я мог зайти на ферму, даже находясь в сотнях киллометров от нее. И это все за NAT без белого IP. Лучше способа просто не придумал.
В общем, через несколько дней мне сообщают, что вышел апдейт майнера EthMiner, который позволяет повысить хэшрейт на карточках 1060. Правда его даже в паблик еще не выкинули. Пришлось пойти на GitHub, склонировать репозиторий, скопилировать этот майнер. Проверяю – реально работает быстрее. Только вот API у него уже нет. А мониторить как-то надо. В итоге решаю написать Wrapper на Ruby, который слушает STDOUT от майнера, дергает оттуда хэшрейт и решает, насколько все хорошо. Плюс параллельно он дергает стату с карточек, типа температуры и мощности и при возникновении отклонений сигнализирует об этом мне в телеграм.
Конечный скрипт получился таким.
#!/usr/bin/env ruby
require 'open3'
require 'timeout'
require 'logger'
require 'uri'
require 'net/http'
require 'openssl'
STDOUT.sync = true
Thread.abort_on_exception = true
$log = Logger.new(STDOUT)
$log.level = Logger::INFO
$log.formatter = proc do |severity, datetime, progname, msg|
"#{msg}\n"
end
$notifications = []
$last_notify = 0
$total_rate = 0
$total_count = 0
def notify(text)
$log.warn "Notify: #{text}"
$notifications << text
return if Time.now.to_i - $last_notify < 300
url = 'https://api.telegram.org/bot***/sendMessage'
params = {
chat_id: ***,
text: $notifications.join("\n---\n")
}
puts url
puts params
uri = URI.parse(url)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = (uri.scheme == 'https')
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new(uri)
request.set_form_data(params)
response = http.request(request)
puts response.body
$notifications = []
$last_notify = Time.now.to_i
end
def smi_check
Timeout::timeout(10) do
smi = `nvidia-smi --format=csv,noheader --query-gpu=index,pstate,fan.speed,temperature.gpu,power.draw,utilization.memory,utilization.gpu,memory.used,memory.total,clocks.current.graphics,clocks.max.graphics,clocks.current.memory,clocks.max.memory`.strip
$log.info smi
$log.info "Avg rate: #{($total_rate / $total_count).round(2)}"
need_notify = false
if smi.include?('Unable to determine')
notify 'Reboot because GPU is lost'
`sudo shutdown -r now`
return
end
smi.lines.each do |line|
index, pstate, fan, temp, power = line.split(',').map(&:strip)
need_notify = true if power.to_f < 60
need_notify = true if temp.to_f > 70
end
notify smi if need_notify
end
rescue Timeout::Error
notify 'Reboot because of smi timeout'
`sudo shutdown -r now`
end
observer = Thread.new do
sleep(60)
while true
smi_check
sleep(30)
end
end
Open3.popen2e('./start.sh') do |stdin, stdout_err, wait_thr|
started_at = Time.now.to_i
enabled = false
low_rates = 0
while line = stdout_err.gets
$log.info line
match = /: (.+)MH\/s/.match(line)
if match
rate = match[1].to_f
$total_rate += rate
$total_count += 1
if rate.to_f < 120
low_rates += 1
else
enabled = true
low_rates = 0
end
end
if low_rates > 1000
if enabled
notify 'Stop current process because of low rate'
break
elsif Time.now.to_i - started_at > 300
notify 'Reboot machine because of bad run'
`sudo shutdown -r now`
end
end
end
$log.warn 'Exit process'
exit 1
end
Сам скрипт start.sh
похож на первоначальный.
#!/bin/bash
notify() {
curl -s https://api.telegram.org/bot***/sendMessage -d "chat_id=***" -d "text=${1}"
}
WALLET="0x837ddd8528fa1961e960704ca4ed5bcdf9603685"
HOSTNAME=`uname -n`
EMAIL="[email protected]"
SERVER_IPS=`ip -o -4 addr list | grep -v 127.0.0.1 | awk '{print $4}' | tr '\n' ' ' | sed -e 's/\s*$//'`
notify "Starting ${HOSTNAME} @ ${SERVER_IPS}"
# overclock
sudo nvidia-smi -pm 1
sudo nvidia-smi -pl 80
sudo X :1 &
CORE_CLOCK=(0 0 0 0 0 0)
MEM_CLOCK=(1500 1000 1500 1500 1500 1500)
for i in $(seq 0 5); do
sudo nvidia-settings --display :1 -a "[gpu:$i]/GPUPowerMizerMode=1"
sudo nvidia-settings --display :1 -a "[gpu:$i]/GPUGraphicsClockOffset[3]=${CORE_CLOCK[$i]}"
sudo nvidia-settings --display :1 -a "[gpu:$i]/GPUMemoryTransferRateOffset[3]=${MEM_CLOCK[$i]}"
sudo nvidia-settings --display :1 -a "[gpu:$i]/GPUFanControlState=1" -a "[fan:$i]/GPUTargetFanSpeed=80"
sleep 1
done
# start
export GPU_FORCE_64BIT_PTR=0
export GPU_MAX_HEAP_SIZE=100
export GPU_USE_SYNC_OBJECTS=1
export GPU_MAX_ALLOC_PERCENT=100
export GPU_SINGLE_ALLOC_PERCENT=100
COMMAND="./ethminer --farm-recheck 200 -U -S eth-eu1.nanopool.org:9999 -FS eth-eu2.nanopool.org:9999 -O ${WALLET}.${HOSTNAME}/${EMAIL}"
echo $COMMAND
notify "${COMMAND}"
$COMMAND
Ах, да. Много проблем было с тем, что возникала проблема с карточками, будто бы им дали слишком много разгона. В итоге оказалось, что у нас попалась одна карточка на памти от Hynix, и она совсем не держала цифры, которые держали другие карточки на памяти Samsung. Поэтому решением стало просто уменьшение разгона на конкретной карточке, и все проблемы исчезли.
lysenkooo.ru
Пошаговая настройка Ubuntu для майнинга в автоматическом режиме с удаленным контролем
Пошаговая настройка Ubuntu для майнинга в автоматическом режиме с удаленным контролемВ этой статье я постараюсь подробно изобразить последовательность действий, которую нужно совершить для настройки фермы генерации Биткоинов на базе Ubuntu 11.04. Безусловно, такой информации в сети более чем достаточно, но я постараюсь описать полностью завершенный и отлаженный процесс, неоднократно испробованный лично и затрону некоторые нюансы, касающиеся тонкой настройки системы.
О самих биткоинах, их целессообразности и будущем пусть каждый делает выводы по своему усмотрению, я же в данной статье буду иметь дело только с технической стороной вопроса.
отсюда
Устанавливаем AMD APP SDK 2.4
cd ~
wget http://download2-developer.amd.com/amd/APPSDK/AMD-APP-SDK-v2.4-lnx64.tgz
tar xvzf AMD-APP-SDK-v2.4-lnx64.tgz
echo export AMDAPPSDKROOT=${HOME}/AMD-APP-SDK-v2.4-lnx64/ >> ~/.bashrc
echo export AMDAPPSDKSAMPLESROOT=${HOME}/AMD-APP-SDK-v2.4-lnx64/ >> ~/.bashrc
echo ‘export LD_LIBRARY_PATH=${AMDAPPSDKROOT}lib/x86_64:${LD_LIBRARY_PATH}’ >> ~/.bashrc
source ~/.bashrc
cd /
sudo tar xfz $AMDAPPSDKROOT/icd-registration.tgz
На данный момент доступна версия AMD APP SDK 2.5, но лично я ее проверить в работе еще не успел, поэтому и советовать не рискну.
Устанавливаем pyopencl-0.92
cd ~
wget http://pypi.python.org/packages/source/p/pyopencl/pyopencl-0.92.tar.gz
tar xzvf pyopencl-0.92.tar.gz
cd pyopencl-0.92
./configure.py —cl-inc-dir=${AMDAPPSDKROOT}include —cl-lib-dir=${AMDAPPSDKROOT}lib/x86_64
make
sudo make install
Установка майнера, подключение к пулу и настройка стартового скрипта
В этом месте каждый решает сам для себя, какой программой-майнером пользоваться и к какому совместному пулу подключаться. И тех и других достаточное количество, я остановился на Phoenix Miner в качестве первого и deepbit.net в качестве второго.
Устанавливаем и допиливаем Phoenix Miner 1.50
cd ~
wget http://svn3.xp-dev.com/svn/phoenix-miner/files/phoenix-1.50.tar.bz2
tar xvf phoenix*.bz2
Это базовая установка, для начала можно оставить как есть, но желающим получить дополнительный прирост производительности порядка 3-4% советую посетить следующую ветку форума bitcointalk.org
Регистрация в пуле совместного майнинга
Выбор пула — дело сугубо индивидуальное, как вариант дальше я рассматриваю deepbit. Регистрируемся здесь deepbit.net и создаем воркеров по количеству имеющихся видеокарт. Отличаться они будут хвостом логина (он же передается как параметр в скрипте, поэтому советую делать 0, 1 и т.д.) Пароль к воркерам проще делать одинаковый.
Создаем стартовый скрипт
cd ~
sudo touch /usr/local/bin/startminer.sh
sudo chmod 755 /usr/local/bin/startminer.sh
sudo gedit /usr/local/bin/startminer.sh
Собственно, сам скрипт с комментариями
# ${1} используется как переменная для логина и видеокарты, если их несколько
# далее вместо user подставляем имя пользователя в ubuntu, ниже адрес пула, тело логина и пароль
HOMEDIR=/home/user
MINERSERV=pit.deepbit.net:8332
MINERUSER=login_${1}
MINERPASS=password
export AMDAPPSDKROOT=${HOMEDIR}/AMD-APP-SDK-v2.4-lnx64/
export AMDAPPSDKSAMPLESROOT=${HOMEDIR}/AMD-APP-SDK-v2.4-lnx64/
export LD_LIBRARY_PATH=${AMDAPPSDKROOT}lib/x86_64:${LD_LIBRARY_PATH}
#разгоняем GPU до 875Mhz или больше руководствуясь здравым смыслом и рабочими частотами, частоту памяти наоборот, понижаем до 300
DISPLAY=:0 aticonfig —od-enable —adapter=all
DISPLAY=:0 aticonfig —od-setclocks=875,300 —adapter=${1}
#устанавливаем обороты кулера на 50 процентов
#можно больше или меньше, температура желательна не больше 80 по Цельсию
DISPLAY=:0.${1} aticonfig —pplib-cmd «set fanspeed 0 50»
cd ${HOMEDIR}/phoenix-1.50
echo «Startming Miner: ${1}»
${HOMEDIR}/phoenix-1.50/phoenix.py -u http://${MINERUSER}:${MINERPASS}@${MINERSERV} -k phatk VECTORS BFI_INT AGGRESSION=13 WORKSIZE=128 DEVICE=${1}
Настраиваем скрипты загрузки и удаленный мониторинг
При выполнении следующих действий необходимо учитывать, что при следующей загрузке графической оболочки больше не будет и все дальнейшие корректировки можно будет производить только в консоли или удаленно по ssh.
sudo apt-get install ssh screen
sudo mv /etc/init/gdm.conf /etc/init/gdm.org
sudo gedit /etc/init/startx.conf
Скрипт startx.conf
description «Start X Server for btc mining»
start on runlevel [2345]
stop on runlevel [!2345]
kill timeout 30
script
exec /usr/bin/X 2>&1
end script
Создаем еще один или несколько файлов конфигурации (по количеству видеокарт — btcminer_0.conf, btcminer_1.conf и т.д. Содержание их идентично.
description «Start BTC Mining»
start on runlevel [2345]
stop on runlevel [!2345]
kill timeout 30
script
#вместо user подставляем имя пользователя
LOGINUSER=user
sleep 30
exec /usr/bin/screen -dmS gpu0 su -c ‘/usr/local/bin/startminer.sh 0’ ${LOGINUSER}
end script
Если системный блок подлючен к роутеру и получает DHCP адрес — одной проблемой меньше, если же он подключается по pppoe или Wi-Fi — могу порекомендовать следующую статью по настройке сетевых интерфейсов из консоли:
настройка сети вручную
Вот, собственно, и все. В качестве финальных штрихов устанавливаем в BIOS автоматический старт при отключении электричества и отключение ошибок при отсутствии клавиатуры. Можно отключить периферию и монитор — они нам больше не нужны.
Список некоторых полезных команд для удаленного мониторинга:
#мониторим работу майнера
sudo screen -r gpu0
#если несколько видеокарт
sudo screen -r gpu1 и т.д.
Для отключения нажимаем Control-A + Control-D.
#мониторим температуру видеокарт
DISPLAY=:0 sudo aticonfig —odgt —adapter=all
hlampc.ru
GPU Bitcoin Mining в Ubuntu
BitCoin – инновационная децентрализованная криптовалюта. Очень быстро и познавательно о биткоинах смотрите здесь – What is Bitcoin.
Для поддержания работы платежной системы необходима постоянная добыча биткоинов, т.е. задействование своих вычислительных мощностей для генерации этой валюты. Можно добывать биткоины в одиночку, а можно зарегистрироваться на одном из пулов, к примеру на http://deepbit.net/ и разделять полученный выигрыш между всеми членами пула, поровну в соответствии с вашей вычислительной мощностью.
Биткоины можно использовать на многих сайтах. Вот хотя бы пример баннерообменной сети Bitcoin randomizer. Или обменять на реальные деньги на валютной бирже биткоинов, наиболее популярна Mt Gox.
Под катом – инструкция, как настроить свою видеокарту (nVidia или ATI, обязательна поддержка OpenCL) на добычу биткоинов. Кстати, не откажусь от вознаграждения на Bitcoin-кошелек 1MZyTawkrLNPmGL41idBrbBn2VNVivAhmB
Прежде всего, нужно зарегистрироваться в пуле. Наиболее крупный пул DeepBit.net – http://deepbit.net/. Там вы зарегистрируетесь на свой e-mail, заведете логин и пароль для майнера – добытчика биткоинов.
Если у вас NVidia и Ubuntu, то настройка добычи производится очень просто.
1. Устанавливаем необходимые вспомогательные библиотеки и subversion, чтобы выкачать последнюю версию майнера:
sudo apt-get install python-pyopencl subversion
svn checkout http://svn.json-rpc.org/trunk/python-jsonrpc
cd python-jsonrpc/
sudo python setup.py install
2. Собственно, выкачиваем майнера poclbm – о нем можно почитать на странице вики Bitcoin.it:
mkdir miner
cd miner
wget --no-check-certificate https://github.com/m0mchil/poclbm/raw/master/BitcoinMiner.cl
wget --no-check-certificate https://github.com/m0mchil/poclbm/raw/master/BitcoinMiner.py
wget --no-check-certificate https://github.com/m0mchil/poclbm/raw/master/poclbm.py
3. Ну и наконец, запускаем майнера со своими данными (логином и паролем):
python ./poclbm.py -d 0 -f 100 --host=pit.deepbit.net --port=8332 --user=POOLUSER --pass=POOLPASSWORD &
Чтобы больше не париться, можно прописать эту строку в /etc/rc.local, тогда майнер будет запускаться при загрузке компьютера. Хочу обратить внимание, что слишком заниженное значение latency (указывается во флаге -f, в данном случае 100) приведет к графическим тормозам.
Похожие статьи
- Bitcoin – Ufasoft CPU mining
- Еще один Bitcoin CPU miner для Linux
oioki.ru
Майнинг AE на Ubuntu 18.04
Инструкция создавалась с той целью, чтобы помочь пользователям блокчейна æternity запустить майнинг на тестовой сети и чтобы позволить в дальнейшем осуществить быстрый переход к использованию основной сети (Mainnet) сразу после ее запуска.
I. Подготовка
1. Установите программную среду Erlang на Ubuntu 18.04.
sudo apt‐get install erlang
2. Скачайте пакетный релиз epoch и разархивируйте его.
3. Версия epoch в этой инструкции — 0.22.0
Последний релиз доступен по ссылке.
II. Создание аккаунта получателя
1. Прежде чем создавать кошелек установите соответствующие зависимости библиотеки с поддержкой закрытых ключей.
sudo apt‐get install build‐essential
wget https://download.libsodium.org/libsodium/releases/libsodium‐1.0.16.tar.gz
tar ‐xf libsodium‐1.0.16.tar.gz && cd libsodium‐1.0.16
./configure && make && sudo make install && sudo ldconfig
2. Распакуйте релизный пакет, который вы скачали, и переименуйте название папки в «node» (узел).
3. Перейдите к подпапке «bin», там есть команда выполнения с последовательностью шелл-скрипт, которая называется «epoch»; с ее помощью вы можете сгенерировать счет получателя.
./bin/epoch keys_gen PASSWORD
Паролем (password) может быть все, что угодно. Назначение этого ключа – симметрично зашифровать созданную пару открытых и закрытых ключей. Каждый раз, когда вы пользуетесь аккаунтом, вам нужно расшифровывать открытый ключ с помощью заданного вами пароля.
По завершении генерирования появится новая папка «generated_keys». В папке лежат только что сгенерированные открытые и закрытые ключи.
В этом примере пароль «990», а открытый ключ:
ak_jRUEtyqPNzM7krHWxQir5c2peCLEd8hKhgnCmu6PBHeAvNiKE
III. Конфигурация аккаунта
1. Создайте файл epoch.yaml file в папке «node», внесите следующую информацию о конфигурации. В поле Получатель введите открытый ключ, который вы только что сгенерировали.
2. Используйте скрипт epoch, чтобы проверить правильность конфигурации:
./bin/epoch check_config epoch.yaml
3. Запустите epoch node с помощью этой команды:
ulimit ‐n 50000
./bin/epoch start
Важно: Программу daemon нельзя запускать от root на Ubuntu. Она не будет работать. Прежде чем запустить epoch node, смените пользователя Ubuntu.
4. Проверьте журнал майнинга (mining log).
После запуска epoch node, в каталоге «node» сгенерируется несколько файлов «log/*». Вы можете попробовать отыскать их с помощью соответствующих ключей. В журнале будет храниться информация о новых блоках, которые вы намайнили.
grep “mined” log/epoch_mining*
cryptor.net
Nvidia GTX 1080 — установка и настройка для майнинга на Ubuntu 16.04
Поставил на древнее железо (LGA 775, intel 1 core, 2Gb DDR2) Ubuntu 16.04 Desktop. Однако после перезагрузки система не загрузилась. по сети была недоступна. Если загружать в recovery mode и затем выбирать resume — система загружалась.
После нескольких часов опытов я вывел формулу успеха: добавил опцию в меню grub + установил драйвера с сайта nvidia. В итоге система начала загружаться, и как ни странно успешно майнить ewbf майнером на 2 Гб оперативной памяти. Ниже распишу все по шагам.
- Установка Ubuntu 16.04 Desktop. При установке я вручную размечал диск: один раздел ext4 на весь диск и монтирование в корень /. SWAP я люблю создавать на базе файла: в любой момент им можно легко управлять: менять размер, переносить на другой диск. И делаю это уже после установки системы по командам из статьи Работа со swap в linux (Ubuntu) — по очереди выполняю все команды начиная со второй.
- Если интернет у вас медленный или не безлимитный, рекомендую во время установки отключить компьютер от сети, иначе ubuntu начнет скачивать обновления пакетов.
- После установки необходимо загрузить систему, у меня это получалось 2-мя способами. Первый это выбрать в grub меню пункт recovery mode, затем из списка выбрать resume (продолжить нормальную загрузку системы). Второй способ заключается в добавлении опции загрузки «nouveau.modeset=0». Для этого перезагружаем компьютер, ждем появления выбора ОС (grub меню), выделяем перый пункт и нажимаем клавишу «E» для редактирования (EDIT). в конец строки, начинающейся с linux … добавляем «nouveau.modeset=0» без кавычек и нажимаем F10 для продолжения загрузки.
- Система загрузилась, открываем терминал CTRL+ALT+F1, логинимся под пользователем и переходим в режим суперпользователя
В конец файла /etc/modprobe.d/blacklist.conf добавляем строки# blacklist added by abhay harpale for nvidia gtx 1080 installation on ubuntu 16.04 LTS blacklist amd76x_edac blacklist vga16gb blacklist nouveau blacklist rivafb blacklist nvidiafb blacklist rivatv
# blacklist added by abhay harpale for nvidia gtx 1080 installation on ubuntu 16.04 LTS
blacklist amd76x_edac
blacklist vga16gb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv
Удаляем лишнее (правда у меня и не было ничего установлено)apt-get purge nvidia-* apt autoremove apt-get remove —purge nvidia* dpkg —configure -a
apt-get purge nvidia-*
apt autoremove
apt-get remove —purge nvidia*
dpkg —configure -a
- Добавляем опцию загрузки в grub навсегда. Для этого открываем файл
находим и приводим одну строку к такому видуGRUB_CMDLINE_LINUX_DEFAULT=»quiet splash nouveau.modeset=0″
GRUB_CMDLINE_LINUX_DEFAULT=»quiet splash nouveau.modeset=0″
Сохраняемся (ctrl+x) и обновляем grub
перезагружаемся
- Устанавливаем драйвера с сайта nvidia. Я качал и ставил файл «NVIDIA-Linux-x86_64-384.98.run».
service lightdm stop killall xinit wget http://url_to_file/NVIDIA-Linux-x86_64-384.98.run chmod +x NVIDIA-Linux-x86_64-384.98.run ./NVIDIA-Linux-x86_64-384.98.run
service lightdm stop
killall xinit
wget http://url_to_file/NVIDIA-Linux-x86_64-384.98.run
chmod +x NVIDIA-Linux-x86_64-384.98.run
./NVIDIA-Linux-x86_64-384.98.run
После установки перезагружаемся
- После перезагрузки создаем и подключаем swap файл, добавляем в автозагрузку (в файл /etc/rc.local перед exit 0; добавляем
swapon /swapfile). Примерно так:
$ nano /etc/rc.local swapon /swapfile exit 0
$ nano /etc/rc.local
swapon /swapfile
exit 0
Про майнинг дополню статью немного позже. Но в целом выше перечисленных действий было достаточно, чтобы запустить ewbf 0.3.4b. Все карты увиделись с первого раза.
nlinberg.com
Настройка манинга (mining) на Linux
В данной инструкции описаны шаги, которые потребуется выполнить, чтобы установить майнер на (программа добычи новых монет) ОС Ubuntu. Все сводиться к установке AMD SDK версии 2.1 или 2.4. Все команды вводятся в консоли.
С помощью терминального окна или SSH подключения выполняются следующие команды:
1. sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
2. Введите Ваш пароль, если того попросит система.
3. sudo apt-get update
4. sudo apt-get install screen
5. Сначала поставим на установку пакеты, которые нам понадобятся. Чтобы параллельно установке мы могли скачать еще несколько архивов, запустим установку с помощью команды screen:
screen -S update sudo apt-get install fglrx vim openssh-server g++ libboost-all-dev subversion git-core python-numpy
Данная команда создаст отдельное окно консоли, где будут выполняться обновления.
6. Когда обновления начнут устанавливаться, нажмите CTRL-A , потом “d”. Это приведет к отключению от созданного с помощью команды screen окна и вернет Вас к Вашей командной строке.
7. wget http://download2-developer.amd.com/amd/Stream20GA/icd-registration.tgz
Для версии 2.4 скачивать этот архив не нужно, так как он будет находится внутри архива, который будет скачен дальше.
8. wget http://pypi.python.org/packages/source/p/pyopencl/pyopencl-0.92.tar.gz
9. Скачиваем приложение SDK:
Для 32-битной системы выполняем:
Если устанавливается AMD SDK версии 2.1:
wget http://download2-developer.amd.com/amd/Stream20GA/ati-stream-sdk-v2.1-lnx32.tgz
если же 2.4, то выполняем:
wget http://download2-developer.amd.com/amd/APPSDK/AMD-APP-SDK-v2.4-lnx32.tgz
Для 64-битной системы выполняем:
Версия 2.1:
wget http://download2-developer.amd.com/amd/Stream20GA/ati-stream-sdk-v2.1-lnx64.tgz
Версия 2.4:
wget http://download2-developer.amd.com/amd/APPSDK/AMD-APP-SDK-v2.4-lnx64.tgz
И ждем завершения загрузки.
10. Если скачана 32-битная версия:
2.1:
sudo tar xvfz ati-stream-sdk-v2.1-lnx32.tgz -C /opt
2.4:
sudo tar xvfz AMD-APP-SDK-v2.4-lnx32.tgz -C /opt
Для 64 – битной:
2.1:
sudo tar xvfz ati-stream-sdk-v2.1-lnx64.tgz -C /opt
2.4:
sudo tar xvfz AMD-APP-SDK-v2.4-lnx64.tgz -C /opt
11. Распаковываем icd-registration.tgz. В качестве пути указываем / — корневой каталог, тогда в /etc добавится папка с конфигурационными файлами. Для программы версии 2.1:
sudo tar xvfz icd-registration.tgz -C /
Для 2.4:
sudo tar xvfz /opt/AMD-APP-SDK-v2.4-lnx32/icd-registration.tgz -C /
или, в зависимости от разрядности программы:
sudo tar xvfz /opt/AMD-APP-SDK-v2.4-lnx64/icd-registration.tgz -C /
12. sudo tar zxfv pyopencl-0.92.tar.gz -C /opt
13. screen -r update
13a. Если Вам вывелось сообщение «There is no screen to be resumed» переходите к следующему шагу. В противном случае дождитесь окончания обновления. Когда оно закончится, нажмите Ctrl+d для удаления созданного screen-окна.
14. wget https://eclipsemc.com/files/python-jsonrpc.tar.gz
15. sudo tar xvfz python-jsonrpc.tar.gz -C /opt
16. svn checkout http://svn3.xp-dev.com/svn/phoenix-miner/trunk
17. git clone git://github.com/m0mchil/poclbm poclbm
18. mv trunk phoenix
19. echo export DISPLAY=:0 >> ~/.bashrc
20. cd /opt/pyopencl-0.92
21. В случае 32-бит:
Для программы версии 2.1:
sudo sh -c ‘echo «/opt/ati-stream-sdk-v2.1-lnx32/lib/x86/» >> /etc/ld.so.conf.d/local.conf’
./configure.py —cl-inc-dir=/opt/ati-stream-sdk-v2.1-lnx32/include/ —cl-lib-dir=/opt/ati-stream-sdk-v2.1-lnx32/lib/x86
Версии 2.4:
sudo sh -c ‘echo «/opt/AMD-APP-SDK-v2.4-lnx32/lib/x86/» >> /etc/ld.so.conf.d/local.conf’
./configure.py —cl-inc-dir=/opt/AMD-APP-SDK-v2.4-lnx32/include/ —cl-lib-dir=/opt/AMD-APP-SDK-v2.4-lnx32/lib/x86
64-бита:
Для программы версии 2.1:
sudo sh -c ‘echo «/opt/ati-stream-sdk-v2.1-lnx64/lib/x86_64/» >> /etc/ld.so.conf.d/local.conf’
./configure.py —cl-inc-dir=/opt/ati-stream-sdk-v2.1-lnx64/include/ —cl-lib-dir=/opt/ati-stream-sdk-v2.1-lnx64/lib/x86_64
Версии 2.4:
sudo sh -c ‘echo «/opt/AMD-APP-SDK-v2.4-lnx64/lib/x86_64/» >> /etc/ld.so.conf.d/local.conf’
64-bit 22. ./configure.py —cl-inc-dir=/opt/AMD-APP-SDK-v2.4-lnx64/include/ —cl-lib-dir=/opt/AMD-APP-SDK-v2.4-lnx64/lib/x86_64
22. sudo ldconfig
23. source ~/.bashrc
24. make -j3
25. sudo make install
26. cd ../python-jsonrpc
27. sudo python setup.py install
28. cd ~
29. chmod +x phoenix/phoenix.py poclbm/poclbm.py
30. sudo aticonfig —initial -f —adapter=all
31. sudo reboot
На этом все. Теперь у Вас установлен полностью работающий майнер Phoenix с poclbm. Для проверки работоспособности Вам следует зайти в директорию poclbm:
cd poclbm
и запустить poclbm:
./poclbm.py
Вы должны увидеть Ваш CPU и Ваши графики доступности графических ядер.
Есть еще несколько полезных команд, для работы с видео картами:
Чтобы отобразить температуры на Ваших ядрах, выполните:
aticonfig —odgt —adapter=all
Для отображения тактовой частоты на Ваших ядрах:
aticonfig —odgc —adapter=all
Отобразить или задать скорость вращения вентилятора.
Показать скорость вращения вентилятора:
aticonfig —pplib-cmd «get fanspeed 0»
Задать скорость вращения вентилятора 100%:
aticonfig —pplib-cmd «set fanspeed 0 100»
Показать скорость вентилятора на второй карте:
export DISPLAY=:0.1; aticonfig —pplib-cmd «get fanspeed 0»
Вы можете заменить 1 на 2, 3 и т.д. в соответствии с количеством видеокарт в системе.
Смена тактовых частот. Чтобы задать уровень тактовой частоты ядра 900MHz и тактовую частоту памяти 1000MHz на всех картах (можете изменять по Вашему желанию):
aticonfig —od-setclocks=900,1000 —adapter=all
Чтобы задать эти значения для отдельной карты, поменяйте —adapter=all на номер адаптера, изменения в котором Вы хотите произвести.
Вконтакте
Одноклассники
Мой мир
www.itworkroom.com