決断の日。
そして、あとから合流。外で声が聞こえたのでわかった。
二回目だと少し慣れてきているような。
なんとか朝起きる。
かなりゆっくりの時間で出発。
そんな私はぼろぼろの身体。
Hさんから直接メールで調査の依頼が来ていたのでやってみる。
色々調査して結果をメールした。
すぐに丁寧な解説付きでメールが送られてきた。
EP93xxの二つのクロック入力とその一方が狂ってしまうことがある件。
Armadillo-9にはRTCが二つあって、EP93xx内蔵RTCとバッテリバックアップのある外付RTC。で、前者のドライバは作成済みらしい。すばらしい。後者のドライバについては着手はしているものの、色々トラブルがあって大変みたい。
Armadillo-9の本家へのマージも近いということかな。楽しみ楽しみ。
ふっと反応がなくなってしまったのでシリアルコンソールにつないでみたらpanicしていた。
0x83b1b9d0: at panic+0x19c 0x83b1ba60: at cpu_switch+0x68 0x83b1ba70: at mi_switch+0x20c 0x83b1bab0: at ltsleep+0x408 0x83b1bae0: at biowait+0x74 0x83b1bb10: at genfs_gop_write+0x4a0 0x83b1bbd0: at genfs_putpages+0x780 0x83b1bcf0: at ffs_putpages+0x3c 0x83b1bd10: at ffs_full_fsync+0x3c8 0x83b1bd90: at ffs_fsync+0x7c 0x83b1be60: at sys_fsync+0x110 0x83b1bed0: at syscall_plain+0xe8 0x83b1bf40: user SC trap #95 by 0x41ae3568: srr1=0xc030 r1=0xfffe2c70 cr=0x40424082 xer=0x20000000 ctr=0x41ae3560 esr=0 pid=0x65
syncしたが帰ってこないので、電源を入れ直す。すると、ROM MonitorのPCI Ethernetの検出で止まってしまった。
405GPr 1.2 ROM Monitor (5/25/02) --------------------- System Info ---------------------- Processor = 405GPr (New mode), PVR: 50910951 CPU speed = 266 MHz PLB speed = 133 MHz OPB speed = 66 MHz EBC speed = 66 MHz PCI Bus speed = 33 MHz (Async) VCO speed = 800 MHz Feedback Clock = CPU Amount of SDRAM = 64 MBytes Internal PCI arbiter enabled -------------------------------------------------------- --- Device Configuration --- Power-On Test Devices: 000 Enabled System Memory [RAM] 002 Enabled Ethernet [ENET] 003 Enabled PCI Ethernet [ <-ここで止まる
うーむ。ついに壊れたか。と思って再度電源を入れ直してみると無事に起動した。やれやれ。最近はUSL-5Pが止まってしまったりOBS50でNetBSDのブートローダが動かなくなってしまったりと困った事態が続いているので嫌な予感がしてしまうなぁ。
OBS266のブート後にsyslogをみてみたがpanicを引き起こす原因のようなものは残っていなかった。あとfsckがかからなかったのでsyncはうまくいっていたのかなぁ。
Firefoxが動いた。動かないよという話を聞いていたのだけれど、ダメ元でpkgsrcから作って動かしてみたらあっさりと動いた。
個人的にはMozillaよりFirefoxのほうが使いやすいと思っているのでとても嬉しい。でもなぜかsazanamiフォントを使ってくれないぞ。あれ、何か設定必要だったっけな。
金曜日だが明日もあるので油断ならぬ。が、寝るの遅くないか、きみぃ。
なくしたか。
ちょっとみつからんぞ。
話を聞いてきた。
OpenBlockSという名前じゃなくてOpenMicroServerという名前らしい。これで、OpenBlockSじゃないという理由で買わずに済むかもとか。
発売は11月末らしい。が、さらに遅くなる可能性もあるようだ。
スペックや大きさなどは既報のとおり。
価格は56,400円 (税込)。
むー、高いな。OBS266 128Mbytesが38,800円ぐらいだったと思うが、それでもかなり高いのに。Giga LANDISKとか軽ーく買えちまうな。
ちなみにOBS266は継続して販売される模様で、生産終了の予定は現在のところないらしい。生産終了が確定したら早急にアナウンスを行うとのこと。
色はつや消しの黒。うーん、BLACKBOXの機械みたいだ。カラフル、透明、白、と色で楽しませるOBSの歴史からすると非常に平凡な色になってしまった。
また2.5inch HDDは搭載できない。これもつらいな。大容量CFやMicroDriveで代用できるという話だが、OBS266に60GbytesのHDDを搭載して23Gbytesほど消費しているのだが。USBで外付けしろといっても邪魔だよね。
温度とか苛酷な環境での動作を保証すべく増強されたところは家庭用サーバとしてみるとマイナスポイントばかり目立つ感じだ。
GbEやPoEなども家庭用サーバとして訴求力に乏しいなぁ。
一方で、仕事で使う他人にとっては嬉しい機能が多い。
いずれにせよ一般ユーザより法人ユーザのほうが数も出るし、やむを得ないのかもしれないな。一般ユーザとしては少々寂しいところ。
OBS400を出してほしいといったら、ファン付になっちゃいますよとのコメント。うーん、じゃぁPCIなし、tlpもなし、フロントのシリアルなし、でもUSB付けたOBS266出して。
さて、NetBSDについての情報も聞いてきた。
PowerPCからMIPSに変わったことでNetBSDを移植する楽しみもある。
USB2.0のチップやIntelのGbE (二個) はPCIにぶらさがっているようだ。PoEのEhterはCPUオンチップのものらしい。
GbEはGD82541PIの無鉛品であるLU82541PIでUSBはNECのuPD720101F1-EA8-Aでどちらもメジャーな石のようである。
ということで、PCIが動けばデバイスの多くが動いてくれそう。
あと、CFスロットはCPUオンチップのPCMCIAコントローラを使っている模様。TrueIDEかPCMCIAで動くかは未定だがNetBSD的には自分でがんばればどうにでもなる世界かもしれない。まぁしかしCFスロットはドライバ必須ということだなぁ。
Alchemy AU1550ってNetBSD的にどうだったっけかな。
あと、ブートローダは「やーもん」らしい。もちろんtftpを使ったブートも可能なのでブートローダで苦労することはなさそうですな。
基板上のJTAGピンは試作品ではピンヘッダが生えてたけど発売するときには生えていないらしい。
OBSとOMSは路線が違うことを認識すれば、まぁ売れるんじゃないだろうか。
個人的にはやっぱり次世代OBSを希望したいです。OBS266の後継の登場を待ちたい気分です (でも出ないでしょう)。
朝から瑞江方面の体育館へ。
昨年とは比べられない程にしっかりと活躍。
ビデオを持つ手もおぼつかないほどですよ。
昼ごろに終わってラーメン食べて帰ってきた。塩ラーメンなかなか。
してきました。ということで一段落です。
桃太郎寿司にいってきた。
最近は寿司で胸やけするなぁ。良く噛んで食べましょうということかなぁ。
雨なので外にもいけず。
近くのホームセンターで眼の保養。まだ一年先なので。
ホームセンターで走りまくり汗かきまくり。
Armadillo-9のMicroDriveを有効活用すべくpkgsrcから色々入れようと思い、そういえばmeta packageというのがあったのを思い出す。
meta packageを作っておくと何かと便利そうなので作ってみることにした。
meta-pkgs/web-serverを参考に自分の入れたい物を並べて書けば良いみたい。
emacs関係はemacs-nox11を使うように/etc/mk.confにEMACS_TYPE=emacs21nox11と書いておいた。
こんな感じのMakefile。
# $NetBSD$ # DISTNAME= tokuda-1.0 PKGREVISION= 1 CATEGORIES= meta-pkgs MASTER_SITES= # empty DISTFILES= # empty MAINTAINER= tokuda@tokuda.net COMMENT= Provides some useful tools for tokuda # mk.conf # DEPENDS_TARGET+=package # EMACS_TYPE=emacs21nox11 # Tools DEPENDS+= zsh-4.*:../../shells/zsh/ #DEPENDS+= lv-4.*:../../misc/lv/ DEPENDS+= screen-4.*:../../misc/screen/ DEPENDS+= sudo-1.*:../../security/sudo/ # Mail, IRC, Web DEPENDS+= emacs-nox11-21.*:../../editors/emacs-nox11/ DEPENDS+= anthy-elisp-6700*:../../inputmethod/anthy-elisp/ DEPENDS+= wl-2.*:../../mail/wl/ DEPENDS+= riece-1.*:../../chat/riece/ DEPENDS+= w3m-0.5.*:../../www/w3m/ # Mail Server DEPENDS+= fetchmail-6.*:../../mail/fetchmail/ DEPENDS+= cyrus-saslauthd-2.*:../../security/cyrus-saslauthd/ DEPENDS+= cy-crammd5-2.*:../../security/cy2-crammd5/ DEPENDS+= cy-digestmd5-2.*:../../security/cy2-digestmd5/ DEPENDS+= cy-login-2.*:../../security/cy2-login/ DEPENDS+= cy-plain-2.*:../../security/cy2-plain/ DEPENDS+= cyrus-imapd-2.*:../../mail/cyrus-imapd/ # Web Server DEPENDS+= bozohttpd-2005*:../../www/bozohttpd/ DEPENDS+= thttpd-2.*:../../www/thttpd/ # Diary DEPENDS+= nkf-2.*:../../converters/nkf/ DEPENDS+= qkc-1.*:../../converters/qkc/ DEPENDS+= sitecopy-0.13.*:../../www/sitecopy/ #DEPENDS+= -.*:../../// EXTRACT_ONLY= # empty NO_CHECKSUM= yes NO_CONFIGURE= yes NO_BUILD= yes NO_MTREE= yes do-install: # empty .include "../../mk/bsd.pkg.mk"
何度も途中で止まったけれど、一度作ってしまえば相当便利だと思った。
特に遅いarchだと走らせて寝てしまえば良いので気楽かなぁ。
あとbulk buildみたいに失敗しても次に進むような仕掛けがあるといいんだけど。
しかし、lvがコンパイルできないのには困ったなぁ。
あ、distccも入れといたほうが良さそうだ。
さて、走らせて寝るか。
朝から雨がふってうんざり。最近は寒いし、ちょっと厚着で出かける。
pthreadについて掲示板に書き込みがあった。とても嬉しい。
書き込みによると、
どうもlib/pthread/arch/powerpc/pthread_md.hの中で、MSRの初期値を0xd032に決め打ちしているのが、原因の一端みたいです。 アドホックですが、IBM4XX向けの値0xc030に書き換えてlibpthreadを再コンパイルすると、9/22の日記にあったくらいの簡単なプログラムなら、動きました。
とのこと。なんと動くようになるらしい。すばらしい!
ということでpthread_md.hをのぞいてみる。するとarch/powerpc/include/psl.hから0xd032に決めた、ということが書かれている。
/* * Set initial, sane values for registers whose values aren't just * "don't care". * 0xd032 is PSL_USERSET from arch/powerpc/include/psl.h */ #define _INITCONTEXT_U_MD(ucp) \ (ucp)->uc_mcontext.__gregs[_REG_MSR] = 0xd032;
ということでarch/powerpc/include/psl.hを見てみる。
するとこのようになっている。
#if defined(PPC_OEA) extern int cpu_psluserset, cpu_pslusermod; #define PSL_USERSET cpu_psluserset #define PSL_USERMOD cpu_pslusermod #else /* PPC_IBM4XX */ #define PSL_USERSET (PSL_EE | PSL_PR | PSL_ME | PSL_IR | PSL_DR) #define PSL_USERMOD (0) #endif /* PPC_OEA */
ということでIBM4XXは(PSL_EE | PSL_PR | PSL_ME | PSL_IR | PSL_DR)らしい。定義は次のようになっている。
#define PSL_VEC 0x02000000 /* AltiVec vector unit available */ #define PSL_POW 0x00040000 /* power management */ #define PSL_TGPR 0x00020000 /* temp. gpr remapping (mpc603e) */ #define PSL_ILE 0x00010000 /* interrupt endian mode (1 == le) */ #define PSL_EE 0x00008000 /* external interrupt enable */ #define PSL_PR 0x00004000 /* privilege mode (1 == user) */ #define PSL_FP 0x00002000 /* floating point enable */ #define PSL_ME 0x00001000 /* machine check enable */ #define PSL_FE0 0x00000800 /* floating point interrupt mode 0 */ #define PSL_SE 0x00000400 /* single-step trace enable */ #define PSL_BE 0x00000200 /* branch trace enable */ #define PSL_FE1 0x00000100 /* floating point interrupt mode 1 */ #define PSL_IP 0x00000040 /* interrupt prefix */ #define PSL_IR 0x00000020 /* instruction address relocation */ #define PSL_DR 0x00000010 /* data address relocation */ #define PSL_PM 0x00000008 /* Performance monitor marked mode */ #define PSL_RI 0x00000002 /* recoverable interrupt */ #define PSL_LE 0x00000001 /* endian mode (1 == le) */
ということで計算してみると、0xd030になる。あれぇ、0xc030じゃなかったかなぁ。
まぁ、後で試してみよう。
二日連続で朝から雨がふってうんざり。今日も厚着で出かける。
lib/pthread/arch/powerpc/pthread_md.hの件を実際に試してみる。
まずは0xc030に書き換えてlibpthreadを再コンパイル。
できあがったlibpthread.*を/usr/libにコピーしていざブート。
そして、digを実行。
bs266# uname -a NetBSD obs266 3.99.9 NetBSD 3.99.9 (OPENBLOCKS266) #0: Sat Sep 24 17:33:38 UTC 2005 root@mini:/usr/export/o/20050924/evbppc/sys/arch/evbppc/compile/OPENBLOCKS266 evbppc obs266# ldd /usr/bin/dig /usr/bin/dig: -lpthread.0 => /usr/lib/libpthread.so.0 -lc.12 => /usr/lib/libc.so.12 obs266# dig www.netbsd.org ; <<>> DiG 9.3.0 <<>> www.netbsd.org ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25264 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 3 ;; QUESTION SECTION: ;www.netbsd.org. IN A ;; ANSWER SECTION: www.netbsd.org. 86322 IN A 204.152.190.12 ;; AUTHORITY SECTION: netbsd.org. 31617 IN NS ns.netbsd.org. netbsd.org. 31617 IN NS adns1.berkeley.edu. netbsd.org. 31617 IN NS adns2.berkeley.edu. netbsd.org. 31617 IN NS uucp-gw-1.pa.dec.com. netbsd.org. 31617 IN NS uucp-gw-2.pa.dec.com. ;; ADDITIONAL SECTION: ns.netbsd.org. 31617 IN A 204.152.190.11 adns1.berkeley.edu. 5302 IN A 128.32.136.3 uucp-gw-2.pa.dec.com. 9818 IN A 204.123.2.19 ;; Query time: 51 msec ;; SERVER: 192.168.100.1#53(192.168.100.1) ;; WHEN: Tue Oct 18 16:26:04 2005 ;; MSG SIZE rcvd: 223 obs266#
動いたー!! すばらしー!!
さて、昨日は0xc030じゃなくて0xd030じゃないかと思っていた件についても試してみた。結果はNG。
IRCで顛末について報告しているとsys/arch/evbppc/include/psl.hについて教えてもらう。
たしかにこちらでは次のようになっており0xc030である。
#ifdef PPC_IBM4XX /* 4xx don't have PSL_RI */ #undef PSL_USERSET #ifdef PPC_IBM403 #define PSL_USERSET (PSL_EE | PSL_PR | PSL_ME | PSL_IR | PSL_DR) #else /* Apparently we get unexplained machine checks, so disable them. */ #define PSL_USERSET (PSL_EE | PSL_PR | PSL_IR | PSL_DR) #endif
ということで次のようにするのがやっぱり正しいらしい。
--- lib/libpthread/arch/powerpc/pthread_md.h.orig 2005-10-18 15:49:38.000000000 +0000 +++ lib/libpthread/arch/powerpc/pthread_md.h 2005-10-18 16:34:10.000000000 +0000 @@ -57,7 +57,7 @@ * 0xd032 is PSL_USERSET from arch/powerpc/include/psl.h */ #define _INITCONTEXT_U_MD(ucp) \ - (ucp)->uc_mcontext.__gregs[_REG_MSR] = 0xd032; + (ucp)->uc_mcontext.__gregs[_REG_MSR] = 0xc030; /* * Usable stack space below the ucontext_t.
さて、IBM4XXで動いて嬉しいのだけれど、このファイルはpowerpc全体に影響するという件についても考えなくてはならない。
むしろ0xc030でmacppcなどがちゃんと動作してくれれば、動作範囲のより広い0xc030を採用すべきという考え方もあるんじゃないか、という話をIRCでしていた。
やっぱり素のNetBSD/macppcも動かせるようにしたほうがいいのかな。また今度やろう。
次のようなメッセージで止まっていた。
===< Building for cyrus-imapd-2.2.12nb2 中略 ### Building chartables... rm -f chartable.c ./mkchartable -m ./charset/unifix.txt -m ./charset/unidata2.txt ./charset/*.t > chartable.c || (rm -f chartable.c && exit 1) mkchartable: expanding unicode mappings... mkchartable: expanding unicode mappings... mkchartable: expanding unicode mappings... mkchartable: building expansion table... mkchartable: mapping unicode... mkchartable: mapping UTF-8... mkchartable: mapping UTF-7... mkchartable: mapping ./charset/big5.t... mkchartable: mapping ./charset/gb2312.t... mkchartable: mapping ./charset/iso-2022-jp.t... mkchartable: mapping ./charset/iso-2022-kr.t... mkchartable: mapping ./charset/iso-8859-1.t... mkchartable: mapping ./charset/iso-8859-15.t... mkchartable: mapping ./charset/iso-8859-2.t... mkchartable: mapping ./charset/iso-8859-3.t... mkchartable: mapping ./charset/iso-8859-4.t... mkchartable: mapping ./charset/iso-8859-5.t... mkchartable: mapping ./charset/iso-8859-6.t... mkchartable: mapping ./charset/iso-8859-7.t... mkchartable: mapping ./charset/iso-8859-8.t... mkchartable: mapping ./charset/iso-8859-9.t... mkchartable: mapping ./charset/koi8-r.t... mkchartable: mapping ./charset/us-ascii.t... mkchartable: mapping ./charset/windows-1252.t... mkchartable: mapping ./charset/windows-1256.t... ### Done building chartables. cc -c -I.. -I/usr/include/krb5 -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/db4 -I/usr/include -I/usr/include -I/usr/pkg/include -DHAVE_CONFIG_H -O2 -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/db4 -DPIC -fPIC chartable.c UVM: pid 346 (sendmail), uid 0 killed: out of swap UVM: pid 8481 (atrun), uid 0 killed: out of swap
うーむ、swapがたりなくなったのかな。dailyあたりと衝突したんだろうか。
電源斷、再起動して、もう一度動かしてみたけれどchartable.cのコンパイルはすごく時間がかかっているみたい。やはりdistccあたりでやらせるべきだなぁ。
とりあえずcyrus-imapdは飛ばして進めるか。
夜はニアミス。
コロッケ半分ほどたべたり。
すばやくロボットを作ってみたらけっこう良くできたのでまた作ろう。
BSDカーネルの設計と実装-FreeBSD詳解-, ASCII, 6,000円, 書泉ブックタワー
買っときましょう。
libpthreadの件で掲示板に書き込んでいただいた方とmpc860でお世話になっている方からメールをもらう。
今日はちょっと眠いので寝ます。
meta packageのmakeが終わっていた。distcc足しておかねば。
それなりに寝ているのだけど朝起きられませんね。
なんか終電がなくなっていた。
歩いてみた。40分以上かかったよ。
distcc足してmakeしておいた。
make -i packageと-iをつけると失敗したあとも継続してmakeしてくれるとIRCで教えてもらった。
いつもありがとうございます。
メールはこちらへ...[BSD小僧 (tokuda @(at) tokuda .(dot) net)]
この日記は、GNSを使用して作成されています。