Pcscd not recognizing (cyberJack) USB card reader

setting services.pcscd.enable = true; in configuration.nix, the device is not recognized:

[user@nixos:~]$ sudo systemctl status pcscd.socket
● pcscd.socket - PC/SC Smart Card Daemon Activation Socket
     Loaded: loaded (/etc/systemd/system/pcscd.socket; enabled; preset: ignored)
    Drop-In: /nix/store/61ys57ml6m7m611w80y372288brlglsi-system-units/pcscd.socket.d
             └─overrides.conf
     Active: active (listening) since Sat 2025-11-22 12:55:39 CET; 1h 10min ago
 Invocation: 850b2578593145a893c96564e3c8019a
   Triggers: ● pcscd.service
     Listen: /run/pcscd/pcscd.comm (Stream)
     CGroup: /system.slice/pcscd.socket

Nov 22 12:55:39 nixos systemd[1]: Listening on PC/SC Smart Card Daemon Activation Socket.

[user@nixos:~]$ sudo systemctl status pcscd.service
○ pcscd.service - PC/SC Smart Card Daemon
     Loaded: loaded (/etc/systemd/system/pcscd.service; linked; preset: ignored)
    Drop-In: /nix/store/61ys57ml6m7m611w80y372288brlglsi-system-units/pcscd.service.d
             └─overrides.conf
     Active: inactive (dead) since Sat 2025-11-22 14:05:41 CET; 36s ago
   Duration: 1min 4.875s
 Invocation: b37975d539cc492aa483dd71bcf1d5f2
TriggeredBy: ● pcscd.socket
       Docs: man:pcscd(8)
    Process: 3533 ExecStart=/nix/store/6mzqgk6vmk9aphhrmpqv2y11fr878cx1-pcsclite-with-polkit-2.3.0/bin/pc>
   Main PID: 3533 (code=exited, status=0/SUCCESS)
         IP: 0B in, 0B out
         IO: 0B read, 0B written
   Mem peak: 3.2M
        CPU: 28ms

Nov 22 14:04:37 nixos systemd[1]: Started PC/SC Smart Card Daemon.
Nov 22 14:05:41 nixos systemd[1]: pcscd.service: Deactivated successfully.

[user@nixos:~]$ pcsc_scan
PC/SC device scanner
V 1.7.3 (c) 2001-2024, Ludovic Rousseau <ludovic.rousseau@free.fr>
Using reader plug'n play mechanism
Scanning present readers...
Waiting for the first reader... - SCardGetStatusChange: Command cancelled.

What sort of device do you have? If its with a Yubikey, you want to add the plugin for it.

services.pcscd.plugins = [ pkgs.ccid ];

The relevant error using journalctl seems “was not an MTP device”. AI says:

The error “not an MTP device” in Linux occurs when the system detects a USB device but does not recognize it as a Media Transfer Protocol (MTP) device, which is needed for transferring files from devices like phones. To fix this, first, ensure your phone is unlocked and the USB connection is set to “File Transfer” or “Media device (MTP)”. If the problem persists, solutions include installing necessary packages like mtp-tools and gvfs-backends , checking for conflicting software, or creating a udev rule for the specific device.

and linux - disable MTP udev rules for specific device so it can be mount as a USB Mass Storage device - Super User details udev rules settings - quite complicated (for me).

Nov 23 09:28:53 nixos kernel: usb 1-3: USB disconnect, device number 2
Nov 23 09:28:55 nixos kernel: usb 1-3: new full-speed USB device number 4 using xhci_hcd
Nov 23 09:28:55 nixos kernel: usb 1-3: New USB device found, idVendor=0c4b, idProduct=0501, bcdDevice= 0.01
Nov 23 09:28:55 nixos kernel: usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Nov 23 09:28:55 nixos kernel: usb 1-3: Product: cyberJack RFID komfort1
Nov 23 09:28:55 nixos kernel: usb 1-3: Manufacturer: REINER SCT
Nov 23 09:28:55 nixos kernel: usb 1-3: SerialNumber: 0740753463
Nov 23 09:28:55 nixos mtp-probe[4075]: checking bus 1, device 4: "/sys/devices/pci0000:00/0000:00:02.1/0000:04:00.0/0000:05:08.0/0000:0b:00.0/0000:0c:0c.0/0000:13:00.0/usb1/1-3"
Nov 23 09:28:55 nixos mtp-probe[4075]: bus: 1, device: 4 was not an MTP device
Nov 23 09:28:55 nixos mtp-probe[4078]: checking bus 1, device 4: "/sys/devices/pci0000:00/0000:00:02.1/0000:04:00.0/0000:05:08.0/0000:0b:00.0/0000:0c:0c.0/0000:13:00.0/usb1/1-3"
Nov 23 09:28:55 nixos mtp-probe[4078]: bus: 1, device: 4 was not an MTP device

Good thinking. However for my Yubikey 5 smart card with gnupg, I have

  services.udev.packages = [ pkgs.yubikey-personalization ];
  programs.gnupg.agent = {
    enable = true;
    enableSSHSupport = true;
  };

set without the plugin and it works.

The device is question is https://shop.reiner-sct.com/chipkartenleser-fuer-die-sicherheitsklasse-3/cyberjack-rfid-komfort-usb

makes no difference. I guess, we have to work out udev rules. Any advice?

I guess you can find relevant udev rules here Making sure you're not a bot!

No need for messing with udev. From my config:

services.pcscd = {
    enable = true;
    plugins = [
      pkgs.ccid
      pkgs.pcsc-cyberjack  # Reiner SCT reader
      channels.unfree.pcsc-scm-scl011  # another reader
    ];
  };

I had to remove this and - it works! Even the AusweisApp does (it has to be started via the icon).

Thanks for the Info; it solved my problem too

1 Like