[Ubuntu] QEMUでRaspberry Pi
QEMUで、Raspberry PiのRaspbianを動作させる情報です。ホストOSは、Ubuntu 13.04 64bitです。
2013年11月25日 更新
QEMUをインストール
QEMUをインストールします。
$ sudo apt-get -y install qemu
ブリッジを追加
QEMUのホストOS(Ubuntu)にブリッジを追加します。
- bridge-utilsをインストールします。
- interfacesに記述します。
- ネットワークを再起動します。
$ sudo apt-get -y install bridge-utils
$ sudo cp /etc/network/interfaces /etc/network/interfaces_org $ sudo gedit /etc/network/interfaces内容は以下の通りです。(DHCP払い出しIPを利用している場合)
auto lo iface lo inet loopback auto eth0 iface eth0 inet manual up /sbin/ifconfig eth0 promisc auto br0 iface br0 inet dhcp bridge_ports eth0 bridge_stp off bridge_maxwait 1 |
$ sudo /etc/init.d/networking restart
ゲスト起動時のスクリプトを変更
QEMUにて、ゲストOSを起動する際にブリッジへ接続するようスクリプトを変更します。
- qemu-ifupを変更します。
- qemu-ifdownを変更します。
$ sudo cp /etc/qemu-ifup /etc/qemu-ifup_org $ sudo gedit /etc/qemu-ifup内容は以下の通りです。
#!/bin/sh echo "Executing /etc/qemu-ifup" sudo /sbin/ifconfig $1 0.0.0.0 promisc up echo "Adding $1 to br0 ..." sudo /sbin/brctl addif br0 $1 sleep 3 |
$ sudo chmod a+x /etc/qemu-ifup
$ sudo cp /etc/qemu-ifdown /etc/qemu-ifdown_org $ sudo gedit /etc/qemu-ifdown内容は以下の通りです。
#!/bin/sh sudo /sbin/brctl delif br0 $1 sudo /sbin/ifconfig $1 down |
$ sudo chmod a+x /etc/qemu-ifdown
QEMUでRaspbianを動作
QEMUでRaspbianを動作させる手順です。
- Raspbianを格納するディレクトリを作成します。
- Raspbianイメージファイルをダウンロードして解凍します。
- Linux kernel for Qemu をダウンロードする。
- Raspbianイメージファイルをマウントします。
- ld.so.preloadの内容を変更します。
- Raspbianイメージファイルをアンマウントします。
- 一旦、QEMUから起動します。
$ mkdir ~/qemu_pi $ cd ~/qemu_pi
$ wget http://downloads.raspberrypi.org/raspbian_latest -O 2013-09-25-wheezy-raspbian.zip $ unzip 2013-09-25-wheezy-raspbian.zip2013-09-25-wheezy-raspbian.imgが解凍されます。
$ wget http://xecdesign.com/downloads/linux-qemu/kernel-qemu
$ sudo mkdir /mnt/raspbian $ sudo mount ~/qemu_pi/2013-09-25-wheezy-raspbian.img -o offset=62914560 /mnt/raspbian
$ sudo gedit /mnt/raspbian/etc/ld.so.preload
[変更前] /usr/lib/arm-linux-gnueabihf/libcofi_rpi.so ↓ [変更後] #/usr/lib/arm-linux-gnueabihf/libcofi_rpi.so |
$ sudo umount ~/qemu_pi/2013-09-25-wheezy-raspbian.img /mnt/raspbian $ sudo rmdir /mnt/raspbian
$ sudo qemu-system-arm -kernel ~/qemu_pi/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1" -hda ~/qemu_pi/2013-09-25-wheezy-raspbian.img -net nic -net tap,ifname=tap0
![]() |
(QEMU上での操作) # fsck /dev/sda2Fix<y>? の質問はそのままEnterキーを押します。
終わったら、シャットダウンします。
(QEMU上での操作) # shutdown -h now
この時点でのRaspbianイメージファイルを別にコピーしておくことで、上記の雑用を済ませた状態でやり直すことが出来ます。
もう一度、QEMUから起動します。
$ sudo qemu-system-arm -kernel ~/qemu_pi/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1" -hda ~/qemu_pi/2013-09-25-wheezy-raspbian.img -net nic -net tap,ifname=tap0
![]() |
参考:
QEMUでARM環境を手にいれる | 團長の小部屋
HOWTO: Virtual Raspbian on Qemu in Ubuntu Linux 12.10