Voici comment utiliser le lecteur NFC ACR122U, fabriqué par ACS, sous GNU/Linux et plus particulièrement avec Kali Linux (2019.x).
Ce lecteur NFC est pas cher et facile à utiliser mais cette erreur peut apparaître : "error libnfc.driver.acr122_usb Unable to claim USB interface".
Voyons comment corriger ça !
Symptôme et erreur
Voici l'erreur obtenue avec nfc-list :
# nfc-list nfc-list uses libnfc 1.7.1 error libnfc.driver.acr122_usb Unable to claim USB interface (Device or resource busy) nfc-list: ERROR: Unable to open NFC device: acr122_usb:002:010
D'ailleurs la LED s'allume en rouge si aucun tag NFC n'est présent sur le lecteur, et jaune quand un tag est posé.
Pour fonctionner les LED doivent rester éteintes et aucun bip ne doit être émis (bien qu'on puisse couper le buzzer en dur via un programme).
Si vous êtes sous VirtualBox
N'essayez pas de faire marcher le lecteur USB dans une machine virtuelle Kali sous VirtualBox, cela n'a jamais fonctionné dans mon cas. Bien que le message soit identique ce tutoriel ne règlera pas ce problème.
Peut-être qu'avec VMware player/workstation ça marchera mieux, mais l'USB sous VirtualBox est toujours très capricieux.
Pour ma part j'utilise une clé USB persistante, mais vous pouvez aussi installer Kali en dur sur un vieux PC qui traine... c'est encore mieux.
La solution
Pour corriger le tir nous devons blacklister des modules.
Mais avant tout, débranchez votre lecteur du port USB.
Puis dans le fichier /etc/modprobe.d/blacklist-libnfc.conf ajoutez ceci :
blacklist nfc blacklist pn533 blacklist pn533_usb
Il se peut que les 2 premières lignes soient déjà présentes.
Il faudra redémarrer le PC sous Kali pour la prise en compte, ou pour une prise en compte immédiate :
modprobe -r pn533_usb modprobe -r pn533 modprobe -r nfc
La dernière commande peut renvoyer "modprobe: FATAL: Module nfc is in use", ceci n'est pas un problème.
Vérification
Reconnectez votre lecteur ACR122U en USB à votre ordinateur sous Kali, et tada :
# nfc-list nfc-list uses libnfc 1.7.1 NFC device: ACS / ACR122U PICC Interface opened 1 ISO14443A passive target(s) found: ISO/IEC 14443A (106 kbps) target: ATQA (SENS_RES): 00 04 UID (NFCID1): 9a 81 a5 1e SAK (SEL_RES): 08
Si vous rencontrez encore des soucis, vérifiez que le service pcscd n'est pas en exécution, il se peut qu'il gène l'accès au lecteur :
systemctl stop pcscd.socket systemctl stop pcscd.service
Et pour le retirer du démarrage automatique :
systemctl disable pcscd.*
Conclusion
Je vous ferai quelques autres billets sur comment écrire un tag NFC, avec ce lecteur ACR122U c'est très accessible, que ce soit en terme de prix ou de complexité. Pour commencer à jouer avec du NFC pas besoin d'investir dans un proxmark, celui-ci est largement suffisant.
MàJ : il existe un portage des outils pour Windows disponible ici
Auteur : Mr Xhark
Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter
24 commentaires
Quand je suis à cette étape
« Puis dans le fichier /etc/modprobe.d/blacklist-libnfc.conf ajoutez ceci :
blacklist nfc
blacklist pn533
blacklist pn533_usb »
Je n’arrive pas à valider ni à sortir de là pour revenir sur le terminal de départ .
Comment faire ?
@Hitchkof: si vous utilisez nano ctrl+o puis ctrl+x.
Sous vi ESC puis ":wq"
Bonjour
Non j’utilise pas nano mais kali Linux. J’ai exactement le même msg d’erreur, c’est mon problème depuis 1 semaine et j’arrive pas à avancer.
Quand je tape la dernière ligne blacklist pn533_usb
Je sais pas quoi faire
Ni à valider ni à sortir ni à revenir au terminal de départ ou j’ecris les commandes
Merci pour votre réponse
Bonjour
Non n’utilises pas nano mais kali Linux
Ce blog m’est intéressant car j’ai exactement le même msg d’erreur depuis une semaine et j’arrive tjs pas à avancer.
Quand j’écris la dernière ligne
blacklist pn533_usb
Je n’arrive ni à valider ni à sortir ni à revenir au terminal de départ où j’écris les commandes ( vue que pour blacklister une nouvelle fenêtre s’ouvre)
Merci pour votre réponse
@Hitchkof: vous confondez le nom d'une distribution GNU/Linux et une commande, je pense qu'il vous manque les bases de linux 🙂
Re bonjour
Oui je suis débutant dans Linux je decouvre à peine 😊🙈🙈.
En tout cas merci pour votre aide... j’ai pu avancer, j’ai pu blacklister sous nano sauvegarder et revenir sur le terminal.
Mtn je suis à l’étape où ça doit se prendre en compte.
Si je redémarre sous kali.. la dernière ligne que j’ai rajouté sera tjs présente??
Car quand j’ai allumé kali cet après midi la modification n’y était plus ..
Merci encore pour votre aide
@Hitchkof: si vous utilisez le mode live CD (à partir d'un iso ou d'une clé USB) les modifications sont perdues à chaque redémarrage, pour ça que j'indique la méthode modprobe pour une prise en compte immédiate
AAAAAAHHHH je vais me tirer les cheveux.... j’y suis presque. La LED sest éteinte comme vous l’avez expliqué au début du blog.
Sur le terminal, j’ai taper la commande :
Nano /etc/modprobe.d/blacklist-libnfc.conf
Un fichier s’ouvre ou je rajoute la dernière ligne :
blacklist nfc
blacklist pn533
blacklist pn533_usb
Je fais ctrl + o pour sauvegarder
Puis ctrl + x pour revenir sur le terminal de départ.
Je rajoute les commandes sur le terminal pour une prise en compte immédiate :
modprobe -r pn533_usb
modprobe -r pn533
modprobe -r nfc
Donc pour voir si mon lecteur va être reconnu je le branche, IL NE SALLUME PAS EN ROUGE, et tape la commande
nfc-list
Et ça me met un autre message d’erreur :
nfc-list uses libnfc 1.7.1
error libnfc.drivers.acr122_usb
Unable to set alternate setting on USB interface (connection timed out)
nfc-list : ERROR: Unable to open NFC : acr122_usb:002:006
Encore une rescousse et je pense que ça ira. Du moins j’espère 😅😅.
Encore merci
@hitchkof: avez-vous bien un badge dessus au moment de la commande ? quelle est la version de Kali ? j'ai vu des infos ici également assez fraiches https://github.com/nfc-tools/libnfc/issues/535
Oui j’ai taper la commande avec le badge et sans le badge et toujours le même message d’erreur.
Je suis sous
kali GNU/Linux Rolling
4,8 Gio
Gnome 3.30.2
64 bits
Merci pour le lien ... j’ai pas trouvé grand chose mise à part où il faut modifier un truc à la ligne 433.. où est ce que je peux trouver cette ligne ???
Bonjour, j'ai le même soucis que Hitchkof, apparemment ça n'arriverait qu'avec les modèles ACR122U-A9. J'éssayé sur Kali et LInux Mint, toujours pas de solution ....
@Martibal: j'ai exactement ce modèle ACR122U-A9 et pas de souci de mon côté, mais peut-être que le nom est le même et que le matériel change un peu... possible.
bonjour, je vien de taper la commande modprobe -r pn533_usb et j'ai le message d'erreur suivant qui s'affiche " modprobe: ERROR: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/4.4.0-17763-Microsoft/modules.dep.bin' " Que faire ? merci
@sidobear: vu l'erreur, avec du microsoft dans le chemin, j'en déduis que tu fais tourner ça sous windows (WSL) et non sous GNU/Linux non ?
Si vous avez toujours cette erreur, j'ai un peu modifié libnfc pour que ça marche avec la dernière version du lecteur ACRA22U-19. J'ai détaillé ça sur mon blog ici: https://www.gmsec.fr/blog/nfc-acr122u-et-compagnie
@Guillaume: super merci ! tu peux nous en dire plus sur ce qui posait problème ?
@Mr Xhark: J'ai fait une erreur dans mon post initial, je voulais plutôt dire ACR122U-A9.
Je ne vais pas entrer dans le détail, mais en gros, libnfc voulait faire appel à des fonctions matérielles du lecteur qui ne sont pas présentes sur certaines versions. J'ai testé pas mal de solutions "à l'aveugle" avec ce que je trouvais sur différents forum, jusqu'a trouver un code qui marche. J'ai réussi à cloner différents badges NFC sans problèmes
Bonjour,
Merci pour le tuto !
Pour ceux qui sont sur Windows, j'ai cross compilé les différents outils pour le ACR122U (mfoc, mfcuk, cropto1_bs, nfc-mfcclassic) pour Windows 64 bits. C'est sur mon blog : http://legacy.averbouch.biz/libnfc-and-nfc-utils-binaries-on-windows-10/
@xavave: ah c'est super ce portage, merci j'ajoute ton lien dans mon post !
@Mr Xhark: merci 🙂 j'envisage de faire un mct2dmp.exe en C#, je vous tiens au courant
@xavave: ah yes, les windowsiens vont te dire merci! pense à me notifier comme ça je l'ajoute dans le post et sur mon GitHub à côté de ma version bash. C'est toi qui a fait l'installer aussi ? joli travail!
Oui - sous VMware Player 16 (Host Win 10, guest Linux Mint 20) ça marche très bien! Merci pour tes super instructions!
Bonjour,
J'ai cette appareil, peut on faire la même chose que dans votre tuto ?
https://www.rubinlacaque.fr/ProductCard/BTIBT348408/programmateur-port-usb-hf
Merci
Bonne journée.
@rizpascuit: Bonjour, contactez le fabricant, je ne vois à priori pas de point commun entre votre périphérique et le ACR122U.