[Buildroot] Kernel module compiled but not found
Sagaert Johan
sagaert.johan at skynet.be
Sun Oct 13 16:53:18 UTC 2013
Hi
Just a caution:
It's best to do a clean in a MYKMOD_CONFIGURE_CMDS section.
I stumbled into this: the install path was not correct if the module had been build before.
(In my case it was already build from within eclipse while developing.)
Here is my buildroot .mk file for info :
--------------------------------------
########################################################################
#
# fm25clxx
#
########################################################################
FM25CLXX_VERSION = 1.0.1
FM25CLXX_SITE = /root/workspace2/FM25FRAMDriver-$(FM25CLXX_VERSION)
FM25CLXX_SITE_METHOD = local
FM25CLXX_DEPENDENCIES = linux
TARGETKERNEL = $(BUILD_DIR)/linux-$(BR2_LINUX_KERNEL_VERSION)
FM25CLXX_MOD_INSTALL_DIR=mydrivers
FM25CLXX_MAKE_OPTS += ARCH=$(KERNEL_ARCH)
FM25CLXX_MAKE_OPTS += CROSS_COMPILE=$(TARGET_CROSS)
FM25CLXX_INSTALL_OPTS += -C $(TARGETKERNEL)
FM25CLXX_INSTALL_OPTS += M=$(@D)
FM25CLXX_INSTALL_OPTS += INSTALL_MOD_PATH=$(TARGET_DIR)
FM25CLXX_INSTALL_OPTS += INSTALL_MOD_STRIP=1
FM25CLXX_INSTALL_OPTS += INSTALL_MOD_DIR=kernel/$(FM25CLXX_MOD_INSTALL_DIR)
# see https://www.kernel.org/doc/Documentation/kbuild/modules.txt
define FM25CLXX_CONFIGURE_CMDS
$(MAKE) KERNELDIR=$(TARGETKERNEL) $(DIGITAL_IO_MAKE_OPTS) PWD=$(@D) -C $(@D) clean
endef
define FM25CLXX_BUILD_CMDS
$(MAKE) KERNELDIR=$(TARGETKERNEL) $(FM25CLXX_MAKE_OPTS) PWD=$(@D) -C $(@D) all
endef
define FM25CLXX_INSTALL_TARGET_CMDS
$(MAKE) $(FM25CLXX_MAKE_OPTS) $(FM25CLXX_INSTALL_OPTS) modules_install
endef
define FM25CLXX_UNINSTALL_TARGET_CMDS
rm -rf $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/$(FM25CLXX_MOD_INSTALL_DIR)
endef
$(eval $(generic-package))
--------------------------------------
The actual module makefile looked like :
---------------------
MODULENAME := fm25clxx
obj-m += $(MODULENAME).o
all:$(MODULENAME).ko
$(MODULENAME).ko:$(MODULENAME).c
make -C $(KERNELDIR) SUBDIRS=$(PWD) modules CC=arm-linux-gcc LD=arm-linux-ld ARCH=arm
.PHONY clean:
make -C $(KERNELDIR) M=$(PWD) clean
---------------------
The $(KERNELDIR) is an environment variable I have set inside eclipse to point to the kernel.
(usually something like .../buildroot/output/build/linux-xx.yy.zz )
It's maybe not perfect but it allowed me to develop in eclipse and at the same time build it using buildroot.
Johan
-----Oorspronkelijk bericht-----
Van: buildroot-bounces at busybox.net [mailto:buildroot-bounces at busybox.net] Namens Marco Trapanese
Verzonden: zondag 13 oktober 2013 17:02
CC: buildroot at busybox.net
Onderwerp: Re: [Buildroot] Kernel module compiled but not found
Il 13/10/2013 16:51, Yann E. MORIN ha scritto:
> You're missing INSTALL_MOD_PATH=$(TARGET_DIR) on this command line
> (the make line for 'MYKMOD_INSTALL_TARGET_CMDS' ). Regards, Yann E.
> MORIN.
Yann,
thank you for your quick answer. I changed the command line (in
sensoray2253/sensoray2253.mk) in this way:
define SENSORAY2253_INSTALL_TARGET_CMDS
$(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) M=$(@D)
INSTALL_MOD_PATH=$(TARGET_DIR) modules_install endef
Is it correct?
Mark
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
More information about the buildroot
mailing list