5

私は Freescale ボード imx50evk に取り組んでいます。LTIB (Linux ターゲット イメージ ビルダー) を使用して uboot.bin と uImage をビルドしました。U-Boot プロンプトでbootm addrコマンドを入力すると、「Loading Kernel...」というメッセージが表示された後にハングします。

> MX50_RDP U-Boot > boot

MMC read: dev # 0, block # 2048, count 6290 partition # 0 ... 
6290 blocks read: OK
## Booting kernel from Legacy Image at 70800000 ...
   Image Name:   Linux-2.6.35.8
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1323688 Bytes =  1.3 MB
   Load Address: a0008000
   Entry Point:  a0008000
   Verifying Checksum ... OK
   Loading Kernel Image ...
4

2 に答える 2

1

カーネルの「ロード アドレス」である 0xa0008000 に実際にボードの RAM があることを確認する必要があります。U-Boot がハングしているように見える場合、イメージをメモリのその領域にコピーしようとしている可能性があります。

[あなたのコメントにより、物理アドレス 0xAXXXXXXX にメイン メモリが存在しないことを確認したと仮定します。]

mkimage使用している uImage ファイルは、ユーティリティを使用して zImage ファイルから作成されたものです。

おそらく次のような行を手動で編集する必要があります

zreladdr-y     := 0xa0008000

arch/arm/mach-XXX/Makefile.bootあなたのボードのために。規則では、このアドレスは物理 RAM のベースに 0x8000 (32K) のオフセットを加えたものにする必要があります。次に、ファイル内の他の値を調整します。zImageファイルを削除し、カーネルに対してもう一度makeを実行します。

于 2012-09-24T06:37:26.760 に答える
0

rockchip の rk3288 用の 3.20 開発カーネルをビルドしているときに、LZO 画像圧縮を使用すると、「カーネルの起動」でデバイスがハングすることがわかりました。ビルド ホスト LZO と展開された解凍コードの間のバージョンの不一致が原因であると推測されるため、圧縮アルゴリズムのいずれかで発生する可能性があります。私の場合、gzipに切り替えると修正されました。

これは、圧縮アルゴリズムを変更すると起動可能なカーネルが得られた理由についての私の推測にすぎません。私が間違っている場合は、私を修正してください。

于 2015-04-01T08:24:52.983 に答える