Как получить /dev/tpm *в initramfs?

Не удалось получить желаемый результат с помощью echo "$(du -ksh $i)". Переключил echoна printfи получил желаемый результат. Не могу это объяснить, но тем не менее, работает.

1
23.03.2020, 23:39
1 ответ

Убедитесь, что модули ядра, управляющие доверенным платформенным модулем, загружаются в initramfs, перечислив их в /etc/initramfs-tools/modules. Затем initramfs udevдолжен создать для вас устройства.

Сначала запустите lsmod | grep tpm, чтобы найти модуль драйвера TPM (s ). Для меня вывод выглядит так:

# lsmod |grep tpm
tpm_tis                16384  0
tpm_tis_core           20480  1 tpm_tis
tpm                    61440  2 tpm_tis,tpm_tis_core
rng_core               16384  2 tpm

tpm_tis— это драйвер для наиболее распространенных реализаций TPM на оборудовании x86. Из вывода видно, что он зависит от других модулей :tpm_tis_core, tpmи rng_core. Список lsmodсоздается снизу вверх, поэтому оптимальным порядком загрузки будет загрузка rng_coreпервой.

Таким образом, чтобы убедиться, что эти модули загружаются в initramfs, вы должны добавить четыре строки в файл /etc/initramfs-tools/modules:

rng_core
tpm
tpm_tis_core
tpm_tis

(Вероятно, это перебор. Я думаю, что initramfs-toolsтеперь может автоматически обрабатывать зависимости модулей, поэтому простого упоминания tpm_tisбудет, вероятно, достаточно. Но мне нравится указывать модули явно, чтобы свести к минимуму необходимость повторять действия...)

После редактирования файла /etc/initramfs-tools/modulesвам потребуется заново создать файл initramfs. В Debian это проще всего сделать с помощью update-initramfs -u.

Следующим шагом будет перезагрузка и повторное использование оболочки init=premount, чтобы убедиться, что устройства /dev/tpm*созданы для вас.

1
28.04.2021, 23:19

Теги

Похожие вопросы