自从从 13.10 升级到 14.04(使用do-release-upgrade
)后,我的计算机(Sony vgn-sz1vp)在启动时挂起了 4 分钟。
[ 1.015598] tpm_tis 00:06: 1.2 TPM (device-id 0xB, rev-id 16)
[ 1.019920] ACPI: Battery Slot [BAT1] (battery present)
[ 1.321725] isapnp: No Plug & Play device found
[ 93.668058] random: nonblocking pool is initialized
[ 121.040029] tpm_tis 00:06: Operation Timed out
[ 121.052385] tpm_tis 00:06: A TPM error (-62) occurred attempting to determine the timeouts
[ 241.088029] tpm_tis 00:06: Operation Timed out
[ 241.100484] tpm_tis 00:06: Could not get TPM timeouts and durations
到目前为止我已经尝试过:
- 在 BIOS 中启用和禁用 TPM(无变化)
- 在 /etc/modprobe.d/blacklist-local.conf 中为 tpm_tis(和其他 TPM 模块)添加黑名单项(无变化)
我可以向 grub 添加一个启动参数来告诉内核停止尝试与 TPM 硬件通信吗?
答案1
在启动菜单中按“ ”。在启动选项中添加以下e
命令。您可以将其添加到 grub 文件中:nolapic
ro
编辑您的grub.cfg
并更改
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
到
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nolapic"
保存文件,然后运行update-grub
。
答案2
修改我的文件中的以下几行/etc/default/grub
解决了该问题:
GRUB_CMDLINE_LINUX_DEFAULT="acpi=nomsi quiet splash"
GRUB_CMDLINE_LINUX="tpm_tis.interrupts=0"
答案3
tpm 被编译到了原装 Ubuntu 内核中,因此无法通过启动参数或黑名单完全禁用它。
为了解决在装有 Linux Mint 17(基于 Ubuntu)的 Vaio SZ3 上出现的这个问题,我重建了内核并禁用了 tpm,如下所示:
跟随构建自己的内核对于基本流程,并附加以下内容:
- 按照“修改配置”中所述运行 menuconfig 步骤。选择 Y 编辑“i386 generic”或“amd64 generic”配置(N 编辑所有其他配置)。进入 menuconfig 后,使用 / 命令搜索 CONFIG_IMA,按 1(或任何指示的数字)导航到它,然后按 N 禁用它。对 CONFIG_TPM 执行相同操作。我还禁用了 CONFIG_DEBUG_INFO 以减少构建所需的磁盘空间。
- 在构建之前,
touch debian.master/abi/i386/ignore
(或 amd64)禁用 ABI 检查,该检查会由于缺少 TPM 和更改的哈希值而失败(如果您像我一样禁用 CONFIG_DEBUG_INFO)。 - 在安装构建的 .deb 文件之前,你可能需要
sudo apt-get install linux-tools-$(uname -r) linux-tools-common
请记住,您需要防止内核在将来自动更新,或者使用新版本再次执行此过程。
答案4
我也遇到过同样的事情这修复效果很好
# edit /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash tpm_tis.force=1"