問題:ブートローダのソースコードでautoboot_timeoutパラメータを減らします。
強化ボード ---> phyBoard-Segin i.MX6UL/ULL
現在の起動時間は約14秒で、自動起動タイムアウトのために3秒が追加されます。タイムアウトを1に短くする必要があります。
方法1:
@ブートローダー:
CD /env/nv
エルエス
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.net0.mode
dev.eth0.net
linux.bootargs.base linux.bootargs.rootfs
net.gateway ユーザー
barebox@Phytec phyCORE-i.MX6 Ultra Lite SOM (NAND を含む): /env/nv
autoboot_timeoutを1に修正しました。
環境を保存します。
この方法は効果があり、確認しました。さて、ベアメタルソースコードで同じ変更を行い、それを反映したいと思います。 [プロジェクトの要件に応じて、同じ変更はここではなくソースコードで行わなければなりません。]
ここで変更したすべての内容を元に戻します。
方法2:
bitbake barebox -c devshell
CD defaultenv/defaultenv-2-base/bin/
初期化ファイルを編集し、自動起動タイムアウトパラメータを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 i /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}" ] &&で使用global.autoboot_timeout=1 Magicvar -a global.autoboot_timeout "自動起動前のタイムアウト(秒)" [ -z "${global.autoboot_abort_key}" ] && global.autoboot_abort_key=any Magicvar -a global.autoboot_abort_key "自動起動を停止するキー(有効なオプション: any , 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 add <パスの各ファイル名>
git commit -m "[コミットの正しいメッセージを挿入]"
git showまたはgit status [変更があるかどうかを確認するためのもの]
出口
bitbake barebox -c compile --force && bitbake barebox && bitbake barebox -c 展開
bitbake <画像名>
SDカードの画像を更新します。
yoctoで次のパスに従ってください。
CD /配布/画像/[バージョン]/
cp barebox.bin /home/<名前>/boot
@ブートローダー:
barebox_update -t と barebox.bin
/dev/nand0.barebox-environment.bbを拭きます。 [既存の環境を消去する必要があります。]
環境を保存する
初期化
これで変更が反映されます。
ブートローダでクロスチェックできます。
CD /環境/空/
cat init [autoboot_timeoutを確認してください。デフォルトは3、1に変更されました。]