- 加载自定义的LCD驱动程序的前后,执行“ls /dev/fb*”发现多了一个/dev/fb0这个节点,此节点正是LCD节点,并且发现加载前LCD是黑的,加载后LCD被点亮了~
- 执行“echo sadjason > /dev/tty1”指令发现LCD上显示了“sadjason”字样
- 执行“cat etc/inittab > /dev/tty1”指令发现inittab内容被显示在LCD中
来点高级的 - 修改etc/inittab,添加一条“tty1::askfirst:-/bin/sh”,如下:
然后重新启动系统,加载LCD驱动程序后,LCD被点亮,并有“Please press Enter to activate this console.”提示字样。再加载另外一个驱动程序,这是之前做过的实验,它是按键驱动程序,四个按键分别对应“S”“L”“Enter”“LeftShift”四个按键的功能,加载后,按下Enter按键,可以看到LCD多以一项提示信息“starting pid 899, tty ‘/dev/console’: ‘/bin/sh’”,也即另一个shell进程被启动了~
查看该进程的输入输出指向,得到信息如下:
发现输入、输出、错误设备都指向了tty1~
测试暂时到此为止,下文将对“测试原理”进行稍微分析~
a. 执行“echo sadjason > /dev/tty1”指令发现LCD上显示了“sadjason”字样
容易知道echo的功能–“echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开,并在最后加上换行号”对于本测试,它不是将字符串送往标准输出,而是送往/dev/tty1。为什么会显示在LCD中呢,tty1对应的是fbcon.c这个驱动程序(不太理解),这个驱动程序里会调用函数registered_fb,在驱动程序注册进去情况下会把所要显示的内容发送到缓冲区。
ps:不是很明白!
b. 执行“cat etc/inittab > /dev/tty1”指令发现inittab内容被显示在LCD中
对于cat命令,详见《cat指令详解》。对于本实例,它将etc/inittab文件内容送给/dev/fb0。
c. 修改etc/inittab,添加一条“tty1::askfirst:-/bin/sh”