zImageはU-BootとArchLinuxARMで使用できますか?

zImageはU-BootとArchLinuxARMで使用できますか?

私はU-Bootを使ってCubieboard 2とsun7i AllWinner A20ボードからArchLinux ARMを起動します。私が持っているカーネルバージョンは最新のsun7iバージョンなので、3.4.103-5-ARCHカーネルに関する限り時代には少し遅れていますが、リポジトリでは最新バージョンです。

私はU-Bootを学んでいますが、それを使用できるかどうかを知りたかったですzImage。すでに動作しているものがありますuImage。以下は、どのように動作するかを学ぶ練習です。

その理由の一つは起動ファイルArchLinuxARMにはaで起動するコードが付属していますが、aを使用するinitramfs-linux.img場合にのみ可能ですzImage(提供されたコードはaでinitramfsには適合しませんuImage)。

私はuImageを使ってinitramを起動する方法を尋ねていません。私はその方法を知っています。 zImageとU-Bootの使い方を尋ねています。

私のuImageタイトルは次のとおりです。

# mkimage -l uImage 
Image Name:   Linux-3.4.103-5-ARCH
Created:      Fri Jan 16 13:34:10 2015
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    3327616 Bytes = 3249.62 kB = 3.17 MB
Load Address: 40008000
Entry Point:  40008000

次のコマンドシーケンスを使用して手動で起動できます。

mmc dev 0
load mmc 0:1 0x48000000 /boot/uImage
load mmc 0:1 0x43000000 /boot/script.bin
setenv bootargs console=${console} root=/dev/sda6 rw rootwait
setenv bootm_boot_mode sec 
bootm 0x48000000

次のようにuImageからzImageを抽出します。

$ tail -c+65 < uImage > zImage

確認してみると大丈夫です。

$ file zImage
zImage: Linux kernel ARM boot executable zImage (little-endian)

それでは始めましょう。

mmc dev 0
load mmc 0:1 0x42000000 /boot/zImage
setenv bootargs console=${console} root=/dev/sda6 rw rootwait
bootz 0x42000000

しかし、これはうまくいきません。私が見るのは」

Kernel image @ 0x42000000 [ 0x000000 - 0x32c680 ]
Starting kernel ...

script.bin私の考えでは、私が以前にロードしたものと関係があると思いますbootm。以前にロードしようとしましたが、bootz違いはありませんでした。 FDTファイルも読みましたが、Arch Linixカーネルパッケージはそれを提供していないようです。それでもbootm必要ではないので、そうしないことを願っていますbootz(カーネルイメージが同じであると仮定します)。

zimage私が大丈夫かどうかを確認するためにuImage新しいものを作成し、うまく起動しました。

上記のコマンドとアドレスから派生しました。起動ファイルArchLinuxARMに付属しています。

私のU-bootバージョンは次のとおりです。

U-Boot 2015.01-1 (Jan 22 2015 - 16:37:34) Arch Linux ARM
gcc (GCC) 4.9.2 20141224 (prerelease)
GNU ld (GNU Binutils) 2.25

ベストアンサー1

おすすめ記事