Hi Mr Chew,

I have built the module against the goldfish kernel. Then I start the
emulator then in a terminal (adb shell) then insmod it and it is
working. But within the emulator there is a terminal emulator. If I
insmod there the module is not loaded ("Operation Not Permitted").
Since it is working in the shell, it should also work within the
terminal emulator but not sure why it is not working. Is there any way
to verify I have root access in terminal emulator?

Regards,
Perumal

On Oct 30, 12:10 pm, Chew Esmero <chew.esm...@gmail.com> wrote:
> 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