在内核树外维护模块

1.

先在模块代码所在的目录新建一个Makefile, 内容为: 
obj-m := hello.o
这样调用make命令:
make -C /usr/local/src/kernel/linux-2.6.16.20 SUBDIRS=$PWDmodules

2.进化后

obj-m += hello.o

all:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

 

3.再进化后

obj-m :=  hello.o
hello-objs := file1.o file2.o
KERNELDIR = /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default: 
    $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
clean: 
    $(MAKE) -C $(KERNELDIR) M=$(PWD) clean

注:估计KERNELDIR因该赋值为嵌入式内核源码的的位置

 

obj-m:=hello.o 
//hello-objs:=file1.o file2.o
CURRENT_PATH:=$(shell pwd) 
ARM_LINUX_KERNEL:=/opt/AM1808/board-support/linux-2.6.37-psp03.21.00.04.sdk/
target_dir:=/opt/AM1808/filesystem/rootfs/home/zss/
all:  
 make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi- -C $(ARM_LINUX_KERNEL) M=$(CURRENT_PATH) modules 
install:
 cp *.ko $(target_dir)
clean: 
 rm   *.o *.ko *.mod.c *.symvers *.order

 

//把编译参数加上,否则就得设置编译器gcc了

你可能感兴趣的:(在内核树外维护模块)