2010年02月

2010年02月25日

QEMUの上でDebianなどが動いていると、apt-get で簡単にコンパイラなどもインストールすることができます。しかし、そこで実際にビルドを行うととんでもなく時間がかかります。一晩かけても終わらないこともあります。

QEMUには今まで紹介してきたような、システム全体をエミュレートするものの他に、Linuxのユーザーモードのみをエミュレートするものがあります。今回はユーザーモードエミュレーションを紹介します。

ユーザーモードエミュレーションを利用することでビルドにかかる時間を1/10に短縮することができました。

続きを読む

2010年02月23日

ここまでのQEMUの記事のリンク集です。

なお、CELFテクニカルジャンボリーにて、時間をいただきましたので、このあたりについて話をさせていただきます。

(3月5日 中野サンプラザ 入場無料) よろしければご参加ください。

続きを読む

2010年02月19日

前回はQEMUをアップデートしてLinuxカーネルを最新版にさしかえました。

さらに仮想ハードウェアもARM926のものからARM11MPcoreのものにさしかえました。

今回は残ったユーザーランドをDebianからUbuntuにさしかえてみます。

続きを読む

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日

GCC では -Wall を付けていても、条件コンパイル時に未定義のシンボル参照に対して警告が出ません。そのため、うっかり typo してしまった場合など、わかりにくいバグの原因となり得ます。
$ 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の場合、ちょっと特殊なオプションが必要でした。その方法を紹介します。

続きを読む

2010年02月01日

前回の方法で、qemu上にきちんと動作するDebianのシステムを構築することができました。これをひとつのベースとして、いろいろいじって試してみることにします。

まずはカーネルのリビルドです。

続きを読む

記事検索
最新コメント
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

QRコード
QRコード