How to Compile v1.0.6 Correctly?


New Member
I am using Debian (kernel 2.4.27 and 2.6*) and gcc v3.3.5-13. I used source from dban-1.0.6_src.tar.bz2.

I had to make 2 changes in order to get it to successfully compile. In dwipe.h I had to change:
#define BLKGETSIZE64 _IOR(0x12,114,sizeof(u64))
#define BLKGETSIZE64 _IOR(0x12,114,u64)

In the busybox makefile I had to add
LIBRARIES = -lncurses

I am then able to get it to compile by running ./ in the dwipe folder. However, this fails to build the disk images because the disk is full. In the official compile, the busybox executable weighs in at only 250KB, in my compile it is 749KB. What am I missing? Are the makefiles and/or build scripts not up to date? I must admit I don't much about linux or gcc, I usually know just enough to get by. I assumed that the default settings from the sourcecode would have set the build options correctly.

Any help would be appreciated.


First, ensure that you have applied the patches from the DBAN source tarball.

Second, use the uclibc instead of glibc. Running DBAN in a glibc environment is untested and unsupported. It follows that you must use the obsolete gcc wrappers.

Third, the rc and dwipe in dban-1.0.6 are incompatible with the Linux 2.6 kernel because they use DevFS in an unwholesome fashion.

Fourth, if you only want an updated driver, then just rebuild the kernel and leave the userland unchanged.

DBAN 1.1.0 is based on the Linux 2.6 kernel and the uclibc buildroot, which means that recompiling DBAN will suck less.
Thanks for the info, but I have come to the conclusion that it is just too complicated for me. I don't really use Linux very often and uclibc is a nightmare.

I'm running Debian, so I first used apt-get to install uclibc. I didn't know where to go from there, but then I found a line in the buysbox makefile to uncomment to link against uclibc. I did that but then my ncurses library files could no longer be found because they were installed in /usr/local/ and the uclibc environment expected them in its own directory. So I downloaded the ncurses source and installed it to the uclibc directory. Then I tried to recompile busybox and received all kinds of undefined functions and variables. Then I removed the uclibc app and downloaded the source to uClibc-0.9.19.tar.bz2, compiled and installed it, then reinstalled ncurses. Now I got a different set of errors from the busybox compile.

Oh, well. I guess I'll just have to stick with official builds and playing with source code for MS Windows apps.

Thanks again, for the help and the app.

ok, so I'm a liar. I did not give up and finally got it compiled and (it seems to be) working. Wow, that was a pain in the ass. I am going to start the process again from scratch this weekend and see if I can document my steps and I'll post them back here when I'm done, just in case someone with the same question stumbles upon this thread.