Linux NFC Device Driver Installation
Communicating with NFC hardware in the Linux operating system requires the device’s manufacturer-provided drivers for full capability. Some NFC hardware requires the generic Linux “PN533_USB” driver to be disabled to function properly.
Disabling PN533_USB Generic Linux NFC Drivers
The Linux operating system includes a generic driver that communicates with Near Field Communication (NFC) hardware. However, this generic driver is outdated and can interfere with current NFC device communication. To ensure full compatibility with modern NFC readers, disable the generic driver before installing device-specific drivers.
To permanently disable the generic NFC driver, run the following command in a terminal. This command creates a configuration file that prevents the driver from loading at system start-up.
- sudo tee -a /etc/modprobe.d/blacklist-libnfc.conf <
blacklist nfc
blacklist pn533_usb
blacklist pn533
EOF
This adds the nfc, pn533_usb, and pn533 modules to the system blacklist, which is checked each time the system starts. Blacklisted modules are not loaded into the Linux kernel automatically.
Note: The change will not take effect until the system restarts.
If a system restart is not desirable, unload the generic driver modules manually. This prevents them from running until the next reboot.
- sudo modprobe -rf pn533_usb
This command removes the pn533_usb module from the kernel, disabling the generic driver temporarily.
Important: The ACS ACR122U NFC reader is known to malfunction on Linux when the generic pn533_usb driver is active. Disabling the driver as described above is required before the ACR122U will function correctly.
Installing Device-Specific Drivers
NFC hardware requires manufacturer-provided drivers for proper device communication. You can find drivers for Desktop App supported NFC readers in the GoToTags Public GitLab project.