Tweet

QEMU

気が向いたのでいじってみる.

資料

ざっくりぐぐってみる.

http://fabrice.bellard.free.fr/qemu/
本家
http://www.h7.dion.ne.jp/~qemu-win/qemu-doc-ja.html
日本語マニュアル

インストール

debian 環境なので,さっくりと

# apt-get install qemu

で.

ARM エミュレーション

http://fabrice.bellard.free.fr/qemu/download.html に,吊るしの ARM Linux のイメージがあるのでダウンロード.

で,README にあるとおりに

$ qemu-system-arm -kernel zImage.integrator -initrd arm_root.img

と実行.

あっさり起動する.

screen.png

ターゲットの NIC を有効に

$ sudo qemu-system-arm -kernel zImage.integrator -k ja -net nic -net tap

root 権限が無いと tap0 のアクセスができないようなので,sudo を使って起動してます.

/proc/config.gz

README によると,「カーネルのコンフィグレーションは /proc/config.gz を見てくれ」ということなので,見てみる.

確かに

# zcat /proc/config.gz | more

で見ることはできる.

が,しかし,

この内容をエミュレータから持ち出す手段が無い

ということに気がつく. ftp コマンドも無ければ,httpd も無い.

うーん,と考えたあげくに

そうだ,NFS だ

ホストマシンのディレクトリをエミュレータマシンへ mount すればいいのだ.

NFS にチャレンジ(失敗)

というわけで,NFS.

まずは,ホストマシンの設定.

/etc/exports に

/home   172.20.0.*(rw,no_root_squash,async)

というエントリを追加する*1

で,

# /etc/init.d/nfs-kernel-server restart

で,NFS サーバを再起動.

そして,ターゲット上で

# mount 172.20.0.1:/home/armroot /mnt

と実行してみるが…

portmap が無いので失敗してしまう. うーむ.

かくなるうえは,nfsroot

というわけで,root filesystem を nfs に指定しての起動にチャレンジ. この場合は portmap は必要ありません. 幸いにして,/proc/config.gz を見る限りでは,nfsroot の起動には対応しているようである.

まずは,export するディレクトリツリーの作成. 付属の arm_root.img を使用する. このファイルは cpio イメージを gzip 圧縮してあるので

# cd /home/armroot
# zcat arm_root.img | cpio --extract

で,/home/armroot 以下に展開できます.

$ sudo qemu-system-arm -kernel zImage.integrator -k ja -net nic -net tap \
-append 'root=/dev/nfs nfsroot=172.20.0.1:/home/armroot \
ip=172.20.0.2::172.20.0.1:255.255.0.0:::'

で,いざ,起動.

メッセージを見る限りでは mount には成功しているようなのだが,途中で通信が切れてしまうようである. ターゲットファイルシステムの /etc/init.d/rcS を見る.

ifconfig eth0 10.0.2.15 up
rdate 10.0.2.2
ip route add default via 10.0.2.2

こんな行があるので,コメントアウトしてやります. あと,起動直後は nfsroot は readonly で mount されているので,先頭に

mount -o remount,rw /

を追加.

そして,再度チャレンジ.

今度はうまくいきました. 書き込みも ok.

というわけで,ターゲット上で

# cat /proc/config.gz > config.gz

を実行し,config.gz の内容をホストマシンに持ってくることができました. めでたしめでたし.


*1 セキュリティ的には,あっぱっぱの設定なので,closed なネットワークでやってね

添付ファイル: filescreen.png 206件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-06-11 (日) 11:38:54 (4201d)