LinuxQuestions.org
Help answer threads with 0 replies.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Blogs > carl0ski
User Name
Password

Notices


Rating: 2 votes, 3.00 average.

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)
 	{
Save this as a text file named
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:
File to patch enter the full path into the ture crypt source code
/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
Posted in Uncategorized
Views 3738 Comments 0
« Prev     Main     Next »

  



All times are GMT -5. The time now is 07:33 AM.

Main Menu
Advertisement
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration