linux-kernel – 交叉编译Linux内核模块

linux-kernel – 交叉编译Linux内核模块,第1张

概述我正在研究为ARM linux交叉编译内核模块.我安装了工具链. 但是我从各种各样的方法中得到了一些东西. 我想要构建的模块是gadgetfs. 我的主机上的内核版本是3.5.0-34-generic  在目标上它是3.6.9-0.1 现在我实际需要下载和安装哪些内核源代码或头文件,以及在哪里? 我从kernel.org下载了linux-3.6.9.tar.bz2并将其解压缩. 在drivers 我正在研究为ARM linux交叉编译内核模块.我安装了工具链.
但是我从各种各样的方法中得到了一些东西.
我想要构建的模块是gadgetfs.

我的主机上的内核版本是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`/buildPWD := `pwd`obj-m := dummy_hcd.o gadgetfs.odefault: $(MAKE) -C $(KDIR) SUBDirs=$(PWD) modules

但我有什么需要取代uname -r?因为这会给我主机的内核版本.但我的目标版本不同. /lib/modules/3.6.9文件夹在哪里?
CROSS_COMPILE和ARCH都已设置.

解决方法 您需要在主机上为您的目标交叉编译(或下载预编译)匹配版本的linux,并且配置正确,因为linux没有 stable binary API.主机的内核版本不相关.

在主机上提供目标构建后,您可以通过构建模块

make -C kernel_build_dir M=`pwd` ARCH=arm CROSS_COMPILE=<...> modules

在该模块的目录下.

总结

以上是内存溢出为你收集整理的linux-kernel – 交叉编译Linux内核模块全部内容,希望文章能够帮你解决linux-kernel – 交叉编译Linux内核模块所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1017998.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存