U-boot
带有一个简单的登陆验证功能。在U-boot
的代码source/common/main.c
中,有三个宏定义:html
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
十六进制值。code
须要注意的是,CONFIG_AUTOBOOT_DELAY_STR
的全部字符须要在读秒时间内所有发送完成。CONFIG_AUTOBOOT_DELAY_STR
和CONFIG_AUTOBOOT_STOP_STR
是或的关系,读秒时间内只要有一个知足就会中断自启,即只要按ESC
键或者输入passwd
都会进入命令行。htm
另外可使用以下的方式定义多位STOP_STR
:字符串
#define CONFIG_AUTOBOOT_STOP_STR "stopgs" #define CONFIG_AUTOBOOT_STOP_STR "\x1b\x1b"
第1
行使用字符串的方式定义STOP_STR
,第2
行用ASCII
的方式定义两个位的STOP_STR
,即须要连续按两次ESC
键才会中断自启。get
给U-boot命令行登陆加入密码验证thread