This post describes Fedora 27 AMD driver installation and xmr-stak compile steps. In scenario without GUI, “worker” will be launched in runlevel3 and therefore only OpenCL is needed to install from AMD driver package.
If you are on this page, you already know what is Monero and xmr-stak. xmr-stak is a universal Stratum pool miner ready for the POW change of Monero-v7, Aeon-v7 and Sumukoin-v3. After short introduction, let’s move onto technical details of how to prepare Fedora 27 to become mining worker. Before everything else, check kernel version on your Linux system. Newer kernels have changed too much and 17.50 AMD driver cannot successfully compile its modules yet. For Fedora 27 use 4.13.9 kernel version.
1) Install kernel-devel package
> dnf install kernel-devel
Kernel development package is needed to compile kernel modules and it should be 4.13.9 version – the same version as is running kernel.
2) Download AMD Linux driver version 17.50
Linux Driver Version 17.50 for RHEL 7.4 / CentOS 7.4
3) Unpack tar archive
> tar -Jxvf amdgpu-pro-17.50-511655.tar.xz
4) Install amdgpu driver
> cd amdgpu-pro-17.50-511655 > ./amdgpu-install --compute
Driver installation is with “compute” option. It’s sufficient for headless installation because only OpenCL support is needed. Anyway, at this step AMD driver should be installed and Linux computer can be rebooted. After reboot, you can test if drivers are loaded correctly. Type command “lsmod | grep amdgpu” to see amdgpu in kernel module chain list.
> lsmod | grep amdgpu amdgpu 3047424 1 amdttm 102400 1 amdgpu amdkcl 24576 3 amdttm,amdgpu,amdkfd i2c_algo_bit 16384 1 amdgpu drm_kms_helper 159744 1 amdgpu drm 352256 5 amdttm,amdgpu,amdkcl,drm_kms_helper
In case where amd-pro driver should be uninstalled, just create symbolic link “amdgpu-pro-uninstall” and run it.
> ln -s amdgpu-install amdgpu-pro-uninstall > ./amdgpu-pro-uninstall
Next part is compiling xmr-stak miner with AMD support
1) Download AMD APP SDK
Download SDK installer AMD-APP-SDKInstaller-v3.0.130.136-GA-linux64.tar.bz2
2) Unpack SDK installer tar.bz2 package
> tar jxf AMD-APP-SDKInstaller-v3.0.130.136-GA-linux64.tar.bz2
3) Run extracted SDK
> ./AMD-APP-SDK-v3.0.130.136-GA-linux64.sh
By default, SDK will be installed in /opt/AMDAPPSDK-3.0 directory.
4) Set AMDAPPSDKROOT environment variable
> export AMDAPPSDKROOT=/opt/AMDAPPSDK-3.0
After AMD APP SDK is installed, set AMDAPPSDKROOT environment variable for “cmake” to find SDK when xmr-stak will be compiled.
5) Install needed tools to compile xmr-stak
> dnf install gcc gcc-c++ hwloc-devel libmicrohttpd-devel libstdc++-static make openssl-devel cmake
6) Get xmr-stak from Git repository
> git clone https://github.com/fireice-uk/xmr-stak.git
7) Create build directory inside cloned xmr-stak source code
> cd xmr-stak > mkdir build > cd build
8) Run cmake
> cmake .. -DCUDA_ENABLE=OFF -DOpenCL_LIBRARY=/opt/amdgpu-pro/lib64/libOpenCL.so
CUDA is for Nvidia and is disabled with “-DCUDA_ENABLE=OFF”. I had a problem finding OpenCL library in Fedora 27 even though it was installed. -DOpenCL_LIBRARY option helped cmake to finish configuration.
9) Run make and make install
> make > make install
10) Start xmr-stak
> bin/xmr-stak
Finally, set large page support to get better results with “sysctl -w vm.nr_hugepages=128” command. For permanent settings add “vm.nr_hugepages=128” to the /etc/sysctl.conf file:
vm.nr_hugepages=128
Happy mining :)