s.sekiguchi
2016年11月10日 15時04分
関口と申します。
armadillo-840の設置作業を行っております。
SDカードにDebian環境を構築し、SDカードからのbootで
armadilloを起動します。
設定作業ですので、パソコンのvmwareからシリアル接続で
保守モード起動 ⇒ hermitコマンド入力 ⇒ boot でlinux起動
の手順で行っております。
これを、パソコンは使用せずにarmadilloの電源投入で行いたい
(保守モードでの起動は行わない)のですが、hermitのコマンドは
どうなってしまうのか分かりません。
以下のマニュアルがそれっぽいのですが、イメージファイルを
作成するところまでしか記述がなく、その後、SDカード上のどこかに
反映させるのか等が不明です。
http://manual.atmark-techno.com/armadillo-840/armadillo-840_product_man…
11.2. ブートローダーをビルドする
保守モードで以下の内容を設定しております。
hermit> setenv
1: console=tty1
2: noinitrd
3: rootwait
4: root=/dev/mmcblk0p2
hermit> setbootdevice
bootdevice: mmcblk0p2
armadilloの電源投入でhermitの設定内容も含めたSDカード上の
Debian起動につきまして、お忙しいところ申し訳ありませんが、
ご存じの方、ご教授をお願いいたします。
よろしくお願いいたします。
コメント
s.sekiguchi
申し訳ありません。
ご回答ありがとう
一連の動作を電源投入時に行いたいということです。
現在、SDカード起動、保守モードなので、
ジャンパピンを以下のようにしております。
JP1 起動モード設定
オープン: OSを自動起動します。
ショート: ブートローダーを保守モードにします。
⇒ショートにしています。
JP2 起動デバイス設定
オープン: オンボードフラッシュメモリのブートローダーを起動します。
ショート: SDカードのブートローダーを起動します。
⇒ショートにしています。
これを、両方ともオープン、JP1をオープン、JP2をショートの2パターンで
やってみましたが同じようには起動することができませんでした。
液晶パネルをデフォルトに設定してありますので、画面上に起動ログ出力後、
ブラウザが表示されるハズですが真っ暗です。
何かやってることが違いますでしょうか?
> ごめんなさい。質問の意味がイマイチ把握できていないので、教えてください。
>
> 「hermit のコマンドを、PC を使わずに入力したい」という事でしょうか?
>
> それとも、一連の動作を電源投入で行いたいということでしょうか?
>
> setenv や setbootdevice を使うと、設定がボード上のフラッシュメモリに保
> 存されます。なので、auto boot しても設定が有効になっているはずです。
>
>
at_yashi
SDカードを挿すことで、SDブートさせたいということですか?
Armadillo を SDブートの状態にして、SDには専用の hermitを書いておけば良いです。
hermit をビルドし直すことで、defaultのブートデバイスを変更できます。
CONFIG_CMD_SETBOOTDEVICE_DEFAULT_DEVICE
http://manual.atmark-techno.com/armadillo-840/armadillo-840_product_man…
s.sekiguchi
ご回答ありがとうございます。
SDカードを差した状態でarmadilloの電源投入でSDカードに構築した
Debianが起動されればOKです。
ご教授いただきました内容でやってみます。
ありがとうございました。
> SDカードを挿すことで、SDブートさせたいということですか?
>
> Armadillo を SDブートの状態にして、SDには専用の hermitを書いておけば良いです。
>
> hermit をビルドし直すことで、defaultのブートデバイスを変更できます。
> CONFIG_CMD_SETBOOTDEVICE_DEFAULT_DEVICE
>
> http://manual.atmark-techno.com/armadillo-840/armadillo-840_product_man…
s.sekiguchi
やってみますと言いましたが、不明点があります。
ご回答の
CONFIG_CMD_SETBOOTDEVICE_DEFAULT_DEVICE
は何のことでしょうか?
手順ですが、
> > http://manual.atmark-techno.com/armadillo-840/armadillo-840_product_man…
イメージファイルが作成されますまでしか記述がありません。
実際、SDカード上のどこにイメージを反映すれば良いのか分かりません。
また、実際にhermit上で入力しているコマンドは、手順のどこでどのように
反映させるのかが分かりません。
> ご回答ありがとうございます。
>
> SDカードを差した状態でarmadilloの電源投入でSDカードに構築した
> Debianが起動されればOKです。
>
> ご教授いただきました内容でやってみます。
> ありがとうございました。
>
>
> > SDカードを挿すことで、SDブートさせたいということですか?
> >
> > Armadillo を SDブートの状態にして、SDには専用の hermitを書いておけば良いです。
> >
> > hermit をビルドし直すことで、defaultのブートデバイスを変更できます。
> > CONFIG_CMD_SETBOOTDEVICE_DEFAULT_DEVICE
> >
> > http://manual.atmark-techno.com/armadillo-840/armadillo-840_product_man…
at_yashi
> CONFIG_CMD_SETBOOTDEVICE_DEFAULT_DEVICE
>
> は何のことでしょうか?
configで使われている変数です。
make menuconfig
で
-> Target Configurations -> Commands
以下をご確認ください。
> 実際、SDカード上のどこにイメージを反映すれば良いのか分かりません。
http://manual.atmark-techno.com/armadillo-840/armadillo-840_product_man…
SDブートの情報は↑にあります。
> また、実際にhermit上で入力しているコマンドは、手順のどこでどのように
> 反映させるのかが分かりません。
こちらは、config に出ていないのでソースコードを変更する必要があります。
src/target/armadillo8x0/board.c::armadillo8x0_prepare_normal_boot()
をご確認ください。
s.sekiguchi
ご回答ありがとうございます。
申し訳ありませんが、私にとってはこれだけの詳細な手順書が
必要なレベルです。
手順の確認だけさせていただきたいと思います。
以下の手順で合ってますでしょうか?
(使用するファイル) :アットマークサイトからダウンロード
・ブートローダー (Hermit-At) hermit-at-3.8.0-source.tar.gz
1.ブートローダー (Hermit-At)を展開
2.ソース変更
src/target/armadillo8x0/board.c::armadillo8x0_prepare_normal_boot()
⇒hermitで実行しているコマンドを反映
3.make menuconfig
⇒CONFIG_CMD_SETBOOTDEVICE_DEFAULT_DEVICE
4.make
⇒loader-armadillo840*.bin のイメージファイルが作成される
5.SDブート用のブートローダーイメージファイルを第1パーティションに配置
⇒4.で作成したイメージをSDにコピー
よろしくお願いいたします。
> > CONFIG_CMD_SETBOOTDEVICE_DEFAULT_DEVICE
> >
> > は何のことでしょうか?
>
> configで使われている変数です。
>
> make menuconfig
で
>
>
> -> Target Configurations > -> Commands >
> 以下をご確認ください。
>
> > 実際、SDカード上のどこにイメージを反映すれば良いのか分かりません。
>
> http://manual.atmark-techno.com/armadillo-840/armadillo-840_product_man…
>
> SDブートの情報は↑にあります。
>
> > また、実際にhermit上で入力しているコマンドは、手順のどこでどのように
> > 反映させるのかが分かりません。
>
> こちらは、config に出ていないのでソースコードを変更する必要があります。
> src/target/armadillo8x0/board.c::armadillo8x0_prepare_normal_boot()
をご確認ください。
>
s.sekiguchi
ブートイメージの作成手順中のソース修正ですが、
デフォルトでは以下のようになっております。
src/target/armadillo8x0/board.c::armadillo8x0_prepare_normal_boot()
デフォルト状態
static void armadillo8x0_prepare_normal_boot(struct platform_info *pinfo)
{
pinfo->adjust_boot_args = NULL;
pinfo->adjust_boot_device = NULL;
}
追加したい Hetmit コマンド
1: console=tty1
2: noinitrd
3: rootwait
4: root=/dev/mmcblk0p2
hermit> setbootdevice
bootdevice: mmcblk0p2
ここを、どのようにソースに反映すれば良いのか分からないのですが、
参考サイトなどありますでしょうか?
> ご回答ありがとうございます。
> 申し訳ありませんが、私にとってはこれだけの詳細な手順書が
> 必要なレベルです。
>
> 手順の確認だけさせていただきたいと思います。
> 以下の手順で合ってますでしょうか?
>
> (使用するファイル) :アットマークサイトからダウンロード
> ・ブートローダー (Hermit-At) hermit-at-3.8.0-source.tar.gz
>
> 1.ブートローダー (Hermit-At)を展開
>
> 2.ソース変更
> src/target/armadillo8x0/board.c::armadillo8x0_prepare_normal_boot()
> ⇒hermitで実行しているコマンドを反映
>
> 3.make menuconfig
> ⇒CONFIG_CMD_SETBOOTDEVICE_DEFAULT_DEVICE
>
> 4.make
> ⇒loader-armadillo840*.bin のイメージファイルが作成される
>
> 5.SDブート用のブートローダーイメージファイルを第1パーティションに配置
> ⇒4.で作成したイメージをSDにコピー
>
> よろしくお願いいたします。
>
>
> > > CONFIG_CMD_SETBOOTDEVICE_DEFAULT_DEVICE
> > >
> > > は何のことでしょうか?
> >
> > configで使われている変数です。
> >
> > make menuconfig
で
> >
> >
> > -> Target Configurations > > -> Commands > >
> > 以下をご確認ください。
> >
> > > 実際、SDカード上のどこにイメージを反映すれば良いのか分かりません。
> >
> > http://manual.atmark-techno.com/armadillo-840/armadillo-840_product_man…
> >
> > SDブートの情報は↑にあります。
> >
> > > また、実際にhermit上で入力しているコマンドは、手順のどこでどのように
> > > 反映させるのかが分かりません。
> >
> > こちらは、config に出ていないのでソースコードを変更する必要があります。
> > src/target/armadillo8x0/board.c::armadillo8x0_prepare_normal_boot()
をご確認ください。
> >
at_daisuke.sasaki
佐々木大輔です
> ここを、どのようにソースに反映すれば良いのか分からないのですが、
> 参考サイトなどありますでしょうか?
Armadillo-800 EVAのリカバリブート用のコードを活用すれば、
やりたい事が実現できると思いますよ。
diff --git a/src/target/armadillo8x0/board.c b/src/target/armadillo8x0/board.c index 8b9c916..9f0c016 100644 --- a/src/target/armadillo8x0/board.c +++ b/src/target/armadillo8x0/board.c @@ -140,8 +140,7 @@ static int armadillo8x0_is_autoboot(struct platform_info *pinfo) struct board_private *priv = pinfo->private_data; int autoboot = priv->jumper ? 0 : 1; - if (priv->boot_mode == BOOT_MODE_SD && - priv->tactsw[0]) { + if (priv->boot_mode == BOOT_MODE_SD ) { hprintf("*** Recovery Mode ******************************\n"); autoboot = 1; pinfo->adjust_boot_args = adjust_recovery_boot_args;
元のコードはSDブート 且つ SWが押されていた時に、
setbootdeviceやkernel parameterを設定で自動ブートするようになっています。
今回は 電源を投入した状態で起動したいので、タクトスイッチを条件から外します。
src/target/armadillo8x0/board-armadillo840.c に定義されている以下の関数に
期待するパラメータを入れてください。
やり方は関数を見ればわかると思います。
- adjust_recovery_boot_args()
- adjust_recovery_boot_device()
上記のパッチだけで、やりたい事ができると思います。
試してみてください。
s.sekiguchi
関口です。
ソース修正のご教授、大変ありがとうございました。
修正は何とかやりましたが、この後の手順がやはり分かりません。
マニュアルを見直します。
> 佐々木大輔です
>
> > ここを、どのようにソースに反映すれば良いのか分からないのですが、
> > 参考サイトなどありますでしょうか?
>
> Armadillo-800 EVAのリカバリブート用のコードを活用すれば、
> やりたい事が実現できると思いますよ。
>
>
> diff --git a/src/target/armadillo8x0/board.c b/src/target/armadillo8x0/board.c > index 8b9c916..9f0c016 100644 > --- a/src/target/armadillo8x0/board.c > +++ b/src/target/armadillo8x0/board.c > @@ -140,8 +140,7 @@ static int armadillo8x0_is_autoboot(struct platform_info *pinfo) > struct board_private *priv = pinfo->private_data; > int autoboot = priv->jumper ? 0 : 1; > > - if (priv->boot_mode == BOOT_MODE_SD && > - priv->tactsw[0]) { > + if (priv->boot_mode == BOOT_MODE_SD ) { > hprintf("*** Recovery Mode ******************************\n"); > autoboot = 1; > pinfo->adjust_boot_args = adjust_recovery_boot_args; >
>
> 元のコードはSDブート 且つ SWが押されていた時に、
> setbootdeviceやkernel parameterを設定で自動ブートするようになっています。
>
> 今回は 電源を投入した状態で起動したいので、タクトスイッチを条件から外します。
>
> src/target/armadillo8x0/board-armadillo840.c に定義されている以下の関数に
> 期待するパラメータを入れてください。
> やり方は関数を見ればわかると思います。
> - adjust_recovery_boot_args()
> - adjust_recovery_boot_device()
> 上記のパッチだけで、やりたい事ができると思います。
>
> 試してみてください。
s.sekiguchi
関口です。
ソース修正後の手順をご教授いただけないでしょうか?
基本的な部分が分かっていないのかも知れませんが、
イメージファイルを作成してSDカードにコピーするまでの
手順が分かる方、よろしくお願いいたします。
参考サイトがあればURLでも構いません。
よろしくお願いいたします。
> 関口です。
>
> ソース修正のご教授、大変ありがとうございました。
>
> 修正は何とかやりましたが、この後の手順がやはり分かりません。
> マニュアルを見直します。
>
>
>
> > 佐々木大輔です
> >
> > > ここを、どのようにソースに反映すれば良いのか分からないのですが、
> > > 参考サイトなどありますでしょうか?
> >
> > Armadillo-800 EVAのリカバリブート用のコードを活用すれば、
> > やりたい事が実現できると思いますよ。
> >
> >
> > diff --git a/src/target/armadillo8x0/board.c b/src/target/armadillo8x0/board.c > > index 8b9c916..9f0c016 100644 > > --- a/src/target/armadillo8x0/board.c > > +++ b/src/target/armadillo8x0/board.c > > @@ -140,8 +140,7 @@ static int armadillo8x0_is_autoboot(struct platform_info *pinfo) > > struct board_private *priv = pinfo->private_data; > > int autoboot = priv->jumper ? 0 : 1; > > > > - if (priv->boot_mode == BOOT_MODE_SD && > > - priv->tactsw[0]) { > > + if (priv->boot_mode == BOOT_MODE_SD ) { > > hprintf("*** Recovery Mode ******************************\n"); > > autoboot = 1; > > pinfo->adjust_boot_args = adjust_recovery_boot_args; > >
> >
> > 元のコードはSDブート 且つ SWが押されていた時に、
> > setbootdeviceやkernel parameterを設定で自動ブートするようになっています。
> >
> > 今回は 電源を投入した状態で起動したいので、タクトスイッチを条件から外します。
> >
> > src/target/armadillo8x0/board-armadillo840.c に定義されている以下の関数に
> > 期待するパラメータを入れてください。
> > やり方は関数を見ればわかると思います。
> > - adjust_recovery_boot_args()
> > - adjust_recovery_boot_device()
> > 上記のパッチだけで、やりたい事ができると思います。
> >
> > 試してみてください。
at_yashi
2016年11月10日 16時51分
ごめんなさい。質問の意味がイマイチ把握できていないので、教えてください。
「hermit のコマンドを、PC を使わずに入力したい」という事でしょうか?
それとも、一連の動作を電源投入で行いたいということでしょうか?
setenv や setbootdevice を使うと、設定がボード上のフラッシュメモリに保
存されます。なので、auto boot しても設定が有効になっているはずです。