1. Linux内核的配置与裁减:
一、内核的配置和编译流程:
1)编写driver及其子目录下的Kconfig文件,将驱动的配置项写入menuconfig配置界面;
2) 执行make menuconfig命令,进入内核配置界面,将对应的驱动程序配置进内核或者模块;
3)生成.congfig文件,可以看到驱动在内核配置的模式;
4)执行make zImage编译内核,生成内核镜像;
2) 执行make menuconfig命令,进入内核配置界面,将对应的驱动程序配置进内核或者模块;
3)生成.congfig文件,可以看到驱动在内核配置的模式;
4)执行make zImage编译内核,生成内核镜像;
二、例程:添加并配置HELLO.c驱动:
1) 在Kconfig中的添加HELLO,然后查看menuconfig
仿照LEDS_CTL写HELLO配置,其中,tristate为三态模式;
config HELLO
tristate "Eable HELLO config"
default y
help
Enable HELLO config
仿照LEDS_CTL写HELLO配置,其中,tristate为三态模式;
config HELLO
tristate "Eable HELLO config"
default y
help
Enable HELLO config
config LEDS_CTL
bool "Enable LEDS config"
default y
help
Enable LEDS config
bool "Enable LEDS config"
default y
help
Enable LEDS config
2)make menuconfig进入char菜单,在Character devices下可看到<*> Eable HELLO config
3)vi .config 可看到CONFIG_HELLO=y,宏定义表示被编进内核;
4)将写好的hello.c驱动放到driver/char目录下, vi drivers/char/Makefile添加obj-$(CONFIG_HELLO) += hello.o;
表示如果宏$(CONFIG_HELLO) 被定义,则将hello.c编译进内核;
表示如果宏$(CONFIG_HELLO) 被定义,则将hello.c编译进内核;
5)make zImage编译内核;
6)ls ./arch/arm/boot/ 可看到生成镜像文件zImage;