首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从下载的Linux源代码编译模块?

如何从下载的Linux源代码编译模块?
EN

Stack Overflow用户
提问于 2013-11-15 07:12:20
回答 2查看 935关注 0票数 1

我最终希望修改和编译现有的Linux存储驱动程序,并对其进行测试。作为第一步,我想按原样编译模块。

我下载了最新的Linux内核(版本3.12),并将其解压缩到~/linux-3.12中。

我找到了我想编译的驱动程序:drivers/usb/storage,但是当我运行make时,我得到了以下错误:

代码语言:javascript
复制
make: *** No targets.  Stop.

我在网上找到了很多指南,但没有一个在USB存储驱动程序中工作。我想要的只是编译这个模块并获得.ko,这样我就可以测试它了。

注意:我正在运行Ubuntu13.04 64位,uname -r输出3.8.0-30-generic -我不确定这是否是问题所在,但我之前成功地编译了整个内核。我现在不想这么做,因为这需要时间。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-15 15:10:51

如果您想构建drivers/usb/storage模块,您可以这样做:

代码语言:javascript
复制
make M=drivers/usb/storage

从内核树的根目录。在这样做之前,您需要确保您的配置与正在运行的内核的配置相同。

票数 3
EN

Stack Overflow用户

发布于 2013-11-15 08:16:41

您不能简单地为一个内核获取源代码,并使用它为另一个内核构建模块。模块需要从同一个源构建,并具有与内核本身相同的配置。

基本上,您需要为运行的Ubuntu内核找到源代码。在Ubuntu中,就像在Debian中一样,这可以通过“apt-get源”来完成。包名可能类似于‘Linux-Image-3.8-2-AMD 64’。

一旦您有了源代码,您就需要找到正在运行的内核的配置。幸运的是,Ubuntu将其保存在/boot/config-3.8-.

将该配置复制到内核源代码树作为.config,并运行‘’。现在,您应该能够构建模块(假设它还没有内置到内核中!)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19995464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档