Не удалось получить желаемый результат с помощью echo "$(du -ksh $i)"
. Переключил echo
на printf
и получил желаемый результат. Не могу это объяснить, но тем не менее, работает.
Убедитесь, что модули ядра, управляющие доверенным платформенным модулем, загружаются в 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*
созданы для вас.