あなたが五年生の場合、ほこりっぽいGPUをどうするか。 パート1:レガシーATI / AMD RADEON

画像



こんにちは、Habr! 夏が終わり、木々の葉が冷たい地面に落ち、最初の雪がノボシビルスクに降ってきました。この時点で、古いRADEON HD4890ビデオカードに基づいてWPA / WPA2パスワードを検索するためのプラットフォームのセットアップについて少しお話したいと思います。



はじめに



グラフィックカードが単なるグラフィックカードであった時代は終わりました。 GPGPU( https://ru.wikipedia.org/wiki/GPGPU )に基づく計算は人気を集めており、CPUでの計算よりも数十倍、時には数百倍も生産的です。 AMD RADEONビデオカードが同等のNVIDIAビデオアダプターよりもこの点ではるかに優れていることは周知の事実です。 これらの計算を実行するために、次の実装が存在します。





ご存じのように、pyritは2つの部分で構成されています。追加の機器をサポートするために必要なカーネルとモジュールです。 さらに、このモジュールをコンパイルして、上記の3つのGPGPUコンピューティングテクノロジーの1つをサポートできます。 CUDAは「グリーン」ビデオカードにのみ実装されているため、すぐに消えます。 CAL ++について説明します。



背景



それはすべて、楽しみのために、古い分解されたコンピューターから何か有用なものを作りたいという願望から始まりました。 文字通り「膝の上で」すべてがまとめられ、車は準備ができていました。 最初に思いついたのは、もちろん、平和的な目的のためのブルートフォースパスワードです。 だから私たちが持っているもの:





システムとしてUbuntuバージョン14.04が選択されましたが、これが問題の原因でした。 本格的なハードウェアアクセラレーションを行うには、AMDサイトからダウンロードした独自のドライバーが必要ですが、インストールは拒否されました。 エラーメッセージをグーグルで検索すると、いくつかの理由が見つかりました。カーネルとXのバージョンは、ドライバーのレガシーバージョンには新しすぎました。 xorgバージョン1.11.3とカーネル3.2を備えた古いバージョンのUbuntu 12.04を( ここから )ダウンロードする必要がありました。 詳細なガイドは、 http//www.blackmoreops.com/2013/11/22/install-pyrit-in-kali-linux/にあります



行こう!



何が必要ですか?



  1. AMDの公式Webサイトにある独自のグラフィックカードドライバー。 私の場合、これはlegacy-amd-driver-catalyst-13.1で、ここからダウンロードできます: http : //support.amd.com/en-us/download/desktop/legacy? product=Legacy2&os=Linux%20x86_64
  2. AMD APP SDK-2番目のpyritモジュールをコンパイルするためのツール。 ここからダウンロード: http : //developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated-parallel-processing-app-sdk/
  3. CAL ++は、コンパイル用の別のライブラリです。 http://sourceforge.net/projects/calpp/
  4. APP SDKのパッチはhttps://github.com/clockfort/amd-app-sdk-fixesです。
  5. SVNから最適に取得されるピリットソース。




この富を別のフォルダにダウンロードし、コンソールから作業するのが最も便利です。 ドライバーから始めましょう:

$ unzip amd-driver-installer-catalyst-13.1-legacy-linux-x86.x86_64.zip $ chmod +x amd-driver-installer-catalyst-13.1-legacy-linux-x86.x86_64.run $ sudo ./amd-driver-installer-catalyst-13.1-legacy-linux-x86.x86_64.run
      
      





インストーラーのグラフィカルバージョンが起動しますが、これで問題は発生しないはずです。 インストール後、再起動し、すべてが機能するかどうかを確認します。

 $ sudo reboot #   $ lsmod | grep fglrx fglrx 3273643 124 #  ,     $ fglrxinfo display: :0.0 screen: 0 OpenGL vendor string: Advanced Micro Devices, Inc. OpenGL renderer string: ATI Radeon HD 4800 Series OpenGL version string: 3.3.11672 Compatibility Profile Context #    :) $ fgl_glxgears Using GLX_SGIX_pbuffer 7919 frames in 5.0 seconds = 1583.800 FPS
      
      









回転する立方体のあるウィンドウが表示されますが、FPSは低くないはずです。 すべて問題なければ、CTRL-Cを押します-ドライバーのインストールは成功しました。 次に、AMD APP SDKをインストールします。

 $ tar -xvf AMD-APP-SDK-linux-v2.9-1.599.381-GA-x64.tar.bz2 $ chmod +x AMD-APP-SDK-v2.9-1.599.381-GA-linux64.sh $ sudo ./AMD-APP-SDK-v2.9-1.599.381-GA-linux64.sh #  ,   /opt $ sudo gedit /root/.bashrc
      
      





開いたファイルの最後に、次を追加します。

 # AMD APPSDK export AMDAPPSDKROOT=/opt/AMDAPPSDK-2.9-1 export AMDAPPSDKSAMPLESROOT=/opt/AMDAPPSDK-2.9-1 export LD_LIBRARY_PATH=${AMDAPPSDKROOT}/lib/x86_64:${LD_LIBRARY_PATH} export ATISTREAMSDKROOT=$AMDAPPSDKROOT
      
      





そして、変更を適用します。

 $ source /root/.bashrc
      
      





これらの変数は、コンパイラーが適切なフォルダーを見つけるのに役立ちます。 次に、不足しているAPP SDKコンポーネントをいくつか追加する必要があります。

 $ sudo apt-get update $ sudo apt-get install subversion #    ,     $ sudo passwd root $ su root #    $ svn checkout https://github.com/clockfort/amd-app-sdk-fixes/trunk/include/CAL $AMDAPPSDKROOT/include/CAL
      
      





CAL ++のビルド:

 $ apt-get install cmake libboost-all-dev $ tar -xvf calpp-0.90.tar.gz $ cd calpp-0.90/ $ gedit CMakeLists.txt
      
      





このファイルでは、変更する必要があります

 #  : FIND_PATH( LIB_ATICAL_INCLUDE NAMES cal.h calcl.h PATHS "$ENV{ATISTREAMSDKROOT}/include" ) #   : FIND_PATH( LIB_ATICAL_INCLUDE NAMES cal.h calcl.h PATHS "$ENV{ATISTREAMSDKROOT}/include/CAL" )
      
      





ライブラリをコンパイルします。

 $ cmake . $ make $ make install
      
      





エラーが発生しない場合は先に進みます。そうでない場合は、CMakeLists.txtのすべてのファイルパス、特にバージョンを含むファイルパスを確認する必要があります。 最後に、最後のステップはpyritをビルドすることです:

 $ cd .. # ,    pyrit $ sudo apt-get install libpcap-dev libssl-dev zlib1g-dev $ sudo svn checkout http://pyrit.googlecode.com/svn/trunk/ pyrit_svn #      $ cd pyrit_svn/pyrit $ sudo ./setup.py build install #   calpp cd ../cpyrit_calpp/ sudo gedit setup.py # : # VERSION = '0.4.0-dev'  VERSION = '0.4.1-dev' # CALPP_INC_DIRS.append(os.path.join(CALPP_INC_DIR, 'include'))  CALPP_INC_DIRS.append(os.path.join(CALPP_INC_DIR, 'include/CAL')) #  $ sudo ./setup.py build install
      
      





やった! 次に、pyritがGPUを認識しているかどうかを確認します。

 $ pyrit list_cores Pyrit 0.4.1-dev (C) 2008-2011 Lukas Lueg http://pyrit.googlecode.com This code is distributed under the GNU General Public License v3+ The following cores seem available... #1: 'CAL++ Device #1 'ATI RV770'' #2: 'CPU-Core (SSE2)' $ pyrit selftest Pyrit 0.4.1-dev (C) 2008-2011 Lukas Lueg http://pyrit.googlecode.com This code is distributed under the GNU General Public License v3+ Cores incorporated in the test: #1: 'CAL++ Device #1 'ATI RV770'' #2: 'CPU-Core (SSE2)' All results verified. Your installation seems OK
      
      





そしてベンチマーク:

 $ pyrit benchmark Pyrit 0.4.1-dev (C) 2008-2011 Lukas Lueg http://pyrit.googlecode.com This code is distributed under the GNU General Public License v3+ Running benchmark (26285.9 PMKs/s)... / Computed 26285.86 PMKs/s total. #1: 'CAL++ Device #1 'ATI RV770'': 26369.6 PMKs/s (RTT 1.2) #2: 'CPU-Core (SSE2)': 525.0 PMKs/s (RTT 3.0)
      
      





まあ、それだけです。 今、あなたは夜に車を出て、その暖かさで暖まり、自分で眠りにつくことができます。



おわりに



誰かがこの記事の資料を役立ててくれることを願っています。別の家では、忘れられていた古いビデオカードの心臓部が生き返るでしょう。 以下のパートでは、複数のビデオアダプターをコラボレーション用に組み合わせること、および複数のマシンをクラスターに組み合わせることについて説明します。 すべて成功!



PS提供された機器について、 Dimonesの同志感謝します。



All Articles