How to install BFGminer on Ubuntu 17.04

How to install BFGminer on Ubuntu 17.04

The BFGminer is a Bitcoin miner software which is multi-threaded multi-pool GPU, FPGA and ASIC mining support. Bitcoins are a digital currency, exchanged freely against all other currencies. This tutorial explains the installation procedure of BFGminer on Ubuntu.

Installation procedure

To start the installation process, add the repo to the target system by executing the following command.

root@linuxhelp1:~# add-apt-repository ppa:eugenesan/ppa
 This repository contains collection of customized, updated, ported and backported
packages for two last LTS releases and latest pre-LTS release.
Packages for older releases relocated to ppa:eugenesan/archive or deleted.
+-------------------------------------------------------------------------------------+
| Disclaimer:
+-------------------------------------------------------------------------------------+
* Packages in this a nd related PPAs are for personal use only.
  They developed specifically for several custom environments and may not work for you.
* Usage of packages in this PPA, in some forms, might contradict licenses of software
  packaged in this and related PPAs. End users and administrator are responsible for
.
.
.
Press [ENTER] to continue or ctrl-c to cancel adding it
gpg: keybox ' /tmp/tmpu23ps0kc/pubring.gpg'  created
gpg: /tmp/tmpu23ps0kc/trustdb.gpg: trustdb created
gpg: key E61380B28313A596: public key " Launchpad synergy+"  imported
gpg: Total number processed: 1
gpg:               imported: 1
OK

The repo is added successfully to the system. Now update the repo using the apt-get update command.

root@linuxhelp1:~# apt-get update
Get:1 http://ppa.launchpad.net/eugenesan/ppa/ubuntu zesty InRelease [15.4 kB]
Hit:2 http://security.ubuntu.com/ubuntu zesty-security InRelease                                               
Hit:3 http://in.archive.ubuntu.com/ubuntu zesty InRelease                                                      
Hit:4 http://in.archive.ubuntu.com/ubuntu zesty-updates InRelease                  
Hit:5 http://in.archive.ubuntu.com/ubuntu zesty-backports InRelease     
Get:6 http://ppa.launchpad.net/eugenesan/ppa/ubuntu zesty/main amd64 Packages [1,100 B]
Get:7 http://ppa.launchpad.net/eugenesan/ppa/ubuntu zesty/main i386 Packages [1,108 B]
Get:8 http://ppa.launchpad.net/eugenesan/ppa/ubuntu zesty/main Translation-en [1,288 B]
Fetched 18.9 kB in 2s (6,640 B/s)
Reading package lists... Done

The system is updated with the repositories. Install the BFGminer package using the following command and press y to continue with the installation process.

root@linuxhelp1:~# apt-get install bfgminer -y
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following additional packages will be installed:
  libbase58-0 libblkmaker-0.1-6 libclang-common-4.0-dev libclc-amdgcn libclc-dev libclc-r600 libmicrohttpd10 mesa-opencl-icd
  ocl-icd-libopencl1
The following NEW packages will be installed:
  bfgminer libbase58-0 libblkmaker-0.1-6 libclang-common-4.0-dev libclc-amdgcn libclc-dev libclc-r600 libmicrohttpd10
  mesa-opencl-icd ocl-icd-libopencl1
0 upgraded, 10 newly installed, 0 to remove and 28 not upgraded.
Need to get 44.4 MB of archives.
After this operation, 244 MB of additional disk space will be used.
Get:1 http://in.archive.ubuntu.com/ubuntu zesty/universe amd64 libbase58-0 amd64 0.1.4-1 [8,312 B]
Get:2 http://in.archive.ubuntu.com/ubuntu zesty/universe amd64 libblkmaker-0.1-6 amd64 0.5.3-1 [17.1 kB]
.
.
.
Processing triggers for man-db (2.7.6.1-2) ...
Setting up ocl-icd-libopencl1:amd64 (2.2.11-1ubuntu1) ...
Setting up libclc-dev (0.2.0+git20170213-1~build1) ...
Setting up libblkmaker-0.1-6:amd64 (0.5.3-1) ...
Setting up libclc-r600 (0.2.0+git20170213-1~build1) ...
Setting up bfgminer (5.4.2+dfsg-1) ...
Setting up libclc-amdgcn (0.2.0+git20170213-1~build1) ...
Setting up mesa-opencl-icd:amd64 (17.0.3-1ubuntu1) ...
Processing triggers for libc-bin (2.24-9ubuntu2) ...

For using the package, execute the following command, it will list the options that can be used in BFGminer.

root@linuxhelp1:~# bfgminer --help
bfgminer 5.4.2
  Lowlevel: ftdi pci pci:uio pci:vfio spi usb vcom
  Drivers: antminer avalon avalonmm bfx bifury bigpic bitforce bitforce:pci bitfury cairnsmore cointerra compac drillbit dualminer erupter gridseed hashbusterusb hashfast icarus klondike littlefury modminer opencl opencl:adl opencl:sensors proxy proxy:getwork proxy:stratum rockminer twinfury x6500 zeusminer ztex
  Algorithms: SHA256d scrypt
  Options: ncurses5
Usage: bfgminer
Options for both config file and command line:
--api-allow < arg>                Allow API access only to the given list of [G:]IP[/Prefix] addresses[/subnets]
--api-description < arg>          Description placed in the API status header, default: BFGMiner version
--api-groups < arg>               API one letter groups G:cmd:cmd[,P:cmd:*...] defining the cmds a groups can use
--api-listen                    Enable API, default: disabled
--api-mcast                     Enable API Multicast listener, default: disable
--api-mcast-addr < arg>           API Multicast listen address (default: " 224.0.0.75" )
--api-mcast-code < arg>           Code expected in the API Multicast message, don' t use ' -'  (default: " FTW" )
--api-mcast-des < arg>            Description appended to the API Multicast reply, default: ' ' 
--api-mcast-port < arg>           API Multicast listen port (default: 4028)
--api-network                   Allow API (if enabled) to listen on/for any address, default: only 127.0.0.1
--api-port < arg>                 Port number of miner API (default: 4028)
--balance                       Change multipool strategy from failover to even share balance
--benchmark                     Run BFGMiner in benchmark mode - produces no shares
--benchmark-intense             Run BFGMiner in intensive benchmark mode - produces no shares
--bfl-range                     Use nonce range on bitforce devices if supported
--chroot-dir < arg>               Chroot to a directory right after startup
--cmd-idle < arg>                 Execute a command when a device is allowed to be idle (rest or wait)
--cmd-sick < arg>                 Execute a command when a device is declared sick
--no-adl                        Disable the ATI display library used for monitoring and setting GPU parameters
--no-gbt                        Disable getblocktemplate support
--no-getwork                    Disable getwork support
--no-hotplug                    Disable hotplug detection
--no-local-bitcoin              Disable adding pools for local bitcoin RPC servers
--no-longpoll                   Disable X-Long-Polling support
--no-pool-redirect              Ignore pool requests to redirect to another server
--no-restart                    Do not attempt to restart devices that hang
--no-stratum                    Disable Stratum detection
--no-submit-stale               Don' t submit shares if they are detected as stale
--noncelog < arg>                 Create log of all nonces found
--pass|-p < arg>                  Password for bitcoin JSON-RPC server
--per-device-stats              Force verbose mode and output per-device statistics
--userpass|-O < arg>              Username:Password pair for bitcoin JSON-RPC server
--pool-goal < arg>                Named goal for the previous-defined pool
--pool-priority < arg>            Priority for just the previous-defined pool
--pool-proxy|-x < arg>            Proxy URI to use for connecting to just the previous-defined pool
--protocol-dump|-P              Verbose dump of protocol-level activities
--queue|-Q < arg>                 Minimum number of work items to have queued (0+) (default: 1)
--quiet|-q                      Disable logging output, display status and errors
--quit-summary < arg>             Summary printed when you quit: none/devs/procs/detailed
--quota|-U < arg>                 quota URL combination for server with load-balance strategy quotas
--real-quiet                    Disable all output
--request-diff < arg>             Request a specific difficulty from pools (default: 1.000000)
--retries < arg>                  Number of times to retry failed submissions before giving up (-1 means never) (default: -1)
--rotate < arg>                   Change multipool strategy from failover to regularly rotate at N minutes (default: 0)
--round-robin                   Change multipool strategy from failover to round robin on failure
--scan|-S < arg>                  Configure how to scan for mining devices
--scan-time < arg>                Upper bound on time spent scanning current work, in seconds (default: 60)
--sched-start < arg>              Set a time of day in HH:MM to start mining (a once off without a stop time)
--sched-stop < arg>               Set a time of day in HH:MM to stop mining (will quit without a start time)
--scrypt                        Use the scrypt algorithm for mining (non-bitcoin)
--set-device|--set < arg>         Set default parameters on devices  eg, NFY:osc6_bits=50
--setuid < arg>                   Username of an unprivileged user to run as
--sharelog < arg>                 Append share log to file
--shares < arg>                   Quit after mining 2^32 * N hashes worth of shares (default: unlimited)
--show-processors               Show per processor statistics in summary
--skip-security-checks < arg>     Skip security checks sometimes to save bandwidth  only check 1/< arg> th of the time (default: never
                                skip)
--socks-proxy < arg>              Set socks proxy (host:port)
--stratum-port < arg>             Port number to listen on for stratum miners (-1 means disabled) (default: -1)
--submit-threads < arg>           Minimum number of concurrent share submissions (default: 64) (default: 64)
--syslog                        Use system log for output messages (default: standard error)
--temp-hysteresis < arg>          Set how much the temperature can fluctuate outside limits when automanaging speeds (default: 3)
--text-only|-T                  Disable ncurses formatted screen output
--url|-o < arg>                   URL for bitcoin JSON-RPC server
--user|-u < arg>                  Username for bitcoin JSON-RPC server
--verbose                       Log verbose output to stderr as well as status output
--weighed-stats                 Display statistics weighed to difficulty 1
--coinbase-check-addr < arg>      A list of address to check against in coinbase payout list received from the previous-defined pool,
                                separated by ' ,' 
--coinbase-check-total < arg>     The least total payout amount expected in coinbase received from the previous-defined pool
--coinbase-check-percent < arg>   The least benefit percentage expected for the sum of addr(s) listed in --cbaddr argument for
                                previous-defined pool
--worktime                      Display extra work time debug information
Options for command line only:
--config|-c < arg>                Load a JSON-format configuration file
                                See example.conf for an example configuration.
--no-default-config             Inhibit loading default config file
--default-config                Always load the default config file
--help|-h                       Print this message
--version|-V                    Display version and exit

For removing the package, execute the following command and press y to continue with the uninstallation.

root@linuxhelp1:~# apt-get remove bfgminer -y
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libbase58-0 libblkmaker-0.1-6 libmicrohttpd10
Use ' apt autoremove'  to remove them.
The following packages will be REMOVED:
  bfgminer
0 upgraded, 0 newly installed, 1 to remove and 28 not upgraded.
After this operation, 1,511 kB disk space will be freed.
(Reading database ... 172279 files and directories currently installed.)
Removing bfgminer (5.4.2+dfsg-1) ...
Processing triggers for man-db (2.7.6.1-2) ...

Wasn' t that an easy installation procedure? The BFGminer supports multiple pools withe multiple intelligent failover mechanisms.

FAQ
Q
how to add the repo of BFGminer in ubuntu?
A
add the repo of BFGminer in the target system by executing the following command
# add-apt-repository ppa:eugenesan/ppa
Q
which command to uninstall the BFGminer in ubuntu?
A
For removing the package, execute the following command and press y to continue with the uninstallation.
# apt-get remove bfgminer -y
Q
How to check version of BFGminer?
A
use the following command to check version of BFGminer #bfgminer -V
Q
How to install BFGminer on linuxmint?
A
follow the link to install BFGminer on linuxmint

https://www.linuxhelp.com/how-to-install-bfgminer-on-linux-mint-18-3/
Q
Is there any alternative like BFGminer?
A
alternative like BFGminer are,
Bitminter
cpuminer
CGMiner