2005-04-14 20:52:21

by Alejandro Bonilla

[permalink] [raw]
Subject: IBM Thinkpad T42 - Looking for a Developer.

Hi All,

Sorry if this thread has been already discussed or if this is not the right
place. I'm looking for a driver developer to make the driver for the IBM
Thinkpads Fingerprint reader.

I have all the documentation required from the Makers of the hardware, the
so called Programming API and Datasheet. Unfortunately I cannot provide you
with my hardware ;-) but only with a dedicated ssh connection to my PC and
me standing in front of the PC for when you ask me to reboot it cause it
locked up.

Feel free to e-mail me and ask for anything if you wish to do this driver.
I think is a nice approach and would be cool to have the support of such
nice feature. As far as I have seen, only the device ID or so has been added
to the kernel, cause I can see something about it while booting.

Thanks for the time,

- Alejandro.


2005-04-14 21:04:14

by Jesper Juhl

[permalink] [raw]
Subject: Re: IBM Thinkpad T42 - Looking for a Developer.

On Thu, 14 Apr 2005, Alejandro Bonilla wrote:

> Hi All,
>
> Sorry if this thread has been already discussed or if this is not the right
> place. I'm looking for a driver developer to make the driver for the IBM
> Thinkpads Fingerprint reader.
>
> I have all the documentation required from the Makers of the hardware, the
> so called Programming API and Datasheet. Unfortunately I cannot provide you
> with my hardware ;-) but only with a dedicated ssh connection to my PC and
> me standing in front of the PC for when you ask me to reboot it cause it
> locked up.
>
I have a ThinkPad T42 and would be interrested in those docs. If you are
allowed to distribute those documents then please make them available
somewhere and reply back with the URL.

--
Jesper Juhl


2005-04-14 21:11:04

by Alejandro Bonilla

[permalink] [raw]
Subject: RE: IBM Thinkpad T42 - Looking for a Developer.


Jesper,

Believe me that I would be more happy to have this working... :)

This is located in my home PC, Won't be the fastest downloads...

http://wifitux.com/finger/

- Alejandro.

> > -----Original Message-----
> > From: Jesper Juhl [mailto:[email protected]]
> > Sent: Thursday, April 14, 2005 03:07 PM
> > To: Alejandro Bonilla
> > Cc: [email protected]
> > Subject: Re: IBM Thinkpad T42 - Looking for a Developer.
> >
> >
> > On Thu, 14 Apr 2005, Alejandro Bonilla wrote:
> >
> > > Hi All,
> > >
> > > Sorry if this thread has been already discussed or if
> > this is not the right
> > > place. I'm looking for a driver developer to make the
> > driver for the IBM
> > > Thinkpads Fingerprint reader.
> > >
> > > I have all the documentation required from the Makers
> > of the hardware, the
> > > so called Programming API and Datasheet. Unfortunately I
> > cannot provide you
> > > with my hardware ;-) but only with a dedicated ssh
> > connection to my PC and
> > > me standing in front of the PC for when you ask me to
> > reboot it cause it
> > > locked up.
> > >
> > I have a ThinkPad T42 and would be interrested in those docs.
> > If you are
> > allowed to distribute those documents then please make them
> available
> > somewhere and reply back with the URL.
> >
> > --
> > Jesper Juhl
> >
> >
>

2005-04-14 21:17:47

by Jesper Juhl

[permalink] [raw]
Subject: RE: IBM Thinkpad T42 - Looking for a Developer.

On Thu, 14 Apr 2005, Alejandro Bonilla wrote:

>
> Jesper,
>
> Believe me that I would be more happy to have this working... :)
>
I've got a weeks vacation comming up next week - seems like a good time to
play with this :)


> This is located in my home PC, Won't be the fastest downloads...
>
> http://wifitux.com/finger/
>
Under what terms did you obtain these documents and from where? Are they
completely freely distributable or are there strings attached?

--
Jesper


2005-04-14 22:40:26

by Alejandro Bonilla

[permalink] [raw]
Subject: RE: IBM Thinkpad T42 - Looking for a Developer.

On Thu, 14 Apr 2005 23:20:19 +0200 (CEST), Jesper Juhl wrote
> On Thu, 14 Apr 2005, Alejandro Bonilla wrote:
>
> >
> > Jesper,
> >
> > Believe me that I would be more happy to have this working... :)
> >
> I've got a weeks vacation comming up next week - seems like a good
> time to play with this :)

Well, I'll send you a six pack of Coca-Cola if you get this working. (Does not
apply if you are in EU ;-) )

>
> > This is located in my home PC, Won't be the fastest downloads...
> >
> > http://wifitux.com/finger/
> >
> Under what terms did you obtain these documents and from where? Are
> they completely freely distributable or are there strings attached?

I emailed the guys and they told me, "Hey, here you go, let me know if you
want more information"

I guess it can't be more distributable. But as far as I got to read. The
documents don't have too much information like for us to do a great Job. I
think it also requires the making of a firmware.

I don't want to dissapoint you, but I hope I'm lost and that a driver can be
done out of this.

>
> --
> Jesper

2005-04-14 23:15:36

by Matti Aarnio

[permalink] [raw]
Subject: Re: IBM Thinkpad T42 - Looking for a Developer.

On Thu, Apr 14, 2005 at 06:40:16PM -0400, abonilla wrote:
> On Thu, 14 Apr 2005 23:20:19 +0200 (CEST), Jesper Juhl wrote
> > On Thu, 14 Apr 2005, Alejandro Bonilla wrote:
...
> > > This is located in my home PC, Won't be the fastest downloads...
> > >
> > > http://wifitux.com/finger/
> >
> > Under what terms did you obtain these documents and from where? Are
> > they completely freely distributable or are there strings attached?
>
> I emailed the guys and they told me, "Hey, here you go, let me know if you
> want more information"
>
> I guess it can't be more distributable. But as far as I got to read. The
> documents don't have too much information like for us to do a great Job. I
> think it also requires the making of a firmware.
>
> I don't want to dissapoint you, but I hope I'm lost and that a driver can be
> done out of this.

There were two PDF documents.
The more useful one tells that there are two possible interfaces:
- Async serial
- USB

Could you show what /sbin/lsusb -vv tells in your T42 ?
Do that without external devices attached.

> > --
> > Jesper

/Matti Aarnio

2005-04-14 23:55:32

by Jeff Lessem

[permalink] [raw]
Subject: Re: IBM Thinkpad T42 - Looking for a Developer.

In your message of: Fri, 15 Apr 2005 02:15:13 +0300, you write:
>On Thu, Apr 14, 2005 at 06:40:16PM -0400, abonilla wrote:
>> On Thu, 14 Apr 2005 23:20:19 +0200 (CEST), Jesper Juhl wrote
>> > On Thu, 14 Apr 2005, Alejandro Bonilla wrote:
>...
>> > > This is located in my home PC, Won't be the fastest downloads...
>> > >
>> > > http://wifitux.com/finger/
>> >
>> > Under what terms did you obtain these documents and from where? Are
>> > they completely freely distributable or are there strings attached?
>>
>> I emailed the guys and they told me, "Hey, here you go, let me know if you
>> want more information"
>>
>> I guess it can't be more distributable. But as far as I got to read. The
>> documents don't have too much information like for us to do a great Job. I
>> think it also requires the making of a firmware.
>>
>> I don't want to dissapoint you, but I hope I'm lost and that a driver can be
>> done out of this.
>
>There were two PDF documents.
>The more useful one tells that there are two possible interfaces:
> - Async serial
> - USB
>
>Could you show what /sbin/lsusb -vv tells in your T42 ?
>Do that without external devices attached.

I'm appending the lsusb -vv from my Thinkpad T43 for comparison. This
also has a builtin USB fingerprint scanner, but I don't know if it is
the same one as used on the T42. It is "Bus 004 Device 002: ID
0483:2016 SGS Thomson Microelectronics". There are no other USB devices
connecting.


Bus 005 Device 001: ID 0000:0000
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x0000
idProduct 0x0000
bcdDevice 2.06
iManufacturer 3 Linux 2.6.11.7 uhci_hcd
iProduct 2 Intel Corp. 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4
iSerial 1 0000:00:1d.3
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 255
Hub Descriptor:
bLength 9
bDescriptorType 41
nNbrPorts 2
wHubCharacteristic 0x000a
No power switching (usb 1.0)
Per-port overcurrent protection
bPwrOn2PwrGood 1 * 2 milli seconds
bHubContrCurrent 0 milli Ampere
DeviceRemovable 0x08
PortPwrCtrlMask 0x68
Hub Port Status:
Port 1: 0000.0100 power
Port 2: 0000.0100 power

Bus 004 Device 002: ID 0483:2016 SGS Thomson Microelectronics
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x0483 SGS Thomson Microelectronics
idProduct 0x2016
bcdDevice 0.01
iManufacturer 1 STMicroelectronics
iProduct 2 Biometric Coprocessor
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 39
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 20

Bus 004 Device 001: ID 0000:0000
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x0000
idProduct 0x0000
bcdDevice 2.06
iManufacturer 3 Linux 2.6.11.7 uhci_hcd
iProduct 2 Intel Corp. 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3
iSerial 1 0000:00:1d.2
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 255
Hub Descriptor:
bLength 9
bDescriptorType 41
nNbrPorts 2
wHubCharacteristic 0x000a
No power switching (usb 1.0)
Per-port overcurrent protection
bPwrOn2PwrGood 1 * 2 milli seconds
bHubContrCurrent 0 milli Ampere
DeviceRemovable 0x08
PortPwrCtrlMask 0x68
Hub Port Status:
Port 1: 0000.0100 power
Port 2: 0000.0103 power enable connect

Bus 003 Device 001: ID 0000:0000
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x0000
idProduct 0x0000
bcdDevice 2.06
iManufacturer 3 Linux 2.6.11.7 uhci_hcd
iProduct 2 Intel Corp. 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2
iSerial 1 0000:00:1d.1
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 255
Hub Descriptor:
bLength 9
bDescriptorType 41
nNbrPorts 2
wHubCharacteristic 0x000a
No power switching (usb 1.0)
Per-port overcurrent protection
bPwrOn2PwrGood 1 * 2 milli seconds
bHubContrCurrent 0 milli Ampere
DeviceRemovable 0x08
PortPwrCtrlMask 0x68
Hub Port Status:
Port 1: 0000.0100 power
Port 2: 0000.0100 power

Bus 002 Device 001: ID 0000:0000
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x0000
idProduct 0x0000
bcdDevice 2.06
iManufacturer 3 Linux 2.6.11.7 uhci_hcd
iProduct 2 Intel Corp. 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1
iSerial 1 0000:00:1d.0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 255
Hub Descriptor:
bLength 9
bDescriptorType 41
nNbrPorts 2
wHubCharacteristic 0x000a
No power switching (usb 1.0)
Per-port overcurrent protection
bPwrOn2PwrGood 1 * 2 milli seconds
bHubContrCurrent 0 milli Ampere
DeviceRemovable 0x08
PortPwrCtrlMask 0x68
Hub Port Status:
Port 1: 0000.0100 power
Port 2: 0000.0100 power

Bus 001 Device 001: ID 0000:0000
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 1 Single TT
bMaxPacketSize0 8
idVendor 0x0000
idProduct 0x0000
bcdDevice 2.06
iManufacturer 3 Linux 2.6.11.7 ehci_hcd
iProduct 2
iSerial 1 0000:00:1d.7
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 12
Hub Descriptor:
bLength 11
bDescriptorType 41
nNbrPorts 8
wHubCharacteristic 0x0008
Ganged power switching
Per-port overcurrent protection
TT think time 8 FS bits
bPwrOn2PwrGood 10 * 2 milli seconds
bHubContrCurrent 0 milli Ampere
DeviceRemovable 0x08 0x68
PortPwrCtrlMask 0xf8 0xff
Hub Port Status:
Port 1: 0000.0100 power
Port 2: 0000.0100 power
Port 3: 0000.0100 power
Port 4: 0000.0100 power
Port 5: 0000.0100 power
Port 6: 0001.0000 C_CONNECT
Port 7: 0000.0100 power
Port 8: 0000.0100 power

2005-04-15 00:11:22

by Jesper Juhl

[permalink] [raw]
Subject: Re: IBM Thinkpad T42 - Looking for a Developer.

On Fri, 15 Apr 2005, Matti Aarnio wrote:

> Could you show what /sbin/lsusb -vv tells in your T42 ?
> Do that without external devices attached.

Here's /sbin/lsusb -vv output from my Thinkpad T42 Type: 2373-F2G :


Bus 004 Device 002: ID 0483:2016 SGS Thomson Microelectronics
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x0483 SGS Thomson Microelectronics
idProduct 0x2016
bcdDevice 0.01
iManufacturer 1 STMicroelectronics
iProduct 2 Biometric Coprocessor
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 39
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 bytes 64 once
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 bytes 64 once
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0004 bytes 4 three times
bInterval 20

Bus 004 Device 001: ID 0000:0000
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x0000
idProduct 0x0000
bcdDevice 2.06
iManufacturer 3 Linux 2.6.11-rc4-bk9laptop uhci_hcd
iProduct 2
iSerial 1 0000:00:1d.2
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 bytes 2 twice
bInterval 255

Bus 003 Device 001: ID 0000:0000
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x0000
idProduct 0x0000
bcdDevice 2.06
iManufacturer 3 Linux 2.6.11-rc4-bk9laptop uhci_hcd
iProduct 2
iSerial 1 0000:00:1d.1
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 bytes 2 twice
bInterval 255

Bus 002 Device 001: ID 0000:0000
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x0000
idProduct 0x0000
bcdDevice 2.06
iManufacturer 3 Linux 2.6.11-rc4-bk9laptop uhci_hcd
iProduct 2
iSerial 1 0000:00:1d.0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 bytes 2 twice
bInterval 255

Bus 001 Device 001: ID 0000:0000
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 1 Single TT
bMaxPacketSize0 8
idVendor 0x0000
idProduct 0x0000
bcdDevice 2.06
iManufacturer 3 Linux 2.6.11-rc4-bk9laptop ehci_hcd
iProduct 2 Intel Corp. 82801DB/DBM (ICH4/ICH4-M) USB 2.0 EHCI Controller
iSerial 1 0000:00:1d.7
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 bytes 2 twice
bInterval 12


2005-04-15 00:21:27

by Matti Aarnio

[permalink] [raw]
Subject: Re: IBM Thinkpad T42 - Looking for a Developer.

On Thu, Apr 14, 2005 at 06:40:16PM -0400, abonilla wrote:
> On Thu, 14 Apr 2005 23:20:19 +0200 (CEST), Jesper Juhl wrote
> > > This is located in my home PC, Won't be the fastest downloads...
> > >
> > > http://wifitux.com/finger/
> > >
> > Under what terms did you obtain these documents and from where? Are
> > they completely freely distributable or are there strings attached?
>
> I emailed the guys and they told me, "Hey, here you go, let me know if you
> want more information"

Those documents and files are downloadable also from http://www.upek.com
They are rather scattered out there, but still...

In Linux environment we do need to define and implement our own
interface to the the device. There is BioAPI (http://www.bioapi.org)
interface specification, but that is rather high up in the application
stack. (There exists also NIST written Linux version at that site,
and it seems to be "BSD with advertisement clause" licensed...)

My reading so far seems to indicate, that this is mostly doable
in the application space without needing kernel space drivers.

Implementing BioAPI interface library with device specific backends
(much in the same manner as SANE works) is the way, I do think.
To how large an extent the existing source code can be used
in this is so far unknown.

To be able to do the device specific backends, I do need to have
the detailed USB interface protocol descriptions, not just a windows
library binary wrapping them up into BioAPI. I can handle NDA
documents as long as the resulting source code into Linux (and any
other UNIX-like system capable to use it) can be published.

> > --
> > Jesper

/Matti Aarnio

2005-04-15 03:18:23

by Alejandro Bonilla

[permalink] [raw]
Subject: Re: IBM Thinkpad T42 - Looking for a Developer.


>>>>> This is located in my home PC, Won't be the fastest downloads...
>>>>>
>>>>> http://wifitux.com/finger/
>>>>>
>>>>>
>>>>
>>>>Under what terms did you obtain these documents and from where? Are
>>>>they completely freely distributable or are there strings attached?
>>>>
>>>>
>>>I emailed the guys and they told me, "Hey, here you go, let me know if you
>>>want more information"
>>>
>>>I guess it can't be more distributable. But as far as I got to read. The
>>>documents don't have too much information like for us to do a great Job. I
>>>think it also requires the making of a firmware.
>>>
>>>I don't want to dissapoint you, but I hope I'm lost and that a driver can be
>>>done out of this.
>>>
>>>
>>There were two PDF documents.
>>The more useful one tells that there are two possible interfaces:
>>- Async serial
>>- USB
>>
>>Could you show what /sbin/lsusb -vv tells in your T42 ?
>>Do that without external devices attached.
>>
>>
>
>I'm appending the lsusb -vv from my Thinkpad T43 for comparison. This
>also has a builtin USB fingerprint scanner, but I don't know if it is
>the same one as used on the T42. It is "Bus 004 Device 002: ID
>0483:2016 SGS Thomson Microelectronics". There are no other USB devices
>connecting.
>
>
>
Matti,

Where do we stand here? Now that you have two of those outputs, so I
can have some hope... Do you think we can make the driver for this hardware?

How about the firmware that the documents mention? Could there be a
layer in the hardware itself that might prevents us from reading the
fingerprint image?

Will BioAPI help us at all, or the best approach here is not to make
dll wrapping?

Thanks for you all time,

- Alejandro

2005-04-15 10:10:11

by Matti Aarnio

[permalink] [raw]
Subject: Re: IBM Thinkpad T42 - Looking for a Developer.

Good morning,

On Thu, Apr 14, 2005 at 10:20:08PM -0500, Alejandro Bonilla wrote:
> Matti,
>
> Where do we stand here? Now that you have two of those outputs, so I
> can have some hope... Do you think we can make the driver for this
> hardware?
>
> How about the firmware that the documents mention? Could there be a
> layer in the hardware itself that might prevents us from reading the
> fingerprint image?

The hardware exists for fingerprint reading.
It is all a matter of understanding of how to talk to those BULK endpoints
to do proper communication, and that is somewhat challening without
that level of documentation.

In USB documents that kind of document is known as "Device Class Definition"

idVendor 0x0483 SGS Thomson Microelectronics
idProduct 0x2016
iManufacturer 1 STMicroelectronics
iProduct 2 Biometric Coprocessor
Interface Descriptor:
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0

This "Vendor Specific Class" means it needs specific document,
not only USB Implementers' Forum:s generic documents.


Windows driver binary does implement it, and (at least in EU) it is
perfectly legal to reverse engineer something in order to produce
compatible products or to use something that isn't completely
documented.

Nevertheless I would prefer to have documents about actual communication
messages that are exchanged over those endpoints. That would speed up
driver writing considerably.

> Will BioAPI help us at all, or the best approach here is not to make
> dll wrapping?

At least I prefer not to mess with (windows-)DLL-wrapping.
Linux exists in quite a many platforms, and the BioAPI library does
already exist for Linux in source form as well.

That reference BioAPI implementation needs very least the backend
driver of the actual reader. What else does it need, I can't say
without doing experimentation and code reading.

If the necessary document is deep NDA for some reason, we can
negotiate with the vendor about how obfuscated version of the
resulting driver source can be included in open source distributions.

> Thanks for you all time,
> - Alejandro

/Matti Aarnio

2005-04-16 22:10:56

by Adam

[permalink] [raw]
Subject: Re: IBM Thinkpad T42 - Looking for a Developer.

> stack. (There exists also NIST written Linux version at that site,
> and it seems to be "BSD with advertisement clause" licensed...)
>

Sorry to interrupt but I wanted to mention that if the code you are refering to
was writtent by a NIST researcher it should be copyright free (aka public
domain). Works such as code created by a United States govenrment agency are
not copyrightable as the government is a public agency and therefore "The
People" own whatever they create.

[now back to your regularly scheduled programming]