Armadilloフォーラム

armadillo-640-at-dtweb.dtbを入れ替えたら起動しなくなった件

furuta

2021年10月7日 19時33分

お世話になります。Armadillo及びLinux初心者です。

『第6部:拡張I/Fを使った開発の流れ(ハードウェア、カーネル編)』
https://armadillo.atmark-techno.com/system/files/blog/Armadillo-640%E9%…

に従いarmadillo-640の既存ファイルをバックアップしてarmadillo-640-at-dtweb.dtbを入れ替えたところ

=> boot
7581760 bytes read in 227 ms (31.9 MiB/s)
26418 bytes read in 54 ms (477.5 KiB/s)
## Booting kernel from Legacy Image at 82000000 ...
Image Name: Linux-4.14-at33
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 7581696 Bytes = 7.2 MiB
Load Address: 82000000
Entry Point: 82000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 83000000
Booting using the fdt blob at 0x83000000
Loading Kernel Image ... OK
Loading Device Tree to 9eef9000, end 9ef02731 ... OK

Starting kernel ...

ここから先にすすまなくなりました。
入れ替える前は正常に起動していましたので原因はarmadillo-640-at-dtweb.dtbと思います。
この場合、以下のリンク先の『11.1.1. インストールディスクの作成』『11.1.2. インストールの実行』をおこなって
初期化する以外手はないものでしょうか?
https://manual.atmark-techno.com/armadillo-640/armadillo-640_product_ma…

入れ替えたarmadillo-640-at-dtweb.dtbをバックアップからもとに戻すいい方法や参照のフォーラムがあれば
ご教示お願いできないでしょうか。

よろしくお願いいたします

コメント

at_akihito.irie

2021年10月8日 17時38分

入江です。

> ここから先にすすまなくなりました。
> 入れ替える前は正常に起動していましたので原因はarmadillo-640-at-dtweb.dtbと思います。

はい、ご認識のとおりだと思います。
おそらく、at-dtwebで設定を行う際に、コンソール出力用のUART1を指定され
なかったのが原因かと思われます。

at-dtwebにて使用したいインターフェース+UART1(開発セット同梱の拡張ボー
ドならば83, 85ピン)を設定してからsaveしてdtbを生成してみてください。

> この場合、以下のリンク先の『11.1.1. インストールディスクの作成』『11.1.2. インストールの実行』をおこなって
> 初期化する以外手はないものでしょうか?
> https://manual.atmark-techno.com/armadillo-640/armadillo-640_product_ma…
>
> 入れ替えたarmadillo-640-at-dtweb.dtbをバックアップからもとに戻すいい方法や参照のフォーラムがあれば
> ご教示お願いできないでしょうか。

他にはSDカード内のブートローダー、カーネル、ユーザーランドを起動して、
eMMCの中身を書き換える、という手段があります(SDブートと呼んでいます)。

SDブートの手順については以下をご確認ください(参考にされているマニュア
ルのバージョンが古かったので、最新のものをご参照ください)。
https://manual.atmark-techno.com/armadillo-640/armadillo-640_product_ma…

SDブート後に、eMMCの第2パーティション(/dev/mmcblk0p2)をマウントするこ
とで、中身を編集できます。

[armadillo]# mount /dev/mmcblk0p2 /mnt
[armadillo]# ls /mnt  //eMMCの第2パーティションの中身にアクセスできます
bin   dev  home  lost+found  mnt  proc  run   srv  tmp  var
boot  etc  lib   media       opt  root  sbin  sys  usr

入江様
コメントありがとうございます。

> おそらく、at-dtwebで設定を行う際に、コンソール出力用のUART1を指定され
> なかったのが原因かと思われます。
ご指摘のとおり指定した記憶がありません・・・
もう一度やってみます。

> eMMCの中身を書き換える、という手段があります(SDブートと呼んでいます)。
『SDブート』というんですね・・さっそく教えていただいたリンクを参考にやってみます。

ありがとうございました。

at_akihito.irie

2021年10月8日 18時11分

入江です。

申し訳ございません、1点訂正です。

> at-dtwebにて使用したいインターフェース+UART1(開発セット同梱の拡張ボー
> ドならば83, 85ピン)を設定してからsaveしてdtbを生成してみてください。

Armadillo-640では、UART1はCON9の3, 5ピンでした。

入江様
コメントありがとうございます。
> Armadillo-640では、UART1はCON9の3, 5ピンでした。
たしか意味が分かっておらずわざわざ削除したピンです。。。
armadillo習得できるようがんばります。
ありがとうございました。