Thanks Mr Chew, I managed to solve it. I didn't enable module unloading and forced module unloading previously. After enabling and making the kernel again, I can unload the modules.
Regards, Perumal On Nov 6, 10:22 am, Chew Esmero <chew.esm...@gmail.com> wrote: > Haven't encountered that error. Try checking your kernel .config and > include "Module unloading" & "Forced module > unloading" under the "Enable loadable module support" menu. > > On Nov 6, 9:58 am, perumal316 <perumal...@gmail.com> wrote: > > > Hi Mr Chew, > > > When I rmmod my modules. i keep on getting "rmmod: delete_module > > failed (errno 38)" error message. Any idea what is causing this? My > > exit portion of the code is similar to those I tried in Linux. It > > works fine in Linux. > > > Regards, > > Perumal > > > On Oct 30, 12:59 pm, Chew Esmero <chew.esm...@gmail.com> wrote: > > > > No problem. Happy coding. =) > > > > On Oct 30, 12:45 pm, Chew Esmero <chew.esm...@gmail.com> wrote: > > > > > Oh, sorry. Didn't get it right. > > > > > Terminal emulator in Android has no root privileges unfortunately. May > > > > I ask why would you do it in terminal emulator when you can do it in > > > > adb (already root)? > > > > > On Oct 30, 12:30 pm, perumal316 <perumal...@gmail.com> wrote: > > > > > > 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