8
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Raspberry pi(Raspbian Jessie)を OS X の QEMU で動かす

Posted at

OS X で Raspbian Jessie を動かす手順のメモです。

目的

Raspberry Pi の動作環境を手持ちの MacBookAir で構築するため作業しました。

手順

QEMU のインストール

OS Xでターミナルを開き、下記コマンドで QEMU をインストールします。
$ brew install qemu

Raspbian エミュレート用の QEMU カーネルのダウンロード

Raspbian エミュレート用の QEMU カーネルのページ から最新の kernel-qemu-4.x.xx-jessie をダウンロードします。ダウンロードしたファイルを適当なディレクトリを作って保存します。

ここでは、 kernel-qemu-4.4.13-jessie をダウンロードし、 /raspbian というディレクトリを作成し保存しました。

Raspbian Jessie の OS イメージのダウンロード

Raspbian Jessie の OS イメージのダウンロードページ から OS イメージをダウンロードします。

ここでは、 RASPBIAN JESSIE WITH PIXEL(2017-01-09-raspbian-jessie.img) をダウンロード展開し、そのファイルを上記 /raspbian に保存しました。

Raspbian Jessie の OS イメージの編集

VirtualBox+Vagrant利用環境が既に構築済みであると仮定し、そちらでRaspbian Jessie の OS イメージの編集を構築していきます。ターミナルを開いて下記コマンドを実行します。

$ cd /raspbian $ vagrant init ubuntu/trusty64 $ vagrant up $ vagrant ssh

別途起動したターミナル上で、下記コマンドでマウントの際に利用する Raspbian Jessie の OS イメージの offset 値を計算します。ここでは offset 値は 70254592 だったのでその値を使います。詳細は こちら を参考。

$ fdisk -l /vagrant/2017-01-09-raspbian-jessie.img

次のコマンドで Raspbian Jessie の OS イメージをマウントします。

$ sudo mount -v -o offset=70254592 -t ext4 /vagrant/2017-01-09-raspbian-jessie.img /mnt/

マウント後、下記コマンドでファイル編集します。この辺は こちらの記事 と同じです。

$ sudo vi /mnt/etc/ld.so.preload
/usr/lib/arm-linux-gnueabihf/libarmmem.so ↓ #/usr/lib/arm-linux-gnueabihf/libarmmem.so

同様に

$ sudo vi /mnt/etc/fstab
/dev/mmcblk0p1 /boot vfat defaults 0 2 /dev/mmcblk0p2 / ext4 defaults,noatime 0 1 ↓ #/dev/mmcblk0p1 /boot vfat defaults 0 2 #/dev/mmcblk0p2 / ext4 defaults,noatime 0 1

これで exit して OS イメージの編集を終えます。

$ exit

QEMU で Raspbian Jessie を起動する

下記コマンドで Raspbian Jessie 起動します。

$ qemu-system-arm -kernel kernel-qemu-4.4.13-jessie -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1" -hda 2017-01-09-raspbian-jessie.img -redir tcp:10022::22 -redir tcp:15901::5901

上記コマンドで別途ターミナルが開き Raspbian が起動しますが、 apt-get で構成管理をしようとした際に書き込み権限がないというエラーで弾かれてしまうため、リマウントします。エラー原因については こちら を参考。

$ sudo mount / -o remount,rw

リマウントしてしばらくすると Raspbian Jessie のログイン画面が現れるため、 pi ユーザーでパスワード(デフォルトだと raspbian)を入力しログインします。すると次のOS画面が現れ、ターミナルを起動し apt-get 等でインストール可能になっている点も確認できます。これでエミュレータとして最低限の利用が可能と思います。

スクリーンショット 2017-01-12 15.14.02.png

課題

上記手順では初代の Raspberry Pi をエミュレートしているため、起動含め全てがもっさりしています。Raspberry Pi2, 3 も利用できるのか、エミュレータとしての限界は別途利用してみて探ってく必要があります。

参考

下記以外もトラブルシューティング等色々なページを参考にしました。

Raspberry piをエミュレートする(Mac / QEMU / Raspbian)
QEMU for windowsでRaspbian Jessieを動作させる
Ubuntu上のエミュレータ(QEMU)で動作するRaspbian
WindowsでRaspbian Jessieをエミュレートしてみた

8
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?