A certain engineer "COMPLEX"

開発メモ その167 Raspberry Pi 3をWindows 10でエミュレートする

Introduction


備忘録。
RaspberryPIを仮想環境で使いたくなったのでメモ。
ただし、現時点ではARM64のエミュレートはできませんでした。

How to


下記の方が教えてくれました。

どうも、ビンの王冠をスプーンで開けようとして指を怪我したニンゲンです。(怠慢ヨクナイネ)ちなみにビンの王冠と芥川龍之介は同い年なんですよ、知らなくて良い雑学で...

QEMUのインストール

下記から最新版をダウンロードしてインストール。

Raspbian Jessieのダウンロード

下記からダウンロード。
最新のStrechは動かなかったので断念。

QEMU用カーネルとDevice Treeファイル

下記から、

  • versatile-pb.dtb
  • kernel-qemu-4.4.34-jessie

をダウンロード。
kernel-qemuはバージョンが随時変わります。

Qemu kernel for emulating Rpi on QEMU. Contribute to dhruvvyas90/qemu-rpi-kernel development by creating an account on GitHub.

下準備

仮想マシンでも何でも良いのでダウンロードしたRaspbianのイメージを仮想マシンにコピー。

セクターの確認


$ fdisk -l 2017-01-11-raspbian-jessie-lite.img
Disk 2017-01-11-raspbian-jessie-lite.img: 1.3 GiB, 1390411776 bytes, 2715648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x244b8248

Device Boot Start End Sectors Size Id Type
2017-01-11-raspbian-jessie-lite.img1 8192 137215 129024 63M c W95 FAT32 (LBA)
2017-01-11-raspbian-jessie-lite.img2 137216 2715647 2578432 1.2G 83 Linux

マウント


$ sudo mount -v -o offset=$((512*137216)) -t ext4 ./2017-01-11-raspbian-jessie-lite.img /mnt/
mount: /dev/loop0 mounted on /mnt.

ファイルシステムテーブルの編集


$ sudo vi /mnt/etc/fstab

proc /proc proc defaults 0 0
-/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

ld.so.preloadの編集


$ sudo editor /mnt/etc/ld.so.preload

- /usr/lib/arm-linux-gnueabihf/libarmmem.so
+ #/usr/lib/arm-linux-gnueabihf/libarmmem.so

アンマウント


$ sudo umount /mnt

起動

-hdaでダウンロードしたRaspbianのイメージを指定します。これがHDDになります


set QEMU="C:\Program Files\qemu\qemu-system-arm.exe"
%QEMU% -kernel kernel-qemu-4.4.34-jessie ^
-cpu arm1176 ^
-m 256 ^
-M versatilepb ^
-serial stdio ^
-append "root=/dev/sda2 rootfstype=ext4 rw" ^
-hda 2017-01-11-raspbian-jessie-lite.img ^
-net nic ^
-net user,hostfwd=tcp::20022-:22

コメントを残す

メールアドレスが公開されることはありません。

%d人のブロガーが「いいね」をつけました。