RaspbianおよびQEMU

画像

みなさんこんにちは! 最近ラズベリーパイをくれたので、それを使うことにしました。 しかし、それが通常起こるように、自宅ではこれを行う時間はほとんどありませんが、職場ではそれを接続するものは何もありません。 そのため、私はraspbianを職場で使用するために仮想マシンにインストールすることにしました。 誰が私がそれをしたか気にします、参加してください

目標を達成するために、私は多くの記事とインターネットのさまざまな部分のフォーラムへの投稿、ストーリーの最後に思い出す記事へのリンクを使用しました。 また、間違いや物語のスタイルを蹴るのではなく、コメントのすべての欠陥を示してください。 これは特にHabrについての私の最初の出版物であり、どこか一般的なものです。



それでは始めましょう! raspbianをQEMUで動作させるには、最初にarmプラットフォーム用のLinuxカーネルが必要です。 既製のカーネルがありますが、一般的な開発のために、私はそれを自分で組み立てることを試みることにしました。

これを行うには、Linuxファミリーのオペレーティングシステムを搭載したマシンが必要になります(実際、他のオペレーティングシステムでこれを実行できるかどうかはわかりません)。 Debianの種類の1つであるKali Linuxを使用しました。 彼はその瞬間に近づいていた。

1.最初から、次のコマンドを実行して、カーネルの構築に必要なパッケージをダウンロードします。

sudo apt-get install git libncurses5-dev gcc-arm-linux-gnueabihf
      
      





32ビットシステムを使用している場合、x86ライブラリをインストールする必要があります。

 sudo apt-get install ia32-libs
      
      







2.また、クロスコンパイラをインストールする必要があります。そのためには、リポジトリを追加する必要があります。

deb www.emdebian.org/debian unstable main





そして、次のコマンドを実行します。

 apt-get update apt-get install gcc-4.7-arm-linux-gnueabihf
      
      





互換性のために、コンパイラで文字ラベルを作成します。

 ln -s 'which arm-linux-gnueabihf-gcc-4.7' /usr/local/bin/arm-linux/gnueabihf-gcc
      
      







3.次のステップは、カーネルソースとパッチをダウンロードして、カーネルがARM11アーキテクチャをサポートし、このパッチをソースに適用することです。 これを行うには、次のコマンドを実行します。

 mkdir /git cd /git git clone https://github.com/raspberrypi/linux.git wget http://xecdesign.com/downloads/linux-qemu/linux-arm.patch patch -p1 -d linux/ < linux-arm.patch
      
      







4.次に、Raspbianのニーズに合わせてカーネルを構成する必要があります。

これを行うには、次のコマンドを実行します。

 cd linux make ARCH=arm versatile_defconfig make ARCH=arm menuconfig
      
      





表示されるメニューで、次の設定を選択します。

重要!!! オプションを選択するときに、反対のオプションがある場合は、スペースバーをもう一度押して<*>を表示します。

a)クロスコンパイラを示します:

General Setup -> Cross-compiler tool prefix

arm-linux-gnueabihf-






重要! 最後に「-」を含めるようにしてください



b)CPU設定:

System Type->

[*] Support ARMV6 processor

[*] ARM errata: Invalidation of the Instruction Cache Operation fail

[*] ARM errata: Possible cache data corruption with hit-under-miss enabled









c)ハードフロートバイナリのサポートを有効にします。

Floating point emulation ->

[*] VFP-format floating point maths









d)ARMでのEABIの有効化:

Kernel Features ->

[*] Use the ARM EABI to compile the kernel

[*] Allow old ABI binaries to run with this kernel









e)QEMUディスクサポートの有効化:

Bus Support->

[*] PCI Support

Device Drivers ->

SCSI Device Support

[*] SCSI Device Support

[*] SCSI Disk Support

[*] SCSI CDROM Support

[*] SCSI low-level drivers ->

[*] SYM53C8XX Version 2 SCSI support








f)devtmpfsの有効化:

Device Drivers ->

Generic Driver Options ->

[*] Maintain a devtmpfs filesystem to mount at /dev

[*] Automount devtmpfs at /dev, after the kernel mounted the root








g)重要なファイルシステムの有効化:

File Systems ->

<*> Ext3 journaling file system support

<*> The Extended 4 (ext4) filesystem

DOS/FAT/NT Filesystems ->

<*> VFAT (Windows-95) fs support








g)tmpfsを有効にします。

File Systems ->

Pseudo filesystems->

[*] Tmpfs Virtual Memory file system support (former shm fs)








h)メッセージインターフェイスの有効化:

Device Drivers ->

Input device support ->

[*] Event interface








i) (オプション) /proc/config.gzの有効化

General Setup ->

[*] Kernel .config support

[*] Enable access to .config through /proc/config.gz








j) (オプション)より大きなフォントとロゴを含める:

Device Drivers ->

Graphics Support ->

[*] Bootup logo

Console display driver support ->

[*] Select compiled-in fonts

[*] VGA 8x16 font








保存して終了します。



次に、カーネルのコンパイル自体に進みます。 これを行うには、次のコマンドを実行します。

 make ARCH=arm make arch=arm INSTALL_MOD_PATH=../modules modules_install
      
      







すぐにルートにコピーします その後、ルートからパラメータを処方します。

 cp arch/arm/boot/zImage /kernel-qemu
      
      







これで、QEMUのカーネルビルドが完了しました。 このすべてを繰り返したくない場合は、最終的にすべてのファイルへのリンクをレイアウトします。



次のステップは、QEMUをインストールすることです。

Windowsユーザーの場合、すべてが非常に簡単です。 QEMU ON WINDOWSにアクセスし、最新バージョンのQEMUを含むアーカイブをダウンロードします。

重要!!! QEMUバージョンは少なくとも1.5.0でなければなりません。 Raspbianをエミュレートするための重大なバグを修正します

Windowsユーザーの場合、Raspbianの起動プロセスについて詳しく説明しません。 LinuxファミリのOSでの起動プロセスに非常に似ています。 ご質問がある場合は、コメントでお会いします。



したがって、まず最初に、QEMUソースを自分自身にコピーします。

 cd /git git clone git://git.qemu-project.org/qemu.git
      
      





依存関係もインストールします。

 apt-get install libsdl1.2-dev
      
      





セットアップとインストールに進みます。

 cd qemu ./configure -target-list="arm-softmmu arm-linux-user" -enable-sdl -static make sudo make install
      
      





エラー:DTCが存在しないというメッセージを受け取った場合は、次のコマンドを実行します。

 git submodule update --init dtc
      
      





これでQEMUとカーネルができました。Raspbianイメージをダウンロードし、「チューニング」ブートを実行します。



Raspbianを初めて起動するには、次のコマンドを実行する必要があります。

 qemu-system-arm -kernel /kernel-qemu -cpu arm1176 -m 256 -M versalitepb -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw init=/bin/bash" -hda <___Rapbian>
      
      





ロード後、bashプロンプトが表示されます。

画像

以下を入力してください:

 nano /etc/ld.so.preload
      
      





行をコメントアウトし、[Ctrl] + [x]を押して、保存して終了します

画像

また、以下を行います:

 nano /etc/udev/rules.d/90-qemu.rules
      
      





そして入力してください:

KERNEL=="sda",SYMLINK+="mmcblk0"

KERNEL=="sda?",SYMLINK+="mmcblk0p%n",







仮想マシンを保存して閉じ、オフにします。

 shutdown -h now
      
      







これで、仮想Raspbianを実行する準備が整いました。 コマンドを実行します:

 qemu-system-arm -kernel /kernel-qemu -cpu arm1176 -m 256 -M versalitepb -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -hda <___Rapbian>
      
      





そして、すべてがうまくいった場合、標準のRaspbianプロンプトが表示されます。

画像



ディスクのサイズ変更も役立つ場合があります。 これを行うには、ホストで次の手順を実行します。

 qemu-img resize <__Raspbian> +6G
      
      





次に、Raspbianをダウンロードして、以下を実行します。

 sudo fdisk /dev/sda
      
      





[p]を押して、sda2の開始値を覚えておいてください。

次に[d]を押して2つのセクションを削除します。

次に[n]を押して、新しいパーティションを作成します。

[p]を押して、プライマリになることを示します。

[2]を押して、彼が2番目であることを示します。

最初のセクターを開始に設定します。

Last Sectorの場合は、[Enter]を押してすべての空き容量を使用します。

[w]を押して終了し、変更をパーティションテーブルに保存します。

次のコマンドを実行して再起動します。

 sudo shutdown -r now
      
      





再起動後、次のコマンドを実行します。

 sudo resize2fs /dev/sda2
      
      





それだけです コマンドに従う

 df -h
      
      





ディスクの新しいサイズが表示されます。



おそらくこれで言いたかったことはこれだけでしょう。 プレゼンテーションのスタイルをあまり気にせず、コメントの特定のエラーを指摘してください。



資料へのリンク:

1.カーネルのコンパイル-xecdesign.com/compiling-a-kernel

2. QEMU-wiki.qemu.org

3. 私のコア



All Articles