Hi Perumal,

I'm confused when you say that it's already working in shell but not
in emulator. Working in shell meaning you insmod the hello.ko to your
host? If so, then the module was not properly built. If module is
properly built against the goldfish kernel, output module would be for
ARM architecture therefore you cant insmod it to your host (assuming
your host is x86). Only in emulator since emulator is an emulated ARM
architecture.


On Oct 30, 11:35 am, perumal316 <perumal...@gmail.com> wrote:
> Hi,
>
> I also faced similar problem, your MakeFile may need changes, below is
> the makefile i used:
>
> ifeq ($(KERNELRELEASE),)
>
> KERNELDIR ?= /goldfish/kernel
> PWD := $(shell pwd)
>
> .PHONY: build clean
>
> build:
>         $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
>
> clean:
>         rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c
> else
>
> $(info Building with KERNELRELEASE = ${KERNELRELEASE})
> obj-m :=    hello.o
>
> endif
>
> Or you can also try the one mentioned by Mr Chew above.
> Also as mentioned by him above set the path to your CROSS_COMPILE
> directory before make.
>
> Regards,
> Perumal
>
> On Oct 30, 10:57 am, Eduardo Acker <izayahighfat...@gmail.com> wrote:
>
>
>
> > Hi Chew,
>
> > I'm a newbie in linux/android and Im having some problems to compile the my
> > module.
> > i dowloaded the android-goldfish-2.6.29 snapshot and the android plataform.
> > Compiled the kernel with your instructions to ARCH and CROSS_COMPILE and
> > have no problem, but when i try to compile the module it givesthe error:
> > - entering directory /home/acker/goldfish/kernel
> > - no rule to process the target "modules"
>
> > any idea of what  i did wrong?
>
> > thanks for the help,
> > Eduardo Acker
>
> > 2009/10/29 Chew Esmero <chew.esm...@gmail.com>
>
> > > Yes, it is possible. Exec Format Error: it seems that your module is
> > > not built using the headers of your goldfish kernel. Try this simple
> > > makefile when building your new driver (assuming hello.c as source):
>
> > > obj-m := hello.o
>
> > > CROSS_COMPILE=arm-eabi-
> > > KERNEL_DIR ?= ~/goldfish/kernel/
>
> > > all:
> > >        $(MAKE) -C $(KERNEL_DIR) M=`pwd` ARCH=arm CROSS_COMPILE=$
> > > (CROSS_COMPILE) modules
>
> > > clean:
> > >        rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
> > > modules.order Module.symvers Module.markers
>
> > > You need to take note that you need to export first CROSS_COMPILE
> > > variable to your current shell. (i.e. #export CROSS_COMPILE=~/<your-
> > > android-dir>/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin) Then you
> > > issue the command #make. I think this will resolve the Exec Format
> > > Error problem.
>
> > > As for the 'operation not permitted' problem in #insmod, it seems that
> > > the "Loadable Module Support" in your goldfish's kernel config is
> > > still not enabled. You can try this:
>
> > > <goldfish-kernel># ARCH=arm make goldfish_defconfig
> > > <goldfish-kernel># ARCH=arm make menuconfig
>
> > > [*] Enable loadable module support ---> (make sure to have this one)
>
> > > <goldfish-kernel># ARCH=arm ARCH=arm CROSS_COMPILE=arm-eabi- make
>
> > > Your final kernel will be arch/arm/boot/zImage. After booting emulator
> > > using that kernel, you can now do your #insmod in emulator shell.
>
> > > Hope that helps.
>
> > > On Oct 29, 1:01 pm, perumal316 <perumal...@gmail.com> wrote:
> > > > Thanks,Yes, now it can be loaded when the emulator is booted with the
> > > > new kernel.
> > > > But must I always build the module against my new kernel and boot with
> > > > the new kernel to load a new module?
> > > > Is it possible to insmod <module>, similar like in Linux to load a
> > > > module?
> > > > I have tried in emulator's terminal and in shell but keep on getting
> > > > the "init module failed, Exec Format Error or init module
> > > > failed,operation not permitted" error messages.
>
> > > > Regards,
> > > > Perumal
>
> > > > On Oct 20, 9:06 pm, Chew Esmero <chew.esm...@gmail.com> wrote:
>
> > > > > Did you build the module against your new kernel? (i.e. ARCH=arm
> > > > > KERNEL_DIR=<android-root-dir>/kernel make). I've encountered that
> > > > > error message before and it seems that the booted kernel still do not
> > > > > allow "Enable Loadable Module" .config support. Are you sure emulator
> > > > > is booted with the new kernel? (i.e. emulator -kernel <new-kernel> -
> > > > > show-kernel -avd <name-of-avd>)
--~--~---------~--~----~------------~-------~--~----~
unsubscribe: android-kernel+unsubscr...@googlegroups.com
website: http://groups.google.com/group/android-kernel
-~----------~----~----~----~------~----~------~--~---

Reply via email to