ARMLinux カーネルをコンパイルして実行する方法
###1。目的###この実験を通じて、ARM バージョンのカーネル イメージをコンパイルし、QEMU 仮想マシン上で実行する方法を学びます。
###2。実験手順開発プロセスをスピードアップするために、ARM は VersatileExpress 開発プラットフォームを提供しています。お客様は、VersatileExpress プラットフォームに基づいて製品プロトタイプを開発できます。個人学習者としては、VersatileExpress 開発プラットフォームやその他の ARM 開発ボードを購入する必要はなく、QEMU を使用して開発プラットフォーム
linux をシミュレートし、arm
を開発することで学習の目的を達成することもできます。(1) 計画ツール
次のコード パッケージをダウンロードします。(2) 最低限のファイルシステムをコンパイルする
まず、busybox を使用して最小限のファイル システムを手動でコンパイルします。
リーリー
menuconfig を入力した後、静的コンパイルに設定します。
リーリー
make&&makeinstall がコンパイルされると、busybox ルート ディレクトリに「_install」ディレクトリが作成され、コンパイルされたファイル システムに必要ないくつかのコマンド セットが保存されます。
_install ディレクトリを linux-4.0 ディレクトリにコピーします。 _install ディレクトリに移動し、まず etc、dev、およびその他のディレクトリを作成します。
リーリー_install/etc/init.d/ ディレクトリに新しい rcS ファイルを作成し、次の内容を記述します。
リーリー
_install/etc/init.d/rcS ファイルを変更するには、実行権限が必要です。これは、「chmod x_install/etc/init.d/rcS」などの chmod コマンドを使用して実行できます。
_install/etc ディレクトリに新しい fstab ファイルを作成し、次の内容を記述します。
リーリー
_install/etc ディレクトリに新しい inittab ファイルを作成し、次の内容を書き込みます。リーリー
_install/dev ディレクトリ
Linux 開発アーム
に次のデバイス ノードを作成します。今回は root 権限が必要です。リーリー
(3) カーネルのコンパイル
リーリー
配置initramfs,在initramfssourcefile中填入_install,并把Defaultkernelcommandstring清空。
General setup ---> [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support (_install) Initramfs source file(s) Boot options --> ()Default kernel command string
配置memorysplit为“3G/1Guser/kernelsplit”,并打开高档显存。
Kernel Features ---> Memory split (3G/1G user/kernel split) ---> [ *] High Memory Support
开始编译内核。
$ make bzImage –j4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- $ make dtbs
(4)运行QEMU虚拟机
运行QEMU虚拟机来模拟4核Cortex-A9的VersatileExpress开发平台。
$ qemu-system-arm -M vexpress-a9 -smp 4 -m 200M -kernel arch/arm/boot/zImage -append "rdinit=/linuxrc console=ttyAMA0 loglevel=8" -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic
运行结果与实验3相同。
以上が多用途仮想マシン製品のプロトタイプ開発実験の目的: この実験を通じてコンパイル方法を学ぶの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。