实验了一下如何cross compile一把 kernel module。
挺简单的。 只要改动Makefile就可以了。
# If KERNELRELEASE is defined, we've been invoked from the
# kernel build system and can use its language.
CROSS_COMPILE = /opt/toolchains/uclibc-crosstools-gcc-4.2.3-3/usr/bin/mips-linux-uclibc-
export CROSS_COMPILE
ifneq ($(KERNELRELEASE),)
obj-m := hello_world.o
# hello_world-objs :=
# Otherwise we were called directly from the command
# line; invoke the kernel build system.
else
#KERNELDIR ?= /lib/modules/$(shell uname -r)/build
KERNELDIR = /home/wyang2/WFG500N/bcm963xx/kernel/linux
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
接着上边的两个例子,这里就只贴改动的Makefile。
1. 加上了 CROSS_COMPILE宏
记住 要 export
2. KERNELDIR 要指向被编译的kernel tree。