# Ubuntu 15.04 64-bit mini.iso is located at:
# http://archive.ubuntu.com/ubuntu/dists/vivid/main/installer-amd64/current/images/netboot/mini.iso
------------------------------------------
Update/upgrade package lists
------------------------------------------
sudo apt-get update
sudo apt-get upgrade
------------------------------------------
Install AMD drivers + misc configuration
------------------------------------------
# may have to try this twice
sudo apt-get install fglrx fglrx-core fglrx-dev fglrx-amdcccle git screen
# confirm that all GPUs are detected
sudo aticonfig --lsa
# only delete /etc/X11/xorg.conf when reconfiguring
sudo rm /etc/X11/xorg.conf && sudo aticonfig --adapter=all --initial -f
# otherwise, when first setting up just run the aticonfig command as such
sudo aticonfig --adapter=all --initial -f
sudo nano /etc/default/grub
# change the GRUB_CMDLINE_LINUX_DEFAULT line to read as: GRUB_CMDLINE_LINUX_DEFAULT="text"
sudo update-grub
nano .bashrc
# add the following at end of the script: export DISPLAY=:0
Ctrl + O # save
Ctrl + X # exit nano
sudo nano /etc/profile
# add the following at end of the script: export XAUTHORITY=~/.Xauthority
Ctrl + O # save
Ctrl + X # exit nano
sudo reboot
------------------------------------------
Install minimal x server & display manager
------------------------------------------
# install xorg
sudo apt-get install xorg
# reconfigure and choose "Anybody"
sudo dpkg-reconfigure x11-common
------------------------------------------
Install and configure Dwarfpool's stratum-like eth-proxy
------------------------------------------
# See here for limited install directions: https://bitcointalk.org/index.php?topic=1200891
# See here for more info: http://dwarfpool.com/eth midway down one the left-hand side under a section called "Stratum Proxy v0.0.5"
sudo apt-get install python-twisted
git clone https://github.com/Atrides/eth-proxy
cd eth-proxy
# Be sure to edit eth-proxy.conf and setup YOUR ETH address
# Here is how I have mine setup for ethpool.org
nano eth-proxy.conf
#==============================================
# Begin ~/eth-proxy/eth-proxy.conf example
#==============================================
# Select Ethereum ETH or Expanse EXP
COIN = "ETH"
# Host and port for your workers
HOST = "xxx.xxx.xxx.xxx" # this needs to be the IP address of the machine that is running eth-proxy
PORT = 8080
# Coin address where money goes
WALLET = "0x0000000000000000000" # this needs to be YOUR ETH address and the quotes stay
# To donate please use wallet 0xc6cf855a302412ebb91ee1e823284b928fb4286d
# It's useful for individually monitoring and statistic
ENABLE_WORKER_ID = True
# On DwarfPool you have option to monitor your workers via email.
# If WORKER_ID is enabled, you can monitor every worker/rig separately.
MONITORING = True
MONITORING_EMAIL = "your.email@something.com" # your notification email address
# Main pool
POOL_HOST = "us1.ethpool.org" # use whatever your pool's address is here
POOL_PORT = 3333
# Failover pool
POOL_FAILOVER_ENABLE = True
POOL_HOST_FAILOVER1 = "us2.ethpool.org" # use whatever your pool's 2nd address is here
POOL_PORT_FAILOVER1 = 3333
POOL_HOST_FAILOVER2 = "eu1.ethpool.org" # use whatever your pool's 3rd address is here
POOL_PORT_FAILOVER2 = 3333
POOL_HOST_FAILOVER2 = "asia1.ethpool.org" # use whatever your pool's 4th address is here, etc...
POOL_PORT_FAILOVER3 = 3333
# Logging
LOG_TO_FILE = True
#==============================================
# End ~/eth-proxy/eth-proxy.conf example
#==============================================
Ctrl + O # save
Ctrl + X # exit nano
------------------------------------------
Setup a script to start eth-proxy
------------------------------------------
cd # change to your home directory
nano start_ethproxy.sh
#==============================================
# Begin ~/start_ethproxy.sh
#==============================================
#!/bin/bash
cd ~/eth-proxy && python eth-proxy.py
#==============================================
# End ~/start_ethproxy.sh
#==============================================
Ctrl + O # save
Ctrl + X # exit nano
chmod +x start_ethproxy.sh # make the script executable
------------------------------------------
Build Genoil's Ethminer
------------------------------------------
sudo apt-get -y install software-properties-common
sudo wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
sudo add-apt-repository "deb http://llvm.org/apt/trusty llvm-toolchain-trusty main"
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo add-apt-repository -y ppa:ethereum/ethereum-dev
sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y install build-essential cmake libedit-dev libboost-all-dev automake unzip zlib1g-dev libgmp-dev libtool libleveldb-dev yasm libminiupnpc-dev libreadline-dev scons libncurses5-dev libcurl4-openssl-dev wget libjsoncpp-dev libargtable2-dev libcryptopp-dev libjson-rpc-cpp-dev libmicrohttpd-dev clang-3.5 lldb-3.5 llvm-4.0-dev libv8-dev mesa-common-dev opencl-headers
# I run Genoil's version of ethminer -- specifically version 1.0.8
# The following will show you how to grab the code for it from the source
# repository and build it:
mkdir Genoil
cd Genoil
mkdir 1.0.8
cd 1.0.8
git clone --recursive -b 108 --single-branch https://github.com/genoil/cpp-ethereum
cd cpp-ethereum
mkdir build
cd build
cmake .. -DBUNDLE=miner -DGUI=0 -DCMAKE_BUILD_TYPE=Release
make
# Wait for the build to complete
# strip unneeded symbols from the binary -- this reduces its size by a little
strip ethminer/ethminer
# confirm that ethminer sees the correct # of GPUs
ethminer/ethminer --list-devices
cd # change to your home directory
------------------------------------------
Setup Basic X-Window Environment (required for fglrx and aticonfig to work)
------------------------------------------
# setup ~/.xinitrc to set GPU fan and clock speeds and to open a permanent xterm window
#
# ~/.xinitrc is a script that gets executed when 'startx' gets called.
# It gives the user a chance to do things when X starts up.
# You can read more about it here: https://wiki.archlinux.org/index.php/xinitrc
#
# The following is an example ~/.xinitrc file for a 3-GPU rig -- if you have more or
# fewer GPUs, then add or remove lines as necessary to account for each GPU
nano .xinitrc
#==============================================
# Begin ~/.xinitrc
#==============================================
#!/bin/bash
amdconfig --od-enable
DISPLAY=:0.0 && aticonfig --pplib-cmd "set fanspeed 0 60" # set fan 0 on card 0 @ 60%
DISPLAY=:0.1 && aticonfig --pplib-cmd "set fanspeed 0 60" # set fan 0 on card 1 @ 60%
DISPLAY=:0.2 && aticonfig --pplib-cmd "set fanspeed 0 60" # set fan 0 on card 2 @ 60%
DISPLAY=:0.0 && aticonfig --adapter=0 --odsc=1150,1500 # set core clock @ 1150 and memory clock 1500 on card 0
DISPLAY=:0.1 && aticonfig --adapter=1 --odsc=1150,1500 # set core clock @ 1150 and memory clock 1500 on card 1
DISPLAY=:0.2 && aticonfig --adapter=2 --odsc=1150,1500 # set core clock @ 1150 and memory clock 1500 on card 2
DISPLAY=:0 && xterm -geometry +1+1 -n login
#==============================================
# End ~/.xinitrc
#==============================================