9

Intel Edison 用の Yocto イメージを作成しています。

イメージのコンポーネントの 1 つは、Edison 固有のパッチを適用した u-boot です。デフォルトでは、Edison の UART ポートが u-boot コンソールに使用されます。この機能を無効にしたいのですが、シリアル インターフェイスでのみ使用します (u-boot は USB でもリッスンするため、そのままにしておく必要があります)。

私の主な関心事は、UART ポートの「任意のキーを押して自動ブートを停止する」機能です。メインデバイスの起動プロセス中に何かを送信する可能性のあるアクセサリを接続するには、このポートが必要です。

どうすればこの問題にアプローチできますか? このための環境変数はありますか、それともソースを変更する必要がありますか?

前もって感謝します!

4

5 に答える 5

12

ほぼ1年後にこの問題に戻ってきましたが、今では適切な解決策を見つけることができました.

私が取り組んでいたボードには、そのBSPにかなり新しいu-bootがありました。シリアル コンソールを無効にするには、次の手順を実行する必要がありました。

  • 次の定義をボードの構成ヘッダー ( include/configs/board.hにあります)に追加します。

      #define CONFIG_DISABLE_CONSOLE
      #define CONFIG_SILENT_CONSOLE
      #define CONFIG_SYS_DEVICE_NULLDEV
    
  • ボードの同じファイルでEarly_init_fが有効になっているかどうかを確認します。

      #define CONFIG_BOARD_EARLY_INIT_F 1
    
  • arch ファイル ( arch/x86/cpu/architecture/architecture.cのようなもの) を見つけて、この呼び出しをEarly_init_f関数に追加します。実際には、これらのフラグを持つようにボードのグローバル データ変数を変更します。

      gd->flags |= (GD_FLG_SILENT | GD_FLG_DISABLE_CONSOLE);
    
  • 私のボードにはそれがなかったので、関数全体を追加する必要がありました

       int board_early_init_f(void)
       {
            gd->flags |= (GD_FLG_SILENT | GD_FLG_DISABLE_CONSOLE);
            return 0;
       }
    

例: Orange Pi 4B の board_early_init_f を探している場合、/build/cache/sources/u-boot/v2020.10/board/rockchip/evb_rk3399/evb-rk3399.c にあります。

それでおしまい。これが他の誰かに役立つことを願っています!


こちらもご覧ください

于 2016-11-01T19:39:46.890 に答える
4

u-boot 環境変数bootdelayを に設定すると、U-Bootリリース-2時に UART がブート プロセスを中断する機能が無効になります。2017.01それ-1は特別なケースであると思われます。

詳細についてcommon/autoboot.cは、U-Boot ソース ツリーから参照してください。U-Boot 環境変数について

于 2019-02-07T00:03:59.390 に答える
3

U-Boot のソース (構成) を変更せずにこれを行う方法はありません。

U-Boot でシリアル コンソールを無効にするには、U-Boot を再構成する必要があります。U-Boot のマスター ブランチのドキュメント: Readme.silent

それによると、次のように設定する必要があります。

CONFIG_SILENT_CONSOLE
CONFIG_SILENT_CONSOLE_UPDATE_ON_SET
CONFIG_SYS_DEVICE_NULLDEV

CONFIG_SILENT_U_BOOT_ONLYU-Boot のみをサイレントにしたい場合にも必要です。

CONFIG_SILENT_CONSOLE_UPDATE_ON_RELOCでテストし、場合によっては に追加silent 1する必要がある場合もありますCONFIG_EXTRA_ENV_SETTINGS

==更新==

考えられる回避策については、次のオプションを参照してください。

CONFIG_ZERO_BOOTDELAY_CHECK
CONFIG_AUTOBOOT_KEYED
CONFIG_AUTOBOOT_KEYED_CTRLC
CONFIG_AUTOBOOT_PROMPT
CONFIG_AUTOBOOT_DELAY_STR
CONFIG_AUTOBOOT_STOP_STR

これらのオプションは、少なくとも起動を停止するために魔法の文字列を要求する方法を提供します。あなたを助けるにはそれで十分かもしれません。README.autobootを参照してください。

于 2015-12-21T06:18:24.940 に答える