web-dev-qa-db-ja.com

エラー:イメージはfdtではありません-回復するにはボードをリセットする必要があります

フリースケール1040RDBを起動しようとしていますが、問題が発生しています。 Linux VBイメージとyoctoレイヤーおよびすべてのyoctoレイヤーと構成が事前にインストールされているFreescaleのビルド済みSDKを使用しています。正常に実行できました。 bitbakeで、現在ターゲットにイメージをデプロイしようとしています。もちろん、Freescaleのドキュメントはまったく役に立たないので、試行錯誤の結果、カーネルイメージ、ルートファイルシステム、FDTが見つかりました。 。TFTPを使用してターゲットにロードしてから、メモリから起動しようとしています。以下は、ターゲットのシリアル端末のキャプチャです。エラーは最後の行にあります。この時点で、何か問題があるかどうか疑問に思っています。 .dtbファイルまたは多分私はそれを準備するために何かをする必要があります。 .dtbファイルをhexdumpし、ターゲットのフラッシュにプリインストールされているデバイスツリーと比較して、同様のタイプのデータであると信じています。

このエラーはどういう意味ですか?それを修正するにはどうすればよいですか?

=> tftp 0x01000000 uImage
Using FM1@DTSEC4 device
TFTP from server 192.168.2.236; our IP address is 192.168.2.18
Filename 'uImage'.
Load address: 0x1000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ######################
         1.3 MiB/s
done
Bytes transferred = 5103714 (4de062 hex)
=> tftp 0x02000000 rootfs.gz.u-boot
Using FM1@DTSEC4 device
TFTP from server 192.168.2.236; our IP address is 192.168.2.18
Filename 'rootfs.gz.u-boot'.
Load address: 0x2000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ##############################################################
         1.4 MiB/s
done
Bytes transferred = 3310270 (3282be hex)
=> tftp 0x00c00000 uImage.dtb      
Using FM1@DTSEC4 device
TFTP from server 192.168.2.236; our IP address is 192.168.2.18
Filename 'uImage.dtb'.
Load address: 0xc00000
Loading: #######
         994.1 KiB/s
done
Bytes transferred = 35655 (8b47 hex)
=> bootm 0x01000000 0x02000000 0x00c00000
WARNING: adjusting available memory to 30000000
## Booting kernel from Legacy Image at 01000000 ...
   Image Name:   Linux-3.12.19-rt30-QorIQ-SDK-V1.
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    5103650 Bytes = 4.9 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 02000000 ...
   Image Name:   fsl-image-minimal-t1040rdb-64b-2
   Image Type:   PowerPC Linux RAMDisk Image (gzip compressed)
   Data Size:    3310206 Bytes = 3.2 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 00c00000
   Booting using the fdt blob at 0xc00000
   Uncompressing Kernel Image ... OK
   Loading Ramdisk to 2fcd7000, end 2ffff27e ... OK
ERROR: image is not a fdt - must RESET the board to recover.
5
jaket

これは、カーネルイメージの解凍が開始されたときに、fdtが(通常は上書きのために)破損しているメモリのようです。より高いアドレスにfdtをロードしてみてください。 0xe00000。

4
Sandy

画像をより高いアドレスにロードすることで、この問題を解決しました。私がやっていたエラーが発生したとき

fatload mmc 0 0x2000000 image.ub
bootm 0x2000000

やって修正しました

fatload mmc 0 0x40000000 image.ub
bootm 0x40000000

image.ubのサイズは129476304 > 0x2000000アドレス0に解凍すると、解凍時に何かが上書きされた可能性があります。

0
philn