ZaLinux.ru

Как в Linux проверить, поддерживает ли компьютер TPM 2.0

Одним из требований к Windows 11 является наличие микросхемы TPM 2.0. Думаю, именно благодаря Windows 11 многие пользователи узнали о существовании TPM.

Данная статья расскажет, как в Linux узнать, имеется ли TPM и какая её версия. Кстати, если у вас Windows, то смотрите статью «Как проверить, есть ли на вашем компьютере микросхема доверенного платформенного модуля (Trusted Platform Module, TPM)».

TPM: Trusted Platform Module 2.0 — данная микросхема распространена на материнских платах, выпущенных после 2016 г.

Оборудование TPM обеспечивает защищённый от несанкционированного доступа способ хранения ключей шифрования на компьютере. В Windows 11, 10, 8 и 7 TPM обычно требуется для включения и использования функций шифрования, таких как BitLocker.

Как узнать, есть ли TPM на компьютере с Linux

В относительно свежих (выпущенных после 2016 года) ноутбуках и материнских платах уже должна быть припаяна микросхема TPM. Чтобы убедиться в этом наверняка с помощью sysfs, выполните команду:

[[ -d $(ls -d /sys/kernel/security/tpm* 2>/dev/null | head -1) ]] && echo "TPM доступно" || echo "TPM отсутствует"

Начиная с ядра 5.6 номер версии можно посмотреть в файле sysfs:

cat /sys/class/tpm/tpm*/tpm_version_major

Как вы можете увидеть на скриншоте, на тестовой машине имеется вторая версия TPM (данный ноутбук выпущен в 2018 году).

Все TPM устройства должны иметь /dev/tpm0, поэтому ещё одним способом является проверка /dev/tpm0 или /dev/tpmrm0.

/dev/tpmrm0 доступен только для TPM 2.0, но он был добавлен в v4.12-rc1. Если у вас вторая версия, то следующая команда выведет соответствующее сообщение:

[ -c /dev/tpmrm0 ] && echo "TPM 2.0"

Эта команда выведет сообщение если у вас версия 1.2 или 2.0:

[ -c /dev/tpm0 ] && echo "TPM 1.2 или 2.0"

TPM может быть отключён

Если предыдущие команды показывают, что у вас отсутствует TPM, то это не обязательно означает, что модуль TPM отсутствует вовсе — возможно, он просто отключён. Зайдите в БИОС и поищите настройки, в названии которых присутствует TPM. Если вы их найдёте, то включите.

Настройка TPM отсутствует в БИОСе, UEFI

Означает ли что если настройка TPM отсутствует в БИОСе, то модуль TPM не установлен? Нет, это не так — примеры выше, из которых следует, что в тестовой машине установлен TPM 2.0, сделаны на ноутбуке, у которого упоминание TPM вовсе отсутствует в БИОСе.

Программы для работы с TPM в Linux

В Linux для работы с TPM установите пакет TrouSerS. В нём поставляется утилита tcsd.

Как проверить, загружены ли модули ядра для работы с TPM

Чтобы убедиться, что загружены модули ядра для работы с TPM выполните следующую команду:

lsmod | grep tpm

Рекомендуемые статьи:

2 Комментарии

  1. redking
    ls -d /sys/kernel/security/tpm*
    ls: невозможно получить доступ к '/sys/kernel/security/tpm*': Нет такого файла или каталога

    не хватает []

    [ -d $(ls -d /sys/kernel/security/tpm* 2>/dev/null | head -1) ] && echo "TPM доступно" || echo "TPM отсутствует"
    TPM доступно
    [[ -d $(ls -d /sys/kernel/security/tpm* 2>/dev/null | head -1) ]] && echo "TPM доступно" || echo "TPM отсутствует"
    TPM отсутствует
    
    1. Alexey (Автор записи)

      Приветствую! Да, всё верно — я перепроверил и поправил статью.

      Но до сих пор не могу понять, почему опция -d неправильно работает с [ ]? В книжке William E. Shotts, Jr. The Linux Command Line. Second Internet Edition (это моя библия по командной строке) есть такая фраза «This makes [[ ]] useful for evaluating file and pathnames», но из этой же книжки следует, что [ ] должна работать с опцией -d. Буду разбираться…

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *