U-Boot で停止して手動で値を変更することなく、ユーザー スペースからカーネル コマンド ライン パラメータを編集する方法を探しています。次の起動時にカーネル パラメータを変更したいです。たとえば、カーネル コマンド ラインにexample1=true' I would like to change it to the following boot to
example1=false`というパラメータが含まれている場合、
私は OpenWRT ベースのシステムを使用しています。
答え1
OpenWrt wiki の Das U-Boot Environment を素早く検索します...
「Das U-Boot は、いくつかの重要な構成パラメータを保存するために、通常は保存されているのと同じパーティション上のフラッシュ ストレージ上の少量のスペースを使用します。」
具体的には...
bootargs: この変数の内容は、ブート引数 (別名「コマンド ライン」) として Linux カーネルに渡されます。
いくつかの仮定をしますが、実行中のカーネルからこの構成ファイルを編集できるはずです。u-boot と構成ファイルが配置されているパーティションを見つけて、それを R/W でマウントする必要があるかもしれません。さらに、変数を で保存すれば、u-boot コマンドラインからこの構成ファイルを編集できるはずです (1 回だけ) saveenv
。
答え2
おそらく私はここで誤解しているのでしょうが、私が知る限り、カーネルを実行した後では、ブートローダがカーネルに渡すコマンドライン引数を変更することはできません...実行時にカーネルパラメータを構成する方法を意味している場合、ツールは と呼ばれますsysctl
。
たとえば、次の内容を変更したいとします。
sysctl -w kernel.stack_tracer_enabled=1
これらの変更は再起動後に失われます。