Install ethminer in a machine with NVIDIA video card under Ubuntu 16.04 LTS

This is simple “how to” to get started mining crypto currency with explanations using Ethash algorithm like Ethererum. Just follow the simple steps and you’ll have an optimized GPU for Ethash crypto currencies:

STEP 1) Download latest CUDA from NVDIA site.

Open your favorite browser and go to

http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/

and search for copy the link

cuda-repo-ubuntu1604-

in our case the latest version of CUDA 9.1.85 is

http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_9.1.85-1_amd64.deb

There is also

cuda-repo-ubuntu1604_8.0.44-1_amd64.deb 4.0KB 2017-09-22 22:08
cuda-repo-ubuntu1604_8.0.61-1_amd64.deb 4.0KB 2017-09-22 22:08
cuda-repo-ubuntu1604_9.0.176-1_amd64.deb 4.0KB 2017-09-22 22:09
cuda-repo-ubuntu1604_9.1.85-1_amd64.deb 4.0KB 2017-12-02 01:29

you could try them to see if you have a better performance for your video card with some of the older CUDA platform.
So now we download the file with wget just execute

cd ~
wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_9.1.85-1_amd64.deb

STEP 2) Install the NVIDIA CUDA repository in you UBUNTU with

sudo dpkg -i /root/cuda-repo-ubuntu1604_9.1.85-1_amd64.deb
* If you encounter error

The public CUDA GPG key does not appear to be installed.
To install the key, run this command:
sudo apt-key adv –fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub

Just execute the command it says and then again, so in our case:

sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
dpkg -i /root/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb

STEP 3) Install repository for your proprietary drivers of NVIDIA video cards

sudo add-apt-repository -y ppa:graphics-drivers/ppa

STEP 4) Update all repositories to download the latest package lists

sudo apt-get update -y

STEP 5) Install the dependencies for the ethminer, NVIDIA video driver and NVIDIA CUDA platform5).

Install the dependencies for the ethminer, NVIDIA video driver and NVIDIA CUDA platform

sudo apt-get -y install git cmake libleveldb-dev libjsoncpp-dev libboost-all-dev libgmp-dev libreadline-dev libcurl4-gnutls-dev ocl-icd-libopencl1 opencl-headers mesa-common-dev libmicrohttpd-dev build-essential cuda libcrypto++-dev libjsonrpccpp-dev

You probably will see how you packet manager downloads around 852 packets (arround 1.5G) and installs them all, at last you must see no errors and probably there will be double “done”

done.
done.

STEP 6) now reboot the machine to load the NVIDIA proprietary driver.

At the time of this howto we the NVIDIA driver is 390.30 (nvidia-390 (390.30-0ubuntu1)), but you can list older ones and install them to see if they are better than the last. It happens frequently an older driver (but not much old) to be slightly better in performance than the latest driver, so you can experiment with other older drivers if you like.

sudo reboot

STEP 7) Check to see if your driver is loaded properly

Execute command

dmesg|grep nvidia

Here is example output

[   11.096593] nvidia: module license 'NVIDIA' taints kernel.
[   11.116551] nvidia: module verification failed: signature and/or required key missing - tainting kernel
[   11.134454] nvidia-nvlink: Nvlink Core is being initialized, major device number 248
[   11.226239] NVRM: loading NVIDIA UNIX x86_64 Kernel Module  390.30  Wed Jan 31 22:08:49 PST 2018 (using threaded interrupts)
[   11.265963] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms  390.30  Wed Jan 31 21:32:48 PST 2018
[   11.275447] [drm] [nvidia-drm] [GPU ID 0x0000001e] Loading driver
[   14.527352] nvidia-uvm: Loaded the UVM driver in 8 mode, major device number 247

So we finished the first stage, the preparation of your machine to install the ethminer. Now we move to the actual installation of the gpu mining software (and cpu mining, of course):

STEP 8)* Tune screen for better support of your scrolling history, because usually you execute the ethminer in screen (this step is not required for proper working of ethminer)

echo "termcapinfo xterm* ti@:te@" > /root/.screenrc

STEP 9) Start screen and clone the ethminer repository

git clone https://github.com/ethereum-mining/ethminer

STEP 10) Compile ethminer with “native” optimizations for the compiler gnu gcc. It has probably no impact of the GPU computing, but still it is a good practice to build the source with the best suited optimization for you mining machine.

mkdir -p ./ethminer/build
cd ./ethminer/build
export CFLAGS="-O2 -march=native -msse3 -fomit-frame-pointer -pipe"
export CHOST="x86_64-pc-linux-gnu"
export CXXFLAGS="${CFLAGS}"
export LDFLAGS="-Wl,-O1"
cmake .. -DETHASHCUDA=ON -DETHASHCL=ON
make -j 4

STEP 11) Execute ethminer, but before you must execute some tuning exports for the GPU

export GPU_FORCE_64BIT_PTR=0
export GPU_MAX_HEAP_SIZE=100
export GPU_USE_SYNC_OBJECTS=1
export GPU_MAX_ALLOC_PERCENT=100
export GPU_SINGLE_ALLOC_PERCENT=100
cd ~/ethminer/build/ethminer
./ethminer -U -F http://yourpooladdress:80/11111111111111111111111111111111111/miner-01

In the example above we use a pool: yourpooladdress and the ethereum address 11111111111111111111111111111111111 – the two values are not valid, SET YOUR VALUES, do not use this fake values!

*Running the miner is simple just execute

ethminer

  • -U – When mining use the GPU via CUDA.
  • -G – When mining use the GPU via OpenCL.
  • -X,–cuda-opencl Use OpenCL + CUDA in a system with mixed AMD/Nvidia cards. May require setting –opencl-platform 1

*Here is the output of the properly built and running ethminer:

m 10:54:42|ethminer| ethminer version 0.14.0.dev2
m 10:54:42|ethminer| Build: Linux/g++ / Release
cu 10:54:45|ethminer| Using grid size 8192 , block size 128
m 10:54:45|ethminer| not-connected
ℹ 10:54:45|getwork | Connected to http://eth-eu.dwarfpool.com:80/11111111111111111111111111111111111/miner-02
ℹ 10:54:45|getwork | Spinning up miners...
ℹ 10:54:45|cuda-0 | No work. Pause for 3 s.
ℹ 10:54:45|getwork | Received new job #f0a5f915 from http://eth-eu.dwarfpool.com:80/11111111111111111111111111111111111/miner-02
ℹ 10:54:48|cuda-0 | Initialising miner 0
m 10:54:50|ethminer| Speed 0.00 Mh/s gpu/0 0.00 [A0+0:R0+0:F0] Time: 00:00
cu 10:54:50|cuda-0 | Using device: Tesla K80 (Compute 3.7)
cu 10:54:50|cuda-0 | Set Device to current
cu 10:54:50|cuda-0 | Resetting device
cu 10:54:50|cuda-0 | Allocating light with size: 39190336
cu 10:54:50|cuda-0 | Generating mining buffers
cu 10:54:50|cuda-0 | Generating DAG for GPU # 0 with dagSize: 2508191872 gridSize: 8192
m 10:54:55|ethminer| Speed 0.00 Mh/s gpu/0 0.00 [A0+0:R0+0:F0] Time: 00:00
ℹ 10:54:56|getwork | Received new job #5a34e38b from http://eth-eu.dwarfpool.com:80/11111111111111111111111111111111111/miner-02
m 10:55:00|ethminer| Speed 0.00 Mh/s gpu/0 0.00 [A0+0:R0+0:F0] Time: 00:00
ℹ 10:55:01|getwork | Received new job #d48be1aa from http://eth-eu.dwarfpool.com:80/11111111111111111111111111111111111/miner-02
m 10:55:05|ethminer| Speed 0.00 Mh/s gpu/0 0.00 [A0+0:R0+0:F0] Time: 00:00
m 10:55:10|ethminer| Speed 0.00 Mh/s gpu/0 0.00 [A0+0:R0+0:F0] Time: 00:00
m 10:55:15|ethminer| Speed 0.00 Mh/s gpu/0 0.00 [A0+0:R0+0:F0] Time: 00:00
ℹ 10:55:19|getwork | Received new job #7f50d832 from http://eth-eu.dwarfpool.com:80/11111111111111111111111111111111111/miner-02
m 10:55:20|ethminer| Speed 5.56 Mh/s gpu/0 5.56 [A0+0:R0+0:F0] Time: 00:00
ℹ 10:55:21|getwork | Received new job #b41b6784 from http://eth-eu.dwarfpool.com:80/11111111111111111111111111111111111/miner-02
ℹ 10:55:23|getwork | Received new job #b9a76ceb from http://eth-eu.dwarfpool.com:80/11111111111111111111111111111111111/miner-02
m 10:55:25|ethminer| Speed 5.86 Mh/s gpu/0 5.86 [A0+0:R0+0:F0] Time: 00:00
m 10:55:30|ethminer| Speed 6.30 Mh/s gpu/0 6.30 [A0+0:R0+0:F0] Time: 00:00
m 10:55:35|ethminer| Speed 6.57 Mh/s gpu/0 6.57 [A0+0:R0+0:F0] Time: 00:00
ℹ 10:55:38|getwork | Received new job #e0329f03 from http://eth-eu.dwarfpool.com:80/11111111111111111111111111111111111/miner-02
m 10:55:40|ethminer| Speed 6.60 Mh/s gpu/0 6.60 [A0+0:R0+0:F0] Time: 00:00
m 10:55:45|ethminer| Speed 6.50 Mh/s gpu/0 6.50 [A0+0:R0+0:F0] Time: 00:01
m 10:55:50|ethminer| Speed 6.58 Mh/s gpu/0 6.58 [A0+0:R0+0:F0] Time: 00:01
m 10:55:55|ethminer| Speed 6.58 Mh/s gpu/0 6.58 [A0+0:R0+0:F0] Time: 00:01
m 10:56:00|ethminer| Speed 6.68 Mh/s gpu/0 6.68 [A0+0:R0+0:F0] Time: 00:01
m 10:56:05|ethminer| Speed 6.58 Mh/s gpu/0 6.58 [A0+0:R0+0:F0] Time: 00:01
m 10:56:10|ethminer| Speed 6.58 Mh/s gpu/0 6.58 [A0+0:R0+0:F0] Time: 00:01
m 10:56:15|ethminer| Speed 6.68 Mh/s gpu/0 6.68 [A0+0:R0+0:F0] Time: 00:01
m 10:56:20|ethminer| Speed 6.58 Mh/s gpu/0 6.58 [A0+0:R0+0:F0] Time: 00:01
m 10:56:25|ethminer| Speed 6.68 Mh/s gpu/0 6.68 [A0+0:R0+0:F0] Time: 00:01
ℹ 10:56:25|getwork | Received new job #22e64b5b from http://eth-eu.dwarfpool.com:80/11111111111111111111111111111111111/miner-02
m 10:56:30|ethminer| Speed 6.50 Mh/s gpu/0 6.50 [A0+0:R0+0:F0] Time: 00:01
m 10:56:35|ethminer| Speed 6.50 Mh/s gpu/0 6.50 [A0+0:R0+0:F0] Time: 00:01
m 10:56:40|ethminer| Speed 6.58 Mh/s gpu/0 6.58 [A0+0:R0+0:F0] Time: 00:01
ℹ 10:56:41|cuda-0 | Nonce 0x656b10dfbe95134f submitted to http://eth-eu.dwarfpool.com:80/11111111111111111111111111111111111/miner-02
ℹ 10:56:42|getwork | **Accepted in 500 ms.
m 10:56:45|ethminer| Speed 6.68 Mh/s gpu/0 6.68 [A1+0:R0+0:F0] Time: 00:02
ℹ 10:56:47|getwork | Received new job #304cc9df from http://eth-eu.dwarfpool.com:80/11111111111111111111111111111111111/miner-02
m 10:56:50|ethminer| Speed 6.50 Mh/s gpu/0 6.50 [A1+0:R0+0:F0] Time: 00:02
m 10:56:55|ethminer| Speed 6.51 Mh/s gpu/0 6.51 [A1+0:R0+0:F0] Time: 00:02

* Here is the all options of the ethminer:

./ethminer --help
Usage ethminer [OPTIONS]
Options:

Work farming mode:
    -F,--farm <url>  Put into mining farm mode with the work server at URL (default: http://127.0.0.1:8545)
    -FF,-FO, --farm-failover, --stratum-failover <url> Failover getwork/stratum URL (default: disabled)
        --farm-retries <n> Number of retries until switch to failover (default: 3)
        -S, --stratum <host:port>  Put into stratum mode with the stratum server at host:port
        -SF, --stratum-failover <host:port>  Failover stratum server at host:port
    -O, --userpass <username.workername:password> Stratum login credentials
    -FO, --failover-userpass <username.workername:password> Failover stratum login credentials (optional, will use normal credentials when omitted)
    --work-timeout <n> reconnect/failover after n seconds of working on the same (stratum) job. Defaults to 180. Don't set lower than max. avg. block time
    -SC, --stratum-client <n>  Stratum client version. Version 1 support only.
    -SP, --stratum-protocol <n> Choose which stratum protocol to use:
        0: official stratum spec: ethpool, ethermine, coinotron, mph, nanopool (default)
        1: eth-proxy compatible: dwarfpool, f2pool, nanopool (required for hashrate reporting to work with nanopool)
        2: EthereumStratum/1.0.0: nicehash
    -RH, --report-hashrate Report current hashrate to pool (please only enable on pools supporting this)
    -HWMON [n] Displays gpu temp, fan percent and power usage. Note: In linux, the program uses sysfs, which may require running with root priviledges.
        0: Displays only temp and fan percent (default)
        1: Also displays power usage
    --exit Stops the miner whenever an error is encountered
    -SE, --stratum-email <s> Email address used in eth-proxy (optional)
    --farm-recheck <n>  Leave n ms between checks for changed work (default: 500). When using stratum, use a high value (i.e. 2000) to get more stable hashrate output

Benchmarking mode:
    -M [<n>],--benchmark [<n>] Benchmark for mining and exit; Optionally specify block number to benchmark against specific DAG.
    --benchmark-warmup <seconds>  Set the duration of warmup for the benchmark tests (default: 3).
    --benchmark-trial <seconds>  Set the duration for each trial for the benchmark tests (default: 3).
    --benchmark-trials <n>  Set the number of benchmark trials to run (default: 5).
Simulation mode:
    -Z [<n>],--simulation [<n>] Mining test mode. Used to validate kernel optimizations. Optionally specify block number.
Mining configuration:
    -G,--opencl  When mining use the GPU via OpenCL.
    -U,--cuda  When mining use the GPU via CUDA.
    -X,--cuda-opencl Use OpenCL + CUDA in a system with mixed AMD/Nvidia cards. May require setting --opencl-platform 1
    --opencl-platform <n>  When mining using -G/--opencl use OpenCL platform n (default: 0).
    --opencl-device <n>  When mining using -G/--opencl use OpenCL device n (default: 0).
    --opencl-devices <0 1 ..n> Select which OpenCL devices to mine on. Default is to use all
    -t, --mining-threads <n> Limit number of CPU/GPU miners to n (default: use everything available on selected platform)
    --list-devices List the detected OpenCL/CUDA devices and exit. Should be combined with -G or -U flag
    --display-interval <n> Set mining stats display interval in seconds. (default: every 5 seconds)
    -L, --dag-load-mode <mode> DAG generation mode.
        parallel    - load DAG on all GPUs at the same time (default)
        sequential  - load DAG on GPUs one after another. Use this when the miner crashes during DAG generation
        single <n>  - generate DAG on device n, then copy to other devices
 OpenCL configuration:
    --cl-kernel <n>  Use a different OpenCL kernel (default: use stable kernel)
        0: stable kernel
        1: experimental kernel
    --cl-local-work Set the OpenCL local work size. Default is 128
    --cl-global-work Set the OpenCL global work size as a multiple of the local work size. Default is 8192 * 128
    --cl-parallel-hash <1 2 ..8> Define how many threads to associate per hash. Default=8
 CUDA configuration:
    --cuda-block-size Set the CUDA block work size. Default is 128
    --cuda-grid-size Set the CUDA grid size. Default is 8192
    --cuda-streams Set the number of CUDA streams. Default is 2
    --cuda-schedule <mode> Set the schedule mode for CUDA threads waiting for CUDA devices to finish work. Default is 'sync'. Possible values are:
        auto  - Uses a heuristic based on the number of active CUDA contexts in the process C and the number of logical processors in the system P. If C > P, then yield else spin.
        spin  - Instruct CUDA to actively spin when waiting for results from the device.
        yield - Instruct CUDA to yield its thread when waiting for results from the device.
        sync  - Instruct CUDA to block the CPU thread on a synchronization primitive when waiting for the results from the device.
    --cuda-devices <0 1 ..n> Select which CUDA GPUs to mine on. Default is to use all
    --cuda-parallel-hash <1 2 ..8> Define how many hashes to calculate in a kernel, can be scaled to achieve better performance. Default=4
    --cuda-noeval  bypass host software re-evalution of GPU solutions.
        This will trim some milliseconds off the time it takes to send a result to the pool.
        Use at your own risk! If GPU generates errored results they WILL be forwarded to the pool
        Not recommended at high overclock.
 API core configuration:
    --api-port Set the api port, the miner should listen to. Use 0 to disable. Default=0, use negative numbers to run in readonly mode. for example -3333.
 General Options:
    -v,--verbosity <0 - 9>  Set the log verbosity from 0 to 9 (default: 5). Set to 9 for switch time logging.
    -V,--version  Show the version and exit.
    -h,--help  Show this help message and exit.
 Envionment variables:
     NO_COLOR - set to any value to disable color output. Unset to re-enable color output.

Delete millions of files slowly without loading the server

There a situations when we need to delete a great deal of files from our filesystem and if we just execute

rm -Rf

the server will surely get loaded and the service it provides will degrade! What if you cannot reformat the filesystem, because the server use it extensively, but you need to delete let’s say a couple of millions file from it? We can use find and usleep (in most linux distro this program is installed by an additional package). The idea is to delete files one by one tuning the pause between every delete. Here you can execute this command in the background or a screen:

find /mnt/storage/old/ -type f -exec echo {} \; -exec rm {} \; -exec usleep 200000 \;

usleep accepts microseconds, so 200000 microseconds are 0.2 seconds. You can tune it precisely with a step of just a microsecond. In the real world under the bash console we probably will use values of max 1/10 of a second around above 100000 microseconds. Execute the command and then watch your server load and tune.

  • usleep in CentOS 7 is installed with package “initscripts”, which is installed by default
  • usleep in Ubuntu is missing and probably won’t find any safe place to download a package to install, but it can be sort of replace with “sleep <floating_point_number>s”, GNU sleep could accept floating point number for the delay and when added “s” at the end it could sleep for a fractions of a seconds. So the command for the Ubuntu is slightly changed:
    find /mnt/storage/old/ -type f -exec echo {} \; -exec rm {} \; -exec sleep 0.2s \;
    
  • not GNU version of sleep require NUMBER, so the smallest sleep is only 1 second, which is too big for the purpose. Check your man manual to see if your system has GNU sleep command.

Reset any linux system from the console as if the reset button was pushed

What if you do not have the physical access to your server and you know there is a great possibility your server won’t shutdown properly, when you issue a reboot command (halt, shutdown and so on).
Ok, here is a situation, you have a dedicated server with no panel for resets, no IPMI access and a kernel bug just left a process with Disk sleep or any uninterruptible state that even a kill -9 won’t help! So just rebooting with the normal process of shutdown (going through the init levels or systemd states) won’t help, the shutdown process will be waiting infinite time for proper process termination, which won’t happen! All you need is just a simple old reset button pushed, but you have only a console, here what you can do and it is essentially the same as if someone pushed the server reset button:

echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger

This technique is known as magic SysRq key and have more options, but this is probably most used. It will immediately reboot the server, without unmounting or syncing filesystems. So be extremely careful and an additional advice: issue a sync command before the reset, even if you know it it won’t finish.

sync &

BE WARNED, you can break your filesystem (with the modern filesystem and their late state this is unlikely to happen) or database (this is really likely to happen, but you could always repair or at least shutdown the database software and/or make a backup before), but you can save your server!

Create a simple spamassassin rule to catch words

Not so often we need to write our custom rules for fighting against spam, but sometimes we need it, because a spammer just wanted to target specifically our server or clients. If you use spamassassin here what you can do to create a simple rule to find words and rate the message with a desired score, which will (probably) mark it as a spam.
The template is as follows:

  • headers search, the example template is for the Subject header, but you could any other header name.
    header <RULENAME> Subject =~ /word1, word2, word3, ..., wordN/
    score <RULENAME> <score>
    describe <RULENAME> <description>
    
  • body search
    body <RULENAME> /word1, word2, word3, ..., wordN/
    score <RULENAME> <score>
    describe <RULENAME> <description>
    

Set these 3 lines (or the 6 above for the headers and body) in your user_prefs.cf file, which is probably here:

  • /etc/mail/spamassassin/local.cf – CentOS 7
  • /etc/spamassassin/ – Ubuntu 16/17, Gentoo
  • ~/.spamassassin/user_prefs.cf – custom file per user

Here is example of the rules:

header CONTAINS_VIG Subject =~ /apple, orange/
score CONTAINS_VIG 1.5
describe CONTAINS_VIG Bad Word fruits in the Subject
body CONTAINS_PEN /apple, orange/
score CONTAINS_PEN 1.5
describe CONTAINS_PEN Bad Word in the Body

Catch messages in the Subject and body containing apple and orange and add to the scoring system 1.5, for your purses you may need to increase the scoring drastically it depends on your required score for spam (check for it in local.cf).

* Update

As of Rob Morin proposed in the comments it is a good idea to add “/i” to catch lower and capital letters (“ignore case”) like this:

header CONTAINS_VIG Subject =~ /apple, orange/i
score CONTAINS_VIG 1.5
describe CONTAINS_VIG Bad Word fruits in the Subject
body CONTAINS_PEN /apple, orange/i
score CONTAINS_PEN 1.5
describe CONTAINS_PEN Bad Word in the Body

Howto do a netinstall of CentOS 7 (7.4.1708) – minimal server installation

Minimal net install is useful when a dedicated server is installed from a IPMI KVM or Dell iDRAC, HP iLO, IBM IMM or where the initial client side download of files need to be minimal.
For amd64 CentOS 7 the net install bootable media is located here (now the current latest release is 7.4.1708, but you can check the last directory with 7. for the time you follow this howto):

http://mirror.leaseweb.com/centos/7.4.1708/isos/x86_64/CentOS-7-x86_64-NetInstall-1708.iso

Now this version is deprecated and you could have problems downloading it, so you could try the CentOS vault – http://vault.centos.org/7.4.1708/isos/x86_64/ Just follow the instructions for downloading.
Download it and put it on a cd or usb, the boot from it and follow the steps bellow:

STEP 1) Select “Install CentOS 7” and press “Enter”

main menu
Select CentOS 7 Installation

STEP 2) Wait for the installation to boot

main menu
Booting the installation

STEP 3) This is the first step, you could choose your Country and language, English is the default.

main menu
Country and language selection

STEP 4) Setup the right time and time zone of your server, this step is important, the clock of the server is really important for your software to work properly!

main menu
Date & Time

STEP 5) Often servers are set with UTC time, which is never changed (no summer saving time!). UTC is Coordinated Universal Time and first you must select “Etc” from the first dropdown menu.

main menu
Date & Time – UTC selected

STEP 6) Next let’s configure the network, because we are doing a network installation you need Internet connection to install the CentOS 7.

main menu
Network & Host Name

STEP 7) Click to configure the selected network adapter on the right.

main menu
Configure network Adapter

STEP 8) Click on the menu “IPv4 Settings”, then choose from the dropdown menu “Manual” (technically you can leave it Automattically as the default is, but this is a server howto it is not very clever your IP to be assigned by a DHCP server, but your setup could vary). Then click on “Add” and write your IP address, network mask and gateway, then in the DNS Servers write your local (and fast!) DNS server, if you have more than one separate them with comas.

main menu
IPv Settings

STEP 9) Click “General” menu and then check the “Automatically connect to this network when it is available” – this is very important, because if you do not check, when you reboot the server, it won’t start the network! Click Save.

main menu
General Adapter settings

STEP 10) You can see the network is up and connected. Set a host name to your server and click on “Apply” and that’s all for the network configuration, click on “Done”.

main menu
Host Name setup

STEP 11) Click on “Installation Source” to setup the source of your installation files, because this is network installation this step is mandatory.

main menu
Installation Destination

STEP 12) Set the URL from where the setup will download packages and installation files. Set the nearest source to your server, you can check mirrors here:

https://www.centos.org/download/mirrors/

At present the latest version of CentOS 7 is 7.4.1708, but after a while it could be other, so browse the latest version directory, then you must choose directory “/os/” (there are probably many others, but we need especially “os”) and then “/x86_64/”. And then click on “Done”. That’s all you’ve configured the installation source, so now the setup knows where to look for packages and metadata for the installation process.

main menu
URL of the OS packages.

STEP 13) Choose your software to install. Click on “Software Selection”.

main menu
Software Selection

STEP 14) Because this howto is a minimal installation you should check “Minimal Install” , but you could choose another option below, the one suited best for your future server. And then click on “Done” to save the configuration.

main menu
Minimal Install

STEP 15) Click on “Installation Destination” to set the hard drive and partitions layout configuration for your server.

main menu
Installation Destination

STEP 16) The default is to leave the how disk to the setup to manage (make sure the “Automatically configure partitioning.” is checked), it will use the how hard drive checked from the Local Standard Disks. Check all the local disks you want to use in your server if more than one. If your disk has partitions you may be prompted to acquire free space by deleting existing partitions – be careful with this option, think twice before deleting partitions! Click on “Done” to save configuration.

main menu
Device selection – hard disk and partition configuration

STEP 17) Click on “Security policy” to setup a default security policy as selinux – use it whenever it is available!

main menu
Security Policy

STEP 18) Click on the “Standard System Security Porfile”, which will enable SELINUX security in your installation and then click “Select Profile”, after clicking the button will become grayed and the selection will have a green check in the right. Then click on “Done”.

main menu
Standard System Security Profile – SELINUX

STEP 19) We are all done and it is time to start the real installation of the system. Till now we’ve just configured the installation process. So click on “Begin Installation”.

main menu
Begin Installation

STEP 20) When the installation process is running you are prompt to set the root password and to add users. For clarity we set only the root password.

main menu
Root password setup

STEP 21) Set two times your password for the root user and then click “Done”.

main menu
Enter root password

STEP 22) The installation process is still running, just wait to finish.

main menu
Starting package installation process

STEP 23) You can see how many packets are install and the current installing packet and number.

main menu
Installing packages…

STEP 24) If everything goes with no errors and probably it will be with no errors you must click on “Reboot” to reboot the server in the newly installed OS.

main menu
Installation ready. Reboot

STEP 25) Grub2 and two options to select, the default is the latest kernel installed.

main menu
Grub2, default kernel boot

STEP 26) And the server is at login. The ssh server is also installed and you can access the server via ssh on the default port 22 and root login is permitted.

main menu
Login

How to compile cpuminer-multi under Ubuntu 16.04 LTS for CPU mining cryptocurrencies

Thanks to cpuminer-multi we can have one application capable of mining many different cryptocurrencies based on different algorithms. Here are the steps you should do to install (in fact install dependencies and compile the miner) to begin mining:

STEP 1) Update your system and install the following dependencies

sudo apt-get -y update
sudo apt-get -y install gcc g++ build-essential automake linux-headers-$(uname -r) git gawk libcurl4-openssl-dev libjansson-dev libssl-dev xorg libc++-dev libgmp-dev python-dev screen

STEP 2) Compile the mining program cpuminer-multi

cd
git clone https://github.com/tpruvot/cpuminer-multi
cd cpuminer-multi/
./autogen.sh
./configure --with-crypto --with-curl
make -j 8

Execute the program to see if everything is OK. With the help output you can see how many alogrithms are supported as of version 1.3.3 of cpuminer-multi.

./cpuminer --help
** cpuminer-multi 1.3.3 by tpruvot@github **
BTC donation address: 1FhDPLPpw18X4srecguG3MxJYe4a1JsZnd (tpruvot)

Usage: cpuminer-multi [OPTIONS]
Options:
  -a, --algo=ALGO       specify the algorithm to use
                          axiom        Shabal-256 MemoHash
                          bitcore      Timetravel with 10 algos
                          blake        Blake-256 14-rounds (SFR)
                          blakecoin    Blake-256 single sha256 merkle
                          blake2s      Blake2-S (256)
                          bmw          BMW 256
                          c11/flax     C11
                          cryptolight  Cryptonight-light
                          cryptonight  Monero
                          decred       Blake-256 14-rounds 180 bytes
                          dmd-gr       Diamond-Groestl
                          drop         Dropcoin
                          fresh        Fresh
                          groestl      GroestlCoin
                          heavy        Heavy
                          jha          JHA
                          keccak       Keccak (Old and deprecated)
                          keccakc      Keccak (CreativeCoin)
                          luffa        Luffa
                          lyra2re      Lyra2RE
                          lyra2rev2    Lyra2REv2 (Vertcoin)
                          myr-gr       Myriad-Groestl
                          neoscrypt    NeoScrypt(128, 2, 1)
                          nist5        Nist5
                          pluck        Pluck:128 (Supcoin)
                          pentablake   Pentablake
                          quark        Quark
                          qubit        Qubit
                          scrypt       scrypt(1024, 1, 1) (default)
                          scrypt:N     scrypt(N, 1, 1)
                          scrypt-jane:N (with N factor from 4 to 30)
                          shavite3     Shavite3
                          sha256d      SHA-256d
                          sia          Blake2-B
                          sib          X11 + gost (SibCoin)
                          skein        Skein+Sha (Skeincoin)
                          skein2       Double Skein (Woodcoin)
                          s3           S3
                          timetravel   Timetravel (Machinecoin)
                          vanilla      Blake-256 8-rounds
                          x11evo       Permuted x11
                          x11          X11
                          x13          X13
                          x14          X14
                          x15          X15
                          x16r         X16R (Raven)
                          x17          X17
                          xevan        Xevan (BitSend)
                          yescrypt     Yescrypt
                          zr5          ZR5
  -o, --url=URL         URL of mining server
  -O, --userpass=U:P    username:password pair for mining server
  -u, --user=USERNAME   username for mining server
  -p, --pass=PASSWORD   password for mining server
      --cert=FILE       certificate for mining server using SSL
  -x, --proxy=[PROTOCOL://]HOST[:PORT]  connect through a proxy
  -t, --threads=N       number of miner threads (default: number of processors)
  -r, --retries=N       number of times to retry if a network call fails
                          (default: retry indefinitely)
  -R, --retry-pause=N   time to pause between retries, in seconds (default: 30)
      --time-limit=N    maximum time [s] to mine before exiting the program.
  -T, --timeout=N       timeout for long poll and stratum (default: 300 seconds)
  -s, --scantime=N      upper bound on time spent scanning current work when
                          long polling is unavailable, in seconds (default: 5)
      --randomize       Randomize scan range start to reduce duplicates
  -f, --diff-factor     Divide req. difficulty by this factor (std is 1.0)
  -m, --diff-multiplier Multiply difficulty by this factor (std is 1.0)
  -n, --nfactor         neoscrypt N-Factor
      --coinbase-addr=ADDR  payout address for solo mining
      --coinbase-sig=TEXT  data to insert in the coinbase when possible
      --max-log-rate    limit per-core hashrate logs (default: 5s)
      --no-longpoll     disable long polling support
      --no-getwork      disable getwork support
      --no-gbt          disable getblocktemplate support
      --no-stratum      disable X-Stratum support
      --no-extranonce   disable Stratum extranonce support
      --no-redirect     ignore requests to change the URL of the mining server
  -q, --quiet           disable per-thread hashmeter output
      --no-color        disable colored output
  -D, --debug           enable debug output
  -P, --protocol-dump   verbose dump of protocol-level activities
      --hide-diff       Hide submitted block and net difficulty
  -S, --syslog          use system log for output messages
  -B, --background      run the miner in the background
      --benchmark       run in offline benchmark mode
      --cputest         debug hashes from cpu algorithms
      --cpu-affinity    set process affinity to cpu core(s), mask 0x3 for cores 0 and 1
      --cpu-priority    set process priority (default: 0 idle, 2 normal to 5 highest)
  -b, --api-bind        IP/Port for the miner API (default: 127.0.0.1:4048)
      --api-remote      Allow remote control
      --max-temp=N      Only mine if cpu temp is less than specified value (linux)
      --max-rate=N[KMG] Only mine if net hashrate is less than specified value
      --max-diff=N      Only mine if net difficulty is less than specified value
  -c, --config=FILE     load a JSON-format configuration file
  -V, --version         display version information and exit
  -h, --help            display this help text and exit

Here is an example of mining monero or Electoneum (cryptonight algo):

./cpuminer -a cryptonight -o stratum+tcp://monero.pool:1111 -u <monero address> -p <email>

Here is the output of example installation (the apt-get update and install are trimmed):

ubuntu@srv:~$ sudo su
root@srv:/home/ubuntu# cd
root@srv:~# apt-get -y update
...
root@srv:~# apt-get -y install gcc g++ build-essential automake linux-headers-$(uname -r) git gawk libcurl4-openssl-dev libjansson-dev xorg libc++-dev libgmp-dev python-dev screen
Reading package lists... Done
Building dependency tree       
Reading state information... Done
gawk is already the newest version (1:4.1.3+dfsg-0.1).
screen is already the newest version (4.3.1-2build1).
git is already the newest version (1:2.7.4-0ubuntu1.3).
linux-headers-4.4.0-1041-aws is already the newest version (4.4.0-1041.50).
The following additional packages will be installed:
  autoconf autotools-dev binutils cpp cpp-5 dpkg-dev fakeroot fontconfig-config fonts-dejavu-core g++-5 gcc-5 gcc-5-base libalgorithm-diff-perl libalgorithm-diff-xs-perl
  libalgorithm-merge-perl libasan2 libatomic1 libboost-filesystem1.58.0 libboost-system1.58.0 libc++-helpers libc++1 libc-dev-bin libc6 libc6-dev libcapnp-0.5.3 libcc1-0
  libcilkrts5 libcurl3 libdpkg-perl libdrm-amdgpu1 libdrm-common libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libdrm2 libegl1-mesa libepoxy0 libevdev2 libexpat1-dev
  libfakeroot libfile-fcntllock-perl libfontconfig1 libfontenc1 libgbm1 libgcc-5-dev libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libglu1-mesa libgmpxx4ldbl libgomp1
  libice6 libisl15 libitm1 libjansson4 libllvm5.0 liblsan0 libmirclient9 libmircommon7 libmircore1 libmirprotobuf3 libmpc3 libmpx0 libmtdev1 libpciaccess0 libpixman-1-0
  libprotobuf-lite9v5 libpython-dev libpython-stdlib libpython2.7 libpython2.7-dev libpython2.7-minimal libpython2.7-stdlib libquadmath0 libsensors4 libsm6
  libstdc++-5-dev libstdc++6 libtsan0 libtxc-dxtn-s2tc0 libubsan0 libwayland-client0 libwayland-server0 libx11-xcb1 libxatracker2 libxaw7 libxcb-dri2-0 libxcb-dri3-0
  libxcb-glx0 libxcb-present0 libxcb-shape0 libxcb-sync1 libxcb-util1 libxcb-xfixes0 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxfont1 libxft2 libxi6
  libxinerama1 libxkbcommon0 libxkbfile1 libxmu6 libxpm4 libxrandr2 libxrender1 libxshmfence1 libxss1 libxt6 libxtst6 libxv1 libxvmc1 libxxf86dga1 libxxf86vm1
  linux-libc-dev m4 make manpages-dev python python-minimal python2.7 python2.7-dev python2.7-minimal x11-apps x11-common x11-session-utils x11-utils x11-xkb-utils
  x11-xserver-utils xbitmaps xfonts-base xfonts-encodings xfonts-scalable xfonts-utils xinit xinput xorg-docs-core xserver-common xserver-xorg xserver-xorg-core
  xserver-xorg-input-all xserver-xorg-input-evdev xserver-xorg-input-synaptics xserver-xorg-input-vmmouse xserver-xorg-input-wacom xserver-xorg-video-all
  xserver-xorg-video-amdgpu xserver-xorg-video-ati xserver-xorg-video-fbdev xserver-xorg-video-intel xserver-xorg-video-nouveau xserver-xorg-video-qxl
  xserver-xorg-video-radeon xserver-xorg-video-vesa xserver-xorg-video-vmware xterm
Suggested packages:
  autoconf-archive gnu-standards autoconf-doc libtool gettext binutils-doc cpp-doc gcc-5-locales debian-keyring g++-multilib g++-5-multilib gcc-5-doc libstdc++6-5-dbg
  gcc-multilib flex bison gdb gcc-doc gcc-5-multilib libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan2-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg
  libcilkrts5-dbg libmpx0-dbg libquadmath0-dbg clang glibc-doc libcurl4-doc libcurl3-dbg libidn11-dev libkrb5-dev libldap2-dev librtmp-dev libssl-dev pkg-config
  zlib1g-dev gmp-doc libgmp10-doc libmpfr-dev lm-sensors libstdc++-5-doc make-doc python-doc python-tk python2.7-doc binfmt-support mesa-utils nickle cairo-5c xorg-docs
  xfonts-100dpi xfonts-75dpi x11-xfs-utils xfonts-100dpi | xfonts-75dpi gpointing-device-settings touchfreeze firmware-amd-graphics xserver-xorg-video-r128
  xserver-xorg-video-mach64 xfonts-cyrillic
The following NEW packages will be installed:
  autoconf automake autotools-dev binutils build-essential cpp cpp-5 dpkg-dev fakeroot fontconfig-config fonts-dejavu-core g++ g++-5 gcc gcc-5 libalgorithm-diff-perl
  libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libboost-filesystem1.58.0 libboost-system1.58.0 libc++-dev libc++-helpers libc++1 libc-dev-bin
  libc6-dev libcapnp-0.5.3 libcc1-0 libcilkrts5 libcurl3 libcurl4-openssl-dev libdpkg-perl libdrm-amdgpu1 libdrm-common libdrm-intel1 libdrm-nouveau2 libdrm-radeon1
  libegl1-mesa libepoxy0 libevdev2 libexpat1-dev libfakeroot libfile-fcntllock-perl libfontconfig1 libfontenc1 libgbm1 libgcc-5-dev libgl1-mesa-dri libgl1-mesa-glx
  libglapi-mesa libglu1-mesa libgmp-dev libgmpxx4ldbl libgomp1 libice6 libisl15 libitm1 libjansson-dev libjansson4 libllvm5.0 liblsan0 libmirclient9 libmircommon7
  libmircore1 libmirprotobuf3 libmpc3 libmpx0 libmtdev1 libpciaccess0 libpixman-1-0 libprotobuf-lite9v5 libpython-dev libpython-stdlib libpython2.7 libpython2.7-dev
  libpython2.7-minimal libpython2.7-stdlib libquadmath0 libsensors4 libsm6 libstdc++-5-dev libtsan0 libtxc-dxtn-s2tc0 libubsan0 libwayland-client0 libwayland-server0
  libx11-xcb1 libxatracker2 libxaw7 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-shape0 libxcb-sync1 libxcb-util1 libxcb-xfixes0 libxcomposite1
  libxcursor1 libxdamage1 libxfixes3 libxfont1 libxft2 libxi6 libxinerama1 libxkbcommon0 libxkbfile1 libxmu6 libxpm4 libxrandr2 libxrender1 libxshmfence1 libxss1 libxt6
  libxtst6 libxv1 libxvmc1 libxxf86dga1 libxxf86vm1 linux-libc-dev m4 make manpages-dev python python-dev python-minimal python2.7 python2.7-dev python2.7-minimal
  x11-apps x11-common x11-session-utils x11-utils x11-xkb-utils x11-xserver-utils xbitmaps xfonts-base xfonts-encodings xfonts-scalable xfonts-utils xinit xinput xorg
  xorg-docs-core xserver-common xserver-xorg xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-evdev xserver-xorg-input-synaptics xserver-xorg-input-vmmouse
  xserver-xorg-input-wacom xserver-xorg-video-all xserver-xorg-video-amdgpu xserver-xorg-video-ati xserver-xorg-video-fbdev xserver-xorg-video-intel
  xserver-xorg-video-nouveau xserver-xorg-video-qxl xserver-xorg-video-radeon xserver-xorg-video-vesa xserver-xorg-video-vmware xterm
The following packages will be upgraded:
  gcc-5-base libc6 libdrm2 libstdc++6
4 upgraded, 164 newly installed, 0 to remove and 93 not upgraded.
Need to get 114 MB of archives.
After this operation, 457 MB of additional disk space will be used.
...
root@srv:~# git clone https://github.com/tpruvot/cpuminer-multi
Cloning into 'cpuminer-multi'...
remote: Counting objects: 3803, done.
remote: Total 3803 (delta 0), reused 0 (delta 0), pack-reused 3803
Receiving objects: 100% (3803/3803), 18.99 MiB | 30.51 MiB/s, done.
Resolving deltas: 100% (2589/2589), done.
Checking connectivity... done.
root@srv:~# cd /root/cpuminer-multi/
root@srv:~/cpuminer-multi# export CFLAGS="-march=native -O2 -msse3 -fomit-frame-pointer -pipe"
root@srv:~/cpuminer-multi# export CXXFLAGS="${CFLAGS}"
root@srv:~/cpuminer-multi# export CHOST="x86_64-pc-linux-gnu"
root@srv:~/cpuminer-multi# export MAKEOPTS="-j8"
root@srv:~/cpuminer-multi# ./autogen.sh
configure.ac:15: installing './compile'
configure.ac:4: installing './config.guess'
configure.ac:4: installing './config.sub'
configure.ac:9: installing './install-sh'
configure.ac:9: installing './missing'
Makefile.am: installing './depcomp'
root@srv:~/cpuminer-multi# ./configure --with-crypto --with-curl
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for gcc option to accept ISO C99... none needed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking whether gcc needs -traditional... no
checking dependency style of gcc... gcc3
checking for ranlib... ranlib
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking sys/endian.h usability... no
checking sys/endian.h presence... no
checking for sys/endian.h... no
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking for sys/sysctl.h... yes
checking whether be32dec is declared... no
checking whether le32dec is declared... no
checking whether be32enc is declared... no
checking whether le32enc is declared... no
checking whether le16dec is declared... no
checking whether le16enc is declared... no
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for getopt_long... yes
checking whether we can compile AVX code... yes
checking whether we can compile XOP code... yes
checking whether we can compile AVX2 code... yes
checking for json_loads in -ljansson... yes
checking for pthread_create in -lpthread... yes
checking whether __uint128_t is supported... yes
checking for gzopen in -lz... yes
checking for EVP_DigestFinal_ex in -lcrypto... yes
checking for SSL_free in -lssl... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating compat/Makefile
config.status: creating compat/jansson/Makefile
config.status: creating cpuminer-config.h
config.status: cpuminer-config.h is unchanged
config.status: executing depfiles commands
root@srv:~/cpuminer-multi# make -j 8
make  all-recursive
make[1]: Entering directory '/root/cpuminer-multi'
Making all in compat
make[2]: Entering directory '/root/cpuminer-multi/compat'
make[3]: Entering directory '/root/cpuminer-multi/compat'
make[3]: Nothing to be done for 'all-am'.
make[3]: Leaving directory '/root/cpuminer-multi/compat'
make[2]: Leaving directory '/root/cpuminer-multi/compat'
make[2]: Entering directory '/root/cpuminer-multi'
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT sha3/cpuminer-sph_keccak.o -MD -MP -MF sha3/.deps/cpuminer-sph_keccak.Tpo -c -o sha3/cpuminer-sph_keccak.o `test -f 'sha3/sph_keccak.c' || echo './'`sha3/sph_keccak.c
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT sha3/cpuminer-sph_hefty1.o -MD -MP -MF sha3/.deps/cpuminer-sph_hefty1.Tpo -c -o sha3/cpuminer-sph_hefty1.o `test -f 'sha3/sph_hefty1.c' || echo './'`sha3/sph_hefty1.c
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT sha3/cpuminer-sph_groestl.o -MD -MP -MF sha3/.deps/cpuminer-sph_groestl.Tpo -c -o sha3/cpuminer-sph_groestl.o `test -f 'sha3/sph_groestl.c' || echo './'`sha3/sph_groestl.c
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT sha3/cpuminer-sph_skein.o -MD -MP -MF sha3/.deps/cpuminer-sph_skein.Tpo -c -o sha3/cpuminer-sph_skein.o `test -f 'sha3/sph_skein.c' || echo './'`sha3/sph_skein.c
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT sha3/cpuminer-sph_bmw.o -MD -MP -MF sha3/.deps/cpuminer-sph_bmw.Tpo -c -o sha3/cpuminer-sph_bmw.o `test -f 'sha3/sph_bmw.c' || echo './'`sha3/sph_bmw.c
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT sha3/cpuminer-sph_jh.o -MD -MP -MF sha3/.deps/cpuminer-sph_jh.Tpo -c -o sha3/cpuminer-sph_jh.o `test -f 'sha3/sph_jh.c' || echo './'`sha3/sph_jh.c
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT sha3/cpuminer-sph_shavite.o -MD -MP -MF sha3/.deps/cpuminer-sph_shavite.Tpo -c -o sha3/cpuminer-sph_shavite.o `test -f 'sha3/sph_shavite.c' || echo './'`sha3/sph_shavite.c
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT sha3/cpuminer-sph_blake.o -MD -MP -MF sha3/.deps/cpuminer-sph_blake.Tpo -c -o sha3/cpuminer-sph_blake.o `test -f 'sha3/sph_blake.c' || echo './'`sha3/sph_blake.c
mv -f sha3/.deps/cpuminer-sph_hefty1.Tpo sha3/.deps/cpuminer-sph_hefty1.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT sha3/cpuminer-mod_blakecoin.o -MD -MP -MF sha3/.deps/cpuminer-mod_blakecoin.Tpo -c -o sha3/cpuminer-mod_blakecoin.o `test -f 'sha3/mod_blakecoin.c' || echo './'`sha3/mod_blakecoin.c
mv -f sha3/.deps/cpuminer-mod_blakecoin.Tpo sha3/.deps/cpuminer-mod_blakecoin.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT sha3/cpuminer-sph_luffa.o -MD -MP -MF sha3/.deps/cpuminer-sph_luffa.Tpo -c -o sha3/cpuminer-sph_luffa.o `test -f 'sha3/sph_luffa.c' || echo './'`sha3/sph_luffa.c
mv -f sha3/.deps/cpuminer-sph_skein.Tpo sha3/.deps/cpuminer-sph_skein.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT sha3/cpuminer-sph_cubehash.o -MD -MP -MF sha3/.deps/cpuminer-sph_cubehash.Tpo -c -o sha3/cpuminer-sph_cubehash.o `test -f 'sha3/sph_cubehash.c' || echo './'`sha3/sph_cubehash.c
mv -f sha3/.deps/cpuminer-sph_keccak.Tpo sha3/.deps/cpuminer-sph_keccak.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT sha3/cpuminer-sph_simd.o -MD -MP -MF sha3/.deps/cpuminer-sph_simd.Tpo -c -o sha3/cpuminer-sph_simd.o `test -f 'sha3/sph_simd.c' || echo './'`sha3/sph_simd.c
mv -f sha3/.deps/cpuminer-sph_bmw.Tpo sha3/.deps/cpuminer-sph_bmw.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT sha3/cpuminer-sph_echo.o -MD -MP -MF sha3/.deps/cpuminer-sph_echo.Tpo -c -o sha3/cpuminer-sph_echo.o `test -f 'sha3/sph_echo.c' || echo './'`sha3/sph_echo.c
mv -f sha3/.deps/cpuminer-sph_blake.Tpo sha3/.deps/cpuminer-sph_blake.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT sha3/cpuminer-sph_hamsi.o -MD -MP -MF sha3/.deps/cpuminer-sph_hamsi.Tpo -c -o sha3/cpuminer-sph_hamsi.o `test -f 'sha3/sph_hamsi.c' || echo './'`sha3/sph_hamsi.c
mv -f sha3/.deps/cpuminer-sph_jh.Tpo sha3/.deps/cpuminer-sph_jh.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT sha3/cpuminer-sph_haval.o -MD -MP -MF sha3/.deps/cpuminer-sph_haval.Tpo -c -o sha3/cpuminer-sph_haval.o `test -f 'sha3/sph_haval.c' || echo './'`sha3/sph_haval.c
mv -f sha3/.deps/cpuminer-sph_groestl.Tpo sha3/.deps/cpuminer-sph_groestl.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT sha3/cpuminer-sph_fugue.o -MD -MP -MF sha3/.deps/cpuminer-sph_fugue.Tpo -c -o sha3/cpuminer-sph_fugue.o `test -f 'sha3/sph_fugue.c' || echo './'`sha3/sph_fugue.c
mv -f sha3/.deps/cpuminer-sph_cubehash.Tpo sha3/.deps/cpuminer-sph_cubehash.Po
mv -f sha3/.deps/cpuminer-sph_luffa.Tpo sha3/.deps/cpuminer-sph_luffa.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT sha3/cpuminer-sph_ripemd.o -MD -MP -MF sha3/.deps/cpuminer-sph_ripemd.Tpo -c -o sha3/cpuminer-sph_ripemd.o `test -f 'sha3/sph_ripemd.c' || echo './'`sha3/sph_ripemd.c
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT sha3/cpuminer-sph_sha2.o -MD -MP -MF sha3/.deps/cpuminer-sph_sha2.Tpo -c -o sha3/cpuminer-sph_sha2.o `test -f 'sha3/sph_sha2.c' || echo './'`sha3/sph_sha2.c
mv -f sha3/.deps/cpuminer-sph_shavite.Tpo sha3/.deps/cpuminer-sph_shavite.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT sha3/cpuminer-sph_sha2big.o -MD -MP -MF sha3/.deps/cpuminer-sph_sha2big.Tpo -c -o sha3/cpuminer-sph_sha2big.o `test -f 'sha3/sph_sha2big.c' || echo './'`sha3/sph_sha2big.c
mv -f sha3/.deps/cpuminer-sph_sha2big.Tpo sha3/.deps/cpuminer-sph_sha2big.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT sha3/cpuminer-sph_shabal.o -MD -MP -MF sha3/.deps/cpuminer-sph_shabal.Tpo -c -o sha3/cpuminer-sph_shabal.o `test -f 'sha3/sph_shabal.c' || echo './'`sha3/sph_shabal.c
mv -f sha3/.deps/cpuminer-sph_echo.Tpo sha3/.deps/cpuminer-sph_echo.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT sha3/cpuminer-sph_whirlpool.o -MD -MP -MF sha3/.deps/cpuminer-sph_whirlpool.Tpo -c -o sha3/cpuminer-sph_whirlpool.o `test -f 'sha3/sph_whirlpool.c' || echo './'`sha3/sph_whirlpool.c
mv -f sha3/.deps/cpuminer-sph_sha2.Tpo sha3/.deps/cpuminer-sph_sha2.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT sha3/cpuminer-gost_streebog.o -MD -MP -MF sha3/.deps/cpuminer-gost_streebog.Tpo -c -o sha3/cpuminer-gost_streebog.o `test -f 'sha3/gost_streebog.c' || echo './'`sha3/gost_streebog.c
mv -f sha3/.deps/cpuminer-sph_shabal.Tpo sha3/.deps/cpuminer-sph_shabal.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT crypto/cpuminer-blake2s.o -MD -MP -MF crypto/.deps/cpuminer-blake2s.Tpo -c -o crypto/cpuminer-blake2s.o `test -f 'crypto/blake2s.c' || echo './'`crypto/blake2s.c
mv -f sha3/.deps/cpuminer-gost_streebog.Tpo sha3/.deps/cpuminer-gost_streebog.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT crypto/cpuminer-blake2b.o -MD -MP -MF crypto/.deps/cpuminer-blake2b.Tpo -c -o crypto/cpuminer-blake2b.o `test -f 'crypto/blake2b.c' || echo './'`crypto/blake2b.c
mv -f crypto/.deps/cpuminer-blake2b.Tpo crypto/.deps/cpuminer-blake2b.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT crypto/cpuminer-oaes_lib.o -MD -MP -MF crypto/.deps/cpuminer-oaes_lib.Tpo -c -o crypto/cpuminer-oaes_lib.o `test -f 'crypto/oaes_lib.c' || echo './'`crypto/oaes_lib.c
mv -f sha3/.deps/cpuminer-sph_ripemd.Tpo sha3/.deps/cpuminer-sph_ripemd.Po
mv -f sha3/.deps/cpuminer-sph_whirlpool.Tpo sha3/.deps/cpuminer-sph_whirlpool.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT crypto/cpuminer-c_keccak.o -MD -MP -MF crypto/.deps/cpuminer-c_keccak.Tpo -c -o crypto/cpuminer-c_keccak.o `test -f 'crypto/c_keccak.c' || echo './'`crypto/c_keccak.c
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT crypto/cpuminer-c_groestl.o -MD -MP -MF crypto/.deps/cpuminer-c_groestl.Tpo -c -o crypto/cpuminer-c_groestl.o `test -f 'crypto/c_groestl.c' || echo './'`crypto/c_groestl.c
mv -f crypto/.deps/cpuminer-c_keccak.Tpo crypto/.deps/cpuminer-c_keccak.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT crypto/cpuminer-c_blake256.o -MD -MP -MF crypto/.deps/cpuminer-c_blake256.Tpo -c -o crypto/cpuminer-c_blake256.o `test -f 'crypto/c_blake256.c' || echo './'`crypto/c_blake256.c
mv -f crypto/.deps/cpuminer-blake2s.Tpo crypto/.deps/cpuminer-blake2s.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT crypto/cpuminer-c_jh.o -MD -MP -MF crypto/.deps/cpuminer-c_jh.Tpo -c -o crypto/cpuminer-c_jh.o `test -f 'crypto/c_jh.c' || echo './'`crypto/c_jh.c
mv -f sha3/.deps/cpuminer-sph_fugue.Tpo sha3/.deps/cpuminer-sph_fugue.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT crypto/cpuminer-c_skein.o -MD -MP -MF crypto/.deps/cpuminer-c_skein.Tpo -c -o crypto/cpuminer-c_skein.o `test -f 'crypto/c_skein.c' || echo './'`crypto/c_skein.c
mv -f sha3/.deps/cpuminer-sph_simd.Tpo sha3/.deps/cpuminer-sph_simd.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT crypto/cpuminer-hash.o -MD -MP -MF crypto/.deps/cpuminer-hash.Tpo -c -o crypto/cpuminer-hash.o `test -f 'crypto/hash.c' || echo './'`crypto/hash.c
mv -f crypto/.deps/cpuminer-oaes_lib.Tpo crypto/.deps/cpuminer-oaes_lib.Po
mv -f crypto/.deps/cpuminer-c_groestl.Tpo crypto/.deps/cpuminer-c_groestl.Po
mv -f crypto/.deps/cpuminer-hash.Tpo crypto/.deps/cpuminer-hash.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT crypto/cpuminer-aesb.o -MD -MP -MF crypto/.deps/cpuminer-aesb.Tpo -c -o crypto/cpuminer-aesb.o `test -f 'crypto/aesb.c' || echo './'`crypto/aesb.c
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT lyra2/cpuminer-Lyra2.o -MD -MP -MF lyra2/.deps/cpuminer-Lyra2.Tpo -c -o lyra2/cpuminer-Lyra2.o `test -f 'lyra2/Lyra2.c' || echo './'`lyra2/Lyra2.c
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT lyra2/cpuminer-Sponge.o -MD -MP -MF lyra2/.deps/cpuminer-Sponge.Tpo -c -o lyra2/cpuminer-Sponge.o `test -f 'lyra2/Sponge.c' || echo './'`lyra2/Sponge.c
mv -f crypto/.deps/cpuminer-c_blake256.Tpo crypto/.deps/cpuminer-c_blake256.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT yescrypt/cpuminer-yescrypt-common.o -MD -MP -MF yescrypt/.deps/cpuminer-yescrypt-common.Tpo -c -o yescrypt/cpuminer-yescrypt-common.o `test -f 'yescrypt/yescrypt-common.c' || echo './'`yescrypt/yescrypt-common.c
mv -f crypto/.deps/cpuminer-c_jh.Tpo crypto/.deps/cpuminer-c_jh.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT yescrypt/cpuminer-yescrypt-best.o -MD -MP -MF yescrypt/.deps/cpuminer-yescrypt-best.Tpo -c -o yescrypt/cpuminer-yescrypt-best.o `test -f 'yescrypt/yescrypt-best.c' || echo './'`yescrypt/yescrypt-best.c
mv -f lyra2/.deps/cpuminer-Lyra2.Tpo lyra2/.deps/cpuminer-Lyra2.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT yescrypt/cpuminer-sha256_Y.o -MD -MP -MF yescrypt/.deps/cpuminer-sha256_Y.Tpo -c -o yescrypt/cpuminer-sha256_Y.o `test -f 'yescrypt/sha256_Y.c' || echo './'`yescrypt/sha256_Y.c
mv -f yescrypt/.deps/cpuminer-yescrypt-common.Tpo yescrypt/.deps/cpuminer-yescrypt-common.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-axiom.o -MD -MP -MF algo/.deps/cpuminer-axiom.Tpo -c -o algo/cpuminer-axiom.o `test -f 'algo/axiom.c' || echo './'`algo/axiom.c
mv -f crypto/.deps/cpuminer-aesb.Tpo crypto/.deps/cpuminer-aesb.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-bastion.o -MD -MP -MF algo/.deps/cpuminer-bastion.Tpo -c -o algo/cpuminer-bastion.o `test -f 'algo/bastion.c' || echo './'`algo/bastion.c
mv -f algo/.deps/cpuminer-axiom.Tpo algo/.deps/cpuminer-axiom.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-blake.o -MD -MP -MF algo/.deps/cpuminer-blake.Tpo -c -o algo/cpuminer-blake.o `test -f 'algo/blake.c' || echo './'`algo/blake.c
mv -f sha3/.deps/cpuminer-sph_hamsi.Tpo sha3/.deps/cpuminer-sph_hamsi.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-blakecoin.o -MD -MP -MF algo/.deps/cpuminer-blakecoin.Tpo -c -o algo/cpuminer-blakecoin.o `test -f 'algo/blakecoin.c' || echo './'`algo/blakecoin.c
mv -f algo/.deps/cpuminer-bastion.Tpo algo/.deps/cpuminer-bastion.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-blake2.o -MD -MP -MF algo/.deps/cpuminer-blake2.Tpo -c -o algo/cpuminer-blake2.o `test -f 'algo/blake2.c' || echo './'`algo/blake2.c
mv -f algo/.deps/cpuminer-blake.Tpo algo/.deps/cpuminer-blake.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-bmw256.o -MD -MP -MF algo/.deps/cpuminer-bmw256.Tpo -c -o algo/cpuminer-bmw256.o `test -f 'algo/bmw256.c' || echo './'`algo/bmw256.c
mv -f algo/.deps/cpuminer-blakecoin.Tpo algo/.deps/cpuminer-blakecoin.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-c11.o -MD -MP -MF algo/.deps/cpuminer-c11.Tpo -c -o algo/cpuminer-c11.o `test -f 'algo/c11.c' || echo './'`algo/c11.c
mv -f algo/.deps/cpuminer-blake2.Tpo algo/.deps/cpuminer-blake2.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-cryptonight.o -MD -MP -MF algo/.deps/cpuminer-cryptonight.Tpo -c -o algo/cpuminer-cryptonight.o `test -f 'algo/cryptonight.c' || echo './'`algo/cryptonight.c
mv -f algo/.deps/cpuminer-bmw256.Tpo algo/.deps/cpuminer-bmw256.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-cryptolight.o -MD -MP -MF algo/.deps/cpuminer-cryptolight.Tpo -c -o algo/cpuminer-cryptolight.o `test -f 'algo/cryptolight.c' || echo './'`algo/cryptolight.c
mv -f algo/.deps/cpuminer-c11.Tpo algo/.deps/cpuminer-c11.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-decred.o -MD -MP -MF algo/.deps/cpuminer-decred.Tpo -c -o algo/cpuminer-decred.o `test -f 'algo/decred.c' || echo './'`algo/decred.c
mv -f yescrypt/.deps/cpuminer-sha256_Y.Tpo yescrypt/.deps/cpuminer-sha256_Y.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-drop.o -MD -MP -MF algo/.deps/cpuminer-drop.Tpo -c -o algo/cpuminer-drop.o `test -f 'algo/drop.c' || echo './'`algo/drop.c
mv -f algo/.deps/cpuminer-decred.Tpo algo/.deps/cpuminer-decred.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-fresh.o -MD -MP -MF algo/.deps/cpuminer-fresh.Tpo -c -o algo/cpuminer-fresh.o `test -f 'algo/fresh.c' || echo './'`algo/fresh.c
mv -f crypto/.deps/cpuminer-c_skein.Tpo crypto/.deps/cpuminer-c_skein.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-groestl.o -MD -MP -MF algo/.deps/cpuminer-groestl.Tpo -c -o algo/cpuminer-groestl.o `test -f 'algo/groestl.c' || echo './'`algo/groestl.c
mv -f algo/.deps/cpuminer-cryptonight.Tpo algo/.deps/cpuminer-cryptonight.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-heavy.o -MD -MP -MF algo/.deps/cpuminer-heavy.Tpo -c -o algo/cpuminer-heavy.o `test -f 'algo/heavy.c' || echo './'`algo/heavy.c
mv -f algo/.deps/cpuminer-drop.Tpo algo/.deps/cpuminer-drop.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-ink.o -MD -MP -MF algo/.deps/cpuminer-ink.Tpo -c -o algo/cpuminer-ink.o `test -f 'algo/ink.c' || echo './'`algo/ink.c
mv -f algo/.deps/cpuminer-fresh.Tpo algo/.deps/cpuminer-fresh.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-jha.o -MD -MP -MF algo/.deps/cpuminer-jha.Tpo -c -o algo/cpuminer-jha.o `test -f 'algo/jha.c' || echo './'`algo/jha.c
mv -f algo/.deps/cpuminer-cryptolight.Tpo algo/.deps/cpuminer-cryptolight.Po
mv -f algo/.deps/cpuminer-groestl.Tpo algo/.deps/cpuminer-groestl.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-lbry.o -MD -MP -MF algo/.deps/cpuminer-lbry.Tpo -c -o algo/cpuminer-lbry.o `test -f 'algo/lbry.c' || echo './'`algo/lbry.c
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-luffa.o -MD -MP -MF algo/.deps/cpuminer-luffa.Tpo -c -o algo/cpuminer-luffa.o `test -f 'algo/luffa.c' || echo './'`algo/luffa.c
mv -f algo/.deps/cpuminer-heavy.Tpo algo/.deps/cpuminer-heavy.Po
mv -f algo/.deps/cpuminer-ink.Tpo algo/.deps/cpuminer-ink.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-lyra2re.o -MD -MP -MF algo/.deps/cpuminer-lyra2re.Tpo -c -o algo/cpuminer-lyra2re.o `test -f 'algo/lyra2re.c' || echo './'`algo/lyra2re.c
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-lyra2rev2.o -MD -MP -MF algo/.deps/cpuminer-lyra2rev2.Tpo -c -o algo/cpuminer-lyra2rev2.o `test -f 'algo/lyra2rev2.c' || echo './'`algo/lyra2rev2.c
mv -f algo/.deps/cpuminer-jha.Tpo algo/.deps/cpuminer-jha.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-myr-groestl.o -MD -MP -MF algo/.deps/cpuminer-myr-groestl.Tpo -c -o algo/cpuminer-myr-groestl.o `test -f 'algo/myr-groestl.c' || echo './'`algo/myr-groestl.c
mv -f algo/.deps/cpuminer-lbry.Tpo algo/.deps/cpuminer-lbry.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-keccak.o -MD -MP -MF algo/.deps/cpuminer-keccak.Tpo -c -o algo/cpuminer-keccak.o `test -f 'algo/keccak.c' || echo './'`algo/keccak.c
mv -f algo/.deps/cpuminer-luffa.Tpo algo/.deps/cpuminer-luffa.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-pentablake.o -MD -MP -MF algo/.deps/cpuminer-pentablake.Tpo -c -o algo/cpuminer-pentablake.o `test -f 'algo/pentablake.c' || echo './'`algo/pentablake.c
mv -f algo/.deps/cpuminer-lyra2re.Tpo algo/.deps/cpuminer-lyra2re.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-quark.o -MD -MP -MF algo/.deps/cpuminer-quark.Tpo -c -o algo/cpuminer-quark.o `test -f 'algo/quark.c' || echo './'`algo/quark.c
mv -f algo/.deps/cpuminer-lyra2rev2.Tpo algo/.deps/cpuminer-lyra2rev2.Po
mv -f lyra2/.deps/cpuminer-Sponge.Tpo lyra2/.deps/cpuminer-Sponge.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-neoscrypt.o -MD -MP -MF algo/.deps/cpuminer-neoscrypt.Tpo -c -o algo/cpuminer-neoscrypt.o `test -f 'algo/neoscrypt.c' || echo './'`algo/neoscrypt.c
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-nist5.o -MD -MP -MF algo/.deps/cpuminer-nist5.Tpo -c -o algo/cpuminer-nist5.o `test -f 'algo/nist5.c' || echo './'`algo/nist5.c
mv -f algo/.deps/cpuminer-myr-groestl.Tpo algo/.deps/cpuminer-myr-groestl.Po
mv -f algo/.deps/cpuminer-keccak.Tpo algo/.deps/cpuminer-keccak.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-pluck.o -MD -MP -MF algo/.deps/cpuminer-pluck.Tpo -c -o algo/cpuminer-pluck.o `test -f 'algo/pluck.c' || echo './'`algo/pluck.c
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-qubit.o -MD -MP -MF algo/.deps/cpuminer-qubit.Tpo -c -o algo/cpuminer-qubit.o `test -f 'algo/qubit.c' || echo './'`algo/qubit.c
mv -f algo/.deps/cpuminer-pentablake.Tpo algo/.deps/cpuminer-pentablake.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-scrypt.o -MD -MP -MF algo/.deps/cpuminer-scrypt.Tpo -c -o algo/cpuminer-scrypt.o `test -f 'algo/scrypt.c' || echo './'`algo/scrypt.c
mv -f algo/.deps/cpuminer-nist5.Tpo algo/.deps/cpuminer-nist5.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-scrypt-jane.o -MD -MP -MF algo/.deps/cpuminer-scrypt-jane.Tpo -c -o algo/cpuminer-scrypt-jane.o `test -f 'algo/scrypt-jane.c' || echo './'`algo/scrypt-jane.c
mv -f algo/.deps/cpuminer-quark.Tpo algo/.deps/cpuminer-quark.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-sha2.o -MD -MP -MF algo/.deps/cpuminer-sha2.Tpo -c -o algo/cpuminer-sha2.o `test -f 'algo/sha2.c' || echo './'`algo/sha2.c
mv -f algo/.deps/cpuminer-qubit.Tpo algo/.deps/cpuminer-qubit.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-sia.o -MD -MP -MF algo/.deps/cpuminer-sia.Tpo -c -o algo/cpuminer-sia.o `test -f 'algo/sia.c' || echo './'`algo/sia.c
mv -f algo/.deps/cpuminer-sia.Tpo algo/.deps/cpuminer-sia.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-sibcoin.o -MD -MP -MF algo/.deps/cpuminer-sibcoin.Tpo -c -o algo/cpuminer-sibcoin.o `test -f 'algo/sibcoin.c' || echo './'`algo/sibcoin.c
mv -f algo/.deps/cpuminer-sibcoin.Tpo algo/.deps/cpuminer-sibcoin.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-skein.o -MD -MP -MF algo/.deps/cpuminer-skein.Tpo -c -o algo/cpuminer-skein.o `test -f 'algo/skein.c' || echo './'`algo/skein.c
mv -f algo/.deps/cpuminer-skein.Tpo algo/.deps/cpuminer-skein.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-skein2.o -MD -MP -MF algo/.deps/cpuminer-skein2.Tpo -c -o algo/cpuminer-skein2.o `test -f 'algo/skein2.c' || echo './'`algo/skein2.c
mv -f algo/.deps/cpuminer-skein2.Tpo algo/.deps/cpuminer-skein2.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-s3.o -MD -MP -MF algo/.deps/cpuminer-s3.Tpo -c -o algo/cpuminer-s3.o `test -f 'algo/s3.c' || echo './'`algo/s3.c
mv -f algo/.deps/cpuminer-neoscrypt.Tpo algo/.deps/cpuminer-neoscrypt.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-bitcore.o -MD -MP -MF algo/.deps/cpuminer-bitcore.Tpo -c -o algo/cpuminer-bitcore.o `test -f 'algo/bitcore.c' || echo './'`algo/bitcore.c
mv -f algo/.deps/cpuminer-scrypt-jane.Tpo algo/.deps/cpuminer-scrypt-jane.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-timetravel.o -MD -MP -MF algo/.deps/cpuminer-timetravel.Tpo -c -o algo/cpuminer-timetravel.o `test -f 'algo/timetravel.c' || echo './'`algo/timetravel.c
mv -f algo/.deps/cpuminer-s3.Tpo algo/.deps/cpuminer-s3.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-tribus.o -MD -MP -MF algo/.deps/cpuminer-tribus.Tpo -c -o algo/cpuminer-tribus.o `test -f 'algo/tribus.c' || echo './'`algo/tribus.c
mv -f yescrypt/.deps/cpuminer-yescrypt-best.Tpo yescrypt/.deps/cpuminer-yescrypt-best.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-veltor.o -MD -MP -MF algo/.deps/cpuminer-veltor.Tpo -c -o algo/cpuminer-veltor.o `test -f 'algo/veltor.c' || echo './'`algo/veltor.c
mv -f algo/.deps/cpuminer-bitcore.Tpo algo/.deps/cpuminer-bitcore.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-x11evo.o -MD -MP -MF algo/.deps/cpuminer-x11evo.Tpo -c -o algo/cpuminer-x11evo.o `test -f 'algo/x11evo.c' || echo './'`algo/x11evo.c
mv -f algo/.deps/cpuminer-tribus.Tpo algo/.deps/cpuminer-tribus.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-x11.o -MD -MP -MF algo/.deps/cpuminer-x11.Tpo -c -o algo/cpuminer-x11.o `test -f 'algo/x11.c' || echo './'`algo/x11.c
mv -f algo/.deps/cpuminer-timetravel.Tpo algo/.deps/cpuminer-timetravel.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-x13.o -MD -MP -MF algo/.deps/cpuminer-x13.Tpo -c -o algo/cpuminer-x13.o `test -f 'algo/x13.c' || echo './'`algo/x13.c
mv -f algo/.deps/cpuminer-veltor.Tpo algo/.deps/cpuminer-veltor.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-x14.o -MD -MP -MF algo/.deps/cpuminer-x14.Tpo -c -o algo/cpuminer-x14.o `test -f 'algo/x14.c' || echo './'`algo/x14.c
mv -f algo/.deps/cpuminer-pluck.Tpo algo/.deps/cpuminer-pluck.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-x15.o -MD -MP -MF algo/.deps/cpuminer-x15.Tpo -c -o algo/cpuminer-x15.o `test -f 'algo/x15.c' || echo './'`algo/x15.c
mv -f algo/.deps/cpuminer-x11.Tpo algo/.deps/cpuminer-x11.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-x16r.o -MD -MP -MF algo/.deps/cpuminer-x16r.Tpo -c -o algo/cpuminer-x16r.o `test -f 'algo/x16r.c' || echo './'`algo/x16r.c
mv -f algo/.deps/cpuminer-scrypt.Tpo algo/.deps/cpuminer-scrypt.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-x17.o -MD -MP -MF algo/.deps/cpuminer-x17.Tpo -c -o algo/cpuminer-x17.o `test -f 'algo/x17.c' || echo './'`algo/x17.c
mv -f algo/.deps/cpuminer-x13.Tpo algo/.deps/cpuminer-x13.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-xevan.o -MD -MP -MF algo/.deps/cpuminer-xevan.Tpo -c -o algo/cpuminer-xevan.o `test -f 'algo/xevan.c' || echo './'`algo/xevan.c
mv -f algo/.deps/cpuminer-x14.Tpo algo/.deps/cpuminer-x14.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-yescrypt.o -MD -MP -MF algo/.deps/cpuminer-yescrypt.Tpo -c -o algo/cpuminer-yescrypt.o `test -f 'algo/yescrypt.c' || echo './'`algo/yescrypt.c
mv -f algo/.deps/cpuminer-x11evo.Tpo algo/.deps/cpuminer-x11evo.Po
mv -f algo/.deps/cpuminer-x15.Tpo algo/.deps/cpuminer-x15.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT algo/cpuminer-zr5.o -MD -MP -MF algo/.deps/cpuminer-zr5.Tpo -c -o algo/cpuminer-zr5.o `test -f 'algo/zr5.c' || echo './'`algo/zr5.c
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include  -march=native -O2 -msse3 -fomit-frame-pointer -pipe -MT asm/cpuminer-neoscrypt_asm.o -MD -MP -MF asm/.deps/cpuminer-neoscrypt_asm.Tpo -c -o asm/cpuminer-neoscrypt_asm.o `test -f 'asm/neoscrypt_asm.S' || echo './'`asm/neoscrypt_asm.S
mv -f asm/.deps/cpuminer-neoscrypt_asm.Tpo asm/.deps/cpuminer-neoscrypt_asm.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include  -march=native -O2 -msse3 -fomit-frame-pointer -pipe -MT asm/cpuminer-sha2-x64.o -MD -MP -MF asm/.deps/cpuminer-sha2-x64.Tpo -c -o asm/cpuminer-sha2-x64.o `test -f 'asm/sha2-x64.S' || echo './'`asm/sha2-x64.S
mv -f algo/.deps/cpuminer-yescrypt.Tpo algo/.deps/cpuminer-yescrypt.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include  -march=native -O2 -msse3 -fomit-frame-pointer -pipe -MT asm/cpuminer-scrypt-x64.o -MD -MP -MF asm/.deps/cpuminer-scrypt-x64.Tpo -c -o asm/cpuminer-scrypt-x64.o `test -f 'asm/scrypt-x64.S' || echo './'`asm/scrypt-x64.S
mv -f algo/.deps/cpuminer-x16r.Tpo algo/.deps/cpuminer-x16r.Po
mv -f algo/.deps/cpuminer-x17.Tpo algo/.deps/cpuminer-x17.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include  -march=native -O2 -msse3 -fomit-frame-pointer -pipe -MT asm/cpuminer-aesb-x64.o -MD -MP -MF asm/.deps/cpuminer-aesb-x64.Tpo -c -o asm/cpuminer-aesb-x64.o `test -f 'asm/aesb-x64.S' || echo './'`asm/aesb-x64.S
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT cpuminer-cpu-miner.o -MD -MP -MF .deps/cpuminer-cpu-miner.Tpo -c -o cpuminer-cpu-miner.o `test -f 'cpu-miner.c' || echo './'`cpu-miner.c
mv -f asm/.deps/cpuminer-aesb-x64.Tpo asm/.deps/cpuminer-aesb-x64.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT cpuminer-util.o -MD -MP -MF .deps/cpuminer-util.Tpo -c -o cpuminer-util.o `test -f 'util.c' || echo './'`util.c
mv -f algo/.deps/cpuminer-xevan.Tpo algo/.deps/cpuminer-xevan.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT cpuminer-api.o -MD -MP -MF .deps/cpuminer-api.Tpo -c -o cpuminer-api.o `test -f 'api.c' || echo './'`api.c
mv -f algo/.deps/cpuminer-zr5.Tpo algo/.deps/cpuminer-zr5.Po
gcc -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -march=native -O2 -msse3 -fomit-frame-pointer -pipe  -Iyes/include -Iyes/include -MT cpuminer-sysinfos.o -MD -MP -MF .deps/cpuminer-sysinfos.Tpo -c -o cpuminer-sysinfos.o `test -f 'sysinfos.c' || echo './'`sysinfos.c
mv -f asm/.deps/cpuminer-sha2-x64.Tpo asm/.deps/cpuminer-sha2-x64.Po
g++ -DHAVE_CONFIG_H -I.  -Iyes/include -Iyes/include -fno-strict-aliasing  -I. -Iyes/include -Iyes/include  -march=native -O2 -msse3 -fomit-frame-pointer -pipe -MT cpuminer-uint256.o -MD -MP -MF .deps/cpuminer-uint256.Tpo -c -o cpuminer-uint256.o `test -f 'uint256.cpp' || echo './'`uint256.cpp
mv -f asm/.deps/cpuminer-scrypt-x64.Tpo asm/.deps/cpuminer-scrypt-x64.Po
mv -f .deps/cpuminer-sysinfos.Tpo .deps/cpuminer-sysinfos.Po
mv -f .deps/cpuminer-uint256.Tpo .deps/cpuminer-uint256.Po
mv -f .deps/cpuminer-api.Tpo .deps/cpuminer-api.Po
mv -f algo/.deps/cpuminer-sha2.Tpo algo/.deps/cpuminer-sha2.Po
mv -f .deps/cpuminer-util.Tpo .deps/cpuminer-util.Po
mv -f .deps/cpuminer-cpu-miner.Tpo .deps/cpuminer-cpu-miner.Po
mv -f sha3/.deps/cpuminer-sph_haval.Tpo sha3/.deps/cpuminer-sph_haval.Po
g++  -march=native -O2 -msse3 -fomit-frame-pointer -pipe -Lyes/lib -Lyes/lib  -Lyes/lib -Lyes/lib  -o cpuminer cpuminer-cpu-miner.o cpuminer-util.o cpuminer-api.o cpuminer-sysinfos.o cpuminer-uint256.o sha3/cpuminer-sph_keccak.o sha3/cpuminer-sph_hefty1.o sha3/cpuminer-sph_groestl.o sha3/cpuminer-sph_skein.o sha3/cpuminer-sph_bmw.o sha3/cpuminer-sph_jh.o sha3/cpuminer-sph_shavite.o sha3/cpuminer-sph_blake.o sha3/cpuminer-mod_blakecoin.o sha3/cpuminer-sph_luffa.o sha3/cpuminer-sph_cubehash.o sha3/cpuminer-sph_simd.o sha3/cpuminer-sph_echo.o sha3/cpuminer-sph_hamsi.o sha3/cpuminer-sph_haval.o sha3/cpuminer-sph_fugue.o sha3/cpuminer-sph_ripemd.o sha3/cpuminer-sph_sha2.o sha3/cpuminer-sph_sha2big.o sha3/cpuminer-sph_shabal.o sha3/cpuminer-sph_whirlpool.o sha3/cpuminer-gost_streebog.o crypto/cpuminer-blake2s.o crypto/cpuminer-blake2b.o crypto/cpuminer-oaes_lib.o crypto/cpuminer-c_keccak.o crypto/cpuminer-c_groestl.o crypto/cpuminer-c_blake256.o crypto/cpuminer-c_jh.o crypto/cpuminer-c_skein.o crypto/cpuminer-hash.o crypto/cpuminer-aesb.o lyra2/cpuminer-Lyra2.o lyra2/cpuminer-Sponge.o yescrypt/cpuminer-yescrypt-common.o yescrypt/cpuminer-yescrypt-best.o yescrypt/cpuminer-sha256_Y.o algo/cpuminer-axiom.o algo/cpuminer-bastion.o algo/cpuminer-blake.o algo/cpuminer-blakecoin.o algo/cpuminer-blake2.o algo/cpuminer-bmw256.o algo/cpuminer-c11.o algo/cpuminer-cryptonight.o algo/cpuminer-cryptolight.o algo/cpuminer-decred.o algo/cpuminer-drop.o algo/cpuminer-fresh.o algo/cpuminer-groestl.o algo/cpuminer-heavy.o algo/cpuminer-ink.o algo/cpuminer-jha.o algo/cpuminer-lbry.o algo/cpuminer-luffa.o algo/cpuminer-lyra2re.o algo/cpuminer-lyra2rev2.o algo/cpuminer-myr-groestl.o algo/cpuminer-keccak.o algo/cpuminer-pentablake.o algo/cpuminer-quark.o algo/cpuminer-neoscrypt.o algo/cpuminer-nist5.o algo/cpuminer-pluck.o algo/cpuminer-qubit.o algo/cpuminer-scrypt.o algo/cpuminer-scrypt-jane.o algo/cpuminer-sha2.o algo/cpuminer-sia.o algo/cpuminer-sibcoin.o algo/cpuminer-skein.o algo/cpuminer-skein2.o algo/cpuminer-s3.o algo/cpuminer-bitcore.o algo/cpuminer-timetravel.o algo/cpuminer-tribus.o algo/cpuminer-veltor.o algo/cpuminer-x11evo.o algo/cpuminer-x11.o algo/cpuminer-x13.o algo/cpuminer-x14.o algo/cpuminer-x15.o algo/cpuminer-x16r.o algo/cpuminer-x17.o algo/cpuminer-xevan.o algo/cpuminer-yescrypt.o algo/cpuminer-zr5.o asm/cpuminer-neoscrypt_asm.o  asm/cpuminer-sha2-x64.o asm/cpuminer-scrypt-x64.o asm/cpuminer-aesb-x64.o   -lcurl -lz -lssl -lcrypto -ljansson -lpthread  -lz 
make[2]: Leaving directory '/root/cpuminer-multi'
make[1]: Leaving directory '/root/cpuminer-multi'

How to configure openvpn client with an ovpn single configuration file

One file for configuration is always a good thing. We can pack everything needed for a openvpn client configuration in one single file, when using certificate authorization. If you use password authorization it is not possible, because the username and password must be in another file, but with certificate we can inline everything in one configuration file. Below is the template of such file:

client
dev tun
proto tcp
comp-lzo
verb 3
 
remote [IP] [PORT]
resolv-retry infinite
nobind

persist-key
persist-tun

<ca>
-----BEGIN CERTIFICATE-----
[CA_CERTIFICATE]
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
[CLIENT_CERTIFICATE]
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
[CLIENT_KEY]
-----END PRIVATE KEY-----
</key>

#uncomment to route these IP/Networks requested by the client
#route [IP1] [MASK1]
#route [IP2] [MASK2]

To get it working you should change the

  • Remote IP and port – replace [IP] [PORT] with your IP and PORT of the openvpn server you use.
  • copy everything between “—–BEGIN CERTIFICATE—–” and “—–END CERTIFICATE—–” from the certificate authority (CA) file and replace with [CA_CERTIFICATE]
  • copy everything between “—–BEGIN CERTIFICATE—–” and “—–END CERTIFICATE—–” from the certificate file and replace with [CLIENT_CERTIFICATE]
  • copy everything between “—–BEGIN PRIVATE KEY—–” and “—–END PRIVATE KEY—-” from the certificate file and replace with [CLIENT_KEY]

You can also uncomment the route lines to enable specific routes through the VPN, such routes are probably not included in the server configuration, but the user could add them, too.
Save the above file (best with extension .ovpn) and then import it in any openvpn client under Linux, Windows and Android. The file contains everything the openvpn client needs to establish a vpn connection

Access Violation error, when compiling packages in Gentoo

Sometimes if you try to emerge a package in Gentoo you could receive error in the configure phase of the compilation process. The example below is with the emerging the PHP – dev-lang/php-5.6.33:5.6::gentoo, but could happen with many other packages, which are rather old and probably not maintained or the sandbox or even the portage packages are old.
So here is the error and the compilation stops:

srv ~ # emerge -av --nodeps "<php-7"
...
checking for mmap() using MAP_ANON shared memory support... yes
checking for mmap() using /dev/zero shared memory support... yes
checking for mmap() using shm_open() shared memory support...  * ACCESS DENIED:  open_wr:      /run/test.shm.8811LBKone
no
checking for mmap() using regular file shared memory support... yes
...
checking for mmap() using MAP_ANON shared memory support... yes
checking for mmap() using /dev/zero shared memory support... yes
checking for mmap() using shm_open() shared memory support...  * ACCESS DENIED:  open_wr:      /run/test.shm.180309hAMbj
no
checking for mmap() using regular file shared memory support... yes
....
Thank you for using PHP.
config.status: creating php5.spec
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: executing libtool commands
config.status: executing default commands
>>> Source configured.
 * --------------------------- ACCESS VIOLATION SUMMARY ---------------------------
 * LOG FILE: "/var/log/sandbox/sandbox-13466.log"
 * 
VERSION 1.0
FORMAT: F - Function called
FORMAT: S - Access Status
FORMAT: P - Path as passed to function
FORMAT: A - Absolute Path (not canonical)
FORMAT: R - Canonical Path
FORMAT: C - Command Line

F: open_wr
S: deny
P: /run/test.shm.21532Xx6ViE
A: /run/test.shm.21532Xx6ViE
R: /run/test.shm.21532Xx6ViE
C: ./conftest 

F: open_wr
S: deny
P: /run/test.shm.31817hurGxH
A: /run/test.shm.31817hurGxH
R: /run/test.shm.31817hurGxH
C: ./conftest 

F: open_wr
S: deny
P: /run/test.shm.8811LBKone
A: /run/test.shm.8811LBKone
R: /run/test.shm.8811LBKone
C: ./conftest 

F: open_wr
S: deny
P: /run/test.shm.180309hAMbj
A: /run/test.shm.180309hAMbj
R: /run/test.shm.180309hAMbj
C: ./conftest 
 * --------------------------------------------------------------------------------

>>> Failed to emerge dev-lang/php-5.6.33, Log file:

>>>  '/var/tmp/portage/dev-lang/php-5.6.33/temp/build.log'

You could try adding “-sandbox” to feature in “/etc/portage/make.conf”

FEATURES="-sandbox"

But

the sandbox feature is very important and should not be disabled by default.

And that’s why sometime when you disable it with “-sandbox” you still get access violation and you still cannot install/compile the package!
The thing is you see the error and you can fix it easily. The important part is the directory, which causes the error, in the above example with “dev-lang/php”, but could be any other Gentoo package, the problem is the writing permission for files in “/run” directory. So open the configuration file

/etc/sandbox.d/00default

and you’ll see the there is a variable called SANDBOX_WRITE, which accept paths. If you add to this variable at the end the directory “/run” or your access violated directory you’ll be able to install/compile your package with no problems, for the above problem the solution was:

SANDBOX_WRITE="/usr/tmp/conftest:/usr/lib/conftest:/usr/lib32/conftest:/usr/lib64/conftest:/usr/tmp/cf:/usr/lib/cf:/usr/lib32/cf:/usr/lib64/cf:/run"

Ryzen Threadripper kernel problems with PCIe – wifi, network, video problems

If you have Ryzen Threadripper (in my case 1950X) and Ubuntu 17.10 (because the others versions do not boot at all!) with the latest kernel 4.15.x and the default vmlinuz-4.13.0-21-generic you might experience frequently wifi, network cards and video cards problems like wifi disconnects and network cards lost connections and some kind of freezes for a second or two of the video! If you have Ryzen Threadripper 1950X and or ASUS ROG ZENITH EXTREME (or any other motherboard with the chipset AMD X399) and ubuntu 17.10 or probably any linux distro with any kernel you might experience really unstable system. Look at your dmesg and if you see something like

[   18.669950] dpc 0000:00:01.1:pcie010: DPC containment event, status:0x1f00 source:0x0000
[   18.669966] pcieport 0000:00:01.1: AER: Corrected error received: id=0000
[   18.669970] pcieport 0000:00:01.1: PCIe Bus Error: severity=Corrected, type=Data Link Layer, id=0009(Receiver ID)
[   18.669973] pcieport 0000:00:01.1:   device [1022:1453] error status/mask=00000040/00006000
[   18.669975] pcieport 0000:00:01.1:    [ 6] Bad TLP               
[   23.805640] dpc 0000:00:01.1:pcie010: DPC containment event, status:0x1f00 source:0x0000
[   23.805664] pcieport 0000:00:01.1: AER: Corrected error received: id=0000
[   23.805669] pcieport 0000:00:01.1: PCIe Bus Error: severity=Corrected, type=Data Link Layer, id=0009(Receiver ID)
[   23.805674] pcieport 0000:00:01.1:   device [1022:1453] error status/mask=00000040/00006000
[   23.805678] pcieport 0000:00:01.1:    [ 6] Bad TLP               
[   23.838698] dpc 0000:00:01.1:pcie010: DPC containment event, status:0x1f00 source:0x0000
[   23.838716] pcieport 0000:00:01.1: AER: Corrected error received: id=0000
[   23.838720] pcieport 0000:00:01.1: PCIe Bus Error: severity=Corrected, type=Data Link Layer, id=0009(Receiver ID)
[   23.838725] pcieport 0000:00:01.1:   device [1022:1453] error status/mask=00000040/00006000
[   23.838728] pcieport 0000:00:01.1:    [ 6] Bad TLP               
[   36.124101] atlantic: link change old 0 new 100
[   36.124222] IPv6: ADDRCONF(NETDEV_CHANGE): enp65s0: link becomes ready
[   52.294413] dpc 0000:00:01.1:pcie010: DPC containment event, status:0x1f00 source:0x0000
[   52.294436] pcieport 0000:00:01.1: AER: Corrected error received: id=0000
[   52.294441] pcieport 0000:00:01.1: PCIe Bus Error: severity=Corrected, type=Data Link Layer, id=0009(Receiver ID)
[   52.294446] pcieport 0000:00:01.1:   device [1022:1453] error status/mask=00000040/00006000
[   52.294449] pcieport 0000:00:01.1:    [ 6] Bad TLP               
[   53.275256] dpc 0000:00:01.1:pcie010: DPC containment event, status:0x1f00 source:0x0000
[   53.275289] pcieport 0000:00:01.1: AER: Corrected error received: id=0000
[   53.275293] pcieport 0000:00:01.1: PCIe Bus Error: severity=Corrected, type=Data Link Layer, id=0009(Receiver ID)
[   53.275298] pcieport 0000:00:01.1:   device [1022:1453] error status/mask=00000040/00006000
[   53.275301] pcieport 0000:00:01.1:    [ 6] Bad TLP               
[   53.418493] dpc 0000:00:01.1:pcie010: DPC containment event, status:0x1f00 source:0x0000
[   53.418517] pcieport 0000:00:01.1: AER: Corrected error received: id=0000
[   53.418522] pcieport 0000:00:01.1: PCIe Bus Error: severity=Corrected, type=Data Link Layer, id=0009(Receiver ID)
[   53.418527] pcieport 0000:00:01.1:   device [1022:1453] error status/mask=00000040/00006000
[   53.418530] pcieport 0000:00:01.1:    [ 6] Bad TLP               
[   53.649938] dpc 0000:00:01.1:pcie010: DPC containment event, status:0x1f00 source:0x0000
[   53.649962] pcieport 0000:00:01.1: AER: Corrected error received: id=0000
[   53.649967] pcieport 0000:00:01.1: PCIe Bus Error: severity=Corrected, type=Data Link Layer, id=0009(Receiver ID)
[   53.649972] pcieport 0000:00:01.1:   device [1022:1453] error status/mask=00000040/00006000
[   53.649975] pcieport 0000:00:01.1:    [ 6] Bad TLP               
[  113.294411] dpc 0000:00:01.1:pcie010: DPC containment event, status:0x1f00 source:0x0000
[  113.294434] pcieport 0000:00:01.1: AER: Corrected error received: id=0000
[  113.294439] pcieport 0000:00:01.1: PCIe Bus Error: severity=Corrected, type=Data Link Layer, id=0009(Receiver ID)
[  113.294444] pcieport 0000:00:01.1:   device [1022:1453] error status/mask=00000040/00006000
[  113.294450] pcieport 0000:00:01.1:    [ 6] Bad TLP               
[  265.469397] dpc 0000:00:01.1:pcie010: DPC containment event, status:0x1f00 source:0x0000
[  265.469419] pcieport 0000:00:01.1: AER: Corrected error received: id=0000
[  265.469424] pcieport 0000:00:01.1: PCIe Bus Error: severity=Corrected, type=Data Link Layer, id=0009(Transmitter ID)
[  265.469429] pcieport 0000:00:01.1:   device [1022:1453] error status/mask=00001000/00006000
[  265.469438] pcieport 0000:00:01.1:    [12] Replay Timer Timeout  
[  533.031982] dpc 0000:00:01.1:pcie010: DPC containment event, status:0x1f00 source:0x0000
[  533.032004] pcieport 0000:00:01.1: AER: Corrected error received: id=0000
[  533.032009] pcieport 0000:00:01.1: PCIe Bus Error: severity=Corrected, type=Data Link Layer, id=0009(Receiver ID)
[  533.032014] pcieport 0000:00:01.1:   device [1022:1453] error status/mask=00000080/00006000
[  533.032022] pcieport 0000:00:01.1:    [ 7] Bad DLLP      

Apparently everything on the pci express could be affected! So till the kernel team fixes the issues, you can use the following workaround: add to the kernel boot parameters

pcie_aspm=off

Under Ubuntu you can add in the file

/etc/default/grub

the following line

GRUB_CMDLINE_LINUX="pcie_aspm=off"

And then execute

update-grub

the changes to take effect in the grub configuration. Then reboot the machine!

Under CentOS 7 the configuration file and the line to put are the same just the update of the grub configuration is different:

  • For UEFI-based systems execute:
    grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
    
  • For legacy-BIOS systems execute:
    grub2-mkconfig -o /boot/grub2/grub.cfg
    

*You should know what is your setup, probably UEFI-based, you could check in your boot directory, if there is /boot/efi/EFI/centos/grub.cfg you probably should use the option for UEFI-based, if you do not have any “efi” directory under “/boot” use the second option for legacy-BIOS.
Then reboot the machine!

xmr-stak GPU disabled after kernel or driver updated

Sometime when the user upgrades the kernel or the graphic card driver (NVIDIA or ATI) under Ubuntu (it is essentially the same with the other distros) we may encounter errors with xmr-stak and even not to be able to use our graphic card for mining!
Here we have an UBUNTU 17.10.1 and when we updated the kernel to the latest our mining xmr-stak software stopped using the NVIDIA card:

-------------------------------------------------------------------
[2018-02-16 12:17:11] : Start mining: MONERO
WARNING: NVIDIA Insufficient driver!
WARNING: NVIDIA no device found
[2018-02-16 12:17:11] : WARNING: backend NVIDIA disabled.
[2018-02-16 12:17:11] : WARNING: UNKNOWN_ERROR when calling clGetPlatformIDs for number of platforms.
[2018-02-16 12:17:11] : WARNING: No OpenCL platform found.
[2018-02-16 12:17:11] : WARNING: No AMD OpenCL platform found. Possible driver issues or wrong vendor driver.
[2018-02-16 12:17:11] : WARNING: backend AMD disabled.
[2018-02-16 12:17:11] : Starting 1x thread, affinity: 0.
[2018-02-16 12:17:11] : hwloc: memory pinned

As you can see the NVIDIA backend is disabled! In fact the driver seemed OK and loaded and even the X was working.
So in such a situation just reinstall the NVIDIA driver and install the software dependecies for the mining xmr-software (detailed explanation here)
Here what you can do:

sudo apt-get purge nvidia-*
sudo apt-get -y install libboost-all-dev libleveldb-dev libcurl4-openssl-dev libmicrohttpd-dev libminiupnpc-dev libgmp-dev  cuda nvidia-opencl-dev libmicrohttpd-dev libssl-dev cmake build-essential
sudo reboot

And you’ll have again an usable and properly installed GPU mining system.

Here is the log of the reinstallation, check it if you think you are going in the wrong direction, when purging the driver:

root@srv2:~/xmr-stak/build/bin# apt-get purge nvidia-*
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  bbswitch-dkms cuda-command-line-tools-9-1 cuda-compiler-9-1 cuda-cublas-9-1 cuda-cublas-dev-9-1 cuda-cudart-9-1 cuda-cudart-dev-9-1 cuda-cufft-9-1 cuda-cufft-dev-9-1
  cuda-cuobjdump-9-1 cuda-cupti-9-1 cuda-curand-9-1 cuda-curand-dev-9-1 cuda-cusolver-9-1 cuda-cusolver-dev-9-1 cuda-cusparse-9-1 cuda-cusparse-dev-9-1
  cuda-documentation-9-1 cuda-driver-dev-9-1 cuda-gdb-9-1 cuda-gpu-library-advisor-9-1 cuda-libraries-9-1 cuda-libraries-dev-9-1 cuda-license-9-1 cuda-memcheck-9-1
  cuda-misc-headers-9-1 cuda-npp-9-1 cuda-npp-dev-9-1 cuda-nsight-9-1 cuda-nvcc-9-1 cuda-nvdisasm-9-1 cuda-nvgraph-9-1 cuda-nvgraph-dev-9-1 cuda-nvml-dev-9-1
  cuda-nvprof-9-1 cuda-nvprune-9-1 cuda-nvrtc-9-1 cuda-nvrtc-dev-9-1 cuda-nvtx-9-1 cuda-nvvp-9-1 cuda-samples-9-1 cuda-toolkit-9-1 cuda-tools-9-1 cuda-visual-tools-9-1
  dkms freeglut3 freeglut3-dev lib32gcc1 libc6-i386 libglu1-mesa-dev libice-dev libsm-dev libvdpau1 libxi-dev libxmu-dev libxmu-headers libxnvctrl0 libxt-dev
  linux-headers-4.13.0-21 linux-headers-4.13.0-21-generic linux-image-4.13.0-21-generic linux-image-extra-4.13.0-21-generic linux-signed-image-4.13.0-21-generic
  linux-signed-image-4.13.0-31-generic mesa-vdpau-drivers nvidia-modprobe nvidia-prime nvidia-settings screen-resolution-extra vdpau-driver-all
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
  cuda* cuda-9-1* cuda-demo-suite-9-1* cuda-drivers* cuda-runtime-9-1* libcuda1-390* nvidia-390* nvidia-390-dev* nvidia-opencl-icd-390*
0 upgraded, 0 newly installed, 9 to remove and 14 not upgraded.
After this operation, 369 MB disk space will be freed.
Do you want to continue? [Y/n] Y
(Reading database ... 311518 files and directories currently installed.)
Removing cuda (9.1.85-1) ...
Removing cuda-9-1 (9.1.85-1) ...
Removing cuda-demo-suite-9-1 (9.1.85-1) ...
Removing cuda-runtime-9-1 (9.1.85-1) ...
Removing cuda-drivers (390.12-1) ...
Removing libcuda1-390 (390.25-0ubuntu0~gpu17.10.1) ...
Removing nvidia-opencl-icd-390 (390.25-0ubuntu0~gpu17.10.1) ...
Removing nvidia-390-dev (390.25-0ubuntu0~gpu17.10.1) ...
Removing nvidia-390 (390.30-0ubuntu1) ...
Removing all DKMS Modules
Done.
update-alternatives: using /usr/lib/nvidia-390-prime/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf (x86_64-linux-gnu_gl_conf) in auto mode
update-alternatives: using /usr/lib/nvidia-390-prime/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf (x86_64-linux-gnu_egl_conf) in auto mode
update-alternatives: using /usr/lib/nvidia-390-prime/alt_ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_GL.conf (i386-linux-gnu_gl_conf) in auto mode
update-alternatives: using /usr/lib/nvidia-390-prime/alt_ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_EGL.conf (i386-linux-gnu_egl_conf) in auto mode
update-alternatives: using /usr/lib/x86_64-linux-gnu/mesa/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf (x86_64-linux-gnu_gl_conf) in auto mode
update-alternatives: using /usr/lib/x86_64-linux-gnu/mesa-egl/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf (x86_64-linux-gnu_egl_conf) in auto mode
INFO:Disable nvidia-390
DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/put_your_quirks_here
DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/dell_latitude
DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/lenovo_thinkpad
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools (0.125ubuntu12) ...
update-initramfs: Generating /boot/initrd.img-4.15.3-041503-generic
cryptsetup: WARNING: target cryptswap1 has a random key, skipped
Processing triggers for libc-bin (2.26-0ubuntu2.1) ...
Processing triggers for man-db (2.7.6.1-2) ...
(Reading database ... 310876 files and directories currently installed.)
Purging configuration files for nvidia-opencl-icd-390 (390.25-0ubuntu0~gpu17.10.1) ...
Purging configuration files for nvidia-390 (390.30-0ubuntu1) ...
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools (0.125ubuntu12) ...
update-initramfs: Generating /boot/initrd.img-4.15.3-041503-generic
cryptsetup: WARNING: target cryptswap1 has a random key, skipped
root@srv2:~/xmr-stak/build/bin# apt-get -y install libboost-all-dev libleveldb-dev libcurl4-openssl-dev libmicrohttpd-dev libminiupnpc-dev libgmp-dev  cuda nvidia-opencl-dev libmicrohttpd-dev libssl-dev cmake build-essential
Reading package lists... Done
Building dependency tree       
Reading state information... Done
build-essential is already the newest version (12.4ubuntu1).
cmake is already the newest version (3.9.1-1).
libgmp-dev is already the newest version (2:6.1.2+dfsg-1).
libleveldb-dev is already the newest version (1.20-1).
libboost-all-dev is already the newest version (1.62.0.1).
libmicrohttpd-dev is already the newest version (0.9.55-1).
nvidia-opencl-dev is already the newest version (8.0.61-1).
libcurl4-openssl-dev is already the newest version (7.55.1-1ubuntu2.3).
libminiupnpc-dev is already the newest version (1.9.20140610-4ubuntu1.1).
libssl-dev is already the newest version (1.0.2g-1ubuntu13.3).
The following packages were automatically installed and are no longer required:
  linux-headers-4.13.0-21 linux-headers-4.13.0-21-generic linux-image-4.13.0-21-generic linux-image-extra-4.13.0-21-generic linux-signed-image-4.13.0-21-generic
  linux-signed-image-4.13.0-31-generic
Use 'apt autoremove' to remove them.
The following NEW packages will be installed:
  cuda cuda-9-1 cuda-demo-suite-9-1 cuda-drivers cuda-runtime-9-1 libcuda1-390 nvidia-390 nvidia-390-dev nvidia-opencl-icd-390
The following packages will be upgraded:
  nvidia-modprobe nvidia-settings
2 upgraded, 9 newly installed, 0 to remove and 12 not upgraded.
Need to get 3948 kB/88,1 MB of archives.
After this operation, 369 MB of additional disk space will be used.
Get:1 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1704/x86_64  cuda-runtime-9-1 9.1.85-1 [2534 B]
Get:2 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1704/x86_64  cuda-demo-suite-9-1 9.1.85-1 [3943 kB]
Get:3 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1704/x86_64  cuda-9-1 9.1.85-1 [2560 B]
Fetched 3948 kB in 3s (1003 kB/s)  
Selecting previously unselected package nvidia-390.
(Reading database ... 310871 files and directories currently installed.)
Preparing to unpack .../00-nvidia-390_390.30-0ubuntu1_amd64.deb ...
Unpacking nvidia-390 (390.30-0ubuntu1) ...
Selecting previously unselected package nvidia-390-dev.
Preparing to unpack .../01-nvidia-390-dev_390.30-0ubuntu1_amd64.deb ...
Unpacking nvidia-390-dev (390.30-0ubuntu1) ...
Selecting previously unselected package libcuda1-390.
Preparing to unpack .../02-libcuda1-390_390.30-0ubuntu1_amd64.deb ...
Unpacking libcuda1-390 (390.30-0ubuntu1) ...
Preparing to unpack .../03-nvidia-modprobe_390.30-0ubuntu1_amd64.deb ...
Unpacking nvidia-modprobe (390.30-0ubuntu1) over (390.12-0ubuntu1) ...
Preparing to unpack .../04-nvidia-settings_390.30-0ubuntu1_amd64.deb ...
Unpacking nvidia-settings (390.30-0ubuntu1) over (390.25-0ubuntu0~gpu17.10.1) ...
Selecting previously unselected package nvidia-opencl-icd-390.
Preparing to unpack .../05-nvidia-opencl-icd-390_390.30-0ubuntu1_amd64.deb ...
Unpacking nvidia-opencl-icd-390 (390.30-0ubuntu1) ...
Selecting previously unselected package cuda-drivers.
Preparing to unpack .../06-cuda-drivers_390.30-1_amd64.deb ...
Unpacking cuda-drivers (390.30-1) ...
Selecting previously unselected package cuda-runtime-9-1.
Preparing to unpack .../07-cuda-runtime-9-1_9.1.85-1_amd64.deb ...
Unpacking cuda-runtime-9-1 (9.1.85-1) ...
Selecting previously unselected package cuda-demo-suite-9-1.
Preparing to unpack .../08-cuda-demo-suite-9-1_9.1.85-1_amd64.deb ...
Unpacking cuda-demo-suite-9-1 (9.1.85-1) ...
Selecting previously unselected package cuda-9-1.
Preparing to unpack .../09-cuda-9-1_9.1.85-1_amd64.deb ...
Unpacking cuda-9-1 (9.1.85-1) ...
Selecting previously unselected package cuda.
Preparing to unpack .../10-cuda_9.1.85-1_amd64.deb ...
Unpacking cuda (9.1.85-1) ...
Processing triggers for mime-support (3.60ubuntu1) ...
Processing triggers for ureadahead (0.100.0-20) ...
Processing triggers for desktop-file-utils (0.23-1ubuntu3) ...
Setting up nvidia-390 (390.30-0ubuntu1) ...
update-alternatives: using /usr/lib/nvidia-390/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf (x86_64-linux-gnu_gl_conf) in auto mode
update-alternatives: warning: skip creation of /usr/share/grub-gfxpayload-lists/blacklist/10_proprietary-graphics-drivers because associated file /usr/share/nvidia-390/nvidia-390.grub-gfxpayload (of link group x86_64-linux-gnu_gl_conf) doesn't exist
update-alternatives: using /usr/lib/nvidia-390/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf (x86_64-linux-gnu_egl_conf) in auto mode
update-alternatives: using /usr/lib/nvidia-390/alt_ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_GL.conf (i386-linux-gnu_gl_conf) in auto mode
update-alternatives: using /usr/lib/nvidia-390/alt_ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_EGL.conf (i386-linux-gnu_egl_conf) in auto mode
update-alternatives: using /usr/share/nvidia-390/glamor.conf to provide /usr/share/X11/xorg.conf.d/glamoregl.conf (glamor_conf) in auto mode
dpkg: error: version '-' has bad syntax: revision number is empty
dpkg: error: version '-' has bad syntax: revision number is empty
dpkg: error: version '-' has bad syntax: revision number is empty
dpkg: error: version '-' has bad syntax: revision number is empty
dpkg: error: version '-' has bad syntax: revision number is empty
update-initramfs: deferring update (trigger activated)

A modprobe blacklist file has been created at /etc/modprobe.d to prevent Nouveau from loading. This can be reverted by deleting /etc/modprobe.d/nvidia-graphics-drivers.conf.
A new initrd image has also been created. To revert, please replace /boot/initrd-4.15.3-041503-generic with /boot/initrd-$(uname -r)-backup.

*****************************************************************************
*** Reboot your computer and verify that the NVIDIA graphics driver can   ***
*** be loaded.                                                            ***
*****************************************************************************

INFO:Enable nvidia-390
DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/put_your_quirks_here
DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/dell_latitude
DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/lenovo_thinkpad
Adding system user `nvidia-persistenced' (UID 123) ...
Adding new group `nvidia-persistenced' (GID 129) ...
Adding new user `nvidia-persistenced' (UID 123) with group `nvidia-persistenced' ...
Not creating home directory `/'.
Loading new nvidia-390-390.30 DKMS files...
Building for 4.15.3-041503-generic
Building for architecture x86_64
Building initial module for 4.15.3-041503-generic
Done.

nvidia_390:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.15.3-041503-generic/updates/dkms/

nvidia_390_modeset.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.15.3-041503-generic/updates/dkms/

nvidia_390_drm.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.15.3-041503-generic/updates/dkms/

nvidia_390_uvm.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.15.3-041503-generic/updates/dkms/

depmod...

DKMS: install completed.
Setting up nvidia-390-dev (390.30-0ubuntu1) ...
Setting up nvidia-settings (390.30-0ubuntu1) ...
Processing triggers for libc-bin (2.26-0ubuntu2.1) ...
Setting up nvidia-modprobe (390.30-0ubuntu1) ...
Processing triggers for man-db (2.7.6.1-2) ...
Processing triggers for gnome-menus (3.13.3-6ubuntu5) ...
Setting up nvidia-opencl-icd-390 (390.30-0ubuntu1) ...
Setting up libcuda1-390 (390.30-0ubuntu1) ...
Setting up cuda-drivers (390.30-1) ...
Setting up cuda-runtime-9-1 (9.1.85-1) ...
Setting up cuda-demo-suite-9-1 (9.1.85-1) ...
Setting up cuda-9-1 (9.1.85-1) ...
Setting up cuda (9.1.85-1) ...
Processing triggers for initramfs-tools (0.125ubuntu12) ...
update-initramfs: Generating /boot/initrd.img-4.15.3-041503-generic
cryptsetup: WARNING: target cryptswap1 has a random key, skipped
Processing triggers for shim-signed (1.33.1~17.10.1+13-0ubuntu2) ...
Secure Boot not enabled on this system.
Processing triggers for libc-bin (2.26-0ubuntu2.1) ...
root@srv2:~/xmr-stak/build/bin#