Monthly Archives: December 2005

Digital persona fingerprint driver progress

Quick update on the dpfp project:

I recently upgraded to amd64, and running my existing code caused an instant kernel panic on plugin to my new system. Fixing that problem sprung the device into action – I now get the expected responses, where I was just getting silence before. Looks like my x86 was hiding the stupid bug in the early versions of my driver.

After working through the rest of the intitialization routine, I now have a driver which gets as far as turning on the light which illuminates your finger when you put it on the sensor, and my driver receives an interrupt when you put your finger there.

I’m beginning to think that my earlier assumptions about the sensor in my keyboard being identical to the sensor in the digitalPersona UareU 4000 product may be wrong. Unlike my keyboard, the UareU 4000 does not have an endpoint (a USB channel) where firmware can be uploaded. If the 4000 is not firmware-based, and my keyboard sensor is, then that suggests a fairly significant difference between the two devices.

Update: This statement is wrong. Indeed, the UareU does not have a bulk-out endpoint for uploading firmware, but the same is true for my Microsoft device. Firmware is uploaded over the control endpoint (a 2-way channel present on most USB devices designed for simple request/response commands) which is slightly stupid, but hey. I have also analyzed the UareU protocol now, and I can now accurately say that these devices are almost identical. My driver will support both product ranges. More on this soon.

digitalPersona are very keen to claim that the devices are different, but they only discuss differences in the available software, so I’m not entirely convinced by that alone.

I’m still not sure how to interpret the mass of data recieved from the device when a finger is placed on the sensor. I’ll be publishing a breakdown of what I do know soon, in hope that other people will be able to lend suggestions or other contributions into solving this problem.

Driver source can be found here:

As a sidenote, I’ve also been hacking on zd1211 devices, stay tuned for more info on that…

sit down

Chris, a good friend from back home, recently gave in to peer pressure and started a weblog. He is studying some form of art and was unlucky enough to end up somewhere in Wales where they have not yet invented residential internet services, but his work looks pretty damn cool!

Recent hacking on VIA 82Cxxx IDE driver

I’ve recently been doing some hacking on the Linux VIA IDE driver. The driver now supports multiple controllers on the same system (if such a situation could ever exist) and support has been added for the VT6410 and VT8251 chipsets.

All of this is included in Linux 2.6.15.

A side effect of this work is that we had to drop the /proc/ide/via file, a dynamic text file which provided some advanced information and stats about the VIA IDE hardware present on the system, and the attached disks. This kind of querying should be done in userspace anyway, so I have produced viaideinfo to do the same thing. viaideinfo has been tested by quite a few people and is now at version 0.3. It is in portage as sys-block/viaideinfo.