前提条件:
- 可以进入U-Boot,一般需要调试串口 使用minicom连接相应串口,在Hit any key to stop autoboot时按下按键
特别的如果minicom中按键没有作用,需要调整minicom的流控设置
sudo minicom -s
选择Serial port setup
将 Hardware Flow Control改为No
U-Boot一般情况下都未设置密码,此处是一个安全隐患
- 进入U-Boot核心思路为改变bootargs的参数,在参数后增加single init=/bin/sh参数
先尝试使用查找bootargs参数
u-boot=> printenv bootargs
bootargs=XXXXX
u-boot=> setenv bootargs "XXXXX single init=/bin/sh"
u-boot=> saveenv
操作完毕后这里要记得改回去
如果未查找到bootargs参数大概率使用了间接定义例如我这个
u-boot=> print
XXXX
mmcargs=setenv bootargs ${jh_clk} console=${console} root=${mmcroot}
netargs=setenv bootargs ${jh_clk} console=${console} root=/dev/nfs ip=dhcp nfsrp
XXXX
首先确定我是使用mmc启动所以更改mmcargs参数
u-boot=> setenv mmcargs "setenv bootargs ‘${jh_clk}‘ console=‘${console}‘ root=‘${mmcroot}‘ single init=/bin/sh"
u-boot=> saveenv
这里需要注意显示为${console}的在设置时需要加”否则会直接将值带入中
- 重启
可以正常进入命令行,使用passwd命令修改相关用户密码
- 修改完毕后记得恢复U-Boot相关环境变量的值