linux 模块编译配置,linux内核配置模块编译安装

Linux 内核配置编译和加载内核配置编译和加载 Linux 内核模块内核模块 Linux 内核结构非常庞大 包含的组件也非常多 想要把我们需要的部分添加到内核中 有两个方法 直接编译进内核和模块机制 由于直接编译进内核有两个缺点 一是生成的内核过大 二是每次修改内核中功能 就必须重新编译内核 浪费时间 因此我们一般采用模块机制 模块本身不被编译进内核 映像 只有在加载之后才会成为内核的一部分 方便了修改调试 节省了编译时间 配置内核配置内核 1 在 drivers 目录下创建 hello 目录存放 hello c 源文件 2 在 hello 目录下新建 Makefile 文件和 Kconfig 文件 Makefile 文件内容 obj y hello o 要将 hello c 编译得到的 hello o 连接进内核 Kconfig 文件内容 3 在 hello 目录的上级目录的 Kconfig 文件中增加关于新源代码对应项目的编译配置选项 修改即 driver 目录下的 Kconfig 文件 添加 允许编译成模块 因此使用了tristate source drivers hello Kconfig 使 hello 目录下的 Kconfig 起作用 4 在 hello 目录的上级目录的 Makefile 文件中增加对新源代码的编译条目 修改 driver 目录下的 Makefile 文件 添加 obj CONFIG HELLO FOR TEST hello 使能够被编译命令作用到 5 命令行输入 make menuconfig 找到 driver device 选择 select 发现 test menu 已经在配置菜单界面显示出来 6 选择 test menu 进入具体的配置 可以选择 Y N M 这里我选择编译为 M 即模块 化 7 保存退出后出现 8 进入 kernels 目录中使用 ls a 查看隐藏文件 发现多出 config 隐藏文件 查看 config 文件 被成功配置 配置为模块编译 模块方式动态编译进内核模块方式动态编译进内核 一 模块编译一 模块编译 1 编写 Makefile 文件 对已有的 Makefile 文件进行修改 KVERS usr src kernels 2 6 18 8 el5 xen i686 Kernel modules obj m hello o 指定要添加的模块 Specify flags for the module compilation 优化选项 调试阶段先注销 EXTRA CFLAGS g O0 build kernel modules kernel modules make C KVERS M CURDIR modules 使用 C 目录下的 Makefile 对 M 后变的目 录中的模块 即当前目录中的模块 进行编译 clean make C KVERS M CURDIR clean 2 在当前目录下执行 make 命令 发现多出 ko 文件 这就是形成的模块 二 模块加载二 模块加载 1 在终端输入 insmod hello o 进行加载 再用 lsmod 查看当前系统中使用的模 块 Hello 模块已经被插入 2 在终端输入 dmesg tail 4 这是查看内核输出信息的意思 tail 12 显示最后 12 条 三 模块卸载三 模块卸载 日志文件中输出 printk 的内容 加载成功 Hello 模块已不在当前系统中

展开阅读全文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值