当前位置: 技术问答>linux和unix
一个helloworld模块的问题
来源: 互联网 发布时间:2016-08-16
本文导语: 看了网上的几个helloworld的例子 生成模块都用makefile中的这个语句,直接一下子就完了 default: $(MAKE) -C $(KERNELDIR) M=$(PWD) modules 想请那个高手指点一下 如何在这个模块中将hello.c文件,生成hello.o文件,再生成hello.ko文...
看了网上的几个helloworld的例子
生成模块都用makefile中的这个语句,直接一下子就完了
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
想请那个高手指点一下
如何在这个模块中将hello.c文件,生成hello.o文件,再生成hello.ko文件?
生成模块都用makefile中的这个语句,直接一下子就完了
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
想请那个高手指点一下
如何在这个模块中将hello.c文件,生成hello.o文件,再生成hello.ko文件?
|
这个你看对应目录下生成的cmd文件,就知道如何从.c到.ko的过程了,呵呵。
|
1. 在当前内核模块源代码目录执行以下命令编译
make -C /你的内核源码目录 M=`pwd`
2. 2.6的内核模块Makefile
obj-m := kernel_module.o
hello-y :=file_1.o file_2.o
make -C /你的内核源码目录 M=`pwd`
2. 2.6的内核模块Makefile
obj-m := kernel_module.o
hello-y :=file_1.o file_2.o
|
http://topic.csdn.net/u/20100315/09/fa2e6e1f-2548-4700-9892-d2da30a67908.html
这个问题我曾经问过,大侠菜鸟们都有所指点的。
这个问题我曾经问过,大侠菜鸟们都有所指点的。
|
同意楼上,来晚一步了。。
|
Makefile
MVTOOL_PREFIX = /usr/local/arm/3.4.1/bin/arm-linux-
KERNEL_DIR = /home/sys/linux-2.6.20
MAKE_ENV = ARCH=arm CROSS_COMPILE=$(MVTOOL_PREFIX)
#TARGET = hello.ko
obj-m += hello.o
all:
make -C $(KERNEL_DIR) M=`pwd` $(MAKE_ENV) modules
# cp hello.ko /home/pr/hello
clean:
-rm -rf *.o *mod* *.ko .cmem* .tmp*
obj-m := hello.o 代表了我们要构造的模块名为hell.ko,make 会在该目录下自动找到hell.c文件进行编译
MVTOOL_PREFIX = /usr/local/arm/3.4.1/bin/arm-linux-
KERNEL_DIR = /home/sys/linux-2.6.20
MAKE_ENV = ARCH=arm CROSS_COMPILE=$(MVTOOL_PREFIX)
#TARGET = hello.ko
obj-m += hello.o
all:
make -C $(KERNEL_DIR) M=`pwd` $(MAKE_ENV) modules
# cp hello.ko /home/pr/hello
clean:
-rm -rf *.o *mod* *.ko .cmem* .tmp*
obj-m := hello.o 代表了我们要构造的模块名为hell.ko,make 会在该目录下自动找到hell.c文件进行编译