4

我想将受信任的发送/受信任的接收发送到我的硬盘驱动器。我找到了这个页面: ATA Trusted commands in Linux。(感谢 ehemient 和 Dmitry Obukhov)。

目前,我的问题是如何设置 libata allow_tpm = 1。我使用的是 Ubuntu 13.10。我的代码与 Dmitry Obukhov 相同(它非常适用于识别和所有其他命令,但不适用于受信任的命令。)

在看了另一面之后,这些是我所做的:

- In BIOS, set AHCI mode.

在终端:

- sudo dmesg -c:

   [    0.157207] SCSI subsystem initialized.

   [    0.157209] ACPI: bus type ATA registered.

   [    0.157236] libata version 3.00 loaded.

   [    0.878999] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 6 ports 6
   Gbps 0x3 impl SATA mode.

   [    0.887125] ata1: SATA max UDMA/133 abar m2048@0xf7c16000 port
   0xf7c16100 irq 41.

   [    0.887127] ata2: SATA max UDMA/133 abar m2048@0xf7c16000 port
   0xf7c16180 irq 41.

   [    1.205449] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl
   300).

   [    1.205477] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl
   300).

   [    1.206127] ata2.00: supports DRM functions and may not be fully
   accessible.

   [    1.206131] ata2.00: ATA-8: ST500LT025-1A5142, 0001SDM7, max
   UDMA/133.

   [    1.206133] ata2.00: 976773168 sectors, multi 1: LBA48 NCQ (depth
   31/32).

   [    1.206159] ata1.00: supports DRM functions and may not be fully
   accessible.

   [    1.206163] ata1.00: ATA-8: ST500LT025-1A5142, 0001SDM7, max
   UDMA/133.

   [    1.206165] ata1.00: 976773168 sectors, multi 1: LBA48 NCQ (depth
   31/32).



- systool -a -v -m libata

  Module = "libata"

  Attributes:
    uevent              = <store method only>
    version             = "3.00"

  Parameters:
    acpi_gtf_filter     = "7"
    allow_tpm           = "0"
    ata_probe_timeout   = "0"
    atapi_an            = "0"
    atapi_dmadir        = "0"
    atapi_enabled       = "1"
    atapi_passthru16    = "1"
    dma                 = "7"
    fua                 = "0"
    ignore_hpa          = "0"
    noacpi              = "0"
    zpodd_poweroff_delay= "30"

- sudo nano /etc/modprobe.d/local.conf.
  Add this line: options libata allow_tpm=1

- sudo nano /boot/grub/menu.lst.
  Add this line: combined_mode=libata

- sudo update-initramfs -u&& sudo update-grub2

重新启动后,我systool -a -v -m libata再次运行,没有任何变化allow_tpm。我应该怎么做才能改变allow_tpm

4

3 回答 3

4

如果您想allow_tpm永久更改grub,请通过添加libata.allow_tpm=1GRUB_CMDLINE_LINUX_DEFAULTin 中进行更改/etc/default/grub。例如:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash libata.allow_tpm=1"

之后运行sudo update-grub并重新启动。

于 2016-06-14T21:32:24.653 回答
1

我在 CentOs 7 上试过这个:Uefi Boot

添加内核标志:libata.allow_tpm=1

我为 CentOs 7 尝试了这个:Uefi Boot 并且它的工作原理很迷人:

  1. 编辑/etc/default/grub
  2. 添加GRUB_CMDLINE_LINUX_DEFAULT="quiet splash libata.allow_tpm=1"
  3. 保存
  4. 运行命令:grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg 或对于非 uefi 操作系统grub2-mkconfig -o /boot/grub2/grub.cfg

  5. systemctl reboot

  6. cat /proc/cmdline你看到如下
BOOT_IMAGE=/vmlinuz-3.10.0-957.27.2.el7.X86_64 root=/dev/mapper/centos-root ro crashkernel=autord.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quite splash libata.allow_tpm=1
于 2019-08-19T12:06:06.097 回答
0

我刚刚成功更改了 allow_tpm 的值,因此 ATA Trusted 命令现在可以工作。

- cd /sys/module/libata/parameters
- sudo chmod 644 allow_tpm
- sudo nano allow_tpm
  Delete number 0 and write number 1. Save file.

也许这不是一种完全正确的方法,因为每次我重新启动计算机时,文件 allow_tpm 中的值都会重置为 0。

于 2013-12-12T01:18:39.763 回答