Quantcast
Channel: mattintosh note
Viewing all articles
Browse latest Browse all 878

x86_64 Ubuntu で Arch Linux ARM を動かしてみる

$
0
0

先日、Arch Linux ARM のディスクイメージ作った。

mattintosh.hatenablog.com

今回はこのディスクイメージと QEMUを使って Ubuntuで Arch Linux ARM のエミュレーションをやってみたのでそのメモ。


前回作ったディスクイメージをコピー。名前が長いと面倒なので qemu-alarm.imgとした。

cp ArchLinuxARM_20160202.img qemu-alarm.img

カーネルGitHubで頒布してくれていた人のを借りてきた。

そのままだと /dev/mmcblk0p1というか /dev/sda1がマウント出来ず、起動する度にエラーになるのでこれを一度無効にする。

qemu-system-arm -kernel kernel-qemu-4.1.bin -M versatilepb -cpu arm1176 -m256"root=/dev/sda2 rw panic=1 init=/bin/bash"-hda qemu-alarm.img

vi/etc/fstab/dev/mmcblk0p1行をコメントアウトする。

vi /etc/fstab

exitしてもう一度 QEMUを起動する。この時に init=/bin/bashはつけない。

qemu-system-arm -kernel kernel-qemu-4.1.bin -M versatilepb -cpu arm1176 -m256-serial stdio -append"root=/dev/sda2 rw panic=1 console=ttyAMA0,115200"-hda qemu-alarm.img -net nic -netuser,net=192.168.1.0/24,hostfwd=tcp::12345-:22

いつもはこういうことには関心するけどこれはなんか気持ち悪い…w

f:id:mattintosh4:20160207213341p:plain

さて、ディスクイメージは 1 GB で作ったのでちょっと拡張する。ディスクイメージの拡張は truncateqemu-image resizeでできる。どちらも +を付けたりすることで「追加」になるようだ。

truncate -s+3GB alarm.img
qemu-image resize alarm.img +`numfmt --from si 3G`

再び QEMUを起動してディスクサイズを確認する。ファイルシステムはまだ拡張していない状態。

f:id:mattintosh4:20160207214051p:plain

パーティションテーブルを編集して /dev/sda2を作り直す。

fdisk /dev/sda

f:id:mattintosh4:20160207214254p:plain

再起動後、ファイルシステムを拡張する。

resize2fs /dev/sda2

QEMUの制限でメモリが 256 MB しかないのでスワップファイルを作成する。

dd if=/dev/zero of=/swapfile bs=1M count=256
mkswap /swapfile
chmod0600 /swapfile
swapon /swapfile
echo /swapfile none swap swap 0 0 >>/etc/fstab

/dev/sda1/dev/mmcblk0)を読み込むための方法として udev に新しいルールを作るものがあるらしい。

vi /etc/udev/rules.d/90-qemu.rules
KERNEL=="sda"SYMLINK+="mmcblk0"KERNEL=="sda?"SYMLINK+="mmcblk0p%n"KERNEL=="sda2"SYMLINK+="mmcblk0p2"

そうすると起動するときに /dev/mmcblk => /dev/sdaみたいなリンクができる。

と、してみたがやっぱり /bootにマウントしてくれないんだよな…。/etc/fstab/dev/sda1って書いてもダメだし。

起動後にマウントはできるから起動順とかの問題かね。

microSD に入っている Arch Linux ARM を扱う方法もあるみたいだし、Raspberry Pi 本体での作業にはそれほど拘らなくてもいいのかも。

microSD に入っている Arch Linux ARM を QEMUで起動する

Arch Linux ARM を焼いてある microSD が転がっていたのでカードリーダーに突っ込んで QEMUで起動できるのか試してみた。デバイスは /dev/sdc

そのままだと /dev/sdcに書き込み権限が無いので適当にパーミッションを変更。VirtualBoxの rawdisk イメージと同じようなものか。

chmod0666 /dev/sdc

-drive file=/dev/sdc,if=scsi/dev/sdcを読みに行くようにして起動。

qemu-system-arm -kernel kernel-qemu-4.1.7.bin -M versatilepb -cpu arm1176 -m256-append"root=/dev/sda2 rw"-drivefile=/dev/sdc,if=scsi

あっさり出来てしまうから困る。

f:id:mattintosh4:20160207221941p:plain


うーん、ということは Raspberry Pi の勉強会は実機がなくてもなんとかなるところはなんとかなるかもなぁ…。ネットワークがちょっと難だけど。

それより udev をもうちょっと勉強しなきゃだめかな。


Viewing all articles
Browse latest Browse all 878

Trending Articles