Гайд: Manjaro: как проверить USB, PC/SC, драйверы Рутокен и компоненты КриптоПро - Часть 2
Продолжение гайда, разделы 11–20.
11. Энергосбережение USB — частая причина на ноутбуках
Рутокены могут отваливаться из-за автоприостановки USB.
Сначала найдите ID устройства:
lsusb | grep -Ei 'rutoken|aktiv'
Пример:
ID 0a89:xxxx
11.1. Если установлен TLP
Проверьте:
grep -E 'USB_DENYLIST|USB_BLACKLIST' /etc/tlp.conf
Добавьте ID токена в список исключений, например:
USB_DENYLIST="0a89:xxxx"
Если там уже есть значения, добавьте через пробел:
USB_DENYLIST="other_device 0a89:xxxx"
Затем:
sudo tlp start
11.2. Временное отключение autosuspend
Можно попробовать временно:
echo -1 | sudo tee /sys/module/usbcore/parameters/autosuspend
После этого переподключите токен.
Если поможет, можно добавить параметр ядра:
usbcore.autosuspend=-1
или настроить исключения в TLP.
12. Конфликт с другими программами
12.1. scdaemon от GnuPG
Иногда scdaemon может мешать работе со смарт-картами.
Попробуйте остановить его:
gpgconf --kill scdaemon
Затем повторите:
pcsc_scan
12.2. brltty
Иногда brltty может перехватывать USB-устройства.
Если он вам не нужен:
systemctl status brltty
Отключить:
sudo systemctl disable --now brltty
Если точно не нужен, можно удалить:
sudo pacman -Rns brltty
После этого переподключите токен и перезапустите pcscd:
sudo systemctl restart pcscd.socket pcscd.service
13. Если токен виден как флешка
Иногда Рутокен может отображаться как накопитель. Но для КриптоПро контейнер на Рутокене обычно находится не как обычные файлы на смонтированной флешке, а в защищённой памяти токена через PC/SC.
Тем не менее:
- не форматируйте токен, если видите его как диск;
- не удаляйте служебные файлы;
- если контейнер действительно хранится на обычной флешке/диске, он обычно представляет собой каталог с файлами вида
.000; - для таких контейнеров в КриптоПро важны модули чтения файловых контейнеров, но для Рутокен ЭЦП обычно приоритет — PC/SC и драйвер Рутокен.
14. Проверка лицензии КриптоПро
Иногда проблема не в видимости контейнера, а в том, что операции с криптографией блокируются из-за лицензии.
Проверьте:
/opt/cprocsp/sbin/amd64/cpconfig -license -view
Если лицензия отсутствует или истекла, КриптоПро может работать с ограничениями.
15. Если csptest видит контейнер, но браузер или плагин не видит
Если в терминале контейнер виден, а в браузере/плагине нет:
- Проверьте, что плагин использует ту же разрядность, что и КриптоПро.
- Перезапустите браузер и процесс плагина.
- Если используете Wayland, попробуйте сеанс X11.
- Если браузер в Flatpak/Snap/AppImage, могут быть ограничения доступа к
/run/pcscd. - Проверьте, что пользователь состоит в группе
pcsc. - Проверьте, что не запускается отдельная изолированная копия КриптоПро.
Для диагностики всегда ориентируйтесь на:
/opt/cprocsp/sbin/amd64/csptest -enum -enum_cont -verifyc -fqcn
Если команда видит контейнер, значит базовая связка токен + КриптоПро работает.
16. Частые ошибки и их смысл
Ошибка: No smart card readers found
Причины:
- не запущен
pcscd; - нет драйвера Рутокен;
- токен не определяется как смарт-карта;
- конфликт с другим процессом;
- проблема с USB.
Решение:
sudo systemctl restart pcscd.socket pcscd.service
pcsc_scan -n
sudo journalctl -u pcscd -n 100 --no-pager
Ошибка: SCARD_E_NO_SERVICE
Причины:
pcscdне запущен;- недоступен сокет PC/SC;
- проблема с правами.
Решение:
systemctl status pcscd.socket pcscd.service
sudo systemctl enable --now pcscd.socket
sudo systemctl restart pcscd.socket pcscd.service
Ошибка: карта видна, но контейнеров нет
Причины:
- токен пустой;
- не установлены компоненты КриптоПро;
- нет прав;
- контейнер повреждён;
- токен не поддерживается текущей версией КриптоПро.
Проверьте:
sudo /opt/cprocsp/sbin/amd64/csptest -enum -enum_cont -verifyc -fqcn
sudo видит, пользователь нет
Решение:
getent group | grep -Ei 'pcsc'
for g in pcsc pcscd; do
if getent group "$g" >/dev/null; then
sudo usermod -aG "$g" "$USER"
fi
done
Затем выйти и зайти заново.
17. Рекомендуемый порядок действий
Коротко, самый правильный порядок:
1. Обновить систему:
sudo pacman -Syu
2. Проверить токен в lsusb:
lsusb | grep -Ei 'rutoken|aktiv|0a89'
3. Установить PC/SC:
sudo pacman -S --needed pcsc-lite pcsc-tools ccid libusb
sudo systemctl enable --now pcscd.socket
sudo systemctl restart pcscd.socket pcscd.service
4. Установить драйвер Рутокен из AUR:
yay -S ifd-rutoken
или:
pamac build ifd-rutoken
5. Перезапустить pcscd:
sudo systemctl restart pcscd.socket pcscd.service
6. Проверить:
pcsc_scan
7. Добавить пользователя в группу pcsc/pcscd:
for g in pcsc pcscd; do
if getent group "$g" >/dev/null; then
sudo usermod -aG "$g" "$USER"
fi
done
- Выйти и зайти заново.
9. Проверить КриптоПро:
/opt/cprocsp/sbin/amd64/csptest -enum -enum_cont -verifyc -fqcn
10. Если контейнера нет, проверить пакеты КриптоПро:
pacman -Q | grep -Ei 'cprocsp|cryptopro'
Должны быть компоненты csp, rdr-pcsc, rdr-gost, при возможности rdr-rutoken.
18. Диагностический скрипт
Можно собрать всю информацию одним блоком:
{
echo '=== OS ==='
uname -a
grep PRETTY /etc/os-release
echo
echo '=== USB ==='
lsusb | grep -Ei 'rutoken|aktiv|0a89'
echo
echo '=== DMESG tail ==='
dmesg | tail -n 50
echo
echo '=== PCSC scan ==='
pcsc_scan -n
echo
echo '=== PCSCD journal ==='
sudo journalctl -u pcscd -n 100 --no-pager
echo
echo '=== PCSC drivers ==='
find /usr/lib/pcsc/drivers /usr/lib64/pcsc/drivers -maxdepth 2 2>/dev/null
echo
echo '=== Packages ==='
pacman -Q | grep -Ei 'pcsc|ccid|rutoken|cprocsp|cryptopro'
echo
echo '=== CryptoPro containers ==='
CSPTEST=$(find /opt/cprocsp -type f -name csptest 2>/dev/null | head -n1)
if [ -n "$CSPTEST" ]; then
echo "Using: $CSPTEST"
"$CSPTEST" -enum -enum_cont -verifyc -fqcn
else
echo 'csptest not found under /opt/cprocsp'
fi
} > ~/rutoken-crypto-diag.txt
Посмотреть результат:
less ~/rutoken-crypto-diag.txt
Если будете отправлять лог в поддержку или на форум, проверьте, что там нет конфиденциальных данных. Имена контейнеров обычно не являются секретом, но приватные ключи и пароли отправлять нельзя.
19. Самые вероятные причины именно для Manjaro
Для Manjaro чаще всего проблема одна из этих:
1. Не установлен драйвер Рутокен для PC/SC
Нужно поставить ifd-rutoken или аналог из AUR.
2. После обновления Manjaro пересобран/обновлён pcsc-lite, а драйвер Рутокен не пересобран
Нужно пересобрать ifd-rutoken.
3. КриптоПро установлен без компонента cprocsp-rdr-pcsc
Без него КриптоПро не видит смарт-карты.
4. Пользователь не состоит в группе pcsc/pcscd
sudo csptest ... видит, обычный пользователь — нет.
5. Токен пустой
Контейнер не создан или был удалён.
6. Энергосбережение USB
Токен появляется и исчезает, работает через раз.
20. Минимальный рабочий чек-лист
Перед тем как считать, что «КриптоПро сломан», убедитесь:
lsusb | grep -Ei 'rutoken|aktiv|0a89'
Показывает Рутокен.
pcsc_scan -n
Показывает читатель и карту.
groups
Есть группа pcsc или pcscd.
/opt/cprocsp/sbin/amd64/csptest -enum -enum_cont -verifyc -fqcn
Показывает контейнер. Если все четыре пункта выполняются, токен и контейнер видны системой и КриптоПро. Если где-то падает — чините именно этот уровень.
Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.