我最终希望修改和编译现有的Linux存储驱动程序,并对其进行测试。作为第一步,我想按原样编译模块。
我下载了最新的Linux内核(版本3.12),并将其解压缩到~/linux-3.12中。
我找到了我想编译的驱动程序:drivers/usb/storage,但是当我运行make时,我得到了以下错误:
make: *** No targets. Stop.我在网上找到了很多指南,但没有一个在USB存储驱动程序中工作。我想要的只是编译这个模块并获得.ko,这样我就可以测试它了。
注意:我正在运行Ubuntu13.04 64位,uname -r输出3.8.0-30-generic -我不确定这是否是问题所在,但我之前成功地编译了整个内核。我现在不想这么做,因为这需要时间。
发布于 2013-11-15 15:10:51
如果您想构建drivers/usb/storage模块,您可以这样做:
make M=drivers/usb/storage从内核树的根目录。在这样做之前,您需要确保您的配置与正在运行的内核的配置相同。
发布于 2013-11-15 08:16:41
您不能简单地为一个内核获取源代码,并使用它为另一个内核构建模块。模块需要从同一个源构建,并具有与内核本身相同的配置。
基本上,您需要为运行的Ubuntu内核找到源代码。在Ubuntu中,就像在Debian中一样,这可以通过“apt-get源”来完成。包名可能类似于‘Linux-Image-3.8-2-AMD 64’。
一旦您有了源代码,您就需要找到正在运行的内核的配置。幸运的是,Ubuntu将其保存在/boot/config-3.8-.
将该配置复制到内核源代码树作为.config,并运行‘’。现在,您应该能够构建模块(假设它还没有内置到内核中!)。
https://stackoverflow.com/questions/19995464
复制相似问题