ak-satou
2021年9月6日 23時19分
佐藤(彰)と申します。
https://armadillo.atmark-techno.com/howto/linux-kernel-usbboot
を参考にして、USBメモリからのbootを試みましたが、boot.txtにミスがあるのか、boot時に以下のメッセージが表示されてbootできません。
reading boot.scr 967 bytes read in 11 ms (85 KiB/s) Running bootscript from mmc ... ## Executing script at 82000000 Wrong image format for "source" command =>
boot.scrに問題があるのでしょうか?
ご教授の程、よろしくお願いいたします。
boot.scr作成時のboot.txtを添付いたします。
コメント
ak-satou
at_akihito.irie
入江です。
当方でお客様が添付されたboot.txtからboot.scrを生成し、Armadillo-X1の
mmcblk2p1に配置して起動してみましたが、正常に動作しました。
改めて標準の最新版U-bootをArmadillo-X1に書き込み直し、boot.scrが正しく
実行されるかご確認ください。
また、boot.scrを生成する際のコマンドに間違いはありませんでしょうか。
こちらも改めて以下のコマンドをコピーアンドペーストして実行し、boot.scr
を再生成し直した上で動作確認をしてみてください。
[ATDE]$ mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr
ak-satou
入江様
> 改めて標準の最新版U-bootをArmadillo-X1に書き込み直し、boot.scrが正しく
> 実行されるかご確認ください。
>
U-bootの最新版はat21のようですが、こちらで確認した際は、御社よりダウンロードしたat20を使用しておりました。
最新版のat21でないとダメでしょうか?
> また、boot.scrを生成する際のコマンドに間違いはありませんでしょうか。
> こちらも改めて以下のコマンドをコピーアンドペーストして実行し、boot.scr
> を再生成し直した上で動作確認をしてみてください。
>
>
> [ATDE]$ mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr >
>
>
上記にて、再度、boot.scrを作成し、当該boot.scrと比較してみたところ、差異がありません。
再度、動作確認してみてもよいのですが、boot.scrの作成方法に問題があったのであれば、同じ結果になるような気がします。
mkimageで生成したboot.scrを添付いたします。
・boot.scr・・・・・ ・上記コマンドにて作成したboot.scr
・old_boot.scr・・・・bootに失敗した際のboot.scr
・boot.scr.hex ・・・・boot.scrをxxdにてhexダンプ
・old_boot.scr.hex・・old_boot.scrをxxdにてhexダンプ
ファイル | ファイルの説明 |
---|---|
boot.scr_.zip |
at_akihito.irie
入江です。
最初に頂いたboot.txtから、当方で生成したboot.scrを添付いたします。
こちらであれば、Armadilloに書き込んで正しく動作するはずです。
大きな違いとして、お客様のboot.scrはヘッダ部分がゼロ埋めされてしまって
います。
どうしてそうなってしまうのかの原因は突き止められておりませんので、よろ
しければ以下の情報を教えていただけますでしょうか。
1. mkimageのバージョン
[PC]$ mkimage -V
2. boot.scr生成時(mkimage実行時)のログ
3. 実行環境
以上、よろしくお願いいたします。
ak-satou
入江様
> 最初に頂いたboot.txtから、当方で生成したboot.scrを添付いたします。
> こちらであれば、Armadilloに書き込んで正しく動作するはずです。
>
ファイルが添付されていないようです。
改めて調査した結果、以下判明しました。
(1)ATDE7にてホストOSとの共有フォルダ―配下のディレクトリにてmkimageを実行すると当該不具合が発生する。
ATDE7をOracle VM Virtual Boxで使用しておりますが、ホストOSであるWindows10のC:\ATDEVMshareをATDE7の~/win10を共有しており、~/win10以下のディレクトリ上に配置したboot.txtでmkimageにてboot.scrを作成すると当該不具合が発生します。
(2)上記以外のホストOSと共有していないディレクトリでmkimageを実行すると当該不具合は発生しない。
例えば/home/atmark上に配置されているboot.txtでmkimageにてboot.scrを作成すると当該不具合は発生しません。
(1)で作成されたboot.scrのヘッダはゼロが埋められていますが、(2)で作成されたヘッダは正常そうに見えます。
※添付ファイル参照
(2)で作成したboot.scrをArmadillo-X1に配置したところ、USBブートに成功しました。
> どうしてそうなってしまうのかの原因は突き止められておりませんので、よろ
> しければ以下の情報を教えていただけますでしょうか。
>
> 1. mkimageのバージョン
>
atmark@atde7:~$ mkimage -V mkimage version 2016.11+dfsg1-4
> 2. boot.scr生成時(mkimage実行時)のログ
>
atmark@atde7:~/win10/boot_scr_test$ mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d boot.txt boot.scr Image Name: Created: Thu Sep 9 18:53:03 2021 Image Type: ARM Linux Script (uncompressed) Data Size: 903 Bytes = 0.88 kB = 0.00 MB Load Address: 00000000 Entry Point: 00000000 Contents: Image 0: 895 Bytes = 0.87 kB = 0.00 MB
※ちなみに正常時も異常時も同じログでした。
> 3. 実行環境
>
仮想マシンデータイメージ:ATDE7
仮想環境:Oracle VM Virtual Box 6.0.8 r130520 (Qt5.6.2)
ホストOS:Windows 10 pro 20H2 OSビルド19042.1083
以上、よろしくお願いいたします。
ファイル | ファイルの説明 |
---|---|
boot_scr_trouble.zip |
at_akihito.irie
入江です。
> ファイルが添付されていないようです。
申し訳ございません、失念しておりました。
既にお客様の環境でもboot.scrがビルドできているとのことで、必要ないかも
知れませんが添付します。
> (1)ATDE7にてホストOSとの共有フォルダ―配下のディレクトリにてmkimageを実行すると当該不具合が発生する。
原因究明とご報告ありがとうございます。
しかし、当方でも以下の環境で共有フォルダを作成し、その下でmkimageを試
しましたが再現しませんでした。
仮想環境: Oracle VM VirtualBox 6.1.22 r144080 (Qt5.6.2)
ホストOS: Windows10 pro 21H1 OSビルド 19043.1165
ゲストOS: atde7-i386-20210618
VirtualBoxのバージョンの違いによるものなのかは定かではありませんが、ひ
とまず共有フォルダ以外の場所でmkimageして頂く形で対応していただければ
と思います。
ファイル | ファイルの説明 |
---|---|
boot.scr_.zip | 当方で作成したboot.scr(zip圧縮)です。 |
つくば在住の小林と申します。同様の問題に遭遇しましたが、boot.txtを修正することにより、usbブートに成功しましたので、参考までにご報告します。
-----------[以下、修正ソース]------------
setenv get_usbstart usb start setenv usbstop usb stop setenv usbboot_usbdev 0 setenv usbboot_part 1 setenv get_usbboot_enable fatload usb ${usbboot_usbdev}:${usbboot_part} ${loadaddr} usbboot_enable setenv boot_start bootm ${loadaddr} - ${fdt_addr} if run get_usbstart; then if run get_usbboot_enable; then echo try USB boot... setenv usbdev 0 setenv usbpart 1 setenv usbroot /dev/sda2 rootwait rw setenv usbargs setenv bootargs console=${console},${baudrate} root=${usbroot} ${optargs} setenv loadfdt fatload usb ${usbdev}:${usbpart} ${fdt_addr} ${fdt_file} setenv loadimage fatload usb ${usbdev}:${usbpart} ${loadaddr} ${image} fi fi if run usbargs; then if run loadfdt; then if run loadimage; then [ if run usbstop; then ] この行削除 run boot_start [ fi ] この行削除 fi fi else if run mmcargs; then if run loadfdt; then if run loadimage; then run boot_start fi fi fi fi
-----------[以上、修正ソース]------------
USBブートする前にUSBを無効にするのはおかしいとの素人考えです。
> 佐藤様
> > > boot.scr作成時のboot.txtを添付いたします。
> > こちら添付されていないようです。
> > 再度添付お願いします。
>
> 失礼いたしました。
> 添付いたしました。
>
at_makoto.sato
2021年9月7日 17時49分
佐藤です。
> boot.scr作成時のboot.txtを添付いたします。
こちら添付されていないようです。
再度添付お願いします。