<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=H</id>
	<title>ThinkWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=H"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/H"/>
	<updated>2026-05-25T14:36:25Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Embedded_Security_Subsystem&amp;diff=9141</id>
		<title>Embedded Security Subsystem</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Embedded_Security_Subsystem&amp;diff=9141"/>
		<updated>2005-07-21T20:15:14Z</updated>

		<summary type="html">&lt;p&gt;H: /* Linux Support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;&amp;quot; | [[Image:ESS.jpg|IBM Embedded Security Subsystem]] __NOTOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== The Embedded Security Subsystem ===&lt;br /&gt;
The Embedded Security Subsystem is nothing but a chip installed on the Thinkpads mainboard that can take care of certain security related tasks conforming to the TCPA standard. It was first introduced among the T23 models and is now under the name Embedded Security Subsystem 2.0 an integral part of most of the modern Thinkpads. The functions of the chip are bound to three main groups:&lt;br /&gt;
* public key functions&lt;br /&gt;
* trusted boot functions&lt;br /&gt;
* initialization and management functions&lt;br /&gt;
&lt;br /&gt;
The purpose of the whole thing is to keep the users sensitive data out of range from software based attacks (like viruses, internet attacks etc.). One way the chip offers to achieve this is by providing storage for keys along with the neccessary functions to handle them within itself, so that a i.e. a private key never has to leave the chip (can't be seen by any piece of software). Besides this there are more complex topics covered by the functionality of the chip. If you want to find out more about it you can find good documents on the [http://www.research.ibm.com/gsal/tcpa/ IBM Research TCPA resources page].&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Trusted or Treacherous?==&lt;br /&gt;
&lt;br /&gt;
TC - Trusted Computing - will be the biggest change of the information landscape since decades. Besides positive features like a more secure hardware storage for cryptographic keys, an analysis of the proposed TCG-standards shows some problematic properties. &amp;lt;br /&amp;gt;&lt;br /&gt;
As Thinkpads of recent generations following the Thinkpad T23 ([[Embedded Security Subsystem#Models featuring this Technology|see the complete list of models]]) are equipped with this disputed TCG-/TCPA-Technology, it can be interesting, which promises of the TCG are fulfilled inside your ThinkPad and which parts of the TCG-specifications still seem to be a privacy issue for every user of digital devices like a MP3-player or a ThinkPad - so please read [[TCPA/TCG - Trusted or Treacherous|this article]] for more details.&lt;br /&gt;
&lt;br /&gt;
==Linux Support==&lt;br /&gt;
Two linux drivers are available, a [[tpm|classical one]] and a [[tpmdd|newer one]].&lt;br /&gt;
Coverage of functionality of the first is unknown so far, the second is part of a bigger project aiming to provide a usable security framework.&lt;br /&gt;
&lt;br /&gt;
David Stafford (one of the developers of the tpm code at IBM) on March 10, 2005 sent me the most recent version of the tpm-kml code. With his permission, I quote his email:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;I am attaching our latest driver and library.&lt;br /&gt;
This version is in the process of kernel mailing list review, and&lt;br /&gt;
will hopefully be accepted into the official kernel. It works&lt;br /&gt;
much better across various 2.6 kernels. Note that this builds&lt;br /&gt;
three modules tpm, tpm_atmel, and tpm_nsc. You modprobe the&lt;br /&gt;
tpm_atmel (for all current shipping atmel based systems), or&lt;br /&gt;
tpm_nsc (for the coming national based systems).&lt;br /&gt;
&lt;br /&gt;
Also note that there is a conflict with the snd-intel8x0&lt;br /&gt;
kernel module (they each try to grab the LPC bus). You can&lt;br /&gt;
either: load the tpm modules first (such as in initrd or&lt;br /&gt;
rc.sysinit, before sound), or recompile the snd-intel8x0, turning&lt;br /&gt;
off the MIDI and JOYSTICK support. The latest 2.6.11 version&lt;br /&gt;
of snd-intel8x0 also reportedly fixes things.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Compiling this library was easy. Compiling the driver on my 2.6.8-686 (debian testing) laptop failed. But the library works with the driver I compiled from the tpm-2.0 package IBM made available on its pages (see the links below).&lt;br /&gt;
&lt;br /&gt;
Gijs&lt;br /&gt;
&lt;br /&gt;
The T43 requires a patch posted to the LKML by Kylene Jo Hall: [http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=111884603309146&amp;amp;w=2 LKML posting]. An updated patch for linux 2.6.12 is available [http://shamrock.dyndns.org/~ln/linux/tpm_2.6.12.diff here].&lt;br /&gt;
&lt;br /&gt;
The atmel driver comes with 2.6.12.&lt;br /&gt;
&lt;br /&gt;
==Versions &amp;amp; Features==&lt;br /&gt;
=== Embedded Security Chip ===&lt;br /&gt;
IBM introduced it's TCPA/TCG features with some of the [[:Category:T23|T23]] models. The earlier of them didn't yet have the Embedded Security Subsystem, but a kind of pre 1.0 version called the Embedded Security Chip. This chip had the following capabilities:&lt;br /&gt;
*Data communications authentication and encryption&lt;br /&gt;
*Storage of encrypted passwords&lt;br /&gt;
&lt;br /&gt;
=== Embedded Security Subsystem (1.0) ===&lt;br /&gt;
The original Embedded Security Subsystem (in IBM documents there is no use of the additive version-number 1.0) claims to be compliant with TCG specs, but apparently did not fully implement any specific TCG spec.&lt;br /&gt;
&lt;br /&gt;
The Embedded Security Subsystem has the following features:&lt;br /&gt;
*hardware key storage&lt;br /&gt;
*multi-factor authentication&lt;br /&gt;
*local file encryption&lt;br /&gt;
*enhances VPN security&lt;br /&gt;
&lt;br /&gt;
=== Embedded Security Subsystem 2.0 ===&lt;br /&gt;
The Embedded Security Subsystem 2.0 conforms to the TCG TPM 1.1b specification, with a TPM manufactured by either Atmel or National Semiconductor.&lt;br /&gt;
&lt;br /&gt;
The Embedded Security Subsystem 2.0 has the following features:&lt;br /&gt;
*hardware key storage&lt;br /&gt;
*multi-factor authentication&lt;br /&gt;
*local file encryption&lt;br /&gt;
*enhances VPN security&lt;br /&gt;
*TCG compliant&lt;br /&gt;
&lt;br /&gt;
==Models featuring this Technology==&lt;br /&gt;
===IBM Embedded Security Chip===&lt;br /&gt;
*ThinkPad {{T23}}&lt;br /&gt;
===IBM Embedded Security Subsystem===&lt;br /&gt;
*ThinkPad {{A30p}}&lt;br /&gt;
*ThinkPad {{R31}}&lt;br /&gt;
*ThinkPad {{T23}}, {{T30}}&lt;br /&gt;
*ThinkPad {{X22}}, {{X23}}, {{X24}}&lt;br /&gt;
===IBM Embedded Security Subsystem 2.0===&lt;br /&gt;
*ThinkPad {{R32}}, {{R40}}, {{R50}}, {{R50p}}, {{R51}}, {{R52}}&lt;br /&gt;
*ThinkPad {{T40}}, {{T40p}}, {{T41}}, {{T41p}}, {{T42}}, {{T42p}}, {{T43}}, {{T43p}}&lt;br /&gt;
*ThinkPad {{X30}}, {{X31}}, {{X32}}, {{X40}}, {{X41}}, {{X41T}}&lt;br /&gt;
[[Category:Glossary]]&lt;br /&gt;
&lt;br /&gt;
==TCPA/TCG clean models==&lt;br /&gt;
*all models produced before 2000&lt;br /&gt;
*all i Series models&lt;br /&gt;
*ThinkPad [[:Category:240X|240X]]&lt;br /&gt;
*ThinkPad [[:Category:A20m|A20m]], [[:Category:A20p|A20p]], [[:Category:A21e|A21e]], [[:Category:A21m|A21m]], [[:Category:A21p|A21p]], [[:Category:A22e|A22e]], [[:Category:A22m|A22m]], [[:Category:A22p|A22p]], [[:Category:A30|A30]]&lt;br /&gt;
*ThinkPad [[:Category:T20|T20]], [[:Category:T21|T21]]&lt;br /&gt;
*ThinkPad [[:Category:X20|X20]], [[:Category:X21|X21]], [[:Category:X22|X22]]&lt;br /&gt;
*ThinkPad [[:Category:TransNote|TransNote]]&lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
*[http://www.pc.ibm.com/us/think/thinkvantagetech/security.html IBMs ThinkVantage&amp;lt;sup&amp;gt;TM&amp;lt;/sup&amp;gt; Technologies Embedded Security Subsystem page]&lt;br /&gt;
*[http://www.pc.ibm.com/presentations/us/thinkvantage/56/index.html?shortcut=ess&amp;amp; IBMs ThinkVantage&amp;lt;sup&amp;gt;TM&amp;lt;/sup&amp;gt; Technologies Flash presentation - Embedded Security Subsystem]&lt;br /&gt;
*[http://www.research.ibm.com/gsal/tcpa/ IBM Research TCPA resources page]&lt;br /&gt;
*[http://www.prosec.rub.de/trusted_grub.html Trusted Grub]&lt;/div&gt;</summary>
		<author><name>H</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_make_use_of_Dynamic_Frequency_Scaling&amp;diff=6755</id>
		<title>How to make use of Dynamic Frequency Scaling</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_make_use_of_Dynamic_Frequency_Scaling&amp;diff=6755"/>
		<updated>2005-07-21T20:03:29Z</updated>

		<summary type="html">&lt;p&gt;H: /* using the sys interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===general===&lt;br /&gt;
Linux supports Dynamic Frequency Scaling for ThinkPads with mobile Pentium III, Pentium 4 and Pentium M processors.&lt;br /&gt;
&lt;br /&gt;
===configuring the kernel===&lt;br /&gt;
&lt;br /&gt;
====2.4 kernels====&lt;br /&gt;
Todo...&lt;br /&gt;
&lt;br /&gt;
====2.6 kernels====&lt;br /&gt;
&lt;br /&gt;
You need to enable the cpu frequency scaling for your kernel (usually your distros kernel will have this enabled):&lt;br /&gt;
 CONFIG_CPU_FREQ=y&lt;br /&gt;
&lt;br /&gt;
You need to load enable governors, if not already done in your distros default kernel:&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_PERFORMANCE=y&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_POWERSAVE=y&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_USERSPACE=y&lt;br /&gt;
&lt;br /&gt;
Since 2.6.10 there is the ondemand governor that does cpu frequency scaling in kernel so you dont need userspace programs like powernowd etc.&lt;br /&gt;
It can be enabled with:&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND=y &lt;br /&gt;
&lt;br /&gt;
*If you have a Coppermine-piix-smi based Thinkpads like from the A2x, X2x and T2x series you need to enable the &amp;lt;tt&amp;gt;speedstep-ich&amp;lt;/tt&amp;gt; driver in the kernel and load it if it's built as module. You might want to look at [[How to get SpeedStep working on Coppermine-piix4-smi based Thinkpads | this page]].&lt;br /&gt;
&lt;br /&gt;
*If you have a p4-class celeron based Thinkpad like the R40e you might want to look at [[How to get SpeedStep working on P4-class-Celeron based Thinkpads | this page]]&lt;br /&gt;
&lt;br /&gt;
===using the sys interface===&lt;br /&gt;
&lt;br /&gt;
The files in {{path|/sys/devices/system/cpu/cpu0/cpufreq/}} provide information and a means of controlling the frequency scaling subsystem.&lt;br /&gt;
Seed values are given in Khz. You need to be root to access the /sys filesystem.&lt;br /&gt;
&lt;br /&gt;
Your max speed is at {{path|/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq}}.&lt;br /&gt;
:{{cmdroot|cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq}}&lt;br /&gt;
:{{cmdresult|700000}}&lt;br /&gt;
Your min speed is at {{path|/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq}}.&lt;br /&gt;
:{{cmdroot|cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq}}&lt;br /&gt;
:{{cmdresult|500000}}&lt;br /&gt;
You can write to {{path|/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed}} to change the current speed.&lt;br /&gt;
:{{cmdroot|echo 700000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed}}&lt;br /&gt;
:{{cmdroot|cat /proc/cpuinfo  | grep &amp;quot;cpu MHz&amp;quot;}}&lt;br /&gt;
:{{cmdresult|cpu MHz         : 697.252}}&lt;br /&gt;
:{{cmdroot|echo 900000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed}}&lt;br /&gt;
:{{cmdroot|cat /proc/cpuinfo  | grep &amp;quot;cpu MHz&amp;quot;}}&lt;br /&gt;
:{{cmdresult|cpu MHz         : 976.152}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====using the sys interface with scaling gouvernors====&lt;br /&gt;
&lt;br /&gt;
You can compile the scaling gouvernours into your kernel or compile it as module. You'll find the gouvernors with 'make menuconfig' here:&lt;br /&gt;
: Power managemant options (ACPI, APM)   ---&amp;gt;&lt;br /&gt;
:: CPU Frequency scaling  ---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the new kernel is booted, you can see with (as root)&lt;br /&gt;
:{{cmdroot|cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors}}&lt;br /&gt;
:{{cmdresult|conservative ondemand powersave userspace performance}}&lt;br /&gt;
what gouvernors are available.&lt;br /&gt;
&lt;br /&gt;
A Short Overview over the available gouvernors:&lt;br /&gt;
# ondemand&lt;br /&gt;
#* This driver is a dynamic cpufreq policy governor. It changes Frequenzy based on the processor load.&lt;br /&gt;
# conservative&lt;br /&gt;
#* New since 2.6.12. Similar to ''ondemand''. Optimized for battery powered environments and AMD64.&lt;br /&gt;
# powersafe&lt;br /&gt;
#* Like the name says, your battery would choose this one ;). It sets the Frequency always to the lowest available.&lt;br /&gt;
# userspace&lt;br /&gt;
#* You have to choose this one, if other programs should manage your CPU Frequency.&lt;br /&gt;
# performance&lt;br /&gt;
#* This gouvernour sets your Frequency always to the highest available.&lt;br /&gt;
&lt;br /&gt;
Now we set our gouvernor:&lt;br /&gt;
What is our current governor?&lt;br /&gt;
:{{cmdroot|cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor}}&lt;br /&gt;
:{{cmdresult|userspace}}&lt;br /&gt;
Set new gouvernor and watch if it has changed&lt;br /&gt;
:{{cmdroot|echo conservative &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor}}&lt;br /&gt;
:{{cmdroot|cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor}}&lt;br /&gt;
:{{cmdresult|conservative}}&lt;br /&gt;
&lt;br /&gt;
Congrats! Your gouvernor is active.&lt;br /&gt;
&lt;br /&gt;
I set the gouvernor in my rc.local.&lt;br /&gt;
&lt;br /&gt;
===configuring SpeedStep daemons===&lt;br /&gt;
&lt;br /&gt;
Don't forget to enable the userspace governor to have a userspace daemon do the frequency scaling. If it is built as module, load it as &amp;lt;tt&amp;gt;cpufreq-userspace&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Note that since 2.6.10, there is also the ondemand governor in the kernel, which replaces any userspace daemon for cpu scaling and works very well.&lt;br /&gt;
&lt;br /&gt;
There are plenty of userspace frequency scaling daemons available:&lt;br /&gt;
&lt;br /&gt;
*[[How to configure cpufreqd | cpufreqd]]&lt;br /&gt;
*[[How to configure cpudynd | cpudynd]]&lt;br /&gt;
*[[How to configure speedfreqd | speedfreqd]]&lt;br /&gt;
*[[How to configure powersaved | powersaved]]&lt;br /&gt;
*[[How to configure powernowd | powernowd]]&lt;br /&gt;
*[[How to use cpufrequtils | cpufrequtils]]&lt;br /&gt;
&lt;br /&gt;
[[Category:570E]] [[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]]&lt;/div&gt;</summary>
		<author><name>H</name></author>
		
	</entry>
</feed>