一. 简介
前面几篇文章学习了如何使用Linux内核自带的Led驱动。一篇文章通过对驱动分析,了解了驱动与设备匹配的关键点。
一篇文章学习了如何配置使能Linux内核自带的Led驱动,第二篇文章学习创建Led设备树节点(针对使用Linux内核自带的Led驱动的使用)。文章如下:
Linux内核自带的LED灯驱动框架:驱动与设备匹配分析-CSDN博客
Linux内核自带的 LED 灯驱动实验:Linux内核自带 Led驱动使能-CSDN博客
Linux内核自带的 LED 灯驱动实验:创建Led设备节点-CSDN博客
本文将新编译生成的 zImage与设备树 imx6ull-alientek-nand.dtb加载运行到开发板上,确定Linux自带的Led驱动是否可用。
二. Linux内核自带的LED驱动实验:Led驱动功能测试
1. 将zImage与设备树文件拷贝到开发板的文件系统下
注意:这里开发板是通过 tftp服务加载的方式,从ubuntu系统加载 zImage和设备树文件的。所以,这里把zImage拷贝到 ubuntu系统中tftp服务所设置的目录下。
将前面编译生成的 zImage拷贝到开发板的文件系统:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga$ cp ./arch/arm/boot/zImage /home/wangtian/linux/tftp_file/ -f
拷贝设备树imx6ull-alientek-nand.dtb 到开发板系统下:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga$ cp ./arch/arm/boot/dts/imx6ull-alientek-nand.dtb /home/wangtian/linux/tftp_file/ -f
2. 开发板上电
开发板上电后,进入开发板的文件系统,启 动 以 后 查 看 /sys/bus/platform/devices/kernel_led 这个目录是否存在:
可以看出,在 leds 目录下有一个名为“ red ”子目录,这个子目录的名字就是在设备树所创建的 kernel_led中的 led0的 label 属性值。
我们的设置究竟有没有用,最终是要通过测试才能知道的。
首先查看一下系统中有没有 “sys/class/leds/red/brightness ” 这个文件(也就是 /sys/bus/platform/devices/kernel_led/leds/red目录下 )
输入如下命令打开 RED 这个 LED 灯:
echo 1 > /sys/class/leds/red/brightness
运行上述命令后, 这里我开发板上的 led灯亮了。
关闭 RED 这个 LED 灯的命令如下:
echo 0 > /sys/class/leds/red/brightness
运行上面命令后, 这里我开发板上的 led灯灭了。
如果能正常的打开和关闭 LED 灯话就说明我们 Linux 内核自带的 LED 灯驱动工作正常。