问题:减少引导加载程序源代码中的 autoboot_timeout 参数。
加固板---> phyBoard-Segin i.MX6UL/ULL
当前启动时间约为 14 秒,加上自动启动超时,会额外增加 3 秒。必须将超时减少到 1。
方法一:
@引导加载程序:
cd /env/nv
LS
barebox@Phytec phyCORE-i.MX6 Ultra Lite SOM,带 NAND:/env/nv ls
。 ..allow_color
autoboot_timeout
bootchooser.state_prefix bootchooser.system0.boot
bootchooser.system1.boot bootchooser.targets
dev.eth0.ipaddr dev.eth0.linux.devname
dev.eth0.mode dev.eth0.netmask
dev.eth0.serverip dhcp.vendor_id
linux.bootargs.base linux.bootargs.rootfs
net.gateway 用户
barebox@Phytec phyCORE-i.MX6 Ultra Lite SOM(带 NAND):/env/nv
我将 autoboot_timeout 编辑为 1。
保存环境。
这个方法有效,我已经验证过。现在我希望在裸机源代码中进行相同的更改并使其反映[根据项目要求,不应在此处进行相同的更改,而应在源代码中进行]
恢复此处所做的所有更改。
方法二:
bitbake barebox -c devshell
cd defaultenv/defaultenv-2-base/bin/
我编辑 init 文件,将自动启动超时参数更改为 1。
片段:
root@hp15t:~/yocto/build/tmp/work/phyboard_segin_imx6ul_2-phytec-linux-gnueabi/barebox/2019.01.0-phy7-r7.0/git/defaultenv/defaultenv-2-base/bin# cat init #! /bin/sh
导出路径=/env/bin
全局主机名 全局用户 全局 autoboot_timeout 全局 autoboot_abort_key 全局 boot.default 全局 linux.bootargs.base 全局 linux.bootargs.console #linux.bootargs.dyn.* 启动开始时会被清除 全局 linux.bootargs.dyn.ip 全局 linux .bootargs.dyn.root 全局 editcmd
[ -z "${global.hostname}" ] && global.hostname=generic [ -z "${global.user}" ] && global.user=none magicvar -a global.user "用户名(在网络文件名中使用) " [ -z "${global.autoboot_timeout}" ] &&全局.autoboot_timeout=1 magicvar -a global.autoboot_timeout "自动启动前的超时秒数" [ -z "${global.autoboot_abort_key}" ] && global.autoboot_abort_key=any magicvar -a global.autoboot_abort_key "中止自动启动的键(有效选项:任意, ctrl-c)" [ -z "${global.boot.default}" ] && global.boot.default=net [ -z "${global.editcmd}" ] && global.editcmd=sedit
[ -e /env/config-board ] && /env/config-board /env/config
保存更改后[突出显示我已更改的参数],我运行以下命令。
bitbake barebox -c 编译 --force
bitbake barebox -c 部署
bitbake <图像名称>
当我验证时,所做的更改没有反映出来。
所需场景 - 超时应为 1,并且板应启动。
获得的场景 - 仍然需要 3 秒然后启动。
答案1
经过深思熟虑和四处挖掘后我发现了。我忘记更新引导加载程序中的环境以反映更改。
对路径defaultenv/defaultenv-2-base/bin/init中的文件进行上述更改
保存更改。
git 状态
git add <路径中各自的文件名>
git commit -m“[为提交插入正确的消息]”
git show 或 git status [这是为了查看所做的更改是否存在]
出口
bitbake barebox -c 编译 --force && bitbake barebox && bitbake barebox -c 部署
bitbake <图像名称>
刷新 SD 卡映像。
在 yocto 中走以下路径:
cd /部署/图像/ [版本]/
cp barebox.bin /home/<名称>/boot
@引导加载程序:
barebox_update -t nand barebox.bin
擦除/dev/nand0.barebox-environment.bb [我们需要擦除旧环境]
保存环境
重置
现在所做的更改将得到反映。
我们可以在引导加载程序中交叉检查。
cd /env/bin/
cat init [ 检查 autoboot_timeout。默认为3,已更改为1]