我正在研究如何为ARM linux交叉编译一个内核模块,我已经安装了工具链。但是我从各种how-to中没有完全理解的地方。
我要构建的模块是"gadgetfs"。
我的主机上的内核版本是"3.5.0-34-generic",而目标机上的内核版本是"3.6.9-0.1"。
现在我实际上需要下载和安装哪些内核源或头文件,以及在哪里找到它们呢? 我从"kernel.org"下载并提取了"linux-3.6.9.tar.bz2"。 在"drivers/usb/gadget/"中有一个"Makefile",根据这个网站,我需要将这些行添加到它中,然后运行"make":
我的主机上的内核版本是"3.5.0-34-generic",而目标机上的内核版本是"3.6.9-0.1"。
现在我实际上需要下载和安装哪些内核源或头文件,以及在哪里找到它们呢? 我从"kernel.org"下载并提取了"linux-3.6.9.tar.bz2"。 在"drivers/usb/gadget/"中有一个"Makefile",根据这个网站,我需要将这些行添加到它中,然后运行"make":
KDIR := /lib/modules/`uname -r`/build
PWD := `pwd`
obj-m := dummy_hcd.o gadgetfs.o
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
但是我需要用什么替换uname -r
?因为这会给我我的主机内核版本。但我的目标版本不同。 /lib/modules/3.6.9
文件夹在哪里?
CROSS_COMPILE
和ARCH
都已设置。