Catalyst 13.1 Installation Issues
#1
So, I'm pretty sure I'm missing something ridiculously simple with as long as I've been spinning my wheels on this, but I keep getting errors after driver installation on the latest The-Distribution-Which-Does-Not-Handle-OpenCL-Well (Kali) release. I've searched various forums, and the closest I've seen to my situation is thread 2222 here with eljolot's walkthrough - but he's on different architecture.

System as follows:
  • Debian 3.7.2-0+kali6 x86_64
  • AMD 7970
  • AMD FX-4170

I have followed eljolot's instructions to the letter (or at least, disregarding a few typos he made made and architectural differences) and got a positive output after installing, but I receive the following error when attempting to run clinfo, fglrxinfo, or my aticonfig --initial:

Code:
clinfo: error while loading shared libraries: libOpenCL.so.1: wrong ELF class: ELFCLASS32

My research suggested this was due to incorrect linking of the openCL libs; to that end, I attempted to create a symlink for /usr/lib64/libOpenCL.so.1 (and /usr/lib/libOpenCL.so.1 on another installation attempt) but I continue receiving the error.

I followed this up with a manual install of the AMD-APP package package after further investigation; no change.

Since I'm clearly not making any headway, I figured it was time to seek outside help. Any assistance at all would be greatly appreciated. If I need to provide provide any further information, just let me know.

Cheers.
#2
you're trying to load a 32-bit library on a 64-bit system. looks like somehow along the way, something got screwed up.

start by removing the APP SDK, you should not have this installed.

''aptitude purge'' any fglrx packages you have installed, or run amdconfig --uninstall

''find /usr -name libOpenCL.so\* | xargs rm -f'' to clean up any old OpenCL libraries

then follow the catalyst installation steps here: http://hashcat.net/wiki/doku.php?id=linu...d_catalyst
#3
Yeah, I figured it was related to the 32 bit libs...I was hoping I was just being a jackass, but I'm getting the same issue after following the instructions in the wiki link you posted.

I decided to start with a fresh install of The-Distribution-Which-Does-Not-Handle-OpenCL-Well (Kali) to be safe. Installation of the fglrx drivers failed initially because the installer couldn't find /lib/modules/3.7-trunk-amd64/build/include/linux/version.h - so I symlinked in the version in /usr/include/linux/. Installation then ran to completion, but logs indicated failure. As below:

Code:
Kernel preparation unnecessary for this module. Skipping...
cleaning build area...
cd /var/lib/dkms/fglrx/9.012/build; sh make.she --nohints --uname_r=3.7-trunk-amd64 --norootcheck....(bad exit status: 1)
[Error] Kernel module : failed to build fglrx-9.012 with DKMS
[Error] Kernel module : removing fglrx-9.012 from DKMS

Deleting module version: 9.012
completely from the DKMS tree.

It's still trying to load 32bit libraries when I send an aticonfig after this, as well.

I'm going to wipe the slate clean again and give it another shot tomorrow when I've had some sleep. I'm not going to magically figure this out by adding sleep deprivation to my obstacles here.

Either way, thanks for your help so far - any ideas are a welcome change from the blanks I'm drawing. I'm still trying to puzzle out why it's looking at 32 bit libs. Dmidecode is pretty clear about this being a 64 bit system,and the AMD installers all agree, up until they fail out. This is just weird to me. A driver installation shouldn't be this maddening.
#4
Hey obsidian,
please have a look at the dozens of tutorials on the web that address this exact same problem (The-Distribution-Which-Does-Not-Handle-OpenCL-Well (Kali) linux + Catalyst).

We also discussed this problem a couple of times in the forum, e.g. https://hashcat.net/forum/thread-2222-po...l#pid13413

It is also well known that the installer when used on kernel 3.7 needs a patch, but also this is document ^.

Hope this helps
#5
Thread 2222 - the thread you linked, philsmds - is the first tutorial I referenced; it seems to have gotten me closer, but I still got ELF errors with it. I think there's something else that needs to be done differently from what's necessary with that architecture - or maybe I'm just not linking the correct version.h ffrom the start.

I'm aware of the need to patch the firegl_public.c file in the installer, and that's been done. No effect when running through the tutorial in thread 2222, but when following the wiki, I opted to test it as the document was written. I'll be testing again tonight with the wiki document, but adding the patch as per other tutorials.

Thank you both for your guidance - it helps to be able to bounce ideas back and forth between someone else.
#6
It could be a problem with the difference of your architecture and the architecture that was used in thread 2222.
You should for instance use
ln -s /usr/include/linux/ /lib/modules/$(uname -r)/build/include/linux/

and not /lib/modules/3.7-trunk-686-pae/build/include/linux/ since your architecture seems to be "3.7-trunk-amd64" and not "3.7-trunk-686-pae" ...

There could be some conflicts there... but we need more details what really fails.
If nothing helps and you can't find any solution, feel free to join us in IRC (http://webchat.freenode.net/?channels=hashcat ) and query me (philsmd) there.
Best
#7
No, I'd accounted for the architectural differences; even used the $(uname -r) command line variable to be sure I wasn't introducing any further human error. It's still throwing an ELF class error,but now it's complaining about openGL instead of libOpenCL.so. So, it seems like I've made some progress,but I'm still not quite there.

Following the wiki and adding the patch made no difference; I'm wondering if it might be an issue with my gpu at this point. No issues with games or anything else when I boot to Windows 7 or rhel 6.1, but I'm using up to date drivers there, and I've certainly seen stranger things happen.

I did see some chatter during some more reading that multiple files need to be patched in the installer besides just the fireGL_public.c, but I couldn't nail down if that was just the architecture they were working with. Can anyone confirm or deny that it's just the one file in the AMD(tab).run file that needs to be patched?

I'll continue tinkering with it tomorrow. From here on in I'm doing all my install attempts on lvgs so I can take a snapshot when I get it running.

Thanks again,all.
#8
There should not be 32 bit opencl etc lib around on your system. Maybe it is because of the AMDAPP (ocl SDK install). As suggested by @expixoip you should remove *everything* sdk/ocl/amd/ati driver related stuff first (also a clean distro installation might have some of those packages pre-installed, so remove it).
To check what is going on with 32 bit libs (that shouldn't be there), issue these commands:
Code:
sudo updatedb
locate libOpenCL|xargs file
locate openGL|xargs file

You should not have 32 bit libs... maybe you have downloaded the 32 bit amd installer?
#9
i would also highly recommend disabling multiarch support if you do not need it (and most don't.) it's highly experimental and causes way more problems than it solves.