如何配置BeagleBone Black(BBB)通电后保持关机状态
如何配置BeagleBone Black(BBB)通电后保持关机状态,等待按键开机
嘿,这个需求我之前帮不少朋友解决过,完全可以实现!BBB默认通电就自动启动,但我们可以通过调整u-boot的启动逻辑,让它通电后进入待机状态,只有当你按下电源按键时才启动系统。下面是具体的操作步骤:
步骤1:进入u-boot命令行
BBB启动时会有几秒的倒计时(默认3秒),你需要在这个时间段内进入u-boot的交互模式:
- 如果有串口连接BBB的调试串口(UART0),在启动倒计时期间按任意键即可进入u-boot shell。
- 如果没有串口,开机时按住板载的用户按键(S2),直到看到启动停止并进入命令行界面。
步骤2:修改u-boot环境变量
进入u-boot后,我们需要设置自定义启动命令,让系统检测电源按键状态后再决定是否启动:
先查看当前的
bootcmd变量(这是u-boot默认的启动命令),输入:printenv bootcmd你会看到类似
run mmcboot的输出,这是默认从SD卡/eMMC启动的命令。设置新的
bootcmd变量,让它循环检测电源按键(对应GPIO30)的状态,只有当按键被按下时才执行启动命令:setenv bootcmd 'gpio input 30; if test $gpio_val -eq 0; then run mmcboot; else sleep 1; run bootcmd; fi'解释一下:BBB的电源按键连接到GPIO30,默认是高电平(值为1),按下后会被拉低(值为0)。上面的命令会持续检测GPIO30的状态,当检测到按键按下(值为0)时,就执行默认的
mmcboot启动系统;否则每隔1秒重新检测一次,保持待机状态。保存修改后的环境变量,确保重启后生效:
saveenv
步骤3:验证功能
现在断开BBB的电源,重新接通,你会发现BBB不再自动启动了。按下板载的电源按键(PWR_BUTTON),系统就会正常启动;关机后再次通电,依然会保持关机状态,等待按键触发。
额外注意事项
- 如果你的BBB使用的是较旧的u-boot版本,可能需要调整GPIO的编号或者检测逻辑,可以通过
gpio list命令查看可用的GPIO引脚确认。 - 确保系统中的电源按键功能正常,默认情况下BBB的电源按键已经配置为软关机和开机触发,不需要额外修改系统配置。
内容的提问来源于stack exchange,提问作者Jirka RCK
相关产品推荐
相关产品推荐

