U-boot
带有一个简单的登录验证功能。在U-boot
的代码source/common/main.c
中,有三个宏定义:
CONFIG_AUTOBOOT_KEYED //是开关
CONFIG_AUTOBOOT_PROMPT //是打印信息
CONFIG_AUTOBOOT_DELAY_STR //是口令
CONFIG_AUTOBOOT_STOP_STR //是中断自动启动的按键
那么可以在main.c
中加入如下内容:
#define CONFIG_AUTOBOOT_KEYED 1
#define CONFIG_AUTOBOOT_PROMPT "autoboot in %d seconds", bootdelay
#define CONFIG_AUTOBOOT_DELAY_STR "passwd"
#define CONFIG_AUTOBOOT_STOP_STR "\x1b"
第1
行使能KEY
功能,第2
行打印提示,按ESC
中断自动启动,第4
行定义的即为密码,第5
行1b
即为ESC
键的ASCII
十六进制值。
需要注意的是,CONFIG_AUTOBOOT_DELAY_STR
的所有字符需要在读秒时间内全部发送完成。CONFIG_AUTOBOOT_DELAY_STR
和CONFIG_AUTOBOOT_STOP_STR
是或的关系,读秒时间内只要有一个满足就会中断自启,即只要按ESC
键或者输入passwd
都会进入命令行。
另外可以使用如下的方式定义多位STOP_STR
:
#define CONFIG_AUTOBOOT_STOP_STR "stopgs"
#define CONFIG_AUTOBOOT_STOP_STR "\x1b\x1b"
第1
行使用字符串的方式定义STOP_STR
,第2
行用ASCII
的方式定义两个位的STOP_STR
,即需要连续按两次ESC
键才会中断自启。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。