[MI/1.6_RC3] 1.6_RC3 になった。ものすごくタイミングよく 西村さんからギブアップの commit が pull up されてた。 ネゴってあったのかしら。 てことで x68k でメモリ 4MB で生活してる人 (いるのか?) ごめんなさい。 1.6 のインストーラはメインメモリ 4MB では起動できません。
[x68k/fd] つーか -current と 1.6 では fd での ufs マウント自体が出来ないっぽい。うーむ、えらいこった。 けどさっぱり分からず。
[x68k/fd] と言ってても始まらないので、素人は素人なりに 追っかけてみる。まず mount コマンドでは以下のようなエラーになる。
そこで src/sbin/mount_ffs/mount_ffs.c を incorrect で 検索するとあっさり出てきた。 mount(2) システムコールが EINVAL を返しているらしい。 ってことで、システムコールの中身を読む。 src/sys/kern の下をずいぶん探した挙げ句 mount(2) は src/sys/kern/vfs_syscalls.c の sys_mount() だと分かった。yuka# mount /dev/fd1c /mnt mount_ffs: /dev/fd1c on /mnt: incorrect super block
[MI/1.6H] 前川さんの devsw がマージされた。 未だに何するものかよく分かってないけど、bdevsw と cdevsw の対応を 適当にとってくれるってことかしら。
[x68k/fd] sys_mount 自体が EINVAL 返すのは1箇所だけだけど 呼んだ関数が EINVAL 返すってのもあるので、とりあえず error を セットしてそうなところに全部 printf 入れてみることにする。 もっと高尚な方法ってあるんだろうけど...。 まあ半分予想通りというか EINVAL 返してるのは ffs_mount だったので 今度はそっちに printf 入れてみる。 もっと高尚な方法ってあるんだろうけど...。 ffs_mount() の先頭あたりでデバッガに落ちるようにして そっからステップ実行とか出来るんかな。
[MI/1.6] 何気に cvs log したら netbsd-1-6-RELEASE のタグが ついてた。 てことで x68k は結構クリティカルなバグ込みでリリースです。 すんません。現在鋭意デバッグ中...。
[x68k/fd] ffs_mountfs() が bread で 8192 バイトを一度に 読みこんでいるのが原因っぽい。いつからかは分からないけど rfd は 4096 バイト以上一度に読むと化けるんだよね。 ってことで正しい回避方法じゃないけど、とりあえず minphys で制限してみる。 dd で bs=1228800 指定してちゃんと読みこめるようになったけど マウントはまだ失敗する。どうやら fdread を通過してないらしい。
[MI/finger] 誰かこのヴァカをとめてやってくれ > Kimmo Suominen
[etc] 半角 EUC を編集できるエディタが欲しい(笑)。 perl で無理やり書いてみたけど、次に jvim3 立ち上げたら親切にも 全角に直してくれた。
[x68k/bmd] devsw に対応してみた。お、こりゃ便利かも。 USB の時とかデバイス追加するのに結構面倒くさかったのが <arch>/conf/majors.<arch> つつくだけでいけるって訳ね。
[x68k/bmd] disklabel が書き込めず深みにハマる。
[etc/TODO] 1.6 のタグ打たれたのでまた TODO リスト。
[x68k/slhci] DIAGNOSTIC つけたカーネルだと slhci が root hub を アタッチできなかったらしい。さくっと直して commit する。
[1.6] リリースされましたねえ。 ちょうど3連休だしおうちの 1.5.2/i386 2台も 1.6 に入れ換えようかな。 そうすれば Mozilla に日本語入力できるようになるらしいし。
[MI/finger] そう、砂川さんのメールで思い出さされたけど localization と internationalization って逆方向なのよね。 自分もそうだけど ISO-8859 野郎だと特にこの辺区別できてないよね。
[MI/rsync] 8月のことだけど、 おうちの NFS サーバのディスク (30GB) が目一杯になってきてて、 それも不要なものを時々消しながら、時には必要だったものまで 誤って消しながらもなお使用量が 97% とかになってきたので とうとうディスクを交換することにした。 普通なら増設なんだろうけど、1本のディスクとして扱いたいのと ccd みたいな奇妙な仕組み(失礼)は何か起きた時のことを考えると (いやたぶんそう考えてると何も起きないんだろうけど) あまり使いたくなかったのとで増設じゃなく素直に交換した。どうせ安いしね。 30GB も当時は1万円ちょっとだったけけど、今回買った 80GB も 1万円ちょっと。なんだかなあーって気もちょっとするけど。
で、問題になるのが disk to disk の完全なコピーを行なわなければ ならないってこと。最初、シングルユーザに落してから dump | restore を使ったんだけど、6時間くらいかかった末に オプションが足りなかったせいかパーミッションが保存されず 全部 root ユーザの所有になってしまっていたので、一気に戦意喪失。
2週間ほどして9月になってから、さすがにやばくなってきたので、再挑戦。 今度は rsync を試してみる。これなら最初に運用中にコピーしておいて その後、移行時にもう一回シングルユーザに落して rsync しておけば 停止時間が短くて済むはずだという計画を立てていた。 rsync はパーミッション、タイムスタンプはもちろんのこと、 シンボリックリンク、ハードリンク、送信元側で削除されたファイル、 デバイスファイルなども正しく扱える。 やってみると、無事思った通りの結果で、何度か rsync して最終的に シングルユーザで rsync してから立ち上げてみたが以前と何ら変わりなく すべての情報が保存されてるっぽかった。 シングルユーザでのコピー時間も30分とかその程度のオーダで済むしね。 めでたしめでたし。 あ、atime は変わるらしいけどね。
てことで、ディスクの交換時に便利な rsync の書式。 後ろの '/'(スラッシュ) の有無には意味があるので注意。
今回はデータディスクだったので、デバイスファイルについては考察する 必要がない分楽だったが、システムディスクのコピーにも使えそう。rsync -avHx --delete /export/ /export2
[i386/WakeOnLan] なんでも書き残しとけ週間。 Wake On Lan するためのプログラム、、を公開したいんだけど 他人の copyright がついてるのでここでは公開しません。 適当に検索して下さい。 中身は至って簡単で、起こしたいマシンと同一セグメント上に 特定の内容のパケットをブロードキャストするだけ。 Wake On Lan 対応の NIC がパケット拾って自分宛であれば 電源入れるという仕組み。 パケットは普通の UDP パケットで宛先ポートは 9 番 (discard)。 内容はまず 0xff を 6バイト、そのあと起こしたいマシンの NIC の MAC アドレスをネットワークバイトオーダで 16回続けたもの。 ね、簡単でしょ。
[x68k/fd] 原因究明のため、ちゃんと動作していた時点のカーネルに デバッグメッセージを入れて比較してみようと思った。 が、今年の4月くらいより以前をクロスコンパイルするには pkgsrc のクロスコンパイルツールを使わないといけなくて、 もう消しちゃってるよーう。 ということで、1.5.3 で何故かネイティブコンパイル中。 素直にクロスコンパイルツールをどっかから掘り出して来た方が早いか。
[tips] 全然 NetBSD 固有じゃないけど、別の調べものしてた時に 見つけたので、メモっておく。 ターミナルがぐっちゃぐちゃになった時に直すコマンド。
echo [space] Ctl+V [ESC] c ってことね。echo ^V [ESC] c
[x68k/fd] 先週末は 1.5.3 のカーネルを作り終ったところで タイムアウトしたので、今週は 1.5.3 のカーネルで 4608 バイトを dd で 読んでみる。無事読めた。表示されるデバッグメッセージもまったく同じ。 今度は DMA あたりを疑ってみるか。
[MI/install] ま、所詮 NetBSD は Linux 気分で ちょっとインストールしてみるような OS じゃないのよね。
[i386/1.6] おうちのクライアント PC を NetBSD 1.6 に
上げてみた。研究室にいた頃の癖でインストールは毎度
クリアインストールなので、復旧には時間がかかる。
pkgsrc から Mew2 を入れたけどあまりに使いにくい
カスタマイズに時間がかかって数時間悪戦苦闘したが、
Mew2 を捨てて Mew 1.94.2 を手動で入れ直した。
make install した次の瞬間からメールが読み書きできた。
やっぱ、もう6年くらい使ってる Mew 1.x なのでそう簡単に
他のメーラには移れない。
私はスレッド使わないので Mew2 有難くないし。
そういう意味では IMAP もスレッドも使わないので wanderlust も
結構使いづらいのよね。
なんかいいメーラないかしらん。
[i386/1.6] Mozilla 1.0 になってから、 IPv6 じゃないところにもちゃんと接続できるようになった。 これで wwwoffle ともさようなら。
[i386/1.6] 1.6 になると mozilla とかに日本語入力ができると 聞いていたが (というかそのために 1.6 に上げた)、これも無事できた。 感動。つーか FreeBSD に遅れること4年くらい。 これで google.c とかいう謎の自作プログラムともさようなら。
[MI/1.6] 1.6 に上げてから RSA を使っている某サイトに ssh できなくなってしまった。 幸いまだ 1.5.2 のままのサーバからならログインできるので、両者で デバッグメッセージ出させてみたりしたが、どうも 1.6 の ssh が protocol 2 を サポートしたのが影響したらしい。それ以上詳しいことは知らない。 とりあえず某所へのログインだけ protocol 1 を強制するようにして 解決したつもり。ださださ > 私
[MI/rsh] なんかいろいろ起きますが、1.6 に上げてからというもの rlogin が出来ない。おうち内のサーバは非力なマシン揃いなので、 ssh ではなく rsh を多用している。もちろん外部コネクションに rsh なんぞ 使う気は毛頭ないけど x68k 相手に ssh する気にはなれない。 rsh にだって市民権は十分ある。 しかし 1.6 マシンからの rsh が一切出来なくなったから不便だ。 原因究明中。 しかもマニュアルに書いてあるオプションと実行ファイルのヘルプメッセージで 出てくるオプションが全然違うし。
[MI/rsh] ログインシェルでだけ rlogin できるらしい。 なんじゃそりゃ。.cshrc とか間違えたかな。
[MI/-current] とうとう /bin, /sbin が dynamic link に なったらしい。うう、気持ち悪い。 まあ双方のメリット、デメリットは分かるような気がするので どっちがどうとかはあまり思わなくなったけど、それより何より /lib, /libexec なんていうディレクトリが出来るのが気持ち悪くて嫌かも。 まあ、私はどうせユーザランドのアップデートはやらない人なんで これを目にするのは 1.7 が出た時だろうね。
[MI/1.7] そういや、どうしても次のリリースを NetBSD 2.0 に したい人達がいるのも気になる (というか 1.6 を 2.0 にしようと言ってたけど)。 そんな意味のないことしなくていいじゃん。 SMP 対応したって x68k は関係ないし。(ぉ
[x68k/1.6I] なんかデバイスの自動コンフィギュレーション周りに 変更が入って 1.6I になったらしいけど、コンパイルはこけるし、それ直しても カーネル起動せんし、どうしよ。
[x68k/commit] とりあえずコンパイルこけるのだけは直して commit しておく。でもさっぱりカーネルが起動しないのはどうしたもんかなあ。 さっさと thorpej さんにでもメール書いて聞いてみたほうがよかんべかと 思ったりするだめだめ committer。