2012-03-01 25 views
0

カーネルをコンパイルしようとしています(変更されたバージョン2.6.32.9、ここではhttps://github.com/rabeeh/linux-2.6.32.9にあります)。私はUbuntu Core(https://wiki.ubuntu.com/Core)とカーネル(vmlinuz)を実行している、エミュレートされたARMシステム(qemu)でのコンパイルを行っています(クロスコンパイルする必要がありますが、それは別のトピックです) )をUbuntu 11.04(http://ports.ubuntu.com/ubuntu-ports/dists/natty/main/installer-armel/current/images/versatile/netboot/vmlinuzからダウンロード)から入手してください。カーネルのコンパイル - bzImage/vmlinuzは作成されていません

make bzImageを実行した後、私はarch/arm/bootフォルダを調べ、zImageというファイルのみを検索します。私はこのzImageをqemuのubuntu.comからダウンロードしたvmlinuzの代わりに使ってみましたが、それはうまくいかず、単に黒い画面が表示されます。私はzImageがbzImageと同じではないと思っています。これはvmlinuz(インターネット上の別の記事から判断すると)と思われるものです。

ので、いくつかの質問:

  1. はなぜmake bzImageはイメージ、bzImage/vmlinuzでを生成しないのですか?
  2. たとえばmkimageを使ってvmlinuxをvmlinuzに変換することができます(反対側には多くのガイドがあります...)?

おかげ

答えて

0

私はarm926ej-sとは異なるCPUをエミュレートするようにqemuに質問して結果を得ています。しかし、デフォルトのCPUでversatilepbを起動すると動作します。私はカーネルをクロスコンパイルしました。私はすべてのドライバをコンパイルしました(私はinitrdを使用しません)。

http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/から100MBのarm-eabiツールチェーンをダウンロードするだけです(無料ですが、x86 Intelコンパイラのように電子メールが必要です)。インストーラがあり、Windowsの場合と同じように、「次へ」と言います。あなたはARMのファイルシステムに達することができる場合は、

sudo make ARCH=arm CROSS_COMPILE=arm-none-eabi- INSTALL_MOD_PATH=path_to_arm_root modules_install 

を行うことができます

export PATH=~/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin/:$PATH 

は、その後、あなたのカーネルソースディレクトリに戻って

make ARCH=arm CROSS_COMPILE=arm-none-eabi- menuconfig 
make ARCH=arm CROSS_COMPILE=arm-none-eabi- zImage modules 

の操作を行います。その後、あなたのパスにbinディレクトリを追加ホストから。あなたはNFSルートを使用している場合、それは些細なのですが、あなたはディスクイメージを使用している場合、あなたはどちらかを行う必要があります。

  • 生のディスクイメージとkpartx(DM-マルチパスを持つホストのカーネルに依存します)または
  • を使用しますディスクとQEMUに起動するように
  • QCOWをサポートしています(とネットワークブロックデバイスのサポートを有するホストカーネルに依存)QEMU-NBD

あなたが正しいドライバ(SYM53C8XX SCSI)が必要です。万能なdefconfigはそれらを選択しません。

+0

特にCPUとSCSIドライバに関するすべてのヒントをありがとう!それはついに私にブートカーネルを与え、SCSIドライバを追加した後、Qemuは私のHDDも見つけました!私はext2、ext3、ext4のサポートをコンパイルしていますが、まだマウントしていませんが、それは別の問題です。 – joscarsson

+0

ディスクイメージにmsdosパーティションテーブルがありますか?カーネルはMSDOS_PARTITIONを持っていますか?万能なdefconfigにはそれがありません。 –

+0

このエラーが発生したとき、すべてのパーティションテーブルをカーネルに組み込みました。最後の1つ:)私はディスクイメージがMSDOSパーティションだとは思わないが、ddとmkfs.ext3を使って作成した。 – joscarsson

3

bzImageファイル名とターゲットを作るのx86固有(ビッグzImageの)もともと。 baremetal-x86(SPARC、PPC、IA64など、およびXen on *)と等しくないアーキテクチャ上のブートローダの多くは、vmlinux(またはその圧縮形式の1つ、たとえばvmlinux.gz、別名zImage)を使用します。私はいくつかのメンテナーがbzImageをメイクターゲット名として追加したと思うので、彼らのアーチにもx86の狂気が欲しいと思っていたからです。

+0

ありがとう、それはその部分を説明します。 qemu(仮想マシン)でカーネルを動かせるようにするために何が必要なのか考えていますか?私はvmlinuzが常にbzImageであるのか、それともzImageでもいいのか分かりません。おそらく、私のzImageに何か間違っているかもしれません。私はそれをqemuで実行できるようにするために必要なもう一つのステップです。 – joscarsson

関連する問題