Bitcoin: Difference between revisions

From Leo's Notes
This page was last edited on 24 August 2013, at 23:29.
No edit summary
No edit summary
Line 4: Line 4:


https://github.com/jgarzik/pushpool
https://github.com/jgarzik/pushpool
My Bitcoin Address is: 1HDp1gU3rgrRNKqrKorz8uWCpHUNdyGqXm


== CGMiner ==
== CGMiner ==

Revision as of 23:29, 24 August 2013

https://bitcointalk.org/index.php?topic=62842.0

https://docs.google.com/document/d/1Gw7YPYgMgNNU42skibULbJJUx_suP_CpjSEdSi8_z9U/edit

https://github.com/jgarzik/pushpool


My Bitcoin Address is: 1HDp1gU3rgrRNKqrKorz8uWCpHUNdyGqXm

CGMiner

Download the AMD SDK and ADL SDK from:

Extract the archives and copy:

  • AMD-APP-SDK-v2.8.1.0-RC-lnx64/include -> /build_dir/include
  • AMD-APP-SDK-v2.8.1.0-RC-lnx64/lib/x86_64 -> /build_dir/lib
  • ADL-SDK/include/*.h -> /build_dir/cgminer-3.3.4/ADL_SDK/

In the cgminer-3.3.4 source directory, run:

CFLAGS="-O2 -Wall -march=native -I/build_dir/include" LDFLAGS="-L/build_dir/lib" ./configure --prefix=/usr/local/miner --enable-scrypt
make
make install

Since I do not want to install the OpenCL libs, I had to copy them over to /usr/local/miner/libs manually, and run cgminer with the LD_LIBRARY_PATH variable defined:

LD_LIBRARY_PATH=/usr/local/miner/lib ./cgminer  --help



P2Pool

Get the source

git clone git://github.com/forrestv/p2pool.git

Install Dependencies

Either install the packages from yum or from source. The dependencies that are needed are:

  1. Twisted
    1. zope
  2. Argparse

From yum, run:

yum install python-argparse  python-twisted python-twisted-web

Since the Twisted library is somewhat old, you might want to build it from source by getting it from:

  1. https://pypi.python.org/pypi/Twisted#downloads

And also the dependency:

  1. https://pypi.python.org/pypi/zope.interface/4.0.5#downloads

Extract the archives, and run the setup.py script to build. (You will need python-devel and gcc to build)


Running P2Pool

Run run_p2pool.py


#############################################################
####
####  Installing mining Software on CEntOS or Fedora based distributions
####  
####  Currently 2 GPU's working under Centos 6.4 w/SDK 12.7 & Driver 12.3
####  Currently 4 GPU's working under Centos 6.0 w/SDK 12.4 & Driver 11.4
####
####  testing to increase GPU's per motherboard
####  
####  by:  Viceroy who accepts tips at   144RtpxYKbigosiqTyXNwzwtH6Z7s96xUx
####
#############################################################
####
#############################################################
####  Section 0 - Table of Contents
#############################################################
####
####  Section 0		Table of Contents
####  Section 1		Disclaimers
####  Section 2		Setting up CentOS
####  Section 3		Setting up Base Packages
####  Section 4	        Installing ATI Development Kit (SDK)  
####  Section 5         Installing ATI Catalyst Drivers
####  Section 6         Testing ATI Catalyst Drivers
####
#############################################################
####  Section 1 - Disclaimers
#############################################################
####
####  I am not responsible for you using these instructions.  
####
####  If you choose to follow anything you read here that is
####  your problem, not mine.  I have written these instructions
####  for my personal use for my particular machine in an effort 
####  to help me mine bitcoin.  If you follow these instructions 
####  you may or may not have success, neither of which are any 
####  concern of mine because you are the fool who followed me 
####  off the bridge.  I did not push you.
####
####  I am proposing here to build a TOTALLY INSECURE HIGH
####  POWERED PASSWORD CRACKING MACHINE which MAY OR MAY NOT
####  BE LEGAL TO POSESS WHERE YOU LIVE.  If the policeman
####  puts you in jail because you followed what I wrote here
####  that is your fault, not mine.  You need to be aware of 
####  local, national and international laws before you decide
####  to build a high powered password cracker.  If this gets
####  into the wrong hands and it starts a nuclear war and 
####  and some hostile government decides to end the world
####  guess what... that's not my fault either.  
####
####  Be responsible, do no let Kim Jong Un get this machine
####  http://en.wikipedia.org/wiki/Kim_Jong-un
####
#############################################################
####  Section 2 - Setting up Centos
#############################################################
####
####  While at your windows desktop machine you need to 
####  download the ISO from http://vault.centos.org/6.0/isos/
####
####  (I will be using the 64 bit OS from here on out)
####
####  The ISO can be burned to CD, DVD or USB
####
####  (I will burn the ISO to a 2GB+ USB flash drive)
####
####  Download the ISO from:
####  http://vault.centos.org/6.0/isos/x86_64/CentOS-6.0-x86_64-LiveCD.iso
####
####  Download and install Pendrivelinux Windows Software:
####  http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/
####
####  0. Plug in your flash drive and wait for it to register
####
####  1. start pendrivelinux universal USB installer
####  2. selects CentOS from "other distros alphabetically"
####  3. select the CentOS LIVE iso you downloaded
####     (CentOS-6.0-x86_64-LiveCD.iso)
####  4. select your drive letter and format the drive
####  5. safely remove flash drive and plug into new machine
####  6. boot up and install CentOS with the menus
####  7. after intallation log in as root (or su) and:
####	7a. set up network so IP is fixed so you can log in remotely
####	7b. turn on the SSH daemon so you can log in (service sshd start)
####	7c. make sshd starts each time you boot (chkconfig sshd on)
####  8. now I like to go back to my nice desk and chair
####    8a. dowload and install putty so you can talk to your box
####    http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
####    using a new ssh connection, connect to your machine as the
####    user you set up during installation.  (it's a bad idea to log
####    in as root from a remote location).
####   9. while you are sitting there at your desk download and install
####    xming windows xwindow emulator from here:
####    http://sourceforge.net/project/downloading.php?group_id=156984&filename=Xming-6-9-0-31-setup.exe
####  10. modify yum
####
####  cut and paste one command at a time
####

####  become root user
su -

#### change directory to yum repo directory
cd /etc/yum.repos.d

#### move original file to backup
mv -f CentOS-Base.repo CentOS-Base.repo.old

# COPY the following into your buffer 
## (in windows you use ctrl-c)
##
## start copy ---->>

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the #mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://vault.centos.org/6.0/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://vault.centos.org/6.0/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=http://vault.centos.org/6.0/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
baseurl=http://vault.centos.org/6.0/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
baseurl=http://vault.centos.org/6.0/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

## <<----  end copy
##
## then using the built in world processor in linux type

vi CentOS-Base.repo

# while in Vi hit [insert key]
# then paste the contents of your buffer with the right mouse button
# then hit the escape key
# hit :
# then hit x 
# then hit the [enter key]
# this will save the file and exit

# test out your changes

yum check-update



#############################################################
####  Section 3	- Setting up Base Packages
#############################################################

####  become root user
su -

yum -y groupinstall x11

#### if you see an error about yum being locked be patient it will unlock in a minute
yum -y install gcc rpm-build git wget make kernel-devel python python-libs numpy openssl openssl-devel ncurses ncurses-devel ncurses-libs autoconf automake m4 pkgconfig libcurl-devel libtool libudev libusb glx-utils libX11 libstdc++ compat-libstdc++*	

####  create new user or place all items in personal home directory
useradd miner

####  become prefered user (no password needed)
su -l miner

####  create a directory to hold all the packages
cd ~
mkdir miningpacks
cd miningpacks

####  download all driver package as user "miner" 
####
####       wget http://download2-developer.amd.com/amd/APPSDK/AMD-APP-SDK-v2.4-lnx64.tgz
####       wget http://www2.ati.com/drivers/linux/amd-driver-installer-12-3-x86.x86_64.run
####
####  goin old-school - working version is best ... 
####  note:  modern versions may break other things
####
wget http://www2.ati.com/drivers/linux/ati-driver-installer-11-4-x86.x86_64.run

####chmod a+x amd-driver-*
chmod a+x ati-driver-*


exit #go back to being root user

#############################################################
####  Section 4	- Installing ATI Development Kit (SDK) 
#############################################################
####
####
####  Install this BEFORE you install the drivers
####
#############################################################
####
####
####  preparing the machine for a new SDK install
####
####
####  First Seek and Destroy ALL Existing ATI Drivers:
####      only needed if you are rebuilding.  If fresh
####      install this command will fail, no directory.
####
cd /usr/share/ati
./amd-uninstall.sh --force

#### more cleaning to be sure 
####
#rm -Rf /etc/ati
#rm -Rf /usr/lib/fglrx
#rm -Rf /usr/share/ati
#rm -Rf /opt/AMD*
#reboot  #HIGHLY RECOMMENDED IF YOU REMOVED FILES

####
####  installing the new SDK install
####

####  become root user
su -  

####  become prefered user (no password needed)
su -l miner

####  move to directory to where you are holding the packages
cd ~
cd miningpacks

####  download SDK
####     
####     wget http://download2-developer.amd.com/amd/APPSDK/AMD-APP-SDK-v2.4-lnx32.tgz
####     wget http://download2-developer.amd.com/amd/APPSDK/AMD-APP-SDK-v2.6-lnx32.tgz
####     wget http://developer.amd.com/wordpress/media/2012/11/AMD-APP-SDK-v2.8-lnx64.tgz
####
####  again, oldschool because working beats not-working:
##
wget http://download2-developer.amd.com/amd/APPSDK/AMD-APP-SDK-v2.4-lnx64.tgz


exit #go back to being root user

#### newer style SDK install
####
#### cd /home/miner/miningpacks/
#### mkdir APP-SDK-2point7-temp
#### cd APP-SDK-2point7-temp
#### cp ../AMD-APP-SDK-v2.7-lnx64.tgz .
#### tar xzf AMD-APP-SDK-v2.7-lnx64.tgz
#### ./Install-AMD-APP.sh
#### cd .. 
#### rm -rf APP-SDK-2point7-temp
#### #reboot

### old school style SDK install
cd /opt
tar -xf /home/miner/miningpacks/AMD-APP-SDK*
cd /
tar xf /opt/AMD-APP-SDK-v2.4-lnx64/icd-registration.tgz
ln -sf /opt/AMD-APP-SDK-v2.4-lnx64/include/CL /usr/include
ln -sf /opt/AMD-APP-SDK-v2.4-lnx64/lib/x86_64/* /usr/lib/
ldconfig
reboot

#### echo AMDAPPSDKROOT=/root/AMD-APP-SDK-v2.4-lnx64 >> .bashrc
#### echo AMDAPPSDKSAMPLESROOT=/root/AMD-APP-SDK-v2.4-lnx64 >> .bashrc
#### echo LD_LIBRARY_PATH=/root/AMD-APP-SDK-v2.4-lnx64/lib/x86_64 >> .bashrc


#############################################################
####  Section 5	- Installing ATI Catalyst Drivers for linux
#############################################################
####
####
####  Install this AFTER you install the SDK
####
#############################################################

####  become root user
su -

##
## important note on installing AMD Drivers under linux:
##
## be certain you have the kernel-devel for YOUR kernel
yum list installed | grep kernel-*

##
## output should look like this
#dracut-kernel.noarch                004-32.el6                         installed
#kernel.x86_64                       2.6.32-71.el6                      installed
#kernel-devel.x86_64                 2.6.32-71.29.1.el6                 @updates
#kernel-firmware.noarch              2.6.32-71.el6                      installed
#kernel-headers.x86_64               2.6.32-71.29.1.el6                 @updates
#[root@localhost ~]#
#
#  notice that I DO NOT have a matched kernel and kernel-devel version.  
#  they must match EXACTLY or you will not be successful in the
#  next steps.  I have:
#     kernel.x86_64                       2.6.32-71.el6                      installed
#       and
#     kernel-devel.x86_64                 2.6.32-71.29.1.el6                 @updates
#
#  the difference is so slight you may have missed it
#     my subversion  32-71.29.1.el6 does NOT match 32-71.el6

##
## check your distribution
uname -r

##
## you can have multiple kernel-devel's that is not a problem
## if you are lucky this command works
yum install kernel-devel-$(uname -r)

#### if this was successful move on to the next section
####     proceed to package generation


####******#*#*#*#*#*##*#*####******#*#*#*#*#*##*#*
####
####  optional section if kernels do not match
####
####
#### You will need to find another "kernel" with 
###  a matching "kernel-devel" package
####
#### yum --showduplicates list kernel-devel
####
#### to download a specific package just add 
#### the version to the name, for example if
#### I want kernel-devel 2.6.32-358.el6 I 
#### just add a hyphen 
####
#### yum install kernel-devel-2.6.32-358.el6
####
####
####******#*#*#*#*#*##*#*####******#*#*#*#*#*##*#*


#############################################################
####  Generate a Distribution Specific Package of fglrx 
#############################################################

# as root

####  Move to package directory
####    using menus generate RPM package for your OS 
####    (generate centos 64 packages)
####
cd /home/miner/miningpacks/

####  chmod u+x *-driver-installer*  #step taken earlier
####  //alternative:// sh amd-driver-installer  
sh ati-driver-installer-*

#### (file was downloaded above)
####
####
####  Install generated package
cd /home/miner/miningpacks/
yum -y install fglrx64_p_i_c-* --nogpgcheck 
aticonfig --adapter=all --initial --force 
reboot


#############################################################
####  Section 6 - Testing ATI Catalyst Drivers 
#############################################################


#### check installation by reading output from
more /usr/share/ati/fglrx-install.log

#### further testing SHOULD be done at this time against this page:
####
#### http://wiki.cchtml.com/index.php/Frequently_Asked_Questions#How_do_I_know_fglrx_is_installed_correctly.3F


#### one possible error
####
####[Message] Kernel Module : Precompiled kernel module version mismatched.
####[Error] Kernel Module : Kernel module build environment not found - please consult readme.
####
####
####  This error indicated you do not have the correct kernel-devel libs to match your kernel
####     (I told you it wouldn't work).
####
####  with xming installed on my pc when I use putty I don't even need to 
####  export my display.  I can just start playing with opencl and opengl
####  libraries and samples.  But only if I did everything correctly
####  and there were no hardware issues along the way.
####
####  my machines 'hello world' test passed with flying colors
####
aticonfig --lsa

## output looks like this:
#* 0. 0e:00.0 AMD Radeon HD 6800 Series
#  1. 0f:00.0 AMD Radeon HD 6800 Series
#  2. 07:00.0 AMD Radeon HD 6800 Series
#  3. 06:00.0 AMD Radeon HD 6800 Series
#
#* - Default adapter
#
# which is EXACTLY what I want!!!

#### if you are not seeing all your GPU's at this stage something is wrong.
#### first check lspci
lspci -nn | grep VGA

#### if that does not show all your cards you need to hard-boot your computer.
#### it make take several attempts and some plugging and unpluggging monitor
#### cables.  There seems to be little method to the madness but make sure
#### you can see all your GPU's now or you can't mine with them.  Even though
#### centos was designed to handle multiple GPU's off the bat I still find the
#### best way to 'light up' a port is to have a monitor plugged in during hard
#### boot.  I'm sure the resistor based dongle approach would work as well.
####
glxgears

## Segmentation fault
##
## uh-oh I broke something!
## oh yea, I remember
##
## I forgot to log into the linux box.
## so here's what I need to make this work
## I go to the centos box and log in as my
## regular user in the graphical interface.
## then I pull down the menu and open a 
## terminal window which must be 'turning 
## x on for my local user'.  Once I open
## that terminal (xterm) I can walk away
## and do everything else remotely.  So
## here we go, let's have some fun...
##
glxgears

## Segmentation fault
## oh yea... duh
export DISPLAY=:0
glxgears

##40014 frames in 5.0 seconds = 8002.695 FPS
##40291 frames in 5.0 seconds = 8058.047 FPS
##40288 frames in 5.0 seconds = 8057.494 FPS
##40287 frames in 5.0 seconds = 8057.313 FPS
## ^C
##
## don't be hatin on me now...


#############################################################
####  Install ATI Display Library Development Kit (ADL SDK): 
#############################################################

###wget http://developer.amd.com/wordpress/media/2012/11/AMD-APP-SDK-v2.8-lnx64.tgz
### cannot find APP without going through website license
### pain in the ass requires a browser download
###

####  become root user
su -

####  become prefered user (no password needed)
su -l miner

####  move to directory to where you are holding the packages
cd ~
cd miningpacks

####  place ADL zip in current directory

wget http://download2-developer.amd.com/amd/GPU/zip/ADL_SDK_3.0.zip

#### unpack it and install it into the correct directory

mkdir ADL-SDK-3point0-temp
cd ADL-SDK-3point0-temp
cp ../ADL_SDK_3.0.zip .
unzip ADL_SDK_3.0.zip

cp /home/miner/miningpacks/ADL-SDK-3point0-temp/include/*.h /home/miner/cgminer/ADL_SDK
rm -rf /home/miner/ADL-SDK-3point0-temp



#############################################################
####  Install CGMiner
#############################################################

####  become root user
su -

####  become prefered user (no password needed)
su -l miner

####  move to home directory
cd ~

####  download CGMiner from author
git clone https://github.com/ckolivas/cgminer


####  copy ADL libraries to correct location
cd /home/miner/cgminer/ADL_SDK
cp /home/miner/miningpacks/ADL-SDK-5point0-temp/include/*.h .
rm -rf /home/miner/miningpacks/ADL-SDK-5point0-temp/
cd ..

./autogen.sh

make

exit #go back to being root user

cd /home/miner/cgminer/
make install

reboot #if you have not after changes to libraries

#if you did everything as I have above you are finished
#and can run cgminer.  test with  ./cgminer -n

####
#### Now test out your new miner for 24 hours and if you like all the time and effort I
#### put into this guide I encourage you to think about testing your new miner here:

./cgminer -o stratum+tcp://mining.eligius.st:3334 -u 1NQc6tCtRmT8zBeLKNpboFaUBMLcxDwUm6 -p x0 -I 9 --per-device-stats 2>logfile.txt

####
#### After 24hrs of burn in read the logfile.  Make sure nothing strange happened.  
#### Here's how you read the log:

more logfile.txt 

#### If you don't see any errors set your miner to your favorite pool and off you go.
#### Then set that file aside so you can refer to it later.

cp logfile.txt burninlog.txt

#### in the future, unless you are having problems you can remove the --per-device-stats and the logging
#### from the command line, so it looks like this:  (don't forget to change the address!!)

./cgminer -o stratum+tcp://mining.eligius.st:3334 -u 1NQc6tCtRmT8zBeLKNpboFaUBMLcxDwUm6 -p x0 -I 9



#### Best of luck, greenhorn!

#############################################################
####  The End
#############################################################