Truecrypt Ubuntu Hardy (linux kernel 2.6.24 +)
Posted 01-01-2008 at 06:43 AM by carl0ski
After hours of fiddling i found a method of installing Truecrypt
What you'll need
$sudo apt-get build-essentials dmsetup linux-sources-`uname -r`
$cd /usr/src
$sudo tar -xvjpf linux-sources-`uname -r`.tar.bz2
$sudo ln -s linux-sources-`uname -r` /usr/src/linux
#patch i needed in Gentoo emerge tree
I needed to patch my kernel with the following
Code:
diff -Nrup a/Linux/Kernel/Dm-target.c b/Linux/Kernel/Dm-target.c
--- Linux/Kernel/Dm-target.c 2007-04-24 18:32:06.000000000 +0200
+++ b/Linux/Kernel/Dm-target.c 2007-12-22 15:07:56.000000000 +0100
@@ -375,7 +375,11 @@ static void dereference_bio_ctx (struct
if (!atomic_dec_and_test (&bc->ref_count))
return;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
bio_endio (bc->orig_bio, bc->orig_bio->bi_size, bc->error);
+#else
+ bio_endio (bc->orig_bio, bc->error);
+#endif
mempool_free (bc, tc->bio_ctx_pool);
}
@@ -417,24 +421,35 @@ static void work_process (void *qdata)
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
static int truecrypt_endio (struct bio *bio, unsigned int bytes_done, int error)
+#else
+static int truecrypt_endio (struct bio *bio, int error)
+#endif
{
struct bio_ctx *bc = (struct bio_ctx *) bio->bi_private;
struct target_ctx *tc = (struct target_ctx *) bc->target->private;
struct bio_vec *bv;
int seg_no;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
trace (1, "end: sc=%llu fl=%ld rw=%ld sz=%d ix=%hd vc=%hd dn=%d er=%d\n",
(unsigned long long) bio->bi_sector, bio->bi_flags, bio->bi_rw, bio->bi_size, bio->bi_idx, bio->bi_vcnt, bytes_done, error);
+#else
+ trace (1, "end: sc=%llu fl=%ld sz=%ld rw=%ld ix=%hd vc=%hd er=%d\n",
+ (unsigned long long) bio->bi_sector, bio->bi_flags, bio->bi_size, bio->bi_rw, bio->bi_idx, bio->bi_vcnt, error);
+#endif
if (error != 0)
bc->error = error;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
if (bio->bi_size)
{
trace (2, "Outstanding IO: %d\n", bio->bi_size);
return 1;
}
+#endif
if (bio_data_dir (bio) == READ)
{
truecrypt2.6.24.patch
Run
#sudo patch -p0 -i truecrypt2.6.24.patch
It will now look as follows
Code:
$ sudo patch -p0 -i for2.6.23.patch can't find file to patch at input line 4 Perhaps you used the wrong -p or --strip option? The text leading up to this was: -------------------------- |diff -Nrup a/Linux/Kernel/Dm-target.c b/Linux/Kernel/Dm-target.c |--- carl/Linux/Kernel/Dm-target.c 2007-04-24 18:32:06.000000000 +0200 |+++ b/Linux/Kernel/Dm-target.c 2007-12-22 15:07:56.000000000 +0100 -------------------------- File to patch:
/home/carl/Desktop/truecrypt-4.3a-source-code/Linux/Kernel/Dm-target.c
finally build truecrypt
$cd /home/carl/Desktop/truecrypt-4.3a-source-code/Linux
$sudo sh ./build.sh
$sudo sh ./install.sh
#load truecrypt module
$sudo modprobe truecrypt
All should be good to go




