Déploiement de Hashcat en mode CPU sur un serveur sans GPU

Lorsque Hashcat signale une erreur telle que No OpenCL, HIP or CUDA compatible platform found, cela indique l'absence d'un environnement d'exécution OpenCL pour le CPU. Dans une distribution Linux comme openEuler, la compilation manuelle de PoCL (Portable Computing Language) constitue une solution fiable pour activer le support CPU.

Étape 1 : Préparation des dépendances système

Assurez-vous que les outils de compilation, LLVM et le chargeur OpenCL sont installés :

sudo dnf install -y make gcc cmake llvm-devel clang-devel ocl-icd-devel hwloc-devel patch

Étape 2 : Compilation de PoCL pour le CPU

Étant donné que les versions de LLVM dans openEuler (comme la 12.x) peuvent être anciennes, il est conseillé d'utiliser une branche compatible de PoCL :

cd /opt
git clone https://github.com/pocl/pocl.git pocl-source
cd pocl-source
git checkout release_1_8
mkdir compilation && cd compilation
cmake -DENABLE_ICD=ON ..
make -j$(nproc)
sudo make install

Étape 3 : Configuration du répertoire ICD

Pour que le système détecte le pilote PoCL, créez un fichier de configuration ICD :

sudo ldconfig
sudo mkdir -p /etc/OpenCL/vendors
echo "/usr/local/lib64/libpocl.so" | sudo tee /etc/OpenCL/vendors/pocl.icd

Étape 4 : Vlaidation de l'installation

Vérifiez que Hashcat reconnaît le périphérique CPU en lançant la commande suivante :

/usr/local/hashcat/hashcat.bin -I

La sortie devrait lister un périphérique de type CPU avec un statut disponible.

Utilisation courante et dépannage

Lancer un benchmark optimisé

Pour de meilleures performances sur CPU, ajoutez l'option d'optimisation :

hashcat -b -O

Ignorer les avertissements de version

Si Hashcat signale une version obsolète de PoCL mais que vous souhaitez continuer, forcez l'exécution :

hashcat -b --force

Créer un alias pratique

Pour simplifier l'accès à Hashcat, ajoutez un alias dans votre shell :

echo "alias hashcat='/usr/local/hashcat/hashcat.bin'" >> ~/.bashrc
source ~/.bashrc

Emplacements clés

  • Répertoire ICD : /etc/OpenCL/vendors/ (Hashcat le scanne au démarrage).
  • Bibliothèque PoCL : /usr/local/lib64/libpocl.so.
  • Binaire Hashcat : /usr/local/hashcat/hashcat.bin.

Si un anvironnement d'exécution alternatif comme intel-oneapi-runtime-opencl est déjà installé, assurez-vous qu'un fichier .icd correspondant est présent dans /etc/OpenCL/vendors/.

Étiquettes: Hashcat PoCL OpenCL LLVM openEuler

Publié le 11 juin à 16h05