# Linux emulation for GPU/OpenCL stuff (BOINC, miners)



## dchmelik (Jun 22, 2019)

I'm trying to switch from having to use one of three commercialized GNU/Linux distributions that have AMDGPU-PRO, back to *BSD, this time FreeBSD.  To do that, I'd need my graphics card to be able to use OpenCL such as for Berkeley Open Infrsastructure for Network Computing (to contribute idle system resources to research/academic science) and some cryptocurrency miners.

Since FreeBSD 12 has OpenCL, probably also for AMD Radeon RX Vega cards, I think BOINC will work but haven't installed a desktop environment (DE) such as KDE to test it, but it shouldn't be something I necessarily need help on.  If OpenCL supports the card, BOINC just detects it.

It's not as easy for ethminer (ethereum,) lolminer (bitcoin gold,) or nsgminer (feathercoin,) which I'm pasting some configuration/compile errors below to ask about.  I hadn't been sure where to ask, and these aren't yet *BSD packages/ports, but I'm not trying to port them... I guess the main thing then is this is asking about doing certain things under the Linux emulation package.

One other thing I'll have to see is if all my monitors are detected in X/KDE or  TDE (only first display port is on the pure terminal, not the higher-numbered display ports.)

Maybe the easiest should be ethminer, lolminer, under emulation  In GNU/Linux, I got these results from ldd.


```
ldd /usr/local/bin/ethminer
linux-vdso.so.1 (0x00007ffd01650000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f5e6d93c000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f5e6d734000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f5e6d515000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f5e6d177000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f5e6cf5f000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5e6cb6e000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5e6db40000)
```


```
ldd /usr/local/lib/lolminer/lolMiner
linux-vdso.so.1 (0x00007fff521fe000)
libOpenCL.so.1 => /opt/amdgpu-pro/lib/x86_64-linux-gnu/libOpenCL.so.1 (0x00007fd1da65a000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fd1da43b000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fd1da09d000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fd1d9e85000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd1d9a94000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd1da861000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fd1d988c000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fd1d9688000)
```

Ethminer needs libc 2.18+ so I copied & linked as below.


```
-rwxr-xr-x  1 root  wheel  1924768 Dec 31 07:35 /compat/linux/lib64/libc-2.12.so
-rwxr-xr-x  1 root  wheel  2030544 Dec 31 07:35 /compat/linux/lib64/libc-2.27.so
lrwxr-xr-x  1 root  wheel       12 Dec 31 07:36 /compat/linux/lib64/libc.so.6 -> libc-2.27.so
```

However ethminer didn't detect libc.

The pool.gold site's lolMiner 0.5 needs libOpenCL.so.1.  I installed same version number from ports' OpenCL (clover,) linked into /compat/linux/opt/amdgpu-pro/lib/x86_64-linux-gnu.  However, then lolMiner said OpenCL is not detected.

I tried to use autogen.sh from nsgminer from commit fa56d4d2b0ae5e11c79cb85977f31f0272443680 (Here are the last few lines of output, just what seems to be errors: )


```
autoreconf-2.69: configure.ac: not using Libtool
configure.ac:201: error: possibly undefined macro: AC_CHECK_LIB
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
configure.ac:204: error: possibly undefined macro: AC_MSG_ERROR
configure.ac:275: error: possibly undefined macro: AC_CHECK_DECL
configure.ac:278: error: possibly undefined macro: AC_PROG_CPP
configure.ac:279: error: possibly undefined macro: AC_MSG_CHECKING
configure.ac:284: error: possibly undefined macro: AC_MSG_RESULT
autoreconf-2.69: /usr/local/bin/autoconf-2.69 failed with exit status: 1
```

Probably there are newer commits since the last time I was trying all this.  I haven't used an autogen.sh many times and am not sure what went wrong or what those macros are...


----------

