libnfc mit Linux Kernel >= 3.1

Nach Update von Ubuntu 11.10 auf Ubuntu 12.10 funktionierte weder die alte libnfc aus dem SVN (R13xx) noch die aktuelle Version (R14xx). Es wurde immer der Fehler „No NFC device found.“ ausgegeben, obwohl der NFC-Leser SCL3711 einwandfrei funktionierte. Gefunden wurde das Device auch:

[44160.763561] usb 2-1: new full-speed USB device number 9 using uhci_hcd
[44160.947430] usb 2-1: New USB device found, idVendor=04e6, idProduct=5591
[44160.947436] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[44160.947440] usb 2-1: Product: SCL3711-NFC&RW
[44160.947443] usb 2-1: Manufacturer: SCM Micro
[44160.959087] pn533 2-1:1.0: NFC: NXP PN533 firmware ver 2.7 now attached

Ein nfc-list liefert weitere Infos im syslog

tail -f /var/log/syslog
[44167.688106] usb 2-1: usbfs: interface 0 claimed by pn533 while 'nfc-list' sets config #1
[44168.658755] usb 2-1: usbfs: interface 0 claimed by pn533 while 'nfc-list' sets config #1

Der Grund liegt darin, dass seit dem Kernel 3.1 (und größer) die NFC-Treiber im Kernel mit drinnen sind. Wird das automatische Laden der Treiber per Blacklist deaktiviert, funktionieren die Userlandtreiber bzw. das direkte ansprechen im Userland wieder korrekt. Dazu muss eine Datei (z.B. blacklist-nfc.conf) in /etc/modprobe.d/ als User Root angelegt werden.

blacklist pn533
blacklist nfc

Die zwei  Zeilen deaktivieren das Modul pn533 (Kerneltreiber für den SCL3711 mit NFC-Chip PN533) sowie das Modul nfc, welches allgemeine NFC Dienste zur Verfügung stellt.
Wenn man den Treiber nicht dauerhaft sondern nur temporär deaktivieren will, so kann man diesen aus dem aktuellen Kontext (als root) löschen:

rmmod pn533
rmmod nfc

Leave a comment

Your comment