USB Card Scanner Driver
Patrick TullySteven Bronson
Motivation
Monitors in Majors Lab scan FSU cards using a USB card reader
USB card reader generates keystrokes Program must have focus at all times, in the correct textbox
Pre-existing Projects
Read from /dev/usb/hiddev Only works for the USB HID card scanner
Write a userspace program using libusb or PyUSB Requires root privileges each time Depends on deprecated (obsolete?) usbfs
Contribution
Used a small part (boilerplate) of the usbkbd driver as a starting point.
Most of the work went into implementing read, which did not exist in usbkbd.
Create /dev/cardscanner that can be opened and read.
Challenges
USB probe order Determined by module insertion order Fixed with USB quirks
Kernel circular buffer implementation is not really Record API makes more sense, but Unix loves byte
streams (why pass records when you can design ambiguous grammars?)