Armadilloフォーラム

SDブートが途中で異常終了してしまう

jfurukawa

2024年6月21日 18時11分

お世話になっております。
以下、フォーラムでシリアル通信部分の事象解決のためにパッチをカーネルにあてて確認を行うようご回答をいただきましたが
フォーラム内でご紹介いただいた手順でimgファイルを作成しておりますが、u-bootが途中でERRORをはき途中で処理が止まっているように見受けられます。
恐れ入りますが、この後に何かしらの操作が必要なのか、またはどこか修正する箇所があるのかをご教示いただけますと幸いです。

【以前、やりとりさせていただいていたフォーラムURL】
https://armadillo.atmark-techno.com/forum/armadillo/19573

【実施した手順】
手順1.マニュアルの”6.27.1. ブートローダーをビルドする”を実施
https://manual.atmark-techno.com/armadillo-iot-a6e/armadillo-iotg-a6e_p…

手順2.マニュアルの”6.27.3. Alpine Linux ルートファイルシステムをビルドする”を実施
https://manual.atmark-techno.com/armadillo-iot-a6e/armadillo-iotg-a6e_p…

手順3.マニュアルの”6.27.2. Linux カーネルをビルドする”を実施
https://manual.atmark-techno.com/armadillo-iot-a6e/armadillo-iotg-a6e_p…

手順4.マニュアルの”6.27.3. Alpine Linux ルートファイルシステムをビルドする”を実施
→”4.ビルド”だけ再度実施

手順5.マニュアルの"6.25.1. ブートディスクの作成"
 https://manual.atmark-techno.com/armadillo-iot-a6e/armadillo-iotg-a6e_p…

[事象]
実施手順で作成した手順でSDブートを実行した際に
添付ファイルの”u-bootログ.txt”に示す箇所で処理が停止してしまう

以上、ご確認のほどよろしくお願いします。

コメント

アットマークテクノの古賀です。

jfurukawaさん:
>以下、フォーラムでシリアル通信部分の事象解決のためにパッチをカーネルにあてて確認を行うようご回答をいただきましたが
>フォーラム内でご紹介いただいた手順でimgファイルを作成しておりますが、u-bootが途中でERRORをはき途中で処理が止まっているように見受けられます。

>[事象]
>実施手順で作成した手順でSDブートを実行した際に
>添付ファイルの”u-bootログ.txt”に示す箇所で処理が停止してしまう

おっしゃる通り、エラーで停止していますね。

>恐れ入りますが、この後に何かしらの操作が必要なのか、またはどこか修正する箇所があるのかをご教示いただけますと幸いです。
>
>【以前、やりとりさせていただいていたフォーラムURL】
>https://armadillo.atmark-techno.com/forum/armadillo/19573
>
>【実施した手順】
>手順1.マニュアルの”6.27.1. ブートローダーをビルドする”を実施
>https://manual.atmark-techno.com/armadillo-iot-a6e/armadillo-iotg-a6e_p…

ブートディスクを作成する際に使用するブートローダーのイメージとして、このページからビルド済みのものをダウンロードして使うとどうなるか、試してみて頂けますか:
 https://armadillo.atmark-techno.com/resources/software/armadillo-iot-a6…

以上、取り急ぎコメントです。どうぞ宜しくお願いします。

> アットマークテクノの古賀です。
>
> jfurukawaさん:
> ブートディスクを作成する際に使用するブートローダーのイメージとして、このページからビルド済みのものをダウンロードして使うとどうなるか、試してみて頂けますか:
>  https://armadillo.atmark-techno.com/resources/software/armadillo-iot-a6…
>
> 以上、取り急ぎコメントです。どうぞ宜しくお願いします。

古賀様

早速のご回答ありがとうございます。
上記でご紹介いただいた手順を試しましたが同じ箇所で止まっているように見えます。
念のため、手順実施時のログと実行結果を添付ファイルに追加させていただきますので恐れ入りますがご確認のほどよろしくお願いいたします。

また、先ほど記載が漏れていたのですが過去のフォーラムから古賀様がご回答されていた以下のフォーラムの手順も一通り試させていただきました。
(私も質問者様と同様W-LANモデルを使用しております。)
https://armadillo.atmark-techno.com/forum/armadillo/17912

ファイル ファイルの説明
u-bootログ_ビルド済みブートローダー.txt
ビルド済みブートローダー.txt

アットマークテクノの古賀です。

jfurukawaさん(2024年6月21日 19時30分):
>早速のご回答ありがとうございます。
>上記でご紹介いただいた手順を試しましたが同じ箇所で止まっているように見えます。

了解しました。ご確認有り難うございます。

>念のため、手順実施時のログと実行結果を添付ファイルに追加させていただきますので恐れ入りますがご確認のほどよろしくお願いいたします。
>
>また、先ほど記載が漏れていたのですが過去のフォーラムから古賀様がご回答されていた以下のフォーラムの手順も一通り試させていただきました。
>(私も質問者様と同様W-LANモデルを使用しております。)
>https://armadillo.atmark-techno.com/forum/armadillo/17912

ブートローダー(u-boot)が microSD カードのアクセスに失敗しているようですね。
eMMC ブートした時に microSD カードをアクセスできるかどうか、確かめてみてくださいませ。

eMMC ブート設定で電源 ON する際に、シリアルコンソールでスペースキーを押下した状態で電源 ON すれば、u-boot のコマンドプロンプトで入力待ちとなります。
u-boot のコマンドプロンプトで、以下の四つのコマンドを実行した時の出力がどうなるか、教えてくださいませ:

=> mmc list
 
=> mmc dev 1
 
=> mmc part
 
=> mmc info

> アットマークテクノの古賀です。
>
>
> ブートローダー(u-boot)が microSD カードのアクセスに失敗しているようですね。
> eMMC ブートした時に microSD カードをアクセスできるかどうか、確かめてみてくださいませ。
>
> eMMC ブート設定で電源 ON する際に、シリアルコンソールでスペースキーを押下した状態で電源 ON すれば、u-boot のコマンドプロンプトで入力待ちとなります。
> u-boot のコマンドプロンプトで、以下の四つのコマンドを実行した時の出力がどうなるか、教えてくださいませ:
>
>

> => mmc list
> 
> => mmc dev 1
> 
> => mmc part
> 
> => mmc info
> 

古賀様
お世話になっております。
ご回答が遅くなり申し訳ございません。
実行結果を下記に記載いたします。ご確認のほどよろしくお願いいたします。
(SW2をemmc状態にして起動後コマンド実行)

=====
U-Boot 2020.04-at21 (Dec 22 2023 - 06:09:25 +0000)

CPU: i.MX6ULL rev1.1 at 396 MHz
Model: Atmark Techno Armadillo-IoT Gateway A6E Board
DRAM: 512 MiB
WDT: Started with servicing (10s timeout)
PMIC: PFUZE3000 DEV_ID=0x30 REV_ID=0x11
MMC: FSL_SDHC: 0, FSL_SDHC: 1
�In: mxc_serial from MMC... OK
Out: mxc_serial
Err: mxc_serial
switch to partitions #0, OK
mmc0(part 0) is current device
flash target is MMC:0
Net: eth0: ethernet@2188000
Fastboot: Normal
Saving Environment to MMC... Writing to MMC(0)... OK
Normal Boot
Hit any key to stop autoboot: 0
=> mmc list
FSL_SDHC: 0 (eMMC)
FSL_SDHC: 1
=> mmc dev 1
switch to partitions #0, OK
mmc1 is current device
=> mmc part

Partition Map for MMC device 1 -- Partition Type: EFI

Part Start LBA End LBA Name
Attributes
Type GUID
Partition GUID
1 0x00000800 0x00ecd7ff "Basic data partition"
attrs: 0x8000000000000000
type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
guid: ac5fa07d-2820-423a-91fd-2b12cf7cb4b0
=> mmc info
Device: FSL_SDHC
Manufacturer ID: 3
OEM: 5344
Name: SU08G
Bus Speed: 25000000
Mode: MMC legacy
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 7.4 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes

アットマークテクノの古賀です。
コメントするのが大変遅くなりました。ごめんなさい。

jfurukawaさん(2024年6月26日 17時27分):
>>ブートローダー(u-boot)が microSD カードのアクセスに失敗しているようですね。
>>eMMC ブートした時に microSD カードをアクセスできるかどうか、確かめてみてくださいませ。
>>
>>eMMC ブート設定で電源 ON する際に、シリアルコンソールでスペースキーを押下した状態で電源 ON すれば、u-boot のコマンドプロンプトで入力待ちとなります。
>>u-boot のコマンドプロンプトで、以下の四つのコマンドを実行した時の出力がどうなるか、教えてくださいませ:

>ご回答が遅くなり申し訳ございません。
>実行結果を下記に記載いたします。ご確認のほどよろしくお願いいたします。
>(SW2をemmc状態にして起動後コマンド実行)

有難うございます。u-boot からの microSD カードアクセスは問題なさそうですね。
しかし、'mmc part' コマンドの出力を見ると、パーティションの開始 LBA の値が期待したものと違っています。

>=>mmc dev 1
>switch to partitions #0, OK
>mmc1 is current device
>=>mmc part
>
>Partition Map for MMC device 1 -- Partition Type: EFI
>
>Part Start LBA End LBA Name
> Attributes
> Type GUID
> Partition GUID
> 1 0x00000800 0x00ecd7ff "Basic data partition"
> attrs: 0x8000000000000000
> type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
> guid: ac5fa07d-2820-423a-91fd-2b12cf7cb4b0

Staert LBA が 0x00000800 (: 2048) になっていますが、ここは 0x00005000 (: 20480) になるはずなのです。
とすると、SD ブート用のディスクイメージを microSD カードに書き込めていないのかも知れません。

6/21 に頂いた最初の質問に添付して頂いたファイルのうち、6.25.1. ブートディスクの作成.txt を見ると、イメージ書込み前のパーティション構成のままになっているようです:

...
Successfully built /home/atmark/sdboot/build-rootfs-v3.19-at.4/baseos-6e-3.19.1-at.4.20240617.img
root@atde9:/home/atmark/sdboot/build-rootfs-v3.19-at.4# ls baseos-6e*img
baseos-6e-3.19.1-at.4.20240617.img
root@atde9:/home/atmark/sdboot/build-rootfs-v3.19-at.4# ls /dev/sd?
/dev/sda  /dev/sdb
root@atde9:/home/atmark/sdboot/build-rootfs-v3.19-at.4# sudo fdisk -l /dev/sdb
Disk /dev/sdb: 7.4 GiB, 7948206080 bytes, 15523840 sectors
Disk model: SD/MMC/MS PRO   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 5235B617-B96B-4A65-9084-9254A5805A1F
 
Device     Start      End  Sectors  Size Type
/dev/sdb1   2048 15521791 15519744  7.4G Microsoft basic data
root@atde9:/home/atmark/sdboot/build-rootfs-v3.19-at.4# umount /dev/sdb
sdb   sdb1  
root@atde9:/home/atmark/sdboot/build-rootfs-v3.19-at.4# umount /dev/sdb1
root@atde9:/home/atmark/sdboot/build-rootfs-v3.19-at.4# sudo dd if=../build-rootfs-v3.19-at.4/baseos-6e-3.19.1-at.4.20240617.img \
>  of=/dev/sdb bs=1M oflag=direct status=progress
335544320 bytes (336 MB, 320 MiB) copied, 84 s, 4.0 MB/s
321+0 レコード入力
321+0 レコード出力
336592896 bytes (337 MB, 321 MiB) copied, 84.3292 s, 4.0 MB/s

お使いの microSD カードは、mmc info が出力した Manufacturer ID と OEM ID を見ると、SanDisk の 8GB 品(Extreme シリーズ?)のようですね:
 https://github.com/bp0/verbose-spork/blob/master/data/sdcard.ids

>=>mmc info
>Device: FSL_SDHC
>Manufacturer ID: 3
>OEM: 5344
>Name: SU08G
>Bus Speed: 25000000
>Mode: MMC legacy
>Rd Block Len: 512
>SD version 3.0
>High Capacity: Yes
>Capacity: 7.4 GiB
>Bus Width: 4-bit
>Erase Group Size: 512 Bytes

試しに、ですが、microSD カードを再度 ATDE に接続した後、fdisk でパーティションを全て削除してから、再び dd で書き込んでみてください。
dd で書き込んだあと、以下のコマンドを実行した時の出力がどうなるか、見てみてくださいませ:

atmark@atde9:~$ sudo gdisk -l /dev/sdb