Off comes the wheel!

The purpose of this post is to tell a story about something that happened to me at the end of December.

I was on my way to Snowshoe, WV, driving down I-81 south with my girlfriend Kathleen. Kathleen’s sister Jess was riding in her parents’ 4-door F250 diesel pickup, with her boyfriend Matt behind the wheel.

Kathleen and I start to notice that the left rear wheel appears to be wobbling a bit on the F250. As she and I are debating whether it’s a dirt pattern or a genuine wobble, the hubcap (it’s not a true hubcap, it just covers the lugnuts) flys off! Now, hubcaps are cheap, and nobody stops to pick them up on the interstate, but they don’t usually go flying off on smooth flat pavement. Kath and I thus assess that we should tell Matt to slow down and get off at the next exit, because we think that left rear wheel is being sketchy.

We call Jess on her cell phone and have her tell Matt to slow down and get off at the next exit. At almost the exact same time that Kath snaps her cellphone closed, the studs on which the lugnuts that hold the left rear wheel on thread onto shear off. The brake rotor (the F250 has 4-wheel disc brakes) drops onto the inside of the wheel. It hits with enough force to pierce the alloy wheel… thus deflating the tire for the duration of its relationship with the read axle (approx. 1/3 of a second). The wheel/tire then goes flying off to the left and starts rolling down the interstate (at about 55 mph mind you). The brake rotor drops onto the asphalt and starts showering my little truck with sparks and bits of asphalt. Unphased, Matt stops pressing the gas in the F250 and lets it coast to a stop, easing it onto the shoulder. The wheel/tire hits the guardrail and “sticks” to it because of its momentum and the angle of its lean. It goes waaaay down the road past where the truck stopped.

After everything came to rest, I talked with Matt about this incident (since we had nothing else to do while we sat stranded on the side of I-81). He said he just thought he had a flat. It was not until the wheel rolled passed him that he realized he was in fact without a wheel. Hot-damn!

Now, what good would a story like this be without pictures? As this whole fiasco was part of our new years plans, these pictures are inter-mixed with my new years pictures.

Enjoy!

Atmel TPM on an IBM T42p

Update: kernel 2.6.12 includes the device driver already!

Today I got IBM’s v2.0 device driver for the TPM, written by Leendert van Doorn, to work with my IBM T42p laptop. This laptop includes an Atmel TPM chip. I’m not certain about the part number of this particular chip, but the driver reports version 1.1.0.6 upon installation. I *think* that is the TPM chip version, and not the driver version (since it should be v2.0), but this stuff is all so new that I’m not certain about any of it.

IBM’s tarball contains two folders: libtpm, and tpm-2.0. libtpm is the library against which one can write programs. tpm-2.0 is the kernel module. I’m running Debian with a 2.6.9 kernel.

The kernel module has no installation script, so one must manually tell the kernel to load this module. For me, this entailed: creating the directory /lib/modules/2.6.9/misc, and copying the tpm.ko file to the new directory. I then edited /etc/modules and added “tpm” on its own line. Finally, I ran depmod -a to tell the kernel I added a new module.

Upon module installation, the following three lines are output to the syslog:


tpm: Atmel TPM version 1.1.0.6
tpm: StartUp failed
tpm: PhysicalPresence failed

As far as I can tell, things are working correctly. I don’t know what these error messages mean.

Upon building libtpm, a bunch of utilities are created. Among them, tpm_demo. When I first tried to run tpm_demo, I received an I/O error. After some googling, I realized that it is necessary to create /dev/tpm for things to work correctly. For this, I did “mknod /dev/tpm c 10 224” (without the quotes). I figured this out by looking at this page.

Most of the commands I mention in here have to be run as root. After doing the mknod, I suggest you reboot, just to be safe.

With everything up and running, modinfo tpm yields:

filename: /lib/modules/2.6.9/misc/tpm.ko
author: Leendert van Doorn (leendert@watson.ibm.com)
description: TPM Driver, version 2.0
license: GPL
vermagic: 2.6.9 preempt PENTIUMM gcc-3.3
depends:
alias: pci:v00008086d00002440sv*sd*bc*sc*i*
alias: pci:v00008086d0000248Csv*sd*bc*sc*i*
alias: pci:v00008086d000024C0sv*sd*bc*sc*i*
alias: pci:v00008086d000024CCsv*sd*bc*sc*i*
alias: pci:v00008086d000024D0sv*sd*bc*sc*i*
alias: pci:v00001022d00007468sv*sd*bc*sc*i*


Good luck!