Сканер отпечатков пальцев от egistec (LighTuning)

Всех с наступившим Новым Годом!

Приобрел себе по случаю праздников ноутбук Lenovo V560. В числе прочих устройств, на нем имеется встроенный сканер отпечатков пальцев. Определяется как 0x1c7a:0x0801 (LighTuning Technology Inc.)
Потратил несколько дней на поиск хоть каких-то намеков на поддержку сего устройства в Linux, однако нашел только одни вопросы других таких же как я желающих использовать такой сканер под Linux. Насколько я понял - проблеме уже около года - самый ранний вопрос датирован февралем месяцем ушедшего 2010 года.
Если я правильно понимаю - самое вменяемое ПО для применения сканеров отпечатков пальцев под Linux - это sys-auth/libfprint, но на сайте проекта нашел единственный вопрос о поддержке указанного выше девайса, который так и остался без ответа.
Я так понял, что для ядра Linux нет никаких стандартов / интерфейсов для сканеров отпечатков пальцев, ибо драйверов для них в ядре нет вообще, в т.ч. и в staging. Упомянутый выше libfprint работает с поддерживаемыми устройствами через libusb, разработчики создали собственный интерфейс для работы с устройствами и пишут "драйверы" для каждого конкретного типа сканеров.

Исходя из всего вышесказанного, вряд ли стОит ожидать каких-либо положительных сдвигов в решении вопроса поддержки моего сканера - нужно решать его самостоятельно. Или, отказаться от приобретенного ноутбука в пользу другого, чего не хотелось бы.
Хочу все-таки попробовать создать "драйвер" для libfprint самостоятельно, но налицо полное отсутствие опыта работы с USB.
Нет ли среди уважаемых участников форума кого-нибудь, кто имеет опыт работы с USB-устройствами напрямую? Посоветуйте, с чего начать изучать этот вопрос? Что следует почитать перед тем, как пробовать реализовывать поддержку моего сканера? Можно ли попробовать зафиксировать протокол обмена между сканером и ПО, например, под Windows, для которого драйвер имеется в наличии?
Заранее всем спасибо!

"зафиксировать протокол"

"зафиксировать протокол" врятли можно... скорее всего придется дизассемблировать...

вообще, рискну предложить обратиться за помощью к человеку, который написал драйвер madwimax... он русский и думаю, что сможет рассказать как провернул реверсинжиниринг драйверов для usb-брелков yota ;)

P.S. реверс-инжиниринг

Насчет reverse-engineering я

Насчет reverse-engineering я в курсе :)
А вот насчет протокола - слышал, что есть некий софт, который может снимать копию траффика с USB, типа tcpdump в случае с сетевым траффиком. Правда, я пока еще не брался за поиски...
Если такой софт реально существует, то я думаю, что можно будет попробовать с его помощью разобрать протокол обмена между драйвером и железом... И пока еще остается открытым вопрос о том, как работать с USB под Linux.

http://sourceforge.net/projec

http://sourceforge.net/projects/usbsnoop/
http://www.linux-usb.org/tools.html
http://www.linux-usb.org/usbtest/

будем надеятся, что до многобаксовых железных снифферов дело не дойдет :)

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Спасибо! Как раз то, что

Спасибо! Как раз то, что нужно на начальном этапе. Почитал доки по libusb, пока ничего страшного не увидел, можно пробовать работать. Главное, чтобы сканер отдавал отпечатки во вменяемом формате...
Если вопрос о поддержке указанного в стартовом сообщении девайса интересует еще кого-то, кроме меня, давайте попробуем скооперироваться. Вдруг быстрее дело пойдет.

http://www.linuxjournal.com/n

alexpro написал(а): Хочу

alexpro написал(а):
Хочу все-таки попробовать создать "драйвер" для libfprint самостоятельно, но налицо полное отсутствие опыта работы с USB.
Нет ли среди уважаемых участников форума кого-нибудь, кто имеет опыт работы с USB-устройствами напрямую? Посоветуйте, с чего начать изучать этот вопрос? Что следует почитать перед тем, как пробовать реализовывать поддержку моего сканера? Можно ли попробовать зафиксировать протокол обмена между сканером и ПО, например, под Windows, для которого драйвер имеется в наличии?
Заранее всем спасибо!

Перво-наперво разберитесь как работает libfprint и особенно, как он работает с оборудованием, обо всём этом лучше узнать у разработчиков libfprint. USB-снифферов полно (например, неплохой вариант http://usb-robot.sourceforge.net/ а уж поисковик в интернете обязательно найдёт что-то подходящее для Вас), но, я полагаю что основная проблема будет в обработке полученных данных, если само устройство не выдаёт готовый ответ и не хранит данные отпечатков. Также неплохо было бы подробнее познакомиться с USB шиной (для начала http://microsin.ru/content/view/1107/44/ ).

С libfprint пока вопросов не

С libfprint пока вопросов не возникло - есть доки, на данном этапе понятные. В конце концов - имеются исходники. А вот насчет полученных данных - сам опасаюсь, что они могут оказаться "неформатом", и придется копать на предмет конвертации в формат, который понимает libfprint. Но я очень надеюсь, что до этого дело все-таки не дойдет.
В любом случае, спасибо за подсказки.

читал тут LXF138 и наткнулся

читал тут LXF138 и наткнулся на интересную для тебя статью ;) там на нормальном русском рассказывается пример реверс-инжиниринга драйвера для usb-гаджета под windows и написание драйвера под linux ;)

Спасибо за наводку, почитаем.

Спасибо за наводку, почитаем. Правда, в нашей провинции это не продается, но можно дернуть друзей в Киеве - пришлют. Или электронную версию купить.

Пробовал копать с USBsnoop, кое-что становится понятно, пока застрял на определении формата изображения (width/height). Жаль, что usbsnoop не умеет данные конкретного пакета дампить в файл... Или умеет, но я еще не понял как: занимался этим вопросом часов 6 всего - праздники, однако... Где-то поприсутствовать надо, где-то выпить надо, и плюс дежурную техподдержку пинать тоже надо, причем практически круглосуточно, а то напьются и в игнор. Пройдут "каникулы", возьмусь плотнее за задачу.

Написал фидбэк на сайте egistec, не знаю, что из этого выйдет... Сайт у них глючный, мама не горюй. Но письмо получил, что фидбэк принят, робот обещал ответить "as soon as possible"... Посмотрим, что ответит производитель.

Я снял протокол обмена этого

Я снял протокол обмена этого устройства под Windows, и мне удалось повторить его под Linux. Я написал "на коленке" тестовую программу (использовал libusb). Однако, данные, которые я получаю после проведения пальцем по сканеру, не поддаются никакому анализу. Увы, я практически не знаком с технологиями обработки изображений.
Если кратко, то сканер после проведения пальцем отдает 8 раз по 61440 байт. Каждый из восьми блоков отличается друг от друга, но первые четыре и вторые четыре можно считать сходными. Идентифицировать, какого типа эти данные, я не смог, и соответственно, совершенно непонятно, что теперь с этими данными делать. В скудном описании на странице производителя сказано:

192 x 8 pixels @ 508 dpi
9.6 mm x 0.4 mm sensor array
16 gray levels/sensor pixel (4-bit ADC)

Нет ли среди уважаемых участников форума разбирающихся в алгоритмах обработки и хранения изображений? Я могу дать ссылку на полученные данные, может, кто-то сможет их идентифицировать?

P.S.
Почитал комментарии в готовых "драйверах" в libfprint. Эта библиотека поддерживает два типа сканеров: touch и swipe. Т.е. - либо сканер воспринимает весь отпечаток за одно прикосновение, либо для снятия отпечатка нужно провести пальцем по сканеру. Мой сканер - второй вариант. Сканеры типа aes-xxxx передают изображения последовательным потоком фрагментов 128 x 8.
В моем случае непонятно, как происходит передача. 61440 - это слишком большой размер для такого фрагмента. В такой размер вполне влезет и весь отпечаток. А если это все-таки фрагменты, то совершенно непонятно, как их "склеивать".

1. спросите на LORe 2.

1. спросите на LORe
2. спросите в списках рассылки/форумах/IRC libfprint

ArtSh написал(а): 1. спросите

ArtSh написал(а):
1. спросите на LORe

думаю не стоит... хотя если не боишься полчищ дерзких анонимусов... )))

Я подписан на mailing list от

Я подписан на mailing list от libfprint. Первый вопрос о сканере обсуждаемого типа там задавался больше года назад. На него не было ни одного ответа. Мой английский не настолько хорош, чтобы нормально объяснить то, что хотелось бы объяснить.

Конечно же, я все это так не оставлю, и буду пытаться идти дальше, желательно до положительного результата. Если найдутся люди, которые что-то понимают в подобных вопросах и смогут помочь - хорошо. Не найдутся - значит, буду копать сам, только времени на это уйдет намного больше... Жаль, что сейчас не получается бросить все и на неделю-другую плотно с полной отдачей взяться за этот вопрос. Пока получается только урывками - либо в выходной, либо ночами.

Ну что же... Как говорится,

Ну что же... Как говорится, первый блин комом. :)
У меня готова рабочая версия драйвера libfprint для этой железки. Я пока что остаюсь в больших сомнениях насчет характеристик картинки на выходе, но в остальном вроде все получилось. К сожалению, в зоне досягаемости у меня нет ни одного подобного устройства, только на моем ноутбуке. Потому драйвер я тестировал только сам.
Если кто-то имеет такое же устройство и хочет прикрутить его к своей системе - уже есть возможность пробовать. Пишите.

Очень рекомендую поместить

Очень рекомендую поместить это сообщение на LORe, потому как там линуксоидов побольше тусуется...

у меня такой же сканер на ноуте lenovo b560

интересуюсь этой темой, могу протестировать драйвер

Алексей, имею подобный девайс

Алексей, имею подобный девайс на lenovo b560, хотел бы помочь по-возможности в тестировании и интеграции, но не имею Ваших контактов для связи.

Я бы тоже мог потестить имею

Я бы тоже мог потестить имею такой же девайс на lenovo b560.
fedotru()gmail.com

Имею такое устройство в Acer

Имею такое устройство в Acer 8942. Хотел бы протестировать драйвер.

Предлагаю автору завести

Предлагаю автору завести проект на sourceforge.net, куда сложить архив исходника, а сюда же поместить ссылку. И если есть возможность - ебилд для сборки. В написании ебилда имеющих знания и желание написания - думаю не будет недостатка.

Пользуясь моментом, хочу передать привет друзьям, которые также пользуются "Моментом"

Посильная помощь

srgazh()gmail.com lenovo V560

Я тоже)))

И мне потестить пришлите пожалуйста!

Расскажете, работает ли..

Расскажете, работает ли.. тоже интересно

А вообще было бы здорово выложить где-то наработки

.

Скорее всего, рассказа не будет. Всем, кто задавал вопрос, я выслал ссылки на исходники. Ни один не прислал никакого ответа. Хотя, судя по логам nginx, исходники регулярно кто-то забирает. Не сказать, чтобы часто, но достаточно регулярно.

1. Устанавливаешь wireshark,

1. Устанавливаешь wireshark, VirtualBox
2. Ставишь под VirtualBox'ом Windows и драйвера для Finger сканера
3. Запускаешь Wireshark и указываешь что нужно снифать трафик пальцесканера
4. Пробрасываешь ус-во в винду
5. Тыкаешь пальцы
6. Получаешь дамп трафика :)

Working on Gentoo Linux for Asus P535 and Qtopia :-)

.

Ничего себе...
Всплыла тема годичной давности.

Для кого сия инструкция? Уж давно все дампы получены, разобраны и разложены по полочкам. А также написан драйвер и произведена, пусть и бесполезная, попытка расковырять kdm, и много чего другого...

Кстати, об инструкции. Не годится она в таком виде, ибо если следовать вышеизложенному, разбор полученного дампа будет сущим кошмаром. Вот оно, отличие теории от практики.

Что касается основной темы - драйвер есть, но с недостатками. С точки зрения "ждать палец - снять отпечаток - отдать отпечаток в софт" все нормально. С точки зрения использования для аутентификации - на мой взгляд, слишком высок процент негативных сравнений с эталоном, хотя, некоторые использующие драйвер утверждают, что их все устраивает.
С тех пор, как все было сделано (март 2011), я не прикасался к драйверу вообще. У меня, само собой, есть исходники libfprint-0.3.0 с этим драйвером, которые можно взять здесь.
Недавно мне сообщили, что нашелся умелец среди пользователей arch и встроил мой драйвер в libfprint-0.4.x, и даже создал репозиторий на github.
Цитата одного из заинтересованных драйвером:

Did you noticed that your patch was made public? see
https://aur.archlinux.org/packages.php?ID=50084.

Сам я считаю, что для окончательного завершения нужно сделать финальную обработку изображения перед отдачей в софт, но поскольку я с этой темой знаком мало, точнее никак, процесс пока остановился. В таком виде представлять драйвер разработчикам libfprint для официального включения в состав библиотеки, на мой взгляд, нельзя.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".