要求
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目录:
常用的模块操作命令
- lsmod(list module)
功能:此命令会把当前内核中已经安装的模块列表打印出来。它读取 /proc/modules 文件,该文件会记录当前内核加载的所有模块信息。
用法示例:在终端输入 lsmod 即可。
lsmod
输出示例:
Module Size Used by
nls_iso8859_1 16384 1
ext4 786432 1
jbd2 131072 1 ext4
输出解释:输出内容包含三列,第一列是模块名,第二列是模块占用的内存大小(单位为字节),第三列是使用该模块的其他模块数量。
- insmod(install module)
功能:该命令的作用是向当前内核中安装一个模块。不过它不会处理模块之间的依赖关系,若模块有依赖项,需手动先加载这些依赖模块。
用法示例:假设存在一个名为 my_module.ko 的内核模块,可使用以下命令进行加载:
insmod my_module.ko
注意事项:运行此命令需要有 root 权限,否则会提示权限不足的错误。
- modinfo(module information)
功能:此命令能打印出一个内核模块的自带信息,像模块的作者、描述、版本、依赖项等内容。
用法示例:若要查看 my_module.ko 模块的信息,可使用如下命令:
modinfo my_module.ko
输出示例:
filename: /lib/modules/5.15.0-72-generic/kernel/drivers/net/wireless/intel