Ubuntu майнинг – Пошаговая настройка Ubuntu для майнинга в автоматическом режиме с удаленным контролем

Содержание

Пошаговая настройка 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% советую посетить следующую ветку форума

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

#обороты кулера видеокарты смотрим так
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"

habr.com

Майнинг на Ubuntu и мониторинг

Сегодня мы «хайпанем немножечко». В мае 2017 майнинг стал столь популярным, что уже у бабушек фермы с видеокартами начали вытеснять рассаду на балконах. И все это из-за сверхприбылей, которые в мае-июне позволяли окупать вложения за 3 месяца, даже с учетом диких наценок на комплектующие. Я тоже решил вспомнить молодость и собрать конструктор под названием ферма для майнинга. Но, как оказалось, это было самое простое. С софтом проблем оказалось много больше.

Кому просто интересны цифры, они есть.

Хоть я и осилил 60 уроков “Соло на клавиатуре”, много печатать по-прежнему не люблю. Поэтому коротко: все майнеры сидели на винде. Проблема номер один: если карточку перегнать, система начинает настолько дико тормозить, что даже перезагрузить машину становится довольно тяжело. Ну, и, проблема номер два: удаленно управлять кроме как через TeamViewer, по-сути, нечем. RDP как-то туго заводился, с учетом того, что к системе не было подключено монитора.

Выход был простым — попробовать Linux. После некоторого шаманства, я смог завести на машине Ubuntu Server 16.04, установил драйнера на карточки. Запустил майнер Claymore настроенный на NanoPool. Все работает – круто! Никакой винды, счастью нет предела. На машинку захожу через ssh [email protected] и смотрю все, что мне нужно. Дальше началось шаманство с разгоном карточек NVIDIA, ведь без разгона они дают так называемый Hashrate около 19 с карточки, а с разгоном около 23. Выяснилось, что разгонять можно через утилиту

nvidia-smi. Только вот эта штука требует запущенных иксов. А у нас Ubuntu Server. Окей, делаем workaround — запускаем в фоне иксы, и утилита отрабатывает. Правда, если вы до этого сгенерировали верный Xorg.conf. Даю по памяти +800Mhz как на винде в MSI Afterburner – хэшрейт намного ниже. Не понимаю в чем проблема. Методом тыка выяснется, что в линуксе чтобы дать эквивалент в +800 на винде, нужно выставить где-то +1500. И получаем те же заветные 23 мегахэша. Далее нужно сделать, чтобы все это дело запускалось при старте системы.

Для этого создаем файл демона

/lib/systemd/system/claymore.service.

[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
atibitcoindeepbit.netgpuminerminingnvidiaopenclpoolмайнинг

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 Гб оперативной памяти. Ниже распишу все по шагам.

  1. Установка Ubuntu 16.04 Desktop. При установке  я вручную размечал диск: один раздел ext4 на весь диск и монтирование в корень /. SWAP я люблю создавать на базе файла: в любой момент им можно легко управлять: менять размер, переносить на другой диск. И делаю это уже после установки системы по командам из статьи Работа со swap в linux (Ubuntu) — по очереди выполняю все команды начиная со второй.
  2. Если интернет у вас медленный или не безлимитный, рекомендую во время установки отключить компьютер от сети, иначе ubuntu начнет скачивать обновления пакетов.
  3. После установки необходимо загрузить систему, у меня это получалось 2-мя способами. Первый это выбрать в grub меню пункт recovery mode, затем из списка выбрать resume (продолжить нормальную загрузку системы). Второй способ заключается в добавлении опции загрузки «nouveau.modeset=0». Для этого перезагружаем компьютер, ждем появления выбора ОС (grub меню), выделяем перый пункт и нажимаем клавишу «E» для редактирования (EDIT). в конец строки, начинающейся с linux … добавляем «nouveau.modeset=0» без кавычек и нажимаем F10 для продолжения загрузки.
  4. Система загрузилась, открываем терминал 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

  5. Добавляем опцию загрузки в grub навсегда. Для этого открываем файл

    находим и приводим одну строку к такому виду

    GRUB_CMDLINE_LINUX_DEFAULT=»quiet splash nouveau.modeset=0″

    GRUB_CMDLINE_LINUX_DEFAULT=»quiet splash nouveau.modeset=0″


    Сохраняемся (ctrl+x) и обновляем grub

    перезагружаемся
  6. Устанавливаем драйвера с сайта 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


    После установки перезагружаемся
  7. После перезагрузки создаем и подключаем 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 на номер адаптера, изменения в котором Вы хотите произвести.

Вконтакте

Одноклассники

Мой мир

Facebook

E-mail

www.itworkroom.com

Обновлено: 30.07.2019 — 22:38

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *