Table of Contents

This page should be a starting point to help you configure your GPU card for john the ripper under linux

GPU Setup

As a side note, remember that under linux you have two kind of video card drivers:

If you want to use OpenCL / GPU computing at the moment you need to use the driver provided by the vendor and disable the open source one

X11 vs framebuffer

One of the main problem you may incour when trying to enable GPU computing on you linux machine could be the presence of the open source driver . This driver, nouveau for nvidia and radeon for amd cards, will enable framebuffer at boot time .

While framebuffer is a marvellous mode, that makes your text console pretty, on the other side it locks your GPU resources and you won't be able to rmmod the driver to enable the proprietary one.

Worst than that: even if you specify nvidia/fglrx as driver for your X11 session it won't be used because nouveau/radeon gets in the middle.

The only solution is to either blacklist nouveau/radeon driver in /etc/modprobe.d/blacklist.conf either from boot time; look on your favourite distro forums for instruction on how to do it.

AMD / ATI

AMD, formerly ATI, needs an X server running and a user logged in to be able to use OpenCL. This means your X server is configured to use “fglrx” as a driver and you use lightdm / xdm / kdm / gdm at startup.

If you need to use OpenCL from a remote session you might want to enable autologin on lightdm as suggested in this url or, if you feel, just edit /etc/lightdm/lightdm.conf

and add the following content:

[SeatDefaults]
autologin-user=<YOUR USER>
autologin-user-timeout=0
user-session=ubuntu
greeter-session=unity-greeter

Running AMD Apps Remotely

X11 forwarding

if you connect from remote with ssh beware of X11 forwarding which can be enabled/disabled with -X/-x .

if you enabled it accidentally and need to disable for that session just do unset DISPLAY

When in doubt just do a clinfo to see if everything is ok, you should get something like this

samu@cthulhu:~$clinfo
 Number of platforms:                             1
  Platform Profile:                              FULL_PROFILE
  Platform Version:                              OpenCL 1.1 AMD-APP (898.1)
  Platform Name:                                 AMD Accelerated Parallel Processing
  Platform Vendor:                               Advanced Micro Devices, Inc.
  Platform Extensions:                           cl_khr_icd cl_amd_event_callback cl_amd_offline_devices
  Platform Name:                                 AMD Accelerated Parallel Processing
 Number of devices:                               2
  Device Type:                                   CL_DEVICE_TYPE_GPU

key here is the CL_DEVICE_TYPE_GPU this means you have a gpu capable of OpenCL

NVIDIA

Nvidia is rather stable and simple to setup; nvidia is the driver you need to use to enable OpenCL.

if nouveau is enabled before nvidia you need to reboot your machine and either add

nouveau.blacklist=yes

as kernel boot option (works for live cd too) or add to /etc/modprobe.d/blacklist.conf

blacklist nouveau

Since you may want to use nvidia from remote with ssh and without having X already running or configured you might need to do

modprobe nvidia

and

nvidia-smi -q

before being able to use it

CPU mode

if you have a AMD card and AMD cpu you might change your OpenCL code to either run on CPU or on GPU.

This can help on tracking problem debug with gdb as suggested by AMD

Keep in mind that working only on CPU could lead to some misbehaviours due to having different bus transfer

Dual GPU system

Dual GPU at the moment could be a bit messy: linux distribution are not yet ready with packages for Nvidia and AMD, tough maintainers are trying to fix it. For this reason at the moment, mixing both drivers and libraries could lead you to strange side effects; nothing to worrry about, but you could end spending a lot of time trying to figure out which correct order of libraries to specify when using Nvidia and which one to use when using AMD; it's strongly suggested to do that only if you have a lot of free time and you know what you are doing.

In case you want a mixed system it is strongly suggested to have Xorg attached to AMD and do as Lukas suggest:

I have xorg.conf with fglrx. After X's starts up I do:
  modprobe nvidia
  and
  nvidia-smi -q
Second step does some magic, without it my gtx is not available for cuda or opencl.

Having dual AMD or dual Nvidia is simpler.