应用TPM作linux可信起动的初步实践
首先要有一台带有TPM 1.2芯片,装有linux系统的计算机。
使用下面这条命令可以查看系统内核tpm驱动情况:
$ ls -la /lib/modules/`uname -r`/kernel/drivers/char/tpm
总计 100
drwxr-xr-x 2 root root 4096 02-03 21:47 .
drwxr-xr-x 7 root root 4096 02-03 21:47 ..
-rwxr--r-- 1 root root 9812 01-21 15:27 tpm_atmel.ko
-rwxr--r-- 1 root root 11128 01-21 15:27 tpm_bios.ko
-rwxr--r-- 1 root root 15860 01-21 15:27 tpm_infineon.ko
-rwxr--r-- 1 root root 19184 01-21 15:27 tpm.ko
-rwxr--r-- 1 root root 10796 01-21 15:27 tpm_nsc.ko
-rwxr--r-- 1 root root 16516 01-21 15:27 tpm_tis.ko
tpm_tis模块可以完全使用TPM1.2。需要这个模块,没的话可能需要重新编译新的内核。
接下来可以这几条命令加载TPM驱动:
$ sudo modprobe tpm_bios
$ sudo modprobe tpm
$ sudo modprobe tpm_tis force=1 interrupts=0
$ dmesg
...
[xxx.yyy] tpm_tis tpm_tis: 1.2 TPM (device-id 0x4A10, rev-id 78)
如果显示有类似以上信息,说明设置成功。
需要安装TrouSerst和tpm-tools来管理TPM。
$ sudo /etc/init.d/tcsd start
用上面这条命令来起动这个管理工具
然后检查下tpm是不是可用了。
$ sudo tpm_version
TPM Version: 01010000
Manufacturer Info: 53544d20
好了。现在让我们来初始化TPM芯片
$ sudo tpm_takeownership
Enter owner password: xxxxxx
Confirm password: xxxxxx
Enter SRK password: yyyyyyyy
Confirm password: yyyyyyyy
记住! 这条命令只能执行一次!之后不能再常识!
如果出现下面这个错误:
Tspi_TPM_GetPubEndorsementKey failed: 0x00000023 - layer=tpm, code=0023 (35), No EK
则说明Endorsement Key不存在,需要下面这条命令创建。
$ sudo tpm_createek
ok! 之后我们就可以得到Public Endorsement Key
$sudo tpm_getpubek
期间需要输入owner password。
接下来需要安装TrustedGRUB,然后对其中一些文件做修改。
还有很重要的一处!
在内核源代码文件中的 drivers/char/tpm/tpm_tis.c
view plaincopy to clipboardprint?[...] static struct pnp_device_id tpm_pnp_tbl __devinitdata = { {"PNP0C31", 0}, /* TPM
相关文档:
LINUX中时间有两种:
1)日历时间
2)进程时间
日历时间顾名思义即用来获取日历;
主要涉及到的函数有:
time(time_t*);
stime(time_t*);
tm* gmtime(time_t*);
tm* localtime(time_t*);
char *strftime(tm*);
char *asctime(tm*);
time_t* mktime(tm*);
数据结构如下:
time_t
struct tm{
int tm_se ......
直接上例子吧。只是捕获某个设备的中断而已。。。
该文件的名字是irq.c
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/timer.h>
#define DEBUG
#ifdef DEBUG
#define MSG(message, args...) printk( ......
1. #vi /etc/profile,增加ulimit -HSn 65536
2. #vi /etc/security/limits.conf,为你的用户增加
user soft nofile 38192
user hard nofile 65536
3. 重启Shell即可
4. ulimit -a 查看设置是否成功。
5. 查看系统总限制的命令:
#cat /proc/sys/fs/file-max
6 ......
1. 查看socket状态
server1:~ # netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
TIME_WAIT 257
CLOSE_WAIT 117
FIN_WAIT2 2
ESTABLISHED 228
2. #vi /etc/sysctl.conf
3. 增加
net.ipv4.tcp_keepalive_time = 120
net.ipv4.tcp_keepalive_probes = 2
&n ......
http://www.soidc.net/articles/1215484977397/20080407/1215945405315_1.html
一、在一个已建好的文件系统上进行修改
设已建立好的文件系统压缩文件为ramdisk.gz
1、解压
#cd ramdisk.gz所在目录
#gunzip ramdisk.gz
&nb ......