linux驱动编译进内核或模块配置
2017-11-01 10:18
295 查看
主要是修改配置2个文件:Kconfig和Makefile
2.6内核的源码树目录下一般都会有二个文件:Kconfig和makefile ,分布在各目录下的Kconfig构成一个额分布式的内核配置库,每个k config分别描述了所属目录源文件相关内核的配置菜单,在内核配置make menuconfig时,从Kconfig中读取配置菜单,用户配置完成后保存为.config(在顶层目录下生成)中。
在内核编译时,主makefile调用这个.config ,就知道用户对内核的配置情况。假如要想添加新的驱动到内核源码中,可以通过修改Kconfig来增加我们自己驱动的配置菜单,还需要修改该驱动所在目录的makefile.
应用实例:
用户驱动:test_driver
在/driver目录下新建文件夹test_driver
test_driver下的树形目录:
--test_driver
--cpu
--cpu.c
--makefile
--test_driver.c
--Kconfig
--makefile
test_driver目录下的kconfig文件:
menu “TEST_DRIVER"
comment "TEST _Driver"
config CONFIG_TEST
bool "TEST support"
config CONFIG_TEST_USER
tristate "test user-space interface"
depends on CONFIG_TEST
endmenu
另外需要使新加的Kconfig挂接在整个Kconfig树下:
修改arch/arm/Kconfig文件,增加:source ”driver/test_driver/Kconfig’
test_driver下的makefile文件:
obj-$(CONFIG_TEST)+=test_driver.o
obj-$(CONFIG_TEST_CPU) +=cpu/
test_driver子目录下的makefile
obj-$(CONFIG_TEST_CPU) +=cpu.o
使新增加的makefile文件挂接在整个Makefile树下需修改test_driver父目录Driver下的makefile,
obj-$(CONFIG_TEST)+=test_driver/
2.6内核的源码树目录下一般都会有二个文件:Kconfig和makefile ,分布在各目录下的Kconfig构成一个额分布式的内核配置库,每个k config分别描述了所属目录源文件相关内核的配置菜单,在内核配置make menuconfig时,从Kconfig中读取配置菜单,用户配置完成后保存为.config(在顶层目录下生成)中。
在内核编译时,主makefile调用这个.config ,就知道用户对内核的配置情况。假如要想添加新的驱动到内核源码中,可以通过修改Kconfig来增加我们自己驱动的配置菜单,还需要修改该驱动所在目录的makefile.
应用实例:
用户驱动:test_driver
在/driver目录下新建文件夹test_driver
test_driver下的树形目录:
--test_driver
--cpu
--cpu.c
--makefile
--test_driver.c
--Kconfig
--makefile
test_driver目录下的kconfig文件:
menu “TEST_DRIVER"
comment "TEST _Driver"
config CONFIG_TEST
bool "TEST support"
config CONFIG_TEST_USER
tristate "test user-space interface"
depends on CONFIG_TEST
endmenu
另外需要使新加的Kconfig挂接在整个Kconfig树下:
修改arch/arm/Kconfig文件,增加:source ”driver/test_driver/Kconfig’
test_driver下的makefile文件:
obj-$(CONFIG_TEST)+=test_driver.o
obj-$(CONFIG_TEST_CPU) +=cpu/
test_driver子目录下的makefile
obj-$(CONFIG_TEST_CPU) +=cpu.o
使新增加的makefile文件挂接在整个Makefile树下需修改test_driver父目录Driver下的makefile,
obj-$(CONFIG_TEST)+=test_driver/
相关文章推荐
- linux、内核源码、内核编译与配置、内核模块开发、内核启动流程
- 【转】Linux驱动模块编译进内核中
- linux、内核源码、内核编译与配置、内核模块开发、内核启动流程(转)
- linux驱动开发内核模块编译——Makefile入门
- Code maturity level options 代码成熟度选项 [*]Prompt for development and/or incomplete code/drivers 显示尚在开发中或尚未完成的代码与驱动.除非你是测试人员或者开发者,否则请勿选择 我是开发者,所以选[*] Loadable module support 可加载模块支持 [*]Enable loadable module support 内核编译配置选项简介 (2.4.20-8
- Linux 驱动开发之内核模块开发 (二)—— 内核模块编译 Makefile 入门
- linux、内核源码、内核编译与配置、内核模块开发、内核启动流程
- linux启动时对编译进内核驱动模块的加载
- linux、内核源码、内核编译与配置、内核模块开发、内核启动流程
- 基于linux2.6.30.4内核的DM9000网卡驱动编译成模块成功ping通
- Linux内核驱动学习(一)----内核简介 | 配置 | 编译| 安装(PC平台下)
- linux 内核模块的编译(用于驱动开发)
- linux驱动学习--第六天:第四章 Linux 内核模块 之 Linux 内核模块编译
- linux启动时对编译进内核驱动模块的加载
- Linux内核驱动学习(一)----内核简介 | 配置 | 编译| 安装(PC平台下)
- 从 2.4 到 2.6:Linux 内核可装载模块机制的改变对设备驱动的影响—linux2.4单独编译驱动模块
- Linux + ARM驱动开发环境配置(内核配置与编译)
- 转:linux启动时对编译进内核驱动模块的加载
- Linux 驱动开发之内核模块开发 (二)—— 内核模块编译 Makefile 入门
- 将LED驱动模块编译到Linux3.10.17内核