TrueCrypt on the Pogoplug
Categories: PogoPlug Development
*** UPDATE: Note that OpenPogo has been updated to PlugApps, and there are numerous compatibility issues with the upgraded V2 Pogoplug. These instructions apply to V1 Pogoplugs only, at the state OpenPogo was in when the article was written. For more information on the current state of PlugApps for both versions of Pogoplug, click here and here. ***
If you are not familiar with TrueCrypt, it is an open-source cross-platform real-time on-the-fly encryption application. You can find more information here or here. It allows for creation of container volumes .tc file or full device/partition encryption.
After some messing around with the cross-compiler and kernel patches, I have binaries for the kernel loopback device, truecrypt and iozone.
WARNING: It is highly recommended to use TrueCrypt in read-only mode until the kernel is upgraded to a version higher than 2.6.24. Please do not use this information on production data. Iwill take no responsibility for any data loss that occurs as a result of this howto.
Quick Start
- Download the kernel loopback device from here and install it with insmod ./loop.ko. It should insert cleanly into the kernel.
- Install the device mapper package with ipkg install dmsetup.
- Download TrueCrypt compiled for the PogoPlug from here and place it in /opt/bin.
- Create the mapper device folder mkdir /dev/mapper.
- Determine your mapper id from cat /proc/misc | grep device-mapper | awk '{print $1}' .
- Create the control device file using the id determined in the previous step mknod /dev/mapper/control c 10 id.
In order to test performance, I compiled the Iozone benchmark for the PogoPlug. You can download compiled binary from here.
Details
The loopback device kernel module was compiled using the kernel sources/patches published by PogoPlug on their website. I used the Cygnus Lite GNU ARM toolchain to cross-compile the kernel module. Compiling TrueCrypt requires PKCS#11 headers and FUSE. I shall add more details on how to compile this yourself soon.
Limitations
I have tested it with both TrueCrypt containers and full disk/partition encryption. I have seen no problems with reads. However, sometimes on writes, I have noticed that truecrypt can hang. This seems to be a known issue with all pre 2.6.24 kernels. Upgrading the kernel should resolve this issue. I plan on putting together an article on doing this for the PogoPlug.
RSS


