ビルドに反映されたベアメタルコードを変更するには?

ビルドに反映されたベアメタルコードを変更するには?

問題:ブートローダのソースコードで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に変更されました。]

関連情報