2010年02月
2010年02月25日
QEMUの上でDebianなどが動いていると、apt-get で簡単にコンパイラなどもインストールすることができます。しかし、そこで実際にビルドを行うととんでもなく時間がかかります。一晩かけても終わらないこともあります。
QEMUには今まで紹介してきたような、システム全体をエミュレートするものの他に、Linuxのユーザーモードのみをエミュレートするものがあります。今回はユーザーモードエミュレーションを紹介します。
ユーザーモードエミュレーションを利用することでビルドにかかる時間を1/10に短縮することができました。
2010年02月23日
ここまでのQEMUの記事のリンク集です。
なお、CELFテクニカルジャンボリーにて、時間をいただきましたので、このあたりについて話をさせていただきます。
(3月5日 中野サンプラザ 入場無料) よろしければご参加ください。
2010年02月19日
2010年02月17日
前回nfsからブートできるようにしたことで、ユーザーランドとカーネルの依存性が少なくなりました。そこでカーネルを最新のものに差し替えてみます。
さらに、qemuの仮想ハードウェアをARM926のversatileからARM11MPcoreのRealview_EBボードにさしかえて、SMPでの動作を見てみます。
2010年02月15日
大昔、まだハードディスクが高価だったころ、ディスクレスワークステーションというのがありました。自前でハードディスクを持たずに、ルートディレクトリから全てNFSでマウントするというものです。
この技術はいまでもUnix系OSのDNAに埋め込まれていて、簡単なセットアップでそれを行うことができます。組み込みLinuxの開発でこれを応用すると3つのよい点があります。
1. ターゲット内のファイルにホストからいつでも自由に簡単にアクセスできる。
2. ターゲットにストレージ系のデバイスドライバがまだ実装できていない状態でもカーネルを起動することができる。
3. ターゲットのディスクの空き容量を気にしなくてすむ。
QEMU上のARMのDebianでこれをやってみたので紹介します。
2010年02月09日
$ cat ifdef.c
#if UNDEFINED_SYMBOL
void f(void){}
#endif
$ gcc -Wall -c ifdef.c
-Wundef オプションにより、警告が出るようになります。
$ gcc -Wall -Wundef -c ifdef.c続きを読む
ifdef.c:1:5: warning: "UNDEFINED_SYMBOL" is not defined
2010年02月05日
Linuxカーネルを起動する時に使うzImageってvmlinuxをzipで圧縮したものなの?
zImageを伸長するのはブートローダーの仕事?
改めて調べてみたので、ここでそれを紹介します。
2010年02月03日
QEMU上で動いているarmのLinuxとファイルをやりとりするときに、PCのLinuxをNFSサーバにしてファイルを共有するとラクです。
QEMUの場合、ちょっと特殊なオプションが必要でした。その方法を紹介します。