On Sat, Jun 28, 2008 at 4:45 AM, Adrian Bunk <bunk@xxxxxxxxxx> wrote: > On Sat, Jun 28, 2008 at 03:33:30AM +0500, Shahbaz Khan wrote: >> On Sat, Jun 28, 2008 at 3:14 AM, Adrian Bunk <bunk@xxxxxxxxxx> wrote: >> > On Sat, Jun 28, 2008 at 02:51:51AM +0500, Shahbaz Khan wrote: >> >> On Sat, Jun 28, 2008 at 2:32 AM, Adrian Bunk <bunk@xxxxxxxxxx> wrote: >> >> > On Sat, Jun 28, 2008 at 02:16:14AM +0500, Shahbaz Khan wrote: >> >> >> Hi, >> >> >> >> >> >> Need to compile an external module as a kernel built-in module. Its >> >> >> Makefile is set as obj-m meaning as a loadable module so it will be >> >> >> kept on filesystem separately. This means I have to do obj-y to make >> >> >> it built-in. But I wanted to know, before I just try it out, that the >> >> >> Makefile of the kernel module is way too complex for me and there was >> >> >> an install target which is creating files for miscilleneous functions >> >> >> of the module and it had a /dev/<module-name>, which means its a >> >> >> device driver. >> >> >> >> >> >> So what do I need to consider apart from the change obj-m to obj-y? >> >> > >> >> > It does not work this way. >> >> >> >> Are you sure because in kernel top-level Makefile contains SUBDIRS >> >> symbol for external modules and if it contains a path then target all >> >> becomes _all else _all becomes modules. Personally, I am not sure of >> >> this behavior but I think if we can do obj-y instead of obj-m than >> >> maybe this module is built-in. Sorry you already said it's not >> >> possible but I am still curious why it doesn't in the light of >> >> SUBDIRS. >> > >> > The reason is simple: >> > When an external module gets built the kernel image is not rebuilt. >> >> Thats what I am trying to say. I am newbie but the following makes sense to me: >> >> If the SUBDIRS will take "make" to the external module by setting its >> value to KBUILD_EXTMOD. Consider the following lines from kernel >> Makefile: >> >> # If building an external module we do not care about the all: rule >> # but instead _all depend on modules >> PHONY += all >> ifeq ($(KBUILD_EXTMOD),) >> _all: all >> else >> _all: modules >> endif >> >> If the module's Makefile consists of obj-y instead of obj-y then its >> should work. ...? > > You can either trust me that it doesn't work or try it yourself. > > And what is the actual problem why you can't simply use it as a module? Its a porting issue but now got it. I was upset with existence of any symbol exports (not sure if there is any). But I am going to try to mount the filesystem and try it anyways. I think it should work. > >> >> By the way can you suggest how do I workout getting the code inside >> >> the kernel source. >> >> >> >> Analyzing the following from module's Makefile: >> >> >> >> all: $(src)/crypto/gmp.h $(src)/crypto/libgmp.a >> >> @$(MAKE) -C $(KERNEL_BUILD) M=$(CURDIR) modules >> >> >> >> I thought maybe if i replace "modules" with "all", it might have the >> >> same effect as what I suggested in case of SUBDIRS for kernel >> >> Makefile. >> > >> > Where can I find the source for this module? >> >> I am not sure what you mean by the source of the module? If you mean >> source to the module Makefile then here it is: >>... >> # module settings >> MODULE_NAME := <MODULE_NAME> >>... > > Why are you obfuscating the fact that you are trying to build the > tpm_emulator module? I have my limitations but you could google the text I sent you anyways ;) > >> Shaz > > cu > Adrian > > -- > > "Is there not promise of rain?" Ling Tan asked suddenly out > of the darkness. There had been need of rain for many days. > "Only a promise," Lao Er said. > Pearl S. Buck - Dragon Seed > > -- Shaz -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ