mpx.sへのパッチ後しばらくして、psコマンドの出力がめちゃくちゃな事に 気付く(^^;。
(と、思い込んでいた...)。そこで無謀にもmpx.s(あせんぶら!!)を眺め たり、ps.cを読んだりしたのだが解決しない...。そうだ、こんな時こそ...
んで、数日様子見してたが色良いフォローはなかなか付かない(--;。やっぱり 自力でなんとかせないかんかぁ...。
そこでふと思う。
確か、「MINIXを256倍使うための本」にはそう書いてあったような気が(ゴソ ゴソ)...あったあった...ふーむ...なになに...えーっ!。
まあ...そのー。結論から言うと
をカーネル再作成後に実行する必要があるそうですf(^^;(P.232参照)。 (/etc/psdatabaseちゅうファイルを更新するらしい)それと、デバドラの数が 変わった時等はps.cのリコンパイルがいるそうで、私はそこだけを覚えてたよ うですm(__;m。
とりあえず今後の事を考えて、/etc/rcに以下のように追加する。
# update /etc/psdatabase for ps commandこれで一安心v(^^)。
echo update /etc/psdatabase;/usr/bin/ps -U > /dev/null
その後、mpx-patch作者の鈴木克宗@電通大さんからfj.os.minixの方に同様の
内容のフォローを頂きました。多謝m(__)m>鈴木克宗@電通大さん。
「TZについて」
みなさんは環境変数TZをどのように設定してますか?。うちの環境では当 初、
と設定して正しい時刻を刻んでました。まあそんなもんか...という事であま り気に止めてなかったんですが、256本によると本来は
と設定した時に(日本国内においては)正しい時刻を示すべきものらしいのです (--;。
256本によりますと、かのPC-98版MINIXにおいては、このあたりの事情を考 慮してカーネル(kernel/clock.c)に手心を加えてあるらしいのですが、 Minix/X68kにおいては特に考慮されてない...というか、本来UNIXマシンの有 るべき姿のままなので上記のような状態になるようです。
結局Minix/X68k上で正しい時刻を刻むには
の3パターンが考えられますが、まあ、2.あたりがHuman, OS-9 等と併用してる 人には都合が良いかも知れません。
んが、私は本来有るべき姿にこだわってみて、3.の方法を取る事にしまし た。どうせMinix以外を立ち上げる時ってゲームする時ぐらいやし、この方が なんとなくカッコイイし(^^;。
ここ何日かGNU物の移植(後述)をして るが、
の堂々めぐりにはまりこんで、なかなか前進しない(--;。そんなおりついに、
発生...(T_T)。 mpx-patch を施して以来、カーネルパニックは起こしてなかったのでかなりショック... (-_-;。うーん、なんとかせねば。
とは言うものの、SCSIのデバイスドライバに問題が有るんやろなーとおぼ ろげに思いながらも、デバドラなんて
とりあえず他力本願で、fj.os.minixの過去の記事を漁って見る。その結果
の記事において、jack(青山)さんが/usr/src/kernel/x6inscsi.cに対する不具 合の修正情報を報告されている事を発見!。ただ、残念な事に現在のSCSIドラ イバは/usr/src/kernel/x6scsi.c に統合されているので記事の中に有るパッ チをそのまま施す事が出来ない...。
と思ったが、両者(x6inscsi.c,x6scsi.c)のソースは非常に似通った物のよ うで、これなら手修正で何とかなりそうv(^^)。
で、ほぼ機械的に同様の修正をx6scsi.cに施して見る。あくまで*機械的 に*であって修正の*意味*をさほど理解してないところがなんともデンジャ ラス(^^;;。
でもって、カーネルをサクッと構築し直して移植途中のGNU物のコンパイル を再開する。
...とりあえずパニックは起こさない。が、頻度はかなり減ったものfsckが ファイルシステムの修復を報告する事が有る(特にGCCバスエラー停止後のマシ ン再起動時)。
やはり機械的に修正するだけではだめなのか、それとも修正の仕方が間違っ てるのか?。うーん、やっぱり修正の*内容*が少しは分かってないとこれ以 上はどうしようもなさそうな気配(--;。その時、1冊の本が本棚から私に呼び かけたような気がした(ア、アブナイ)。
その昔、見栄で買ったもののほとんど開ける事無く本棚の肥やしと成って いた本だ...。どれどれ...、おっSCSIの扱いについて結構ページを割いて説明 してるのね(^^;。し、しかし殆んど理解できない私(;_;)。
とは言いながら、jack(青木)さんの修正が基本的には各種SCSIコマンド発 行後のステータスチェックの強化らしい事がおぼろげながら判った(ような気 がする)。
そして、サンプルプログラム(P.514)の中に有って、x6scsi.cに無いステー タスチェック(RESET ACKコマンド発行後にACK信号が確実にRESETされる事の監 視。と私は理解したf(^^;)のコーディングを見つけ、なんの根拠も無いまま x6scsi.cにも同様のチェック処理を付け加えてみた。
結果は...。現在経観察中なるも、おおむね良好そう(^^)。
そんなわけで、命知らずな方又は正しいアドバイスをくださる方にこちら
の
x6scsiパッチ
はいかがでしょう?。
「各種GNU物移植」
BASHのおかげでGNU物のconfigureスクリプトが結構まともに走るようになり、
その上GCC(とx6scsiパッチ?)のおかげも有って、思ってた以上に移植がはか
どってる様子v(^^)。
えっと、既に気付いた方も居られるでしょうが、結構バージョンの古い物 を移植してます。なんでまた...とお思いでしょう。私も最初はなるべく最新 バージョンをと思って作業したのですが。最近のソースは肥大化が著しい様で、 ソースによってはchmem =1000000 gcc-cc1なんて事しても
などとGCCに言われてしまいます。んで、ここはスパッと割り切る事にして、 手元に有るUNIX USER誌の付録CD-ROMの内、GNU物を収録してる一番古い物 (94.5号LibCD Vol.2)から移植する事に決定したのです(--;。
とはいえ、普通の使い方をしてる分にはバージョンの古さはあまり気にな らないとは思うのですが、いかがでしょう?。
それよりはむしろ、しっかり動作確認したわけでは無い、というか殆んど 無理矢理コンパイルを通しただけと言う事の方がよっぽど問題有ったりして (^^;。
GNU物を移植してて再認識したのですが
なんですねぇ。その昔 OS-9/X68K にUNIXなユーティリティを移植してた時の苦 労はなんだったのかと思われます(^^;(同じマシンなのに...)。
んでは(^^)/