2008年5月8日木曜日

小型PC

昨日はDNRH-001のセットアップの話でしたが、DNRH-001結構売れてるみたいです。
以前の自作ubuntuマシンより小型になりましたが、発熱が大きく省電力化したのかは微妙です。もっと小型化と省電力化したいのですが...
ところで昨日発表のSONYのフォトフレームVGF-CP1に惹かれてます。というのもコレってCPUがarm11なlinuxマシンらしい。弄くって遊べそうな予感がします。
値段は約3万円。あと1万だせばeeePCが買えちゃうところがまた微妙ですが

はたしてlinuxマシンとして使えるのかどうかもわからないのですが、同じimxでdebian-armelに格闘中なので気になります。imx31はRAM128MBでgnomeとかkdeをインストールすると殆ど空きメモリが残らないので、あまり実用的では無かったけど、メモリさえ確保できればちょっと遅いPCとして使用できそうな感じでした。(CP1のメモリ搭載量はわかりませんが)

そのdebian-armelなんだけど、ターゲット上でコンパイルすると頻繁にsegumentation faultで落ちてしまったり、起動直後に Unknown HZ valueメッセージがでたりしてます。
Unknown HZ valueはインターネットで検索すると" procps パッケージを最新にしろ!"とあるのでprocpsを最新にしても改善しないし、時間が経過するとHZ値が変動するのでPLLが安定してないのか?と思って調べてました。3日ぐらい悩んだ結果PLLは関係なくて、procpsパッケージ内のソース init_libproc()で参照しているバージョン変数 linux_version_codeが初期化されていなかった事が原因だった

linux_version_codeが初期化されるのは proc/version.c 内の init_Linux_version() 関数で、この関数に __attribute_((constructor)) が定義してある。init_libproc()も __attribute_((constructor))が定義してあった。

init_Linux_version() を実行した後にinit_libproc()が実行されれば問題ないのだけど、そうなってなかった。どこで実行順序が決定されるのかわからないので、とりあえず初期値を書いといた

segumentation faultは不定期に出るので、ハード的なエラー(メモリアクセスタイミングとか)のような気もしてますが、どうやって追いかけてやれば良いのか....
メモリタイミングの初期化はbootloaderの仕事なんで、僕ちゃん手を入れてないから問題ないと思うので、メモリ不足のせいのような気もするけど確認できず....

0 件のコメント: