Hi,
As this is a fairly old posting I'm not quite sure if anyone is still interested, but anyway the mistake is here:
What's missing in the initrd are a couple of libs if you compile cryptsetup from source as you described. It doesn't help to create a symlink, you need to compile a statically linked binary instead. ./configure --help tells you how. I think this produces cryptsetup.static by itself, but I'm not really sure about that.
Also you have to add "sha1:sha256" to the modules list so that cryptsetup can complete its job at boot time.
I've done it this way, and it unlocks the drive (but for me it then fails to cooperate with LVM...)
Hope that helps,
Fredl



