NAME¶
cmx —
Omnikey CardMan 4040 smartcard
reader device driver
SYNOPSIS¶
device cmx
DESCRIPTION¶
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
Synchronious API onto the smartcard reader device.
Reading and writing is synchronious, 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 available.
COMPATIBILITY¶
Userland smartcard code written for the vendor's Linux drivers should work with
the
cmx driver without modification.
FILES¶
- /dev/cmxn
- Character device special file.
- /usr/ports/security/openct
- OpenCT, a userspace smartcard daemon containing a
CCID driver which directly supports
cmx devices.
SEE ALSO¶
pccard(4)
HISTORY¶
The
cmx driver first appeared in
FreeBSD
7.1.
AUTHORS¶
The
cmx driver was written by
Daniel
Roethlisberger ⟨daniel@roe.ch⟩, originally based on the
Linux driver v1.1.0 by
Omnikey GmbH
⟨www.omnikey.com⟩. Early testing and bug fixes by
Marcin Cieslak ⟨saper@system.pl⟩.
BUGS¶
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.