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

How to install the latest linux kernel (mainline) in CentOS 7 distro

Here you can see the steps to install the latest (mainline stable) kernel under CentOS 7, whether we need the latest driver, because we bought a new laptop released for the first time last month with the latest hardware or there is a hot fix of some nasty bug it is of no matter.
Here are the steps about installing the latest kernel to our CentOS 7, you must have root access:

  • STEP 1 Import the public key of the repository, which offer us the packages of the CentOS 7 mainline stable kernel (and some other kernels, like the Red Hat Enterprise Linux (RHEL) 6 and 7 and more, you can check out the site). The site of the repository is

    https://elrepo.org/

    Import the public key

    #change to root user (skip the first line if you are root)
    sudo su
    rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    
  • STEP 2 Check the latest version of the rpm install package of the repository, the command is under

    To install ELRepo for RHEL-7, SL-7 or CentOS-7:

    So at present the latest version is “7.0-3” and execute to wget to download the package for the repository elrepo:

    wget http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
    
  • STEP 3 Install the elrepo package with yum (you can do it with rpm command, but let yum manage all your packages and metadata for them!)
    yum -y install ./elrepo-release-7.0-3.el7.elrepo.noarch.rpm
    

    STEP 4 List the available kernels from the elrepo to choose the one you like

    yum list available --disablerepo='*' --enablerepo=elrepo-kernel
    

    To install the latest mainline kernel you must use package starting with

    kernel-ml-*

    at moment of writing the latest mainline kernel is

    4.15.4-1.el7.elrepo

    So execute

    yum install -y --enablerepo=elrepo-kernel kernel-ml
    

    And it will pull the

    kernel-ml-4.15.4-1.el7.elrepo.x86_64

    and install it

  • STEP 5 Check if you are going to boot the new kernel, you’ve installed and set the right one to boot

    cat /boot/grub2/grubenv |grep saved
    # GRUB Environment Block
    saved_entry=CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
    

    And as you see, no it’ll not boot to the new kernel, so you must configure grub2 to boot your newly just installed kernel. First check all the installed kernels, set the right kernel and then it is mandatory to call

    grub2-mkconfig

    to update the grub2 configuration:

    [root@srv ~]# awk -F\' /^menuentry/{print\$2} /boot/grub2/grub.cfg 
    CentOS Linux (4.15.4-1.el7.elrepo.x86_64) 7 (Core)
    CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
    CentOS Linux (0-rescue-0a26fe4b81d845209fb8958c8e29d600) 7 (Core)
    

    The position 0 (YES, it starts from ZERO!) is “CentOS Linux (4.15.4-1.el7.elrepo.x86_64) 7 (Core)”, so you have two options to set it:

    grub2-set-default 0
    grub2-mkconfig -o /boot/grub2/grub.cfg
    

    Check to see if everything is OK with

    [root@srv ~]# cat /boot/grub2/grubenv |grep saved
    saved_entry=0
    

    or you can set the name of the kernel to boot with

    grub2-set-default "CentOS Linux (4.15.4-1.el7.elrepo.x86_64) 7 (Core)"
    grub2-mkconfig -o /boot/grub2/grub.cfg
    

    Check to see if everything is OK with

    [root@srv ~]# cat /boot/grub2/grubenv |grep saved
    saved_entry=CentOS Linux (4.15.4-1.el7.elrepo.x86_64) 7 (Core)
    
  • STEP 6 is just to reboot
    reboot
    

    STEP 4 Verification of running the latest kernel

    root@srv:~# uname -a
    Linux srv.local 4.15.4-1.el7.elrepo.x86_64 #1 SMP Sat Feb 17 13:35:20 EST 2018 x86_64 x86_64 x86_64 GNU/Linux
    

Install log of the procedure (your output may vary depending on your hardware installed in your system):

[root@srv ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@srv ~]# wget http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
--2018-02-19 10:20:42--  http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
Resolving www.elrepo.org (www.elrepo.org)... 69.195.83.87
Connecting to www.elrepo.org (www.elrepo.org)|69.195.83.87|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 8656 (8.5K) [application/x-rpm]
Saving to: ‘elrepo-release-7.0-3.el7.elrepo.noarch.rpm’

100%[=======================================================================>] 8,656       --.-K/s   in 0.001s  

2018-02-19 10:20:42 (6.97 MB/s) - ‘elrepo-release-7.0-3.el7.elrepo.noarch.rpm’ saved [8656/8656]
[root@srv ~]# yum -y install ./elrepo-release-7.0-3.el7.elrepo.noarch.rpm 
Loaded plugins: fastestmirror
Examining ./elrepo-release-7.0-3.el7.elrepo.noarch.rpm: elrepo-release-7.0-3.el7.elrepo.noarch
Marking ./elrepo-release-7.0-3.el7.elrepo.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package elrepo-release.noarch 0:7.0-3.el7.elrepo will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=================================================================================================================
 Package              Arch         Version                   Repository                                     Size
=================================================================================================================
Installing:
 elrepo-release       noarch       7.0-3.el7.elrepo          /elrepo-release-7.0-3.el7.elrepo.noarch       5.2 k

Transaction Summary
=================================================================================================================
Install  1 Package

Total size: 5.2 k
Installed size: 5.2 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : elrepo-release-7.0-3.el7.elrepo.noarch                                                        1/1 
  Verifying  : elrepo-release-7.0-3.el7.elrepo.noarch                                                        1/1 

Installed:
  elrepo-release.noarch 0:7.0-3.el7.elrepo                                                                       

Complete!
[root@srv ~]# yum list available --disablerepo='*' --enablerepo=elrepo-kernel
Loaded plugins: fastestmirror                                                                                                                                               
Loading mirror speeds from cached hostfile                                                                                                                                  
 * elrepo-kernel: mirrors.netix.net                                                                                                                                         
Available Packages                                                                                                                                                          
kernel-lt.x86_64                                                                      4.4.116-1.el7.elrepo                                                     elrepo-kernel
kernel-lt-devel.x86_64                                                                4.4.116-1.el7.elrepo                                                     elrepo-kernel
kernel-lt-doc.noarch                                                                  4.4.116-1.el7.elrepo                                                     elrepo-kernel
kernel-lt-headers.x86_64                                                              4.4.116-1.el7.elrepo                                                     elrepo-kernel
kernel-lt-tools.x86_64                                                                4.4.116-1.el7.elrepo                                                     elrepo-kernel
kernel-lt-tools-libs.x86_64                                                           4.4.116-1.el7.elrepo                                                     elrepo-kernel
kernel-lt-tools-libs-devel.x86_64                                                     4.4.116-1.el7.elrepo                                                     elrepo-kernel
kernel-ml.x86_64                                                                      4.15.4-1.el7.elrepo                                                      elrepo-kernel
kernel-ml-devel.x86_64                                                                4.15.4-1.el7.elrepo                                                      elrepo-kernel
kernel-ml-doc.noarch                                                                  4.15.4-1.el7.elrepo                                                      elrepo-kernel
kernel-ml-headers.x86_64                                                              4.15.4-1.el7.elrepo                                                      elrepo-kernel
kernel-ml-tools.x86_64                                                                4.15.4-1.el7.elrepo                                                      elrepo-kernel
kernel-ml-tools-libs.x86_64                                                           4.15.4-1.el7.elrepo                                                      elrepo-kernel
kernel-ml-tools-libs-devel.x86_64                                                     4.15.4-1.el7.elrepo                                                      elrepo-kernel
perf.x86_64                                                                           4.15.4-1.el7.elrepo                                                      elrepo-kernel
python-perf.x86_64                                                                    4.15.4-1.el7.elrepo                                                      elrepo-kernel
[root@srv ~]# yum install -y --enablerepo=elrepo-kernel kernel-ml
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.uni-sofia.bg
 * elrepo: mirrors.netix.net
 * elrepo-kernel: mirrors.netix.net
 * extras: centos.uni-sofia.bg
 * updates: centos.uni-sofia.bg
Resolving Dependencies
--> Running transaction check
---> Package kernel-ml.x86_64 0:4.15.4-1.el7.elrepo will be installed
--> Finished Dependency Resolution

Dependencies Resolved

============================================================================================================================================================================
 Package                               Arch                               Version                                           Repository                                 Size
============================================================================================================================================================================
Installing:
 kernel-ml                             x86_64                             4.15.4-1.el7.elrepo                               elrepo-kernel                              44 M

Transaction Summary
============================================================================================================================================================================
Install  1 Package

Total download size: 44 M
Installed size: 195 M
Downloading packages:
kernel-ml-4.15.4-1.el7.elrepo.x86_64.rpm                                                                                                             |  44 MB  00:00:10     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : kernel-ml-4.15.4-1.el7.elrepo.x86_64                                                                                                                     1/1 
  Verifying  : kernel-ml-4.15.4-1.el7.elrepo.x86_64                                                                                                                     1/1 

Installed:
  kernel-ml.x86_64 0:4.15.4-1.el7.elrepo                                                                                                                                    

Complete!
[root@srv ~]# cat /boot/grub2/grubenv |grep saved
# GRUB Environment Block
saved_entry=CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
[root@srv ~]# awk -F\' /^menuentry/{print\$2} /etc/grub2.cfg
CentOS Linux (4.15.4-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-0a26fe4b81d845209fb8958c8e29d600) 7 (Core)
[root@srv ~]# grub2-set-default "CentOS Linux (4.15.4-1.el7.elrepo.x86_64) 7 (Core)"
[root@srv ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.15.4-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.15.4-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-0a26fe4b81d845209fb8958c8e29d600
Found initrd image: /boot/initramfs-0-rescue-0a26fe4b81d845209fb8958c8e29d600.img
done
[root@srv ~]# reboot
Connection to 192.168.0.18 closed by remote host.
Connection to 192.168.0.18 closed.
...
...
...
[root@srv ~]# uname -a
Linux srv.local 4.15.4-1.el7.elrepo.x86_64 #1 SMP Sat Feb 17 13:35:20 EST 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@srv ~]#

How to install the latest linux kernel (mainline) in Ubuntu (17.10) distro

Sometimes we need to install the latest kernel version of our linux distro (btw it is called “mainline” if you need to google something about it)! Whether we need the latest driver, because we bought a new laptop released for the first time last month with the latest hardware or there is a hot fix of some nasty bug it is of no matter. Here are the steps (and some troubleshooting) about installing the latest kernel to our Ubuntu install 17.10 (with old versions like 16, 15 and 14 should be the same):

  • STEP 1 is to choose our desired kernel from

    http://kernel.ubuntu.com/~kernel-ppa/mainline/

    Open this address in your favorite browser and choose the latest. In our example the latest kernel, which is no release candidate, 4.14.15. Enter the directory

    http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15.1/

    and choose your build, for example amd64 for your 64bit setup (and for most cases choose -generic- one)

    mkdir /root/latestkernel
    cd /root/latestkernel
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15.1/linux-headers-4.15.1-041501_4.15.1-041501.201802031831_all.deb
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15.1/linux-headers-4.15.1-041501-generic_4.15.1-041501.201802031831_amd64.deb
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15.1/linux-image-4.15.1-041501-generic_4.15.1-041501.201802031831_amd64.deb
    
  • STEP 2 after successfully downloading the 3 files just install them with “dpkg” (the package manager tool)
    sudo dpkg -i linux-headers-4.15.1*.deb linux-image-4.15.1*.deb
    
  • STEP 3 is just to reboot your machine, the installation setup did everything you needed to load this kernel
    reboot
    

    STEP 4 Verification of running the latest kernel

    root@srv:~# uname -a
    Linux srv.local 4.15.1-041501-generic #201802031831 SMP Sat Feb 3 18:32:13 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
    

Install log of the procedure (your output may vary depending on your hardware installed in your system):

root@srv:~/latestkernel# sudo dpkg -i linux-headers-4.15.1*.deb linux-image-4.15.1*.deb
Selecting previously unselected package linux-headers-4.15.1-041501.
(Reading database ... 200430 files and directories currently installed.)
Preparing to unpack linux-headers-4.15.1-041501_4.15.1-041501.201802031831_all.deb ...
Unpacking linux-headers-4.15.1-041501 (4.15.1-041501.201802031831) ...
Selecting previously unselected package linux-headers-4.15.1-041501-generic.
Preparing to unpack linux-headers-4.15.1-041501-generic_4.15.1-041501.201802031831_amd64.deb ...
Unpacking linux-headers-4.15.1-041501-generic (4.15.1-041501.201802031831) ...
Selecting previously unselected package linux-image-4.15.1-041501-generic.
Preparing to unpack linux-image-4.15.1-041501-generic_4.15.1-041501.201802031831_amd64.deb ...
Examining /etc/kernel/preinst.d/
run-parts: executing /etc/kernel/preinst.d/intel-microcode 4.15.1-041501-generic /boot/vmlinuz-4.15.1-041501-generic
Done.
Unpacking linux-image-4.15.1-041501-generic (4.15.1-041501.201802031831) ...
Setting up linux-headers-4.15.1-041501 (4.15.1-041501.201802031831) ...
Setting up linux-headers-4.15.1-041501-generic (4.15.1-041501.201802031831) ...                                                                                             
Setting up linux-image-4.15.1-041501-generic (4.15.1-041501.201802031831) ...                                                                                               
Running depmod.                                                                                                                                                             
update-initramfs: deferring update (hook will be called later)                                                                                                              
Examining /etc/kernel/postinst.d.                                                                                                                                           
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.15.1-041501-generic /boot/vmlinuz-4.15.1-041501-generic                                                      
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.15.1-041501-generic /boot/vmlinuz-4.15.1-041501-generic                                                       
update-initramfs: Generating /boot/initrd.img-4.15.1-041501-generic                                                                                                         
run-parts: executing /etc/kernel/postinst.d/unattended-upgrades 4.15.1-041501-generic /boot/vmlinuz-4.15.1-041501-generic                                                   
run-parts: executing /etc/kernel/postinst.d/update-notifier 4.15.1-041501-generic /boot/vmlinuz-4.15.1-041501-generic                                                       
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.15.1-041501-generic /boot/vmlinuz-4.15.1-041501-generic                                                        
Generating grub configuration file ...                                                                                                                                      
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.                                                                   
Found linux image: /boot/vmlinuz-4.15.1-041501-generic                                                                                                                      
Found initrd image: /boot/initrd.img-4.15.1-041501-generic                                                                                                                  
Found linux image: /boot/vmlinuz-4.14.15-041415-generic                                                                                                                     
Found initrd image: /boot/initrd.img-4.14.15-041415-generic                                                                                                                 
Found linux image: /boot/vmlinuz-4.13.0-32-generic
Found initrd image: /boot/initrd.img-4.13.0-32-generic
Found linux image: /boot/vmlinuz-4.13.0-21-generic
Found initrd image: /boot/initrd.img-4.13.0-21-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done
root@srv:~/latestkernel#

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#

systemd can be used to run your application as a daemon

A nice feature of systemd is the scripts could be daemonized without any modifications of the scripts like standard stdin, stdout, stderr to be redirected to null (and even in some languages is not that simple!).
So if you want to run your ordinary script as daemon under a systemd linux distro, create a systemd service file in

/etc/systemd/system/myscript.service

Replace “myscript” with the nme of your script.

[Install]
WantedBy=multi-user.target

[Unit]
Description=<my_script_description>
After=syslog.target
After=network.target

[Service]
Type=simple
User=<run_as_user>
Group=<run_as_group_group>
ExecStart=<your_path_and_script_name_here>

# Give the script some time to startup
TimeoutSec=300
#EnvironmentFile=/etc/<filename>

[Install]
WantedBy=multi-user.target

So change the following according your needs:

  • <my_script_description> – description of your script/program with couple of words
  • <run_as_user> – the user under which will be executed
  • <run_as_group_group> – the group under which will be executed
  • <your_path_and_script_name_here> – the absolute path and filename to the script or program to be executed
  • Uncomment “EnvironmentFile” line if you would like to have different environment file for your script

And then you can run it with

systemctl start myscript

And you can enable it to start at boot

systemctl enable myscript

And also you can see the output of the script on syslog or with

systemctl status myscript

Here is an example of running a python script as a daemon with systemd.
The python script is

/usr/local/bin/mypythonscript.py

and the service name is

/etc/systemd/system/mypythonscript.service

Description=My python script daemon
After=syslog.target
After=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/usr/bin/python /usr/local/bin/mypythonscript.py

# Give the script some time to startup
TimeoutSec=300

[Install]
WantedBy=multi-user.target

And you can see handful of information for the state of your script with

systemctl status mypythonscript

The uptime of your script and output if any

* mypythonscript.service
   Loaded: loaded (/etc/systemd/system/mypythonscript.service; disabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-01-04 13:58:34 UTC; 1 months 12 days ago
 Main PID: 29654 (python)
   CGroup: /system.slice/mypythonscript.service
           `-37421 /usr/bin/python /usr/local/bin/mypythonscript.py

Jan 12 10:05:21 srv.local systemd[1]: [/etc/systemd/system/mypythonscript.service:3] Assignment outside of section. Ignoring.
Jan 12 10:05:21 srv.local systemd[1]: [/etc/systemd/system/mypythonscript.service:1] Assignment outside of section. Ignoring.

Avoiding Esc (escape) key, a key combination to simulate it

Writing the last howto there was an idea: how to simulate the ESC key, when the key is not available in our keyboard, which is very often these days. Mobile traffic is the ruler coming from mobile devices, of course! So why to limit console users (probably mainly admins?) only to desktop or “qwerty” keyboards? The tables could weight under 500 grams and event smartphones could be used to ssh to a server and what if you do not have ESC key, but need to use it? You can try the following combination:

The escape key can be replaced with pressing and holding CTRL and pressing “[” (left square bracket) = “CTRL+[”

So next time when trying to use ssh or console under Android or iOS or any device try this combination at lease it could be faster than selecting a menu for a predefined keys like ESC key.

vim – edit, save and exit, it is too simple!

Do not blame admins (or in general users, too) of using nano (pico) it is away too simple for simple tasks, which are probably the most cases under console.

    • Save a file – press Esc key, then press and hold SHIFT and then press colons “:”, the bottom line of your screen will change and will start with colons “:”, then type the key “w” and then hit Enter key, so you’ve just saved the opened file.
        1. press Esc
        2. press and hold SHIFT
        3. press the key with colons “:
        4. type “w
        5. hit Enter key
    • Save a file and quit – press Esc key, then press and hold SHIFT and then press colons “:”, the bottom line of your screen will change and will start with colons “:”, then type the key “x” and then hit Enter key, so you’ve just saved the opened file.
        1. press Esc
        2. press and hold SHIFT
        3. press the key with colons “:
        4. type “x
        5. hit Enter key
    • Save all opened files – press Esc key, then press and hold SHIFT and then press colons “:”, the bottom line of your screen will change and will start with colons “:”, then type the key “wa” and then hit Enter key, so you’ve just saved the opened file.
        1. press Esc
        2. press and hold SHIFT
        3. press the key with colons “:
        4. type “wa
        5. hit Enter key
    • Quit without saving, just quit the vim – press Esc key, then press and hold SHIFT and then press colons “:”, the bottom line of your screen will change and will start with colons “:”, then type the key “q!” and then hit Enter key
        1. press Esc
        2. press and hold SHIFT
        3. press the key with colons “:
        4. type “q!
        5. hit Enter key
  • Enable auto save with two ESC keys – create or edit file

    ~/.vimrc

    Add the following line:

    map <Esc><Esc> :w<CR>
    

* The Esc can be avoided

The escape key can be replaced with pressing and holding CTRL and pressing “[” (left square bracket) = “CTRL+[” and if your “[” is hard typing, you can try CTRL plus “c” = “CTRL+c”, all this is needed to be sure you are not in vim’s insert mode. Avoiding Esc – escape button could be useful under not qwerty keyboards of the mobile devices – smartphones, tablets and so on.