Ubuntu 16.04 - fglrx is deprecated - is "radeon" driver OK these days?
#1
I've just built a fresh desktop with a Radeon R9 290X to use as an oclhashcat box =).

I've installed Ubuntu 16.04 on it. By default, Ubuntu uses the open-source "radeon" driver.

Reading online, most of the older articles seem to suggest replacing this with AMD's proprietary "fglrx" driver.

However, the Ubuntu 16.04 release notes (https://wiki.ubuntu.com/XenialXerus/ReleaseNotes) suggest going with "radeon":

The fglrx driver is now deprecated in 16.04, and we recommend its open source alternatives (radeon and amdgpu). AMD put a lot of work into the drivers, and we backported kernel code from Linux 4.5 to provide a better experience.

Out of curiosity - is it still the advice to replace "radeon" with "fglrx"?

Or have things changed, and it's now OK just to use the standard "radeon" driver that comes out of the box?
#2
The most important question is, does the new OSS driver support OpenCL.

At this point, radeon-crimson-15.12-15.302-151217a-297685e.zip is the best driver you can get for oclHashcat on linux.

But we need to keep an eye on the new drivers
#3
Hmm, it seems installing fglrx on Ubuntu 16.04 isn't that easy, even manually.

I'm attempting to follow the instructions at https://help.ubuntu.com/community/BinaryDriverHowto/AMD

I had to rename the unzipped script, not sure if it didn't like the path length or something. But even then, when you try to run it:
Code:
victorhooi@Cruncher:~/Downloads/fglrx-15.302$ ./blah.run --buildpkg Ubuntu/xenial
Created directory fglrx-install.ZaUsp7
Verifying archive integrity... All good.
Uncompressing AMD Proprietary Driver-15.302...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
=====================================================================
AMD  Proprietary Driver Installer/Packager
=====================================================================
Generating package: Ubuntu/xenial
Resolving build dependencies...
Reading package lists... Done
Building dependency tree      
Reading state information... Done
E: Unable to locate package Unmet
E: Unable to locate package build
E: Unable to locate package dependencies
Unable to resolve  Unmet build dependencies.  Please manually install and try again.

Using "Ubuntu/trusty" instead of "Ubuntu/xenial" results in the same output - I'm guessing it might be some change in Xenial which breaks the script?

Unfortunately, there's no logfile that I can see, or any option to enable more verbose output?

Just for kicks, I did try running oclHashcat first - I get:

Code:
victorhooi@Cruncher:~/Downloads/oclHashcat-2.01$ ./oclHashcat64.bin
./oclHashcat64.bin: error while loading shared libraries: libOpenCL.so.1: cannot open shared object file: No such file or directory

Has anybody gotten flgrx and oclHashcat running successfully on Ubuntu 16.04 yet?

From reading online, apparently AMD is releasing a new Catalyst package sometime this year that is based on the open-source radeon driver - not sure if that will have OpenCL support though?
#4
fglrx is not supported on Ubuntu 16.04. Use the new amdgpu driver instead.
#5
I've updated one of my development systems to Ubuntu 16.04 to clarify the situation.

As you can read about almost everywhere, fglrx is no longer supported. That's mostly because X11 is not compatible to it.

From what I've tested, the new "amdgpu" driver does _not_ support OpenCL. I know many people claim it comes with OpenCL 2.0, but I didn't get it to work with Ubuntu 16.04.

There, our last hope is the OSS MESA driver. I've patched the latest oclHashcat on GitHub to work with it, but the drivers performance is awful. I think it's not mapping rotate() and bitselect() to their adequate hardware instruction that come with GCN, so we're talking about a performance drop of 2-3 times or higher. However, it works and it cracks, as you can see here:

http://pastebin.com/FUCRgPAm

Long story short: AMD users are forced to switch to Windows. If you want to stick to Linux you're forced to switch to NVidia.
#6
I think for amdgpu to work with OpenCL you need the "hybrid driver" aka "amd gpu-pro", basically the open source driver + AMD's binary blob.

A third option is to just stick with Ubuntu 14.04 LTS, it will continue to be supported until October 2019.
#7
But no one yet seems to have found out how to do it, even there's alot of discussion going on about this topic. It's like some hidden mysterium. A pretty demoralizing argument is this:

Quote:mnagy@radeon:~$ apt-file search /etc/OpenCL/vendors
beignet-opencl-icd: /etc/OpenCL/vendors/intel-beignet-x86_64-linux-gnu.icd
mesa-opencl-icd: /etc/OpenCL/vendors/mesa.icd
nvidia-opencl-icd-304: /etc/OpenCL/vendors/nvidia.icd
nvidia-opencl-icd-304-updates: /etc/OpenCL/vendors/nvidia.icd
nvidia-opencl-icd-340: /etc/OpenCL/vendors/nvidia.icd
nvidia-opencl-icd-361: /etc/OpenCL/vendors/nvidia.icd

Above one is pretty clear. Without an ICD, there's no OpenCL.

And when it comes to what people call "amdgpu", this is all:

Quote:mnagy@radeon:~$ apt-cache search amdgpu
xserver-xorg-video-amdgpu - X.Org X server -- AMDGPU display driver
libdrm-amdgpu1 - Userspace interface to amdgpu-specific kernel DRM services -- runtime
libdrm-amdgpu1-dbg - Userspace interface to amdgpu-specific kernel DRM services -- debugging symbols
xserver-xorg-video-amdgpu-dbg - X.Org X server -- AMDGPU display driver (debugging symbols)

I've installed them all. Nothing.
#8
I also asked on the Ubuntu forums:

http://ubuntuforums.org/showthread.php?t=2321904

Unfortunately, the consensus seems to be there's no way to install Catalyst/fglrx on Ubuntu 16.04 - and I may need to wait for the work on amdgpu (which I assume should hopefully cover including OpenCL support).
#9
Apparently AMD have just released a beta of their new stack, which has support for Ubuntu 16.04.

http://support.amd.com/en-us/kb-articles...Notes.aspx

Has anybody tried this with oclhashcat?

Or any advice on how to get it working with oclhashcat?
#10
No, because there's no support for 290x / 7970. Most people have these cards.