QEMUを使用してARMシステムイメージをビルドして実行しますか?

QEMUを使用してARMシステムイメージをビルドして実行しますか?

armhfQEMUで実行できるDebianベースのARM(armeleven)のシステムイメージ全体を設定しようとしています。aarch64残念ながら、オンラインで見つかったすべての例はinitrdカーネルを渡して(またはいくつかのモジュールが必要な場合)、イメージを起動します。

qemu-system-amd64ただし、インストールを開始するためにディスクイメージとCD-ROMイメージのみを使用してシステムを起動したいと思います。

-machineデフォルトがないことは理解できますが、-cpuオンラインで次のことを行う方法についての手がかりが見つかりません。

#> wget \
   http://cdimage.debian.org/.../armhf/iso-cd/debian-testing-armhf-netinst.iso
...
#> qemu-img create -f qcow2 debian-armhf.qcow 20G
...
#> qemu-system-arm -machine vexpress-a9 -cpu cortex-a9     \
                   -hda debian-armhf.qcow                  \
                   -cdrom debian-testing-amd64-netinst.iso \
                   -boot d
...
#> qemu-system-arm -machine vexpress-a9 -cpu cortex-a9     \
                   -hda debian-armhf.qcow                  \
                   -net nic -net user,hostfwd=tcp::2222-:22
...

だから私はこのことができるかどうか本当に知りたいです。それでは、どうすればいいですか?そうでなければなぜですか?

ベストアンサー1

これは素晴らしい質問です。私はしばらく前に直接掘り下げることにしました。私を除いてはMIPS/MIP64を使っていました。

これを困難にするいくつかの問題があります。

Linuxホストを起動するときは、カーネルはどのハードウェアを使用しているかを知る必要があります。一部のアーキテクチャ (amd64 など) の場合、ファームウェア検索は「高度な構成と電源インターフェイス」(ACPI)。それ以外の場合は、スケーラブルなファームウェアインターフェース(EFI)または非常に古いソリューションであるATAGSもあります。ほとんどの最新の組み込みシステムでは、ATAGSの使用が「デバイスツリーブロブ」というメカニズムに置き換えられました(デジタルテレビ放送)。より良いタスクを実行できる一連の便利なユーザー違いを説明してください私ができるよりも。

これらすべての目的は、ハードウェア構成に関してカーネルにメッセージを表示するのに役立ち、しばしばブートローダと連携します。あなたの場合、ARMリトルエンディアン(armel)、ARMハード浮動小数点(armhf)、およびARM 64ビット(aarch64)から選択することは、コンパイルパッケージ、カーネルなどの選択に影響を与えるため、重要な最初の決定です。シミュレーションの「コマンドセットアーキテクチャ」(ISA)。

あなたは空のディスクとCDイメージの単純さを望んでいることを知っていますが、これがRaspberry Pi *のようなシステムにこの種の「インストールプログラム」がない理由です。 Raspbianイメージをダウンロードすると、そのイメージにはブートローダ(das uBoot)、そのハードウェアのデバイスツリーBLOB、およびパッケージストアを構成するときに使用できるデフォルトのパッケージセットを含む構造化パーティションセットが含まれます。

もう一つの興味深い常識を紹介します。 Linuxを「インストール」するときにISOイメージが何をするのか見たことがありますか?

Anacondaベースのインストーラ(Fedora、RHEL、CentOSなど)を例にしましょう。

インストールを開始すると、Pythonユーティリティの実行を自動的に開始する最小ライブシステムが起動します。Python。その後、Anacondaはユーザーに一連の質問に答えるように促し、ドメイン固有の言語で設定ファイルを入力し、chrootを生成し、chroot内で一連のパッケージをインストールします。

それは...いくつかの点でRaspbianイメージを使用するのと同じです。

では、これはどういう意味ですか?

まあ、最初に進む方法に応じていくつかの答えをお勧めします。

RPiをエミュレートするだけで十分な場合は、次のことをお勧めします。 QEMUを使用したRaspberry Piエミュレーション

より「クラウド」ベースのシステムをシミュレートする場合、George Hawkinsは次のことを維持します。ハイライトといくつかの便利なガイドライン

本当に最初から始めたいと思うなら、Debian ユーザー Aurel32 は何年もセットを維持してきました。基本画像開始準備完了また同様のプロセスに関する素晴らしい記事がブログにあります。

おすすめ記事