私はFreescale ts-4900ボードを使用しています。 Qemuからカーネルファイルとルートファイルシステム(initrd)を起動できません。次のカーネル構成手順を実行しました。
- クロスコンパイラ部分のエクスポート
- エクスポート LOADADDR=0x10008000
- esse_defconfigを作成してください
- menuconfig ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- を作成します。
- ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-uImage で作成します。
画像が見つかり/arch/arm/boot/uImage
ましたが、動作しているルートファイルシステム(initrd)があります。
次の手順でQemuを起動しようとしています。
qemu-system-arm -M vexpress-a9 -cpu cortex-a9 -kernel uImage -initrd /home/mahesh/mahesh/ts_4900/initrd.
その後、エラーがあります。
答え1
vexpress-a9ボードにはアドレス0x10008000にRAMがないため、カーネルがそこで実行しようとすると実行されません。
より一般的には、あるArmボード用のカーネルをビルドし、別のArmボードのQEMUモデルを使用して実行しようとしているようです。これはうまくいきません。エミュレートされたハードウェアを使用する場合など、カーネルを実行するハードウェアに合わせてカーネルを正しく構成する必要があります。そうしないと、カーネルは通常出力なしですぐにクラッシュします(シリアルポートも見つからないため)。