Pull to refresh

Пошаговая настройка 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"
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.