TPM (device-id 0x0, rev-id 78)

I’d try to use tpm (trusted platform module) built in my laptop on Debian 8. Most of tpm_* programs gives back answer:

root@debian:~# tpm_takeownership 
Enter owner password: 
Confirm password: 
Enter SRK password: 
Confirm password: 
Tspi_TPM_TakeOwnership failed: 0x00000008 - layer=tpm, code=0008 (8), The TPM target command has been disabled

tcsd gives back:

root@debian:~# tcsd -f
TCSD TDDL ERROR: Could not find a device to open!

modules are loaded:

root@debian:~# lsmod | grep tpm
tpm_tis                17231  0 
tpm                    31511  2 tpm_tis

And finally, dmesg gives back:

root@debian:~# dmesg | grep tpm
[    6.743307] tpm_tis 00:05: 1.2 TPM (device-id 0x0, rev-id 78)

TPM is turned on in BIOS. Any clue?

Answer

I’m working on a secure boot on a BeagleBone Black with an Atmel Trusted Platform Module. If you didn’t find a solution, this is what I did.

I use Buildroot to create a simple Embedded Linux for the BeagleBone Black(BBB).
I added the tpm-tools and tpm-tss with Buildroot.

I added the following option as module:

  • Hardware Random Number Generator Core support
  • TPM Hardware support
  • TPM Interface Specification 1.2 Interface / TPM 2.0 FIFO Interface
  • TPM Interface Specification 1.2 Interface (I2C – Atmel)

I also modified my device tree for my BBB and add the following modification:

&i2c2 {
    tpm29:tpm@29 {
                compatible = "atmel,at97sc3204t";
                reg = <0x29>;
        };
};

When I start my embedded Linux on the BBB, I load the following drivers like this:

# modprobe tpm_i2c_atmel
# modprobe tpm_tis
# modprobe tpm_tis_core
# modprobe tpm

then I start the tcsd daemon like this:

# /usr/sbin/tcsd

You can make sure you see /usr/sbin/tcsd in the top / htop command.

After those steps, I’m able to talk to my TPM.

Attribution
Source : Link , Question Author : Daniel Szydłowski , Answer Author : pevik

Leave a Comment