当前位置: 首页 > web >正文

Linux驱动:驱动编译流程了解

要求

1、开发板中的linux的zImage必须是自己编译的
2、内核源码树,其实就是一个经过了配置编译之后的内核源码。
3、nfs挂载的rootfs,主机ubuntu中必须搭建一个nfs服务器。

内核源码树

在这里插入图片描述
解压

 tar -jxvf x210kernel.tar.bz2 

在这里插入图片描述
编译

make x210ii_qt_defconfig

在这里插入图片描述

make

Can’t use ‘defined(@array)’ (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.
make[1]: *** [/home/aston/workspace/driver/kernel/kernel/Makefile:138: kernel/timeconst.h] Error 255
make: *** [Makefile:883: kernel] Error 2
在这里插入图片描述

make

编译完成
在这里插入图片描述
内核源码树目录:
在这里插入图片描述
zImage目录:
在这里插入图片描述

常用的模块操作命令

  1. lsmod(list module)
    功能:此命令会把当前内核中已经安装的模块列表打印出来。它读取 /proc/modules 文件,该文件会记录当前内核加载的所有模块信息。
    用法示例:在终端输入 lsmod 即可。
lsmod

输出示例:

Module                  Size  Used by
nls_iso8859_1          16384  1
ext4                  786432  1
jbd2                  131072  1 ext4

输出解释:输出内容包含三列,第一列是模块名,第二列是模块占用的内存大小(单位为字节),第三列是使用该模块的其他模块数量。

  1. insmod(install module)
    功能:该命令的作用是向当前内核中安装一个模块。不过它不会处理模块之间的依赖关系,若模块有依赖项,需手动先加载这些依赖模块。
    用法示例:假设存在一个名为 my_module.ko 的内核模块,可使用以下命令进行加载:
insmod my_module.ko

注意事项:运行此命令需要有 root 权限,否则会提示权限不足的错误。

  1. modinfo(module information)
    功能:此命令能打印出一个内核模块的自带信息,像模块的作者、描述、版本、依赖项等内容。
    用法示例:若要查看 my_module.ko 模块的信息,可使用如下命令:
modinfo my_module.ko

输出示例:

filename:       /lib/modules/5.15.0-72-generic/kernel/drivers/net/wireless/intel
http://www.xdnf.cn/news/5726.html

相关文章:

  • 向量组的维度是单个向量中元素的个数
  • Vue3的命名规范
  • 从ES5到ES6+:JavaScript语法演进与实现解析
  • 《汽车软件升级通用技术要求》 GB 44496-2024——解读
  • 仿函数和函数对象
  • Java中堆栈
  • vue实现进度条带指针
  • Elasticsearch 字段映射与数据类型
  • 面试专栏-03-Git的常用命令
  • 异构计算时代:混合编程的崛起与未来
  • 大型视频学习平台项目问题解决笔记
  • Megatron系列——流水线并行
  • KUKA机器人安装包选项KUKA.PLC mxAutomation软件
  • 产品功能更新迭代后需要重做算法备案吗?
  • Linux系统管理与编程20:Apache
  • 关于mac配置hdc(鸿蒙)
  • Nginx部署前端项目深度解析
  • 使用 Syncthing 在两台电脑之间同步文件:简单教程
  • 用drawdb.app可视化创建mysql关系表
  • 开源 RPA 工具深度解析与官网指引
  • 学习黑客Windows 病毒与威胁防护
  • Clickhouse 迁移到 Doris 的最佳实践
  • PyTorch 中的 Autograd 实现细节解析和应用
  • TCPIP详解 卷1协议 九 广播和本地组播(IGMP 和 MLD)
  • 力扣算法ing(69 / 100)
  • MongoDB使用x.509证书认证
  • 单片机Day10
  • 【Mysql基础】二、函数和约束
  • 职坐标IT培训:互联网行业核心技能精讲
  • Model.eval() 与 torch.no_grad() PyTorch 中的区别与应用