TrueCrypt 4.2a ist eigentlich eine richtig schöne und einfache Sache. Damit kann man zum Beispiel zuverlässig Festplatten oder Containerdateien verschlüsseln. (Nebenbei läuft es auch auf Windows). Mit der neusten Linuxversion 2.6.18.x fällt das Build-Script leider auf die Nase:


Checking build requirements...
Building kernel module... ./truecrypt-4.2a/Linux/Kernel/Dm-target.c: In function `dm_truecrypt_init':
./truecrypt-4.2a/Linux/Kernel/Dm-target.c:644: error: syntax error before "DM_MSG_PREFIX"
./truecrypt-4.2a/Linux/Kernel/Dm-target.c:652: error: syntax error before "DM_MSG_PREFIX"
./truecrypt-4.2a/Linux/Kernel/Dm-target.c:659: error: syntax error before "DM_MSG_PREFIX"
./truecrypt-4.2a/Linux/Kernel/Dm-target.c:666: error: syntax error before "DM_MSG_PREFIX"
./truecrypt-4.2a/Linux/Kernel/Dm-target.c: In function `dm_truecrypt_exit':
./truecrypt-4.2a/Linux/Kernel/Dm-target.c:690: error: syntax error before "DM_MSG_PREFIX"
./truecrypt-4.2a/Linux/Kernel/Dm-target.c:690: error: `DM_MSG_PREFIX' undeclared (first use in this function)
./truecrypt-4.2a/Linux/Kernel/Dm-target.c:690: error: (Each undeclared identifier is reported only once
./truecrypt-4.2a/Linux/Kernel/Dm-target.c:690: error: for each function it appears in.)
make[2]: *** [./truecrypt-4.2a/Linux/Kernel/Dm-target.o] Fehler 1
make[1]: *** [_module_./truecrypt-4.2a/Linux/Kernel] Fehler 2
make: *** [truecrypt] Fehler 2
Error: Failed to build kernel module

2.6.18 ist nun schon einige Zeit verfügbar – eine offizielle Patch von TrueCrypt leider nicht. Man muss sich also selbst helfen, was dank offenem Quellcode ja durchaus möglich ist. Die Mühe hat sich auch schon jemand gemacht. So habe ich hier folgenden Patch gefunden:


--- Dm-target.c 2006-06-28 12:36:28.000000000 +0200
+++ Dm-target.c 2006-07-17 09:04:45.144351266 +0200
@@ -29,6 +29,7 @@
int trace_level = 0;

#define MSG_PREFIX "truecrypt: "
+#define DM_MSG_PREFIX MSG_PREFIX
#define error(fmt, args...) printk(KERN_ERR MSG_PREFIX fmt, ## args)
#define trace(level, fmt, args...) level < = trace_level && printk(KERN_DEBUG MSG_PREFIX fmt, ## args) #define dbg(fmt, args...) printk(KERN_DEBUG MSG_PREFIX fmt, ## args)