Command Section
CMX(4)                 FreeBSD Kernel Interfaces Manual                 CMX(4)

     cmx - Omnikey CardMan 4040 smartcard reader device driver

     device cmx

     The cmx driver provides support for the PCCARD based Omnikey CardMan 4040
     smartcard reader.  The driver provides a character device special file
     based Chip/Smart Card Interface Devices (CCID) interface.  The driver
     implements what the vendor calls the Synchronous API onto the smartcard
     reader device.

     Reading and writing is synchronous, meaning that a call to write(2)
     directly corresponds to a complete CCID command sent to the device, while
     the following read(2) will return the complete answer from the reader.
     There is no support for partial reads or writes.  There is no upper limit
     on CCID request or response sizes, but the complete CCID request must be
     sent to the driver in write(2) and the complete CCID response must fit
     into the buffer supplied to read(2).

     Non-blocking I/O, select(2) and poll(2) are supported and work as
     expected.  An open file descriptor will always be ready for writing, but
     only ready for reading if the device indicates that it has data

     /dev/cmxn                   Character device special file.
     /usr/ports/security/openct  OpenCT, a userspace smartcard daemon
                                 containing a CCID driver which directly
                                 supports cmx devices.

     Userland smartcard code written for the vendor's Linux drivers should
     work with the cmx driver without modification.


     The cmx driver first appeared in FreeBSD 7.1.

     The cmx driver was written by Daniel Roethlisberger <[email protected]>,
     originally based on the Linux driver v1.1.0 by Omnikey GmbH  Early testing and bug fixes by Marcin Cieslak
     <[email protected]>.

     The way the cmx driver talks to the CardMan 4040 is a bit rough.  Due to
     the complete lack of hardware documentation other than vendor drivers for
     other operating systems, the gory details of the device's I/O registers
     are not understood very well.  There may be error conditions which can
     only be solved by physically reinserting the reader.

FreeBSD 11.1-RELEASE-p4          July 7, 2007          FreeBSD 11.1-RELEASE-p4
Command Section