Я хочу использовать свой GPU с Pyrit. Я использую Ubuntu 11.10, ATI Radeon HD 68xx и i7 2600K.
Шаг сделан:
Когда я выполняю сравнительный тест, я добираюсь:
~$ pyrit benchmark
Pyrit 0.4.0 (C) 2008-2011 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3+
Running benchmark (5037.4 PMKs/s)... -
Computed 5037.45 PMKs/s total.
#1: 'CPU-Core (SSE2)': 667.8 PMKs/s (RTT 3.2)
#2: 'CPU-Core (SSE2)': 661.6 PMKs/s (RTT 3.2)
#3: 'CPU-Core (SSE2)': 664.0 PMKs/s (RTT 3.2)
#4: 'CPU-Core (SSE2)': 660.5 PMKs/s (RTT 3.2)
#5: 'CPU-Core (SSE2)': 669.7 PMKs/s (RTT 3.2)
#6: 'CPU-Core (SSE2)': 656.3 PMKs/s (RTT 3.2)
#7: 'CPU-Core (SSE2)': 667.4 PMKs/s (RTT 3.2)
#8: 'CPU-Core (SSE2)': 662.6 PMKs/s (RTT 3.1)
Как удостовериться, что AMD APP SDK правильно установлен?
Как настроить Pyrit для использования OpenCL и моего GPU?
Править:
Удаленный Pyrit и переустановленный AMD APP SDK. При попытке скомпилировать модуль поддержки OpenCL для Pyrit я получаю эту ошибку:
$ sudo python setup.py build
The headers required to build the OpenCL-kernel were not found. Trying to continue anyway...
svn: '.' is not a working copy
running build
running build_ext
Building modules...
building 'cpyrit._cpyrit_opencl' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c _cpyrit_opencl.c -o build/temp.linux-x86_64-2.7/_cpyrit_opencl.o -DVERSION="0.3.0"
_cpyrit_opencl.c:23:19: fatal error: CL/cl.h: No such file or directory
compilation terminated.
error: command 'gcc' failed with exit status 1
Так я и сделал на Ubuntu Server 11.04.
Установите минимальную среду X11:
aptitude install xserver-xorg xserver-xorg-core xserver-xorg-input-evdev xserver-xorg-video-ati lightdm unity-greeter openbox
Затем отредактируйте /etc/lightdm/lightdm.conf и добавьте следующее (заменив YOUR_USER_NAME на пользователя, с которым вы будете запускать hashcat as):
[SeatDefaults]
greeter-session=unity-greeter
user-session=openbox
autologin-user=YOUR_USER_NAME
autologin-user-timeout=0
Затем добавьте свое имя пользователя в группу nopasswdlogin:
usermod -a -G nopasswdlogin $USERNAME
Получите зависимости сборки для Catalyst:
aptitude build-dep fglrx
Загрузите и установите Catalyst 12.8:
wget http://www2.ati.com/drivers/linux/amd-driver-installer-12-8-x86.x86_64.zip
unzip amd-driver-installer-12-8-x86.x86_64.zip
sh amd-driver-installer-8.982-x86.x86_64.run --uninstall=force
sh amd-driver-installer-8.982-x86.x86_64.run
Создайте новый xorg.conf:
rm -f /etc/X11/xorg.conf*
amdconfig --adapter=all --initial
Убедитесь, что установлена переменная DISPLAY env: [ 1114]
echo 'export DISPLAY=:0' >>~/.bashrc
Перезагрузитесь, и все будет готово.
Я никогда не использовал Pyrit и не пытался скомпилировать, однако кажется, что его скрипт конфигурации (setup.py) не может найти файлы заголовков OpenCL. Вы должны выглядеть как пути, которые необходимо настроить в таком скрипте. Заголовки OpenCL для вашего ATI VGA, вероятно, будут установлены в некоторый субфолер установки драйвера.
РЕДАКТИРОВАТЬ:
Вот часть этого скрипта, которая устанавливает путь OpenCL.h. Найдите этот файл на своем ПК и немного поэкспериментируйте, который выбран, и попробуйте изменить его и посмотреть, работает ли он.
OPENCL_INC_DIRS = []
OPENCL_LIB_DIRS = []
EXTRA_LINK_ARGS = []
LIBRARIES = ['crypto', 'z']
if sys.platform == 'darwin':
# Use the built-in framework on MacOS
EXTRA_LINK_ARGS.extend(('-framework', 'OpenCL'))
OPENCL_INC_DIRS.append('/System/Library/Frameworks/OpenCL.framework/Headers')
else:
LIBRARIES.append('OpenCL')
try:
if os.path.exists(os.environ['ATISTREAMSDKROOT']):
OPENCL_INC_DIRS.append(os.path.join(os.environ['ATISTREAMSDKROOT'], 'include'))
for path in ('lib/x86_64','lib/x86'):
if os.path.exists(os.path.join(os.environ['ATISTREAMSDKROOT'], path)):
OPENCL_LIB_DIRS.append(os.path.join(os.environ['ATISTREAMSDKROOT'], path))
break
except:
pass
for path in ('/usr/local/opencl/OpenCL/common/inc', \
'/opt/opencl/OpenCL/common/inc', \
'/usr/local/opencl/include', \
'/usr/local/cuda/include'):
if os.path.exists(path):
OPENCL_INC_DIRS.append(path)
break
else:
print >>sys.stderr, "The headers required to build the OpenCL-kernel " \
"were not found. Trying to continue anyway..."
# Get exact version-string from svn
try:
svn_info = subprocess.Popen(('svn', 'info'), \
stdout=subprocess.PIPE).stdout.read()
VERSION += ' (svn r%i)' % \
int(re.compile('Revision: ([0-9]*)').findall(svn_info)[0])
except:
pass