Авторизация при помощи сканера отпечатков пальцев в Ubuntu Linux
В последнее время некоторую популярность получили так называемые сканеры отпечатков пальцев, при помощи которых можно очень удобно проводить авторизацию в системах Windows. Кто-то ценит в этих сканерах защищенность (что можно поставить под сомнение), кто-то — удобство, а кто-то просто любит различные гаджеты в стиле Джеймса Бонда. Сканеры отпечатков пальцев присутствуют на многих ноутбуках высшего ценового диапазона, ну а для компьютера можно приобрести такое устройство где-нибудь на Ebay или Amazon (почему-то сканеры отпечатков пальцев не так-то просто найти в свободной продаже на территории России).
К сожалению, производители сканеров отпечатков пальцев до сих пор обращают мало внимания на Linux-системы и обделяют их программной поддержкой. Однако, благодаря независимым разработчикам, мы можем использовать многие из подобных устройств и под Linux (в частности — под Ubuntu). Это возможно благодаря пакету Fingerprint GUI.
Поддерживается ли мой сканер отпечатков пальцев под Linux?
Для того, чтобы узнать, существует ли поддержка вашего устройства под Linux, выполните команду:
Она отобразит список всех USB-устройств, подключенных к компьютеру. Найдите строчку с fingerprint reader’ом (сканером отпечатков) и посмотрите 6 и 7 столбцы в этой строчке — там будут указаны уникальные идентификаторы производителя и устройства (два 16-ричных числа).
В случае, если идентификатор совпадает с одним из тех, что перечислены ниже, ваше устройство поддерживается.
Устройство есть в списке? Отлично! Тогда ставим Fingerprint GUI!
Установка и настройка Fingerprint GUI в Ubuntu Linux
Для того, чтобы установить пакет, требуется добавить PPA:
Однако, имейте в виду. После этого стандартный пакет PolicyKit (имя которого зависит от используемого окружения — например, policykit-gnome) будет удален. Если впоследствии вы захотите удалить Fingerprint PPA, вам придется установить этот пакет вручную, иначе вы можете получить нерабочую систему.
Теперь осталось запустить программу Fingerprint GUI и зарегистрировать новые «пальчики». Как только это будет сделано, требуется перезапустить сессию (разлогиньтесь и попробуйте войти заново, либо просто перезагрузите компьютер).
Все! Теперь вы можете разблокировать экран, перелогиниваться, выполнять команды через sudo, используя авторизацию при помощи пальцев руки (или ноги ), однако, возможность использования пароля также остается.
Помогла ли вам эту инструкция? Используете ли вы авторизацию по отпечаткам пальцев на домашнем компьютере/ноутбуке?
Включаем сканер отпечатков пальцев
Многие сейчас покупают ноутбуки, на которых установлены сканеры отпечатков пальцев. Они довольно полезны в применении, не приходится запоминать массу паролей (а если пароль длинный — экономия времени, не нужно его вводить), вот только производители заботятся только о пользователях Windows, забывая о поддержке Linux.
Но нам же не привыкать, верно? Поэтому нужно делать поддержку сканера отпечатка пальцев в Ubuntu самостоятельно. В этом нам поможет утилита Fingerprint GUI.
Именно с помощью приложения Fingerprint GUI можно без проблем настроить авторизацию в Ubuntu Linux при помощи сканера отпечатков пальцев. Настройки у приложения довольно гибкие, а интерфейс полностью понятный.
Установка Fingerprint GUI в Ubuntu
Итак, для установки Fingerprint GUI воспользуйтесь следующими командами:
Настраиваем сканер отпечатков пальцев (finger print) в Ubuntu 9.04
На написание данного топика меня сподвигла замена ноутбука и переезд на бету Ubuntu 9.04, вследствие этого знаменательного события.
Надо сказать, что пользую сей достойный продукт еще с версии 7.10. За это время сменилось несколько машин, и мне не разу не пришлось сильно сожалеть о своем выборе, поскольку проблем с определением оборудования не наблюдалось, правда может быть больше из за того, что используемая мной техника IBM Thinkpad всегда неплохо поддерживалась в линуксах, как и все что сделано в IBM.
Сейчас для работы, в руки мне попало достойное изделие от HP — ноутбук nc6400. Этот девайс обладает сканером отпечатков пальца, который несколько упрощает жизнь в нашем парольном хаосе. До настоящего времени использование сканера ограничивалось MS Windows и я не предполагал, что сообщество занимается столь малопопулярными устройствами.
Проинсталировав бету 9.04 на ноутбук, обнаружилось, что «из коробки» распозналось все оборудование, которое присутствовало на борту, включая модем (!), чего раньше я вообще не видел. В качестве бонуса в списке USB устройств стал заметен сканер отпечатков AES2501, который правда нигде не использовался.
Погуглив, я нашел метод подключения этого устройства, который оказался весьма прост.
Наберите в терминале команду:
sudo aptitude install fprint-demo libpam-fprint libfprint0
Как вариант можно поискать в синаптике модули содержащие в названии fprint и установить их.
Это две библиотеки содержащие поддержку собственно сканеров отпечатков и подключения их к модулю аутентификации, а также графическое приложение, позволяющее настроить виды и количество пальцев, участвующих в «опознании» 🙂
После этого необходимо внести изменения в файл аутентефикации командой
sudo gedit /etc/pam.d/common-auth
auth sufficient pam_fprint.so
auth [success=1 default=ignore] pam_unix.so nullok_secure
Это позволит вам воспользоваться стандартной процедурой ввода пароля, если по каким либо причинам пальчики не опознаются.
Процедура опознания выводит сообщение какой палец прикладывать, но в некоторых приложениях это сообщение подавляется, а искать как это убрать было лень. Посему совет: идентифицируйте один из пальцев и прикладывайте только его — не запутаетесь :).
Вот собственно и все. Пользуйтесь на здоровье. Буду рад, если кому помог применить доселе бесполезный девайс.
В подключении использованы материалы статьи
P.S. Поскольку кармы для публикации в «Linux для всех» и «Убунтариум» не хватает, размещу у себя, может кому и пригодится.
P.S.S. Спасибо за карму, перенес в убунтариум.
Весьма достойная ссылка для тех кто хочет углубиться в тему, от AccessForbidden
Linux сканер отпечатков пальцев
Дельта принтеры крайне требовательны к точности изготовления комплектующих (геометрия рамы, длины диагоналей, люфтам соединения диагоналей, эффектора и кареток) и всей геометрии принтера. Так же, если концевые выключатели (EndStop) расположены на разной высоте (или разный момент срабатывания в случае контактных концевиков), то высота по каждой из осей оказывается разная и мы получаем наклонную плоскость не совпадающая с плоскостью рабочего столика(стекла). Данные неточности могут быть исправлены либо механически (путем регулировки концевых выключателей по высоте), либо программно. Мы используем программный способ калибровки.
Далее будут рассмотрены основные настройки дельта принтера.
Для управления и настройки принтера мы используем программу Pronterface.
Калибровка принтера делится на три этапа:
1 Этап. Корректируем плоскость по трем точкам
Выставление в одну плоскость трех точек — A, B, C (расположенных рядом с тремя направляющими). По сути необходимо уточнить высоту от плоскости до концевых выключателей для каждой из осей.
Большинство (если не все) платы для управления трехмерным принтером (В нашем случае RAMPS 1.4) работают в декартовой системе координат, другими словами есть привод на оси: X, Y, Z.
В дельта принтере необходимо перейти от декартовых координат к полярным. Поэтому условимся, что подключенные к двигателям X, Y, Z соответствует осям A, B, C.(Против часовой стрелки начиная с любого двигателя, в нашем случае смотря на логотип слева — X-A, справа Y-B, дальний Z-C) Далее при слайсинге, печати и управлении принтером в ручном режиме, мы будем оперировать классической декартовой системой координат, электроника принтера сама будет пересчитывать данные в нужную ей систему. Это условность нам необходима для понятия принципа работы и непосредственной калибровки принтера.
Точки, по которым мы будем производить калибровку назовем аналогично (A, B, C) и позиция этих точек равна A= X-52 Y-30; B= X+52 Y-30; C= X0 Y60.
Алгоритм настройки:
- Подключаемся к принтеру. (В случае “крагозяб” в командной строке, необходимо сменить скорость COM порта. В нашем случае с 115200 на 250000 и переподключится)
После чего мы увидим все настройки принтера. - Обнуляем высоты осей X, Y, Z командой M666 x0 y0 z0.
И сохраняем изменения командой M500. После каждого изменения настроек необходимо нажать home (или команда g28), для того что бы принтер знал откуда брать отсчет. - Калибровка принтера производится “на горячую”, то есть должен быть включен подогрев стола (если имеется) и нагрев печатающей головки (HotEnd’а) (Стол 60град., сопло 185 град.) Так же нам понадобится щуп, желательно металлический, известных размеров. Для этих задач вполне подойдет шестигранный ключ (самый большой, в нашем случае 8мм, он предоставляется в комплекте с принтерами Prizm Pro и Prizm Mini)
- Опускаем печатающую головку на высоту (условно) 9мм (от стола, так, что бы сопло еле касалось нашего щупа, т.к. высота пока что не точно выставлена.) Команда: G1 Z9.
- Теперь приступаем непосредственно к настройке наших трех точек.
Для удобства можно вместо g- команд создать в Pronterface четыре кнопки, для перемещения печатающей головки в точки A, B, C, 0-ноль.
Далее командой меняем параметры высоты оси Y: M666 Y <посчитанная величина>
M666 Y0.75
M500
G28
2 Этап. Исправляем линзу
После того как мы выставили три точки в одну плоскость необходимо произвести коррекцию высоты центральной точки. Из за особенности механики дельты при перемещении печатающей головки между крайними точками в центре она может пройти либо ниже либо выше нашей плоскости, тем самым мы получаем не плоскость а линзу, либо вогнутую либо выпуклую.
Корректируется этот параметр т.н. дельта радиусом, который подбирается экспериментально.
Калибровка:
- Отправляем головку на высоту щупа в любую из трех точек стола. Например G1 Z9 X-52 Y-30
- Сравниваем высоту центральной точки и высоту точек A,B,C. (Если высота точек A, B, C разная, необходимо вернутся к предыдущей калибровки.)
- Если высота центральной точки больше остальных, то линза выпуклая и необходимо увеличить значение дельта радиуса. Увеличивать или уменьшать желательно с шагом +-0,2мм, при необходимости уменьшить или увеличить шаг в зависимости от характера и величины искривления (подбирается экспериментально)
- Команды:
G666 R67,7
M500
G28 - Подгоняем дельта радиус пока наша плоскость не выровняется
3 Этап. Находим истинную высоту от сопла до столика
Третьим этапом мы подгоняем высоту печати (от сопла до нижней плоскости — столика) Так как мы считали, что общая высота заведомо не правильная, необходимо ее откорректировать, после всех настроек высот осей. Можно пойти двумя путями решения данной проблемы:
1 Способ:
Подогнав вручную наше сопло под щуп, так что бы оно свободно под ним проходило, но при этом не было ощутимого люфта,
- Командой M114 выводим на экран значение фактической высоты нашего HotEnd’а
- Командой M666 L получаем полное значение высоты (Параметр H)
- После чего вычитаем из полной высоты фактическую высоту.
- Получившееся значение вычитаем из высоты щупа.
Таким образом мы получаем величину недохода сопла до нижней плоскости, которое необходимо прибавить к полному значению высоты и и записать в память принтера командами:
G666 H 235.2
M500
G28
2 Способ:
Второй способ прост как валенок. С “потолка”, “на глаз” прибавляем значение высоты (после каждого изменение не забываем “уходить” в home), добиваясь необходимого значения высоты, но есть шанс переборщить со значениями и ваше сопло с хрустом шмякнется об стекло.
Как сделать авто калибровку для вашего принтера и что при этом авто калибрует принтер вы узнаете из следующих статей.