GnuPG && card readers
Matthias Apitz
guru at unixarea.de
Thu May 11 09:02:44 UTC 2017
El día jueves, mayo 11, 2017 a las 08:58:44a. m. +0200, Matthias Apitz escribió:
> > El día martes, mayo 09, 2017 a las 09:36:37p. m. +0200, Alexander Leidinger escribió:
> >
> > > It's not FreeBSD which needs the support. gnupg comes with the
> > > drivers, FreeBSD only needs to see "a device on the bus", that's enough.
> > >
> > > Check out the ports security/opensc amd devel/libccid (and gnupg needs
> > > to be build with the SCDAEMON option of the port). This will bring in
> > > the pcsc-lite port as a depedency. Those are the "drivers" for USB
> > > card readers if you want to use them beyond what gnupg will do.
> > >
> > > ...
>
> I installed the mentioned ports and enabled the start in /etc/rc.conf with
>
> pcscd_enable="YES"
>
> but this would make hang the system on startup/boot:
>
> 25038 1 S+ 0:00,02 /bin/sh /usr/local/etc/rc.d/pcscd start
> 25043 1 S+ 0:00,01 /usr/local/sbin/pcscd
> 25044 1 S+ 0:00,01 /usr/local/sbin/pcscd
>
interestingly to note: I have the exact same system (12-CURRENT r314251 and with same ports
from my own pkg repository out of poudriere) in a VBOX machine; when I start there the pcscd
in foreground and with --debug it says:
root at r314251-amd64:~ # /usr/local/sbin/pcscd --debug --foreground
00000000 pcscdaemon.c:346:main() pcscd set to foreground with debug send to stdout
00000516 configfile.l:358:DBGetReaderList() Parsing conf file: /usr/local/etc/reader.conf.d
00000043 pcscdaemon.c:655:main() pcsc-lite 1.8.20 daemon ready.
00010018 hotplug_libusb.c:440:HPEstablishUSBNotifications() Driver ifd-ccid.bundle does not support IFD_GENERATE_HOTPLUG. Using active polling instead.
00000124 hotplug_libusb.c:449:HPEstablishUSBNotifications() Polling forced every 1 second(s)
and a truss on the PID shows that is is really polling once every second:
...
openat(AT_FDCWD,"/dev/ugen1.1",O_RDWR,00) = 7 (0x7)
openat(AT_FDCWD,"/dev/ugen1.1",O_RDWR,00) = 8 (0x8)
ioctl(8,USB_GET_PLUGTIME,0xdfdfcddc) = 0 (0x0)
ioctl(7,USB_GET_CONFIG,0xdfdfce44) = 0 (0x0)
close(8) = 0 (0x0)
close(7) = 0 (0x0)
openat(AT_FDCWD,"/dev/ugen1.1",O_RDWR,00) = 7 (0x7)
openat(AT_FDCWD,"/dev/ugen1.1",O_RDWR,00) = 8 (0x8)
...
On the other system, an Acer C720 netbook, it says only:
root at c720-r314251:~ # /usr/local/sbin/pcscd --debug --foreground
00000000 pcscdaemon.c:346:main() pcscd set to foreground with debug send to stdout
00000550 configfile.l:358:DBGetReaderList() Parsing conf file: /usr/local/etc/reader.conf.d
00000049 pcscdaemon.c:655:main() pcsc-lite 1.8.20 daemon ready.
i.e. the line about hotplug_libusb.c:440:HPEstablishUSBNotifications()
does not show up; and a truss shows that is is doing/waiting on
something on a dev; it is very slow doing some ioctls:
openat(AT_FDCWD,"/dev/usbctl",O_RDONLY,00) = 11 (0xb)
ioctl(11,USB_READ_DIR,0xdfdfcb38) = 0 (0x0)
openat(AT_FDCWD,"/dev/ugen1.1",O_RDWR,00) = 12 (0xc)
ioctl(12,USB_GET_PLUGTIME,0xdfdfcb1c) = 0 (0x0)
ioctl(12,USB_GET_DEVICE_DESC,0xdfdfcb20) = 0 (0x0)
ioctl(12,USB_GET_DEVICEINFO,0xdfdfccb0) = 0 (0x0)
--
Matthias Apitz, ✉ guru at unixarea.de, ⌂ http://www.unixarea.de/ ☎ +49-176-38902045
More information about the freebsd-usb
mailing list