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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

li星野

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值