DSM-G600, DNS-3xx and NSA-220 Hack Forum

Unfortunately no one can be told what fun_plug is - you have to see it for yourself.

You are not logged in.

Announcement

#1 2007-07-07 19:31:38

fourthirtysix
Member
Registered: 2007-06-23
Posts: 18

How to Compile Kernel Modules for DNS-323?

I'd like any help from veteran DNS-323 hackers as to how I can compile modules for the DNS-323. Specifically, I'd like to compile dm-crypt and dm-mod.

From what I understand, using Firmware 1.03, it uses kernel version 2.6.12.6-arm1.

Question 1: is it better to try and load gcc onto the DNS-323 and the source files and compile it there? or should I try to compile it on another machine and copy it over?

Question 2: if it's better to compile on the DNS-323, what would i need besides the module source? I'm guessing i'd need kernel headers and the gcc program, but i don't know how to load that on very well.

Question 3: do i have to compile using *exactly* 2.6.12.6-arm1 ?  can i use a slightly different kernel version? does the "arm1" versus "686" make a difference?

Thanks

Offline

 

#2 2007-07-07 20:27:57

fonz
Member / Developer
From: Berlin
Registered: 2007-02-06
Posts: 1716
Website

Re: How to Compile Kernel Modules for DNS-323?

fourthirtysix wrote:

dm-crypt and dm-mod.

You need to use the D-Link kernel, vanilla kernels don't support the DNS323 (yet).

2.6.12.6 comes with a .config files. If that is the one used, dm-crypt support is compiled in (no need for modules):

Code:

#
# Multi-device support (RAID and LVM)
#
CONFIG_MD=y
CONFIG_BLK_DEV_MD=y
CONFIG_MD_LINEAR=y
CONFIG_MD_RAID0=y
CONFIG_MD_RAID1=y
# CONFIG_MD_RAID10 is not set
# CONFIG_MD_RAID5 is not set
# CONFIG_MD_RAID6 is not set
# CONFIG_MD_MULTIPATH is not set
# CONFIG_MD_FAULTY is not set
CONFIG_BLK_DEV_DM=y
CONFIG_DM_CRYPT=y
CONFIG_DM_SNAPSHOT=y
CONFIG_DM_MIRROR=y
CONFIG_DM_ZERO=y
# CONFIG_DM_MULTIPATH is not set

You still need the userland tools, but I guess that's doable with the D-Link toolchain.

Please let us know about your progress. Since I"m from Germany I'm currently very, very interested in using strong cryptography.

Offline

 

#3 2007-07-08 00:52:10

fourthirtysix
Member
Registered: 2007-06-23
Posts: 18

Re: How to Compile Kernel Modules for DNS-323?

I've loaded the cross-compile environment and it seems to have worked. Next, I downloaded the necessary userspace tools, device-mapper and crypt-setup (LUKS version) 1.05

Both seem to compile, but I suspect they are not compiling for ARM. I'm not sure how to do that.

I executed the "setpath" script before compiling, used gcc 3.4 and the compilation worked, but when i copy the files to /Volume_1/lnx_bin and try to run them, I get an error about it expecting a "(" or something.

What do I need to do to make sure I am compiling for ARM instead of default 686? Could that be the problem?

Offline

 

#4 2007-07-12 04:27:21

fourthirtysix
Member
Registered: 2007-06-23
Posts: 18

Re: How to Compile Kernel Modules for DNS-323?

I have the cross compile environment completed, and it appears to have worked. I'm going to try to focus on getting Truecrypt working for now. I need help from some more skilled linux kernel hackers, please. Here is my question:

If I download Truecrypt userspace tools and device-mapper, are there any special arguments that I need to pass when compiling them? can i just do "./configure ; make" and then copy over to /mnt/HD_a2/lnx_bin an have them work?

Thanks for any help!

Offline

 

#5 2007-07-12 10:28:40

fonz
Member / Developer
From: Berlin
Registered: 2007-02-06
Posts: 1716
Website

Re: How to Compile Kernel Modules for DNS-323?

fourthirtysix wrote:

"./configure ; make"

No, that's usually not enough. You need to tell configure at least that a) you intent to cross-compile, and b) what the target tools (i.e. cross-compiler, cross-assembler, -linker et al) are.

A minimal configure looks like this (but do a ./configure --help | less to see the other options):

Code:

./configure --host=arm-linux-uclibc

The target tools are usually specified in environment variables as shown here (is that in the setenv script?): http://cross-lfs.org/view/clfs-embedded … chain.html

When you need "hints" for specific packages, it's sometimes a good idea to look at what buildroot, openembedded or cross-linux-from-scratch do and if there're specific patches (to make cross-compile work, or to make a program work with uclibc).

Offline

 

#6 2007-07-13 17:36:10

fourthirtysix
Member
Registered: 2007-06-23
Posts: 18

Re: How to Compile Kernel Modules for DNS-323?

i get this error, after sett

# source setpath
# export GCC=arm-linux-gcc
# export CC=arm-linux-gcc
# cd device-mapper.1.02.20
# ./configure --host=arm-linux-gcc
configure: WARNING: If you wanted to set the --build type, don't use --host.
    If a cross compiler is detected then cross compile mode will be used.
checking build system type... i686-pc-linux-gnu
checking host system type... Invalid configuration `arm-linux-gcc': system `gcc' not recognized
configure: error: /bin/bash autoconf/config.sub arm-linux-gcc failed

this is so frustrating sad   i may have to leave this for someone more talented with C, C++ linux compiling.  i tried to do research on how to cross compile on the web, but everything about compiling C and C++ for linux is totally confusing ...

Offline

 

#7 2007-07-13 18:06:32

fonz
Member / Developer
From: Berlin
Registered: 2007-02-06
Posts: 1716
Website

Re: How to Compile Kernel Modules for DNS-323?

fourthirtysix wrote:

# ./configure --host=arm-linux-gcc

the gnu target is arm-linux-uclibc, not arm-linux-gcc (which is the compiler)

fourthirtysix wrote:

this is so frustrating sad

yes, can be very frustrating.

Offline

 

#8 2007-07-13 19:19:59

fourthirtysix
Member
Registered: 2007-06-23
Posts: 18

Re: How to Compile Kernel Modules for DNS-323?

yep. just tried with ./configure --host=arm-linux-uclibc and got the same error.  there is some fundamental thing i am missing here... maybe i need to edit config.sub? but i looked in that file and don't see anything obvious to change.

what i don't understand is why i can compile busybox, at, the kernel and all the things that came with uclibc but i can't compile a userspace application?

i think they must have already run the ./configure command before packaging that up.. but i still can't get the ./configure step to work after trying again

Offline

 

#9 2007-07-20 20:36:21

metronet
Member
Registered: 2007-06-14
Posts: 8

Re: How to Compile Kernel Modules for DNS-323?

fourthirtysix, try:

./configure --host=i686-pc-linux-gnu

that should work 4u

Offline

 

#10 2007-07-25 16:53:05

rguerra
Member
Registered: 2006-12-20
Posts: 25

Re: How to Compile Kernel Modules for DNS-323?

isn't the idea to compile for ARM so that it works on the DNS323?

Am keen to get encryption working on the unit. Any help appreciated.

Offline

 

#11 2008-01-03 01:37:56

w00
Member
Registered: 2007-09-07
Posts: 29

Re: How to Compile Kernel Modules for DNS-323?

any news on truecrypt for dns323?

cheerio

Offline

 

Board footer

Powered by PunBB
© Copyright 2002–2010 PunBB