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 :
1 2 3 4 |
# 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 :
1 2 3 |
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 :
1 2 3 |
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 :
1 2 3 4 5 6 7 8 |
# 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 :
1 2 |
systemctl stop pcscd.socket systemctl stop pcscd.service |
Et pour le retirer du démarrage automatique :
1 |
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.
Déjà 17 commentaires
18 août 2019 à 13h48
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 ?
dit :
20 août 2019 à 13h54
@Hitchkof: si vous utilisez nano ctrl+o puis ctrl+x.
Sous vi ESC puis ":wq"
21 août 2019 à 9h22
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
21 août 2019 à 9h30
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
dit :
21 août 2019 à 9h30
@Hitchkof: vous confondez le nom d'une distribution GNU/Linux et une commande, je pense qu'il vous manque les bases de linux 🙂
21 août 2019 à 23h28
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
dit :
21 août 2019 à 23h34
@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
22 août 2019 à 0h11
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
dit :
22 août 2019 à 0h25
@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
22 août 2019 à 1h05
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 ???
27 août 2019 à 18h38
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 ....
dit :
29 août 2019 à 15h01
@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.
11 octobre 2019 à 13h08
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
dit :
16 octobre 2019 à 15h12
@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 ?
28 octobre 2019 à 17h16
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
dit :
28 octobre 2019 à 17h25
@Guillaume: super merci ! tu peux nous en dire plus sur ce qui posait problème ?
28 octobre 2019 à 19h55
@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