Makefile 测试
本小节给大家做个简单的小实验,通过配置 menuconfig 中的 LEDS,来将内核编译进内核或者不编译进内核。
1 将 LEDS 驱动不编译
进内核如下图所示,在给大家提供的源码中,解压之后默认状态就有将“itop4412_leds.c”编译进内核的中间文件“itop4412_leds.o”,如下图所示。
如下图所示,使用命令“rm -rf drivers/char/itop4412_leds.o”删除掉 LEDS 驱动的中间文件“itop4412_leds.o”。
如下图所示,使用命令“ls drivers/char/”查看一下,发现已经没有了“itop4412_leds.o”文件。
然后使用命令“make menuconfig”,打开配置工具,如下图所示。
打开之后,如下图所示。找到“Device Drivers ---》 ”选项。
如下图所示,进入到“Device Drivers ---》 ”选项,找到选项“Character devices---》”。
如下图所示,找到选项“Enable LEDS config”,将 LEDS 的配置关闭
退出,保存,生成新的“.config”文件。
保存退出后,打开“.config”文件,可以发现“CONFIG_LEDS_CTL”没有配置。
关闭“.config”文件,然后执行编译内核的命令“make”,如下图所示。
如下图所示,编译完成。
如下图所示,使用命令“ls drivers/char”查看 LEDS 驱动所在目录,发现并没有产生了中间文件。
最后也可以将生成的文件“zImage”文件下载到开发板,会发现“/dev”目录中没有产生 LEDS 驱动的设备节点“leds”。
2 将 LEDS 驱动编译进内核
接上一小节,如下图所示,使用命令“make menuconfig”,打开 menuconfig 配置工具。
进入“ Device Drivers ---》”选项,然后进入“Character devices ---》”选项,然后如下图所示,配置上“Enable LEDS config”。
保存退出。打开“.config”文件,可以发现“CONFIG_LEDS_CTL=y”已经配置。
执行编译命令“make”,如下图所示,编译完成之后,使用命令“ls drivers/char/”可以看到“itop4412_leds.o”已经生成。
最后也可以将生成的文件“zImage”文件下载到开发板,会发现“/dev”目录中产生LEDS 驱动的设备节点“leds”,LED 灯的控制又恢复正常了。
Makefile 测试
本小节给大家做个简单的小实验,通过配置 menuconfig 中的 LEDS,来将内核编译进内核或者不编译进内核。
1 将 LEDS 驱动不编译
进内核如下图所示,在给大家提供的源码中,解压之后默认状态就有将“itop4412_leds.c”编译进内核的中间文件“itop4412_leds.o”,如下图所示。
如下图所示,使用命令“rm -rf drivers/char/itop4412_leds.o”删除掉 LEDS 驱动的中间文件“itop4412_leds.o”。
如下图所示,使用命令“ls drivers/char/”查看一下,发现已经没有了“itop4412_leds.o”文件。
然后使用命令“make menuconfig”,打开配置工具,如下图所示。
打开之后,如下图所示。找到“Device Drivers ---》 ”选项。
如下图所示,进入到“Device Drivers ---》 ”选项,找到选项“Character devices---》”。
如下图所示,找到选项“Enable LEDS config”,将 LEDS 的配置关闭
退出,保存,生成新的“.config”文件。
保存退出后,打开“.config”文件,可以发现“CONFIG_LEDS_CTL”没有配置。
关闭“.config”文件,然后执行编译内核的命令“make”,如下图所示。
如下图所示,编译完成。
如下图所示,使用命令“ls drivers/char”查看 LEDS 驱动所在目录,发现并没有产生了中间文件。
最后也可以将生成的文件“zImage”文件下载到开发板,会发现“/dev”目录中没有产生 LEDS 驱动的设备节点“leds”。
2 将 LEDS 驱动编译进内核
接上一小节,如下图所示,使用命令“make menuconfig”,打开 menuconfig 配置工具。
进入“ Device Drivers ---》”选项,然后进入“Character devices ---》”选项,然后如下图所示,配置上“Enable LEDS config”。
保存退出。打开“.config”文件,可以发现“CONFIG_LEDS_CTL=y”已经配置。
执行编译命令“make”,如下图所示,编译完成之后,使用命令“ls drivers/char/”可以看到“itop4412_leds.o”已经生成。
最后也可以将生成的文件“zImage”文件下载到开发板,会发现“/dev”目录中产生LEDS 驱动的设备节点“leds”,LED 灯的控制又恢复正常了。
举报