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/.