当前位置: 技术问答>linux和unix
请教内核树的问题
来源: 互联网 发布时间:2016-07-21
本文导语: 小弟刚开始学驱动,有个小问题 我的ubuntu 8.04里有 (安装系统以后自带) /usr/src/linux-headers-2.6.24-16-generic /lib/modules/2.6.24-16-generic 我没建内核树,用这个就可以编译出 hello.ko ,可以insmod 但是,网上都说编译驱动...
小弟刚开始学驱动,有个小问题
我的ubuntu 8.04里有 (安装系统以后自带)
/usr/src/linux-headers-2.6.24-16-generic
/lib/modules/2.6.24-16-generic
我没建内核树,用这个就可以编译出 hello.ko ,可以insmod
但是,网上都说编译驱动需要内核树
建内核树需要很大空间,而系统自带的这两个文件夹不是很大,加在一起也就110M
我的疑问是:
难道这样两个系统自带的文件夹可以取代内核树?
我的ubuntu 8.04里有 (安装系统以后自带)
/usr/src/linux-headers-2.6.24-16-generic
/lib/modules/2.6.24-16-generic
我没建内核树,用这个就可以编译出 hello.ko ,可以insmod
但是,网上都说编译驱动需要内核树
建内核树需要很大空间,而系统自带的这两个文件夹不是很大,加在一起也就110M
我的疑问是:
难道这样两个系统自带的文件夹可以取代内核树?
|
应当是你的hello.ko太简单了,没调用内核的API。
个人观点。
个人观点。
|
要内核树也只是用它的头文件,linux-headers-2.6.24-16-generic 里边的就是编译时用的头文件。
|
/lib/modules/2.6.24-16-generic这个目录里面的build是一个符号链接,指向已经编译过的内核源码目录/usr/src/linux
|
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif