Учебники (How-To & F.A.Q)

Идентификация по отпечатку пальца

Здравствуйте, юзеры!

Уже пол-года сижу на манжаре, горя не знаю, но периодически возникает желание что-то эдакое запилить (создать рамдиск, подключить видюху и накатить стим, поиграться с настройками шрифтов чтобы в tty кириллица нормально отображалась, разобраться с ошибками в dmesg и т.д.).

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

Собственно что для этого нужно:
Библиотека fprint (sudo pacman -S fprint)

Ну и проверка, видит ли ваша система датчик:
lsusb

$ lsusb
Bus 002 Device 002: ID 8087:8000 Intel Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 005: ID 04f2:b3a6 Chicony Electronics Co., Ltd 
Bus 003 Device 004: ID 8087:07da Intel Corp. 
Bus 003 Device 003: ID 03f0:a407 HP, Inc Wireless Optical Comfort Mouse
Bus 003 Device 002: ID 1d57:fa60 Xenta 
Bus 003 Device 006: ID 138a:0050 Validity Sensors, Inc. Swipe Fingerprint Sensor
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

У меня он в списке предпоследний


Когда вы скачаете пакеты нужно будет обкатать пальчики с помощью команды fprintd-enroll. Так же с помощью опции -f можно указать другой палец (по дефолту правый указательный)
Пример

$ fprintd-enroll -f left-index-finger                                                                                         
Using device /net/reactivated/Fprint/Device/0
Enrolling left-index-finger finger.
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-completed


Проверить корректность того что получилось можно с помощью команды fprintd-verfiry.

А теперь самое интересное)))

Нужно научить наш оконный менеджер смотреть на пальчики. У меня графика KDE и оконный менеджер sddm, поэтому я правлю файл
/etc/pam.d/sddm
Для гнома он по идее будет называться /etc/pam.d/gdm, но не проверял и могу ошибаться.

Файл до моего вмешательства:

#%PAM-1.0

auth		include		system-login
auth		optional	pam_kwallet5.so
account		include		system-login
password	include		system-login
session		include		system-login
session		optional	pam_kwallet5.so auto_start

И после

#%PAM-1.0

auth        sufficient    pam_unix.so nullok try_first_pass
auth        sufficient    pam_fprintd.so
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        include       system-login

account     required	  pam_unix.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account	    include	  system-login

password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    include	  system-login

session     optional	  pam_keyinit.so revoke
session     required	  pam_limits.so
session     required	  pam_unix.so
session	    include	  system-login


Теперь при входе если пользователь неправильно ввёл пароль, ему будет предложено проверить отпечаток пальца. Что делают остальные добавленные строчки я честно не знаю, ибо конфиг я скопировал и чуть-чуть поправил под себя.

Вот ссылка на ресурс, где я брал инфу. Были и другие сайты, на которых советовали использовать fingerprint-gui, но у меня оно тупо не заработало. Всем добра!
Manjaro KDE Edition

Не открывается gufw (Есть Решение)

gufw перестал открываться, пароль просит, но дальше никакой реакции. В терминале подобная ошибка:
вывод из терминала
скопипастил из другой темы, у меня была идентичная, просто уже решилась.
Unable to init server: Could not connect: Connection refused
Unable to init server: Не удалось подключиться к: Connection refused

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.188: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.188: gdk_keymap_get_modifier_mask: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.188: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:30286): Gtk-CRITICAL **: 00:46:35.188: _gtk_replace_virtual_modifiers: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.188: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.188: gdk_keymap_get_modifier_mask: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.188: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:30286): Gtk-CRITICAL **: 00:46:35.188: _gtk_replace_virtual_modifiers: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.188: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.188: gdk_keymap_get_modifier_mask: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.188: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:30286): Gtk-CRITICAL **: 00:46:35.188: _gtk_replace_virtual_modifiers: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.188: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.188: gdk_keymap_get_modifier_mask: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.188: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:30286): Gtk-CRITICAL **: 00:46:35.188: _gtk_replace_virtual_modifiers: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.188: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.188: gdk_keymap_get_modifier_mask: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.189: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:30286): Gtk-CRITICAL **: 00:46:35.189: _gtk_replace_virtual_modifiers: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.189: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.189: gdk_keymap_get_modifier_mask: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.189: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:30286): Gtk-CRITICAL **: 00:46:35.189: _gtk_replace_virtual_modifiers: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.189: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.189: gdk_keymap_get_modifier_mask: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.189: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:30286): Gtk-CRITICAL **: 00:46:35.189: _gtk_replace_virtual_modifiers: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.189: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.189: gdk_keymap_get_modifier_mask: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.189: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:30286): Gtk-CRITICAL **: 00:46:35.189: _gtk_replace_virtual_modifiers: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.189: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.189: gdk_keymap_get_modifier_mask: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.189: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:30286): Gtk-CRITICAL **: 00:46:35.189: _gtk_replace_virtual_modifiers: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.189: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.189: gdk_keymap_get_modifier_mask: assertion 'GDK_IS_KEYMAP (keymap)' failed

(gufw.py:30286): Gdk-CRITICAL **: 00:46:35.189: gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(gufw.py:30286): Gtk-CRITICAL **: 00:46:35.189: _gtk_replace_virtual_modifiers: assertion 'GDK_IS_KEYMAP (keymap)' failed
/bin/gufw-pkexec: строка 13: 30286 Ошибка сегментирования                   (стек памяти сброшен на диск) python3 ${LOCATIONS[${i}]}

Решение подошло такое:
Решение
Сделать резервную копию файла /etc/sddm.conf куданибудь, мало ли.
В файле /etc/sddm.conf найти
[Users]
DefaultPath=

и удалить значение после =, т.е. оставить поле DefaultPath= пустым. Сохранить (попросит пароль)
Возможно здесь стоит перезагрузиться и проверить запускается ли gufw. Если нет, то дальше…
в терминале написать
echo $PATH

вывод будет примерно такой
bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl

нужно скопировать всю строчку, кроме bin: вначале. В моём случае /usr/bin:/usr/local/sbin:/usr/local/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
и выполнить в терминале

export $PATH=сюда вставить скопированную строчку
т.е. в моем случае
export $PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl

у меня выдало
bash: export: «/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl»: это недопустимый идентификатор
проигнорировал и перезагрузился,

gufw стал запускаться, но остались вопросы:
Что я сделал? Причём тут sddm, и нормально ли оставлять занчение 'DefaultPath=' в /etc/sddm.conf пустым? >_>
Manjaro KDE Edition

Не загружается после обновления - Failed to start Simple Desktop Display Manager

Только что установил обновления. Было 12 новых. Припоминаю в списке alsa, qt4, qt5, что-то с kde. Объём примерно 120 МБ.
После обновления попытался открыть видеофайл — VLC несколько секунд тужился и вырубался.
Перезагрузил и получил вот такой скрин:
Manjaro KDE Edition: Не загружается после обновления - Failed to start Simple Desktop Display Manager
На то, что до красной надписи [FAILED] не обращайте внимание, это у меня всегда писало и загружалось.

Как лучше реанимировать систему? Можно ли как-то посмотреть список последних обновлений и откатить их к предыдущим версиям файлов?
Manjaro KDE Edition

Обновление снова убило sddm

При обновлении упал sddm. И это уже далеко не первый раз на разных ПК при обновлении системы. Видимо это слабое место, и каждый раз требуется индивидуальная диагностика и не шаблонное лечение. Загрузка зависает на строке загрузки: [ OK ] Started TPL system startup/shutdown.
После чего можно перейти в другую консоль по Ctrl+Alt+F2, залогиниться вручную, вручную стартовать иксы командой startx и пользоваться системой.

Или отключить автозагрузку sddm: sudo systemctl stop(disable) sddm.service перезагрузиться, залогиниться и sudo systemctl start sddm.service
… и пользоваться системой, как я сейчас и поступаю, потому, что выхода так и не нашёл.

Прошу помощи! как восстановить загрузку sddm?
Manjaro KDE Edition

[РЕШЕНО] Установка deepin

KDE меня как-то последнее время радовать перестало. Список недовольств уже длиный, а пофиксить не удаётся. Короче хочу попробовать альтернативы. Особенно огорчает работа на ноуте со 2ым монитором — подкл/откл и окна потерялись. Отвратительно. SDDM к 2ум мониторам тоже не дружественнен. Или тут конфиг такой. Короче.
sudo pacman -S deepin-manjaro
Ну поставился. А как его прикрутить-завести?
Когда-то года 3-4 назад я пользовался OpenSuse и там при установке можно было выбрать несколько интерфейсов KDE, Gnome, etc. И потом при входе имя-пароль выбирался оконный менеджер-оболочка. Можно тут такое сделать?
Благодарю за участие.

РЕШЕНИЕ

Выбрать тему для SSDM которая поддерживает выбор типа сессии.
sudo nano /etc/sddm.conf
....
[Theme]
Current=manjaro
....

Увидеть доступные темы
ls -la /usr/share/sddm/themes

Найти и установить темы можно с помощью
yaourt sddm theme

Мне понравилась Gracilis
Manjaro KDE Edition: [РЕШЕНО] Установка deepin

Позитивные отзывы, комментарии, оценки приветствую!
Manjaro KDE Edition

Проблемы на чистом Manjaro.

Предыстория:
До этого на ноуте стоял арчик — проблем не было. В силу некоторых причин пришлось форматнуть хард, сделал дуал бут 10 + manjaro. В итоге, получил какую-то кучу проблем. Даже не знаю с чего начать.

Сама суть:
Установил последний Читать дальше
Флуд

Вопрос по opensuse tumbleweed ))). Знаю. Но здесь люди адекватнее, может подскажете

Тестирую на виртуальной машине opensuse tumbleweed. Установил через net iso с базовыми пакетами kde. Загружается в терминальном режиме. Никто не сталкивался как в такой системе поставить sddm на Читать дальше
Manjaro KDE Edition

Как избавиться от 90 секундного (1:30s) ожидания после завершения работы в KDE

Был найден способ (ужасный костыль на самом деле, но безопасный, только разработчики могут исправить эту проблему, пишите на форумы, создавайте багрепорты) чтобы система не ждала 90 секунд чтобы завершить работу или сократить это время ожидания. Читать дальше
Manjaro KDE Edition

Меняем фоновое изображения SDDM и экрана загрузки

В первых релизах Plasma5 нельзя было сменить фоновое изображение SDDM(функционал был реализован в настройках, но не работал). Потом этот функционал починили, но с недавнего времени у меня он чего то перестал работать.
В связи с тем, что разбираться Читать дальше