Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何交叉编译外部内核模块时,内核构建是脱离树?

如何交叉编译外部内核模块时,内核构建是脱离树?
EN

Stack Overflow用户
提问于 2019-07-23 05:39:43
回答 1查看 1K关注 0票数 0

在一台x86_64主机上,我交叉编译了一个Linux内核,用于树外的ARM目标。所以我有两个目录:

  1. ~/内核_git_repo/-只包含内核源
  2. ~/ .config _buld_dir/-包含.config文件和构建的内核对象

在第三个目录中

  1. ~/外部模块-外部内核模块的源

我有一个外部模块的源代码,带有Makefile。

树内构建的内核的“通常”命令是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
make -C <path-to-compiled-src-code> M=$(PWD) modules

对于我的树外构建的内核,无论是~/内核_git_repo/还是~/核_buld_dir/工作都不是<path-to-compiled-src-code>。看来,make命令既需要,也需要,是内核源代码回购和基础设施,是包含.config文件和对象的构建目录。

在这种情况下,在~/external_ module /Makefile中使用什么make命令来构建模块?

EN

回答 1

Stack Overflow用户

发布于 2021-05-28 15:23:03

你说得对,本质上是一样的,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(MAKE) -C  $(KDIR) SUBDIRS=$(shell pwd) modules

例外

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
KDIR=/path/to/kernel/source
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57165477

复制
相关文章
如何增加内核模块
Kconfig 1.先了解一下Kconfig的语法:  一个典型的内核配置菜单如下: menu "Network device support"  config NETDEVICES          bool "Enable Net Devices"          depends on NET          default y         help                 This is help desciption。  ...  endmenu  包含在menu/endmenu中的
233333
2018/03/07
1.6K0
如何增加内核模块
脱离Arduino IDE的外部编译及上传模式
大疆官网下载的安装包里面有这个东西,解压就好.如果不知道我在说什么可能文章不太适合你,可以看看我前面的文章
云深无际
2020/12/03
1.9K0
脱离Arduino IDE的外部编译及上传模式
【Linux 内核】编译 Linux 内核 ⑦ ( 安装内核模块 | 安装内核 | 重启系统 | 查看当前内核版本 )
确保 Linux 内核编译完成 , 没有任何报错之后 ; 参考 【Linux 内核】编译 Linux 内核 ⑥ ( 安装 OpenSSL | 安装其它依赖库 | 内核编译完成 ) 博客 ;
韩曙亮
2023/03/30
16.2K0
【Linux 内核】编译 Linux 内核 ⑦ ( 安装内核模块 | 安装内核 | 重启系统 | 查看当前内核版本 )
ipset如何与netfilter内核模块进行通信
最近需要使用ipset,iptables,和netfilter,所以把三者的源代码看大概阅读了一遍。
全栈程序员站长
2022/11/08
1.4K0
ipset如何与netfilter内核模块进行通信
Linux内核模块详解
内核模块是Linux操作系统中一个比较独特的机制。通过这一章学习,希望能够理解Linux提出内核模块这个机制的意义;理解并掌握Linux实现内核模块机制的基本技术路线;运用Linux提供的工具和命令,掌握操作内核模块的方法。
全栈程序员站长
2022/09/15
8.3K0
OpenCAS 内核模块加载
OpenCAS 内核模块加载 内核模块基本研发步骤介绍 模块加载函数,当通过insmod或者modprobe命令加载内核模块,模块加载函数会自动在内核中执行模块初始化函数 模块卸载函数,当rmmod命令卸载内核模块时候,会在内核执行模块的销毁函数 模块许可申明,许可证是用来描述内核模块的许可权限 模块的参数,模块参数是模块被加载时候可以传递参数,它对应的模块的全局变量 模块到处符号,内核模块可以导出的符号(symbol,对应的变量或者函数),导出后其他的内核模块可以使用本模块的函数或者变量 模块作者申请 内
用户4700054
2022/08/17
1.5K0
ARM C++交叉编译环境构建方法
接下来的说明以Ubuntu Desktop 19.10为例进行,18.04也没有问题。
面向对象思考
2020/03/25
3.2K0
ARM C++交叉编译环境构建方法
如何编写一个简单地内核模块
Linux给应用程序提供了丰富的api,但是有时候我们需要跟硬件交互,访问一些特权级信息,所以可以使用编写内核模块这种方式。 另外Linux是宏内核结构,效率非常高,没有微内核那样各个模块之间的通讯损耗,但是又不能方便的对内核进行改动,可扩展性和可维护性比较差,内核模块提供了一种动态加载代码的方式,弥补了宏内核的不足。
yifei_
2022/11/14
1.3K0
如何编译 Linux 内核
曾经有一段时间,升级 Linux 内核让很多用户打心里有所畏惧。在那个时候,升级内核包含了很多步骤,也需要很多时间。现在,内核的安装可以轻易地通过像 apt 这样的包管理器来处理。通过添加特定的仓库,你能很轻易地安装实验版本的或者指定版本的内核(比如针对音频产品的实时内核)。
用户8639654
2021/10/15
7.2K0
linux内核模块加载命令
lsmod 是列出目前系统中已加载的模块的名称及大小等;另外我们还可以查看 /proc/modules ,我们一样可以知道系统已经加载的模块;
全栈程序员站长
2022/09/15
5.1K0
如何用 Rust 编写一个 Linux 内核模块
2021 年 4 月 14 号,一封主题名为《Rust support》的邮件出现在 LKML 邮件组中。这封邮件主要介绍了向内核引入 Rust 语言支持的一些看法以及所做的工作。邮件的发送者是 Miguel Ojeda,为内核中 Compiler attributes、.clang-format 等多个模块的维护者,也是目前 Rust for Linux 项目的维护者。
用户1880875
2021/09/08
2.6K0
linux 网络内核模块了解01
在内核初始化期间,softirq_init 会以两个通用软IRQ对软IRQ 层做初始化。
heidsoft
2022/01/17
2K0
linux 网络内核模块了解01
MicroPython 交叉编译器(win10构建)
Python的脚本为了速度变快做了一次“编译”,对!就是这样,其实是编译过一次的。将脚本预编译为字节码。
云深无际
2021/10/20
2.6K1
MicroPython 交叉编译器(win10构建)
如何用 Rust 编写一个 Linux 内核模块
2021 年 4 月 14 号,一封主题名为《Rust support》的邮件出现在 LKML 邮件组中。这封邮件主要介绍了向内核引入 Rust 语言支持的一些看法以及所做的工作。邮件的发送者是 Miguel Ojeda,为内核中 Compiler attributes、.clang-format 等多个模块的维护者,也是目前 Rust for Linux 项目的维护者。
用户8639654
2021/09/06
3.3K0
交叉编译学习笔记(一)——交叉编译和交叉工具链
本文介绍了交叉编译和交叉工具链的基本概念,以及其在嵌入式开发中的应用。同时,还详细描述了交叉工具链的重要组成部分,以及如何使用它们进行交叉编译。
剑影啸清寒
2018/01/02
5.7K0
Linux为什么使用内核模块?
我们常常说到的操作系统有Linux、Windows、mac OS等等,手机的安卓系统就是基于Linux操作系统,这些操作系统从内核的角度分为宏内核和微内核,Linux是典型的宏内核的操作系统,Windows是典型的微内核操作系统。
混说Linux
2022/07/14
2.5K0
Linux为什么使用内核模块?
tampercfg内核模块导致机器频繁crash
该问题,疑似rootkit或者哪个软件捆绑安装的模块(apache?),不过谷歌并搜不到相关信息。
johnazhang
2022/08/10
1.9K1
linux内核使用的编程语言_linux内核模块编程
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
3.6K0
如何对 Neuron 源码进行交叉编译
Neuron 是一款开源的轻量级工业协议网关软件,支持数十种工业协议的一站式设备连接、数据接入、MQTT 协议转换,为工业设备赋予工业 4.0 时代关键的物联网连接能力。
EMQ映云科技
2022/12/15
1.2K0
wifidog交叉编译[通俗易懂]
(3)解压。并进入代码文件夹 执行./autogen.sh 可能会报错:libtoolize: command not found 这个须要安装一下依赖的工具包:apt-get install libtool
全栈程序员站长
2022/07/11
1.6K0

相似问题

交叉编译内核模块

62

加载交叉编译内核模块时出错

31

交叉编译内核模块时生成错误

13

交叉编译Linux内核模块

19

交叉编译内核模块ARM

26
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文