700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 树莓派Linux内核编译选项如何开启TPM 2.0

树莓派Linux内核编译选项如何开启TPM 2.0

时间:2020-09-29 16:36:50

相关推荐

树莓派Linux内核编译选项如何开启TPM 2.0

本文更新于-08-11

首发于简书, 文章链接 /p/174844b99716

同步至GitHub:/liuqun/linux/wiki

定制树莓派内核源码, 通过树莓派SPI接口加载并访问TPM2.0设备

所需硬件: X86主机一台, 树莓派3-B型号开发板一块, 大容量Micro-SD卡+USB读卡器一个, 英飞凌TPM2.0评估板一套

所需软件: 任意版本树莓派固件(推荐使用最新版本), Ubuntu Linux 虚拟机, gcc-arm-linux-gnueabihf 交叉编译器, ncurses.h

Ubuntu Linux x86 虚拟机软件包准备

sudo apt-get updatesudo apt-get install -y libncurses5-devsudo apt-get install -y gcc-arm-linux-gnueabihf binutils-arm-linux-gnueabihfsudo apt-get install -y git-core

下载阿群已经配置好的树莓派内核源码(上游开发者也可以到源头 或树莓派内核分支 /raspberrypi/linux 自行下载官方 4.9 内核源码包, 然后自己打补丁)

git clone --depth=1 /liuqun/linux.git --branch rpi-4.9.y-devel2

cd linux

应用默认的内核配置文件bcm2709_defconfig

make ARCH=arm bcm2709_defconfig

进入交互式菜单

make ARCH=arm menuconfig

到menuconfig菜单选中

Device Drivers----Character devices---<M>TPM Hardware support

选中TPM Interface Specification 1.3 Interface / TPM 2.0 FIFO Interface - (SPI) (NEW)模块

返回并保存内核配置文件

编译内核

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage dtbs modules -j$(nproc)

如何将编译好的 Linux 新内核安装到树莓派 SD 卡

取出树莓派的SD卡, 通过读卡器插入 Ubuntu 主机或将读卡器 USB 设备接入 VMware 虚拟机。Ubuntu 默认自动将 U 盘挂载到/media/$USER/boot/media/$USER/【根文件系统分区】

ls /media/$USER

(以下为覆盖式安装, 如果不放心请自行备份SD卡上的原有内核及模块文件)

scripts/mkknlimg arch/arm/boot/zImage /media/$USER/boot/kernel7.imgcp arch/arm/boot/dts/*.dtb /media/$USER/boot/cp arch/arm/boot/dts/overlays/*.dtb* /media/$USER/boot/overlays/sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules_install INSTALL_MOD_PATH=/media/$USER/【根文件系统分区】

树莓派配置

sudo raspi-config

选中5. Interfacing Options---P4 SPI(启用/禁用SPI串口)

重启树莓派,开机后检查/dev/tpm0设备文件是否已经加载就绪

ls -l /dev/tpm0sudo dmesg | grep tpmls /lib/modules/`uname -r`/kernel/drivers/char/tpmtpm.ko tpm_tis_core.ko tpm_tis_spi.ko

树莓派本地编译 TPM2.0 软件栈

git clone -b 1.x /tpm2-software/tpm2-tss.git TPM2.0-TSSpushd TPM2.0-TSSwget /autoconf-archive/autoconf-archive-.09.28.tar.xztar xJf autoconf-archive-.09.28.tar.xzcp autoconf-archive-.09.28/m4/ax_code_coverage.m4 m4/nproc=4./bootstrap && ./configure && make -j$(nproc)make install DESTDIR=$HOME/my-tpm2-tss-installation-dirpopd

参考文档:

Infineon TPM 2.0 Application Note 这篇文档介绍了如何打补丁以及编译4.4内核。注意当前最新的树莓派固件是Linux-4.9内核, 其中已经内置TPM2.0设备驱动, 不需要之前那个4.4内核补丁了, 另外4.4和4.9驱动模块ko文件的名称不一样, 一个是tpm_spi_tis.ko另一个是tpm_tis_spi.ko

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。