How to install BFGminer on Linux Mint 18.3

To install BFGminer on Linux Mint 18.3

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  Linuxmint. It is so simple to install BFGminer on Linux Mint 18.3


Installing BFGminer 

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

linuxhelp ~ # 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.
.
.
* Sync trusty ->  utopic
* Sort, Review and Archive un-maintained packages
* Update gwoffice
* Report bug on mdadm bug with 0.90 arrays on 2TB+0.90 on 64bit systems
* Report HeandBreak on amd64
 More info: https://launchpad.net/~eugenesan/+archive/ubuntu/ppa
Press Enter to continue or Ctrl+C to cancel

Executing: /tmp/tmp.fCtUq7t8Vm/gpg.1.sh --keyserver
hkp://keyserver.ubuntu.com:80
--recv-keys
8313A596
gpg: requesting key 8313A596 from hkp server keyserver.ubuntu.com
gpg: key 8313A596: public key " Launchpad synergy+"  imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

 

And then, update your system of repo packages with the help of the following command.

 linuxhelp ~ # apt-get update 
Hit:1 http://archive.ubuntu.com/ubuntu xenial InRelease
Get:2 http://archive.canonical.com/ubuntu xenial InRelease [11.5 kB]                                                                      
Ign:3 http://packages.linuxmint.com sylvia InRelease                                                                                      
Get:4 http://ppa.launchpad.net/eugenesan/ppa/ubuntu xenial InRelease [17.5 kB]                                       
Get:5 http://archive.canonical.com/ubuntu xenial/partner amd64 Packages [3,128 B]                                    
Get:6 http://archive.canonical.com/ubuntu xenial/partner i386 Packages [3,116 B]                                                       
Get:7 http://packages.linuxmint.com sylvia Release [24.2 kB]                          
.
.
Get:33 http://security.ubuntu.com/ubuntu xenial-security/universe i386 Packages [284 kB]                                                          
Get:34 http://archive.ubuntu.com/ubuntu xenial-backports/universe i386 Packages [7,060 B]                                                         
Get:35 http://archive.ubuntu.com/ubuntu xenial-backports/universe Translation-en [3,812 B]                                                        
Get:36 http://security.ubuntu.com/ubuntu xenial-security/universe Translation-en [122 kB]                                                         
Get:37 http://security.ubuntu.com/ubuntu xenial-security/multiverse amd64 Packages [3,208 B]                                                      
Get:38 http://security.ubuntu.com/ubuntu xenial-security/multiverse i386 Packages [3,376 B]                                                       
Fetched 5,647 kB in 9s (607 kB/s)                                                                                                                 
Reading package lists... Done


You should then install the  BFGminer package  using the following command . 

linuxhelp ~ # 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 libjansson4 libmicrohttpd10
Recommended packages:
  ocl-icd-libopencl1 opencl-icd
The following NEW packages will be installed:
  bfgminer libbase58-0 libblkmaker-0.1-6 libjansson4 libmicrohttpd10
0 upgraded, 5 newly installed, 0 to remove and 292 not upgraded.
Need to get 580 kB of archives.
After this operation, 1,749 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libbase58-0 amd64 0.1.4-1 [8,312 B]
Get:2 http://archive.ubuntu.com/ubuntu xenial/main amd64 libjansson4 amd64 2.7-3 [26.9 kB]
Get:3 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libblkmaker-0.1-6 amd64 0.5.2-1 [16.8 kB]
.
.
Processing triggers for man-db (2.7.5-1) ...
Setting up libbase58-0:amd64 (0.1.4-1) ...
Setting up libjansson4:amd64 (2.7-3) ...
Setting up libblkmaker-0.1-6:amd64 (0.5.2-1) ...
Setting up libmicrohttpd10 (0.9.44+dfsg-1ubuntu2) ...
Setting up bfgminer (5.2.0+dfsg-1build1) ...
Processing triggers for libc-bin (2.23-0ubuntu9) ..

 

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

linuxhelp ~ # bfgminer --help
bfgminer 5.2.0
  Lowlevel: ftdi pci pci:uio pci:vfio spi usb vcom 
  Drivers: antminer avalon avalonmm bfx bifury bigpic bitforce bitforce:pci bitfury cairnsmore cointerra 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: disabled
--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
--cmd-dead < arg>                 Execute a command when a device is declared dead
--coinbase-sig < arg>             Set coinbase signature when possible
--compact                       Use compact display without per device statistics
--debug|-D                      Enable debug output
--debuglog                      Enable debug logging
--device-protocol-dump          Verbose dump of device protocol-level activities
--device|-d < arg>                Enable only devices matching pattern (default: all)
--disable-rejecting             Automatically disable pools that continually reject shares
--http-port < arg>                Port number to listen on for HTTP getwork miners (-1 means disabled) (default: -1)
--expiry < arg>                   Upper bound on how many seconds after getting work we consider a share from it stale (w/o longpoll active)
                                 (default: 120)
--expiry-lp < arg>                Upper bound on how many seconds after getting work we consider a share from it stale (with longpoll active)
                                 (default: 3600)
--failover-only                 Don' t leak work to backup pools when primary pool is lagging
--failover-switch-delay < arg>    Delay in seconds before switching back to a failed pool (default: 300)
--force-dev-init                Always initialize devices when possible (such as bitstream uploads to some FPGAs)
--generate-to < arg>              Set an address to generate to for solo mining
--gpu-platform < arg>             Select OpenCL platform ID to use for GPU mining (default: -1)
--gpu-map < arg>                  Map OpenCL to ADL device order manually, paired CSV (e.g. 1:0,2:1 maps OpenCL 1 to ADL 0, 2 to 1)
--gpu-reorder                   Attempt to reorder GPU devices according to PCI Bus ID
--kernel-path < arg>              Specify a path to where bitstream and kernel files are (default: " /usr/share/bfgminer" )
--klondike-options < arg>         Set klondike options clock:temptarget
--load-balance                  Change multipool strategy from failover to quota based balance
--log|-l < arg>                   Interval in seconds between log output (default: 20)
--log-file|-L < arg>              Append log file for output messages
--log-microseconds              Include microseconds in log output
--monitor|-m < arg>               Use custom pipe cmd for output messages
--net-delay                     Impose small delays in networking to avoid overloading slow routers
--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


You can also remove the package from your system, execute the following command . 

linuxhelp ~ # 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 libjansson4 libmicrohttpd10
Use ' sudo apt autoremove'  to remove them.
The following packages will be REMOVED:
  bfgminer
0 upgraded, 0 newly installed, 1 to remove and 292 not upgraded.
After this operation, 1,441 kB disk space will be freed.
(Reading database ... 219681 files and directories currently installed.)
Removing bfgminer (5.2.0+dfsg-1build1) ...
Processing triggers for man-db (2.7.5-1) ...

With this tutorial comes to an end. 

FAQ
Q
How to Configure BFG Miner?
A
As with any other bitcoin mining miners, in BFG Miner, it’s important to prepare the preliminary steps before continuing with BFG Miner. First of all, a wallet address to receive the mined coins should be there, secondly a pool is necessary to speed up the mining process, thirdly the credentials should be available to access the pool. However, accessing to a pool isn’t necessary on solo mode, as it doesn’t require connect to an external bitcoin client, but this might be complicated, and time consuming, and thus pool mining is strongly recommended.
Q
How to install BFGminer on Ubuntu?
A
For the installation of the BFGminer on Ubuntu, use the following link as given below "https://www.linuxhelp.com/how-to-install-bfgminer-on-ubuntu-17-04/"
Q
How to access the official site for the BFGminer?
A
For accessing the official site for the BFGminer, use the following link as given below "http://bfgminer.org/".
Q
How to get the Github repository for the BFGminer?
A
For accessing the Github repository of the BFGminer, use the following link as given below "https://gist.github.com/luke-jr/7539234"
Q
What is BFG Miner?
A
As stated above, BFG Miner is a bitcoin miner which has the ability to mine bitcoins on a range of devices from ASIC, to FPGA, to GPU, to obsolete CPU systems. As the operating systems, it supports again a range of systems from Arch, to Debian, to Gentoo, to OpenWrt, to Ubuntu. This article focuses on Ubuntu only, but the configuration and mining process are almost the same in other operating systems as well. To get optimum performance out of the miner, it’s recommended to upgrade Ubuntu to the latest stable release before continuing.