CMX(4) | Device Drivers 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 available.
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
<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>.
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.
July 7, 2007 | Debian |