linux build编译,Linux-在编译内核时构建/ lib / modules / $(uname -r)/ build

本文介绍了如何在Linux环境下为嵌入式设备交叉编译内核,并解决构建/lib/modules/$(uname -r)/build目录的需求。通过设置INSTALL_MOD_PATH和使用make modules_install,可以将模块安装到指定路径。同时,使用KLIB_BUILD变量在编译第三方驱动如compat-wireless时指定内核构建目录。最后,文章提供了将编译结果转移到目标系统的步骤,强调了保持源代码与内核版本一致的重要性。
摘要由CSDN通过智能技术生成

我正在为嵌入式设备交叉编译3.4.0内核.然后,我想安装需要/lib/modules/3.4/build目录和子文件的compat-wireless驱动程序.谁能解释我如何建立该目录,以便当我执行INSTALL_MOD_PATH = newmodules进行modules_install时,它也将加载/ lib / modules / $(uname -r)/ build目录?我希望能得到明确的解释.

我正在使用debian发行版.我知道我可以通过apt-get install linux-headers-$(uname -r)安装内核头文件,但是我怀疑这是个好主意,因为内核源代码可能不相同.

解决方法:

通常,/ lib / modules / $(uname -r)/ build是到执行构建目录的软链接.因此,执行此操作的方法是简单地执行

make modules_install INSTALL_MOD_PATH=/some/root/

在内核的构建目录中,/ some / root是您希望交叉编译片段结束的位置.这将在/ some / root / lib / modules / $(uname -r)中创建指向您的内核构建路径的链接.

现在,当您构建compat_wireless驱动程序时,使用KLIB_BUILD变量在Makefile中将内核构建目录指定为/ some / root(读取Makefile).

make modules KLIB_BUILD=/some/root/lib/modules/$(uname -r)/build

这应该为您解决问题.

编辑A

为了回答您在下面的评论:

>将“ newmodules”保留在内核目录之外,将其放在内核目录中是个坏主意.所以mkdir newmodules像/ home / foo或/ tmp之类的东西.这是您的构建链接搞砸的原因之一

> ALSO … / bui

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值