Bitcoin: Difference between revisions

From Leo's Notes
This page was last edited on 25 August 2013, at 09:39.
Line 14: Line 14:
* http://developer.amd.com/tools-and-sdks/graphics-development/display-library-adl-sdk/
* http://developer.amd.com/tools-and-sdks/graphics-development/display-library-adl-sdk/


For older cards or drivers, use the older SDK (such as 2.6). Otherwise, you may run into 'segmentation fault' while trying to run cgminer.
For older cards or drivers, use the older SDK (such as 2.6). You will know that you need to downgrade when things don't work. For instance, if you get:
* Segmentation Faults
* High "HW:##" values (hardware faults) from cgminer
* Not actually mining anything or other unexpected behavior.


Extract the archives and copy:
Extract the archives and copy:

Revision as of 09:39, 25 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:

For older cards or drivers, use the older SDK (such as 2.6). You will know that you need to downgrade when things don't work. For instance, if you get:

  • Segmentation Faults
  • High "HW:##" values (hardware faults) from cgminer
  • Not actually mining anything or other unexpected behavior.

Extract the archives and copy:

  • AMD-APP-SDK/include -> /build_dir/include
  • AMD-APP-SDK/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

Extract icd-registration.tgz and put the files in /etc/OpenCL/vendors/.

Since I do not want to install the OpenCL libs, I had to copy them (from AMD-APP-SDK/lib/x86_64) 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 -n
LD_LIBRARY_PATH=/usr/local/miner/lib ./cgminer -o http://p2pool.org:9332 -u 1HDp1gU3rgrRNKqrKorz8uWCpHUNdyGqXm -p password

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
#############################################################