NetBSD お遊び日記 (2004年1月)。
$Id: diary-200401.html,v 1.46 2004/02/02 01:12:00 isaki Exp $
≪ 2003年12月 | 2004年2月 ≫

2004/01/01

[x68k/emulator] また鎌田さんの真似をして ADDQ.L, BRA.S の ループを測定してみた。PentiumIII/1GHz の NetBSD/i386 上で、 100万回のループ (200万命令) を実行するのに 0.777秒かかった。 1回のループに34クロックかかるので...(計算方法を考えること5分)... えーと(汗...43MHz?? 高速化はまだ一切してないとはいえ C で書いてるので Java よりかは 速いだろうとは思ってたけど、ほんとかなあ。


2004/01/02

[MI/softintr] って何だろう...(汗

[x68k/sysinst] [元ネタ (2003/12/30)] lukem さんが直してくれた。 けど Illegal instruction 直さないと progress bar に辿り着けないのね...。

[x68k/build] ビルドしてたら kern/subr_pool.c が しょぼいコンパイルエラーでこけた。まじかよー。 [続き(01/03)]

[x68k/emulator] MFP むりぽ...。

[x68k/emulator] 68010 以降の命令もむりぽ...。


2004/01/03

[x68k/build] [元ネタ(01/02)] なんか sys/kern/subr_pool.c だけローカルで壊れてたみたい...なんでじゃろ。

[x68k/etc] [元ネタ(2003/12/27)] 昨日は起動自体はするけど NE2000 が動かなかった。 本体から外に伸びてる外付け ATX 電源用の延長ケーブルを触ると 一瞬ぷっていう起動する時の音がする。なんか接触不良げ。 今日はその延長ケーブルをもうちょい動かしてみてから電源入れる。 NE2000 も動いて無事ネットワークブートできた。なんじゃそりゃ。

[x68k/sysinst] sysinst.fs で起動して一旦シェルに降りてから ftp するとちゃんと GET できた。こけてるのは ftp ではないらしい。

[x68k/sysinst] いい加減 /usr/sbin/installboot を使うように 変更しなきゃと思って、久しぶりにやってみるとエラーが出た。あう。 こんなんばっか。 ちなみに distrib/x68k/floppies あたりで make した時に参照する sysinst のソース置場 (distrib/utils/sysinst) は相対パスではなく ${NETBSDSRCDIR} を使った絶対パスなので、うちのようにけったいな ことをしてるとうまくいかない。 おとなしくおうちリポジトリにフルソース持ったほうがいいのかしら。

[x68k/sysinst] えーと(汗

isaki@mari[NetBSD16ZF]:~% gdb
GNU gdb 5.0nb1
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "m68k--netbsdelf".
(gdb) core-file sysinst.core
Core was generated by `sysinst'.
Program terminated with signal 4, Illegal instruction.
Segmentation fault
isaki@mari[NetBSD16ZF]:~%

2004/01/04

[x68k/sysinst] sysinst (distrib/utils/sysinst) を -DDEBUG つきで コンパイルしようとするといろいろこけるので諦める。


2004/01/06

[FreeBSD/bridge] FreeBSD でブリッジ作るのってこんな 簡単だったのか…。知らなかった。 そりゃどこにも詳しい説明がないはずだわ。

# kldload /modules/bridge.ko
# sysctl -w net.link.ether.bridge_cfg="fxp0 fxp1"
# sysctl -w net.link.ether.bridge=1
こんだけでいきなり(フィルタなしの)ブリッジとして動き出す。 NetBSD で誰か同じようなの作ってくれないかなあ。 [続き(01/07)]


2004/01/07

[etc] 帰宅して(うちは実家)、飯食ったあとさっさと片付けて 風呂に入ればよかったところ、のんびり新聞読みながら CS のドラゴンボール (23:30〜24:00)を見てるうちに弟(たち)に先に風呂に入られてしまって 25時すぎまで風呂待ちをする羽目になるケースは、 バス(bath)アービトレーションに失敗して次のサイクルまで待っている 状態と考えてよいでしょうか(汗

[MI/bridge] [元ネタ(01/06)] 日記読者の方から brconfig(8) があるよと突っ込まれた。 いつもありがとうございます。確かに -current にありますね。 言われてみれば、brconfig の commit メール見かけた時にキターと思った ことを思い出しました (今思い出しても意味ねー)。 次に -current で遊べるのは週末になるかなあ。 [続き(01/10)]


2004/01/10

[MI/bridge] [元ネタ(01/07)] さらに 1.6.x にあるよと突っ込まれた。 あら、確かに 1.6 にもありますね。どこ見間違えたんだろう。

[x68k/panic] 今日になって、先週末から電源入れっぱなしに しておいた 1.6ZF/x68k のディスプレイをつけてみたらパニックしてた。 うーむ…。しかもキーボードの調子が悪いのか効かないから調査にも ならんなあ。まあ何見たから何か分かるわけでもないんだけど(汗

panic: lockmgr: no context
Stopped at      netbsd:cpu_Debugger+0x6:      unlk a6
db>
なんとなくよく見るメッセージ(ぉぃ)だけど何なんでしょうね、これ。

[MI/bridge] さっそくやってみた。 てか brconfig(8) 見たまんまだけど。

--------------------------------- 生活セグメント
        |fxp0        |ne0
    +-------+     +------+ ne1    ne0 +------+
    | erika |     | mari |------------| yuka |
    +-------+     +------+   cross    +------+
   NetBSD/i386   NetBSD/x68k         NetBSD/x68k
mari のカーネルで以下が有効になっていること。
pseudo-device bridge
mari で
# ifconfig bridge0 up
# brconfig bridge0 add ne0 add ne1 up
こんだけ。 FreeBSD (4.7) のブリッジには ARP まわりのバグがあって ブリッジルータ(?)の足に対して ARP が返ってこなかったりしたけど、 さすが NetBSD、さくっと動く。 これにフィルタがかけれると面白いんだけどなー。

[MI/vi] 調べものしてて見つけたので。 vi の使い方。:set list でタブとか行末を表示してくれるらしい。 でもちょっと読みづらいね、タブは昔のエディタみたく色違いの→とかで 表示してくれるとうれすぃ。 あと :r !command でコマンドの出力結果を取り込めるらしい。 :r !date とかね。便利かも。

[x68k/emulator] さーて IPL ROM 中の RTS が明後日の方向に 戻ってった。誰かがまだスタック操作間違えてるみたい...。 [続き(01/17)]

[Human68k/MMU] 実は X68k でこんな火遊びをしてみたのは 初めてだったりして(汗。 コプロセッサ命令は F 系未実装命令の一部に割り当てられてて コプロセッサ的に不当命令となるビットパターンはちゃんと F 系未実装命令例外が 発生するらしいので確認してみる。 というかいっそのこと不当命令になってくれたほうがこっちの実装的に嬉しいから と思って試してみたってことなんだけどね。

		.text
		.even
start:
		; supervisor
		clr.l	-(sp)
		dc.w	$ff20		;_SUPER
		addq.l	#4,sp

		; hook
		; Illegal inst -> A1
		; Line F trap  -> A2
		movea.l	$0010,a1
		lea.l	ex_illegal,a0
		move.l	a0,$0010
		movea.l	$002c,a2
		lea.l	ex_linef,a0
		move.l	a0,$002c

		moveq.l	#0,d1
		lea.l	6(pc),a0
		; test code
		dc.w	$f000
		dc.w	$2500		; <-

		; write back original vectors
		move.l	a1,$0010
		move.l	a2,$002c
		; exit with status code
		move.w	d1,-(sp)
		dc.w	$ff4c		;_EXIT2

ex_illegal:
		moveq.l	#-1,d1
		move.l	a0,2(sp)
		rte
ex_linef:
		moveq.l	#15,d1
		move.l	a0,2(sp)
		rte

		.end
MMU 積んだ 68030 上で これを実行すると 0 を返すから $f000 $2400 (PFLUSHA?) はちゃんと 解釈されているらしい。 で、矢印のところを $2500 に変えて実行すると 15 が返ってくるから F 系未実装命令例外が発生したと。

[x68k/emulator] あ、不当命令トラップを発生させる時に 命令ワードが $fxxx かどうかを調べれば済む話か…。

[x68k/emulator] そうでもないな…。 F 系未実装命令のうち MMU なところ (コプロセッサID = 0) は ユーザ権限で不当なビットパターンを叩くと F 系未実装命令例外では なく特権違反例外が発生するらしい。ややこしいな。


2004/01/12

[MI/etc] おうちの NetBSD 生活環境でぼちぼち見直したいと 思ってるものリスト


2004/01/15

[etc/spam] 3日ほどメールを読まなかったら243通来てて スパムを消したら61通。スパム率75%か。


2004/01/16

[etc/spam] 今日は50通受信してスパムを消したら5通。 スパム率95%。


2004/01/17

[MI/etc] [元ネタ(01/12)] ちきゅーはまわる でお馴染み(?)の おばたさん から、 qvwm を使っている時に Mozilla で一旦 kinput2 にフォーカスが移ってしまう 問題の修正方法を教えて頂きました。ありがとうございます。 .qvwmrc に以下を付け足せばよいだけだそうで、もっと早く調べてれば よかった…。てかもう qvwm やめたいけど。

[Applications]
"Mozilla IM Status"	NO_FOCUS, NO_TITLE
苦節数年、おかげさまで NetBSD のブラウザでの日本語環境が やっとまともになった。 会社で使ってる FreeBSD (4.3) + Netscape (Linux版だから xpg4 が 効かないらしい、よく知らないけど) は未だにテキストエリアに入れた 日本語が消えたりするので、仕事で CGI のフォームに入力しないといけなく なるたびに Windows を立ち上げるのがあほらしい。 4.3 から全然バージョンアップしてないから知らないんだけど、 最近の FreeBSD はもうちゃんと日本語入力できるようになったかしら。 てか会社の生活用 UNIX マシンも NetBSD 1.6.x に変えてしまおうかしら。

[etc] 謎集会、今年は朝7時かよー。

[x68k/emulator] MC68EC030 で PFLUSHA を実行すると 何が起きるんだろう…。F 系未実装命令例外だよねえ? 68EC030 の載った X68000 (PRO-I + Xellent30) は物置の奥深くにあるからなあ。

[x68k/emulator] 68EC030 が煮詰まったので EXPERT の IPL ROM のほうを調べてみることにする。 [元ネタ(01/10)] rts が明後日の方向に戻っていく問題は、 そのちょっと手前で IPL ROM (の一部?)がエミュレータ的にメモリ化け 起こしてるっぽいことが原因らしい。それもなぜじゃー?

[x68k/emulator] テキストVRAM への書き込みする時の オフセットをふつーに間違えてたらしい。それ直すと無事に通過した。

[x68k/emulator] FDC が無限ループに入った。 のでやっと鎌田さんの 10月19日 相当に追い付いた。 鎌田さんクラスの人なら3日で出来ることを2カ月弱…_|‾|○
そういえば、別に張り合ってるわけではないです (し、張り合えるレベルにない…)。 ただいくつかある X68k エミュレータの中でほんとにほぼ最初からの 出来ていく過程をリアルタイムで克明に見たのが初めてだったのと、 日記を毎日読ませてもらってるうちにやってみようと思ったので 勝手に比較対象にしてるだけです。

そういや、うちのは MFP は無限ループに陥らなかったな…。 まだどっか間違えてるのか…_|‾|○

[MI/X] テキスト VRAM (テキスト画面) 作ろうにも X 上に絵を描く方法が分からない…どころか窓を開く方法すら知らない…。

[MI/gtk] とりあえずぐぐって出てきた GTK の Hello, World! を コンパイルしたところ動いたのでちょっと嬉しくなった。


2004/01/18

[x68k/emulator] X68030 の IPL-ROM では MPU 種別の判定を 行なう時に MMU, FPU の有無もチェックしている。 FPU の有無のチェックは fnop という (知らないけど名前から判断して) 何もしない命令で何も起きない (= FPU あり) か F 系未実装命令例外が発生する (= FPU なし) かだけで判定しているが、 MMU の有無のチェックは実際に仮想ページが使えるかどうかで判定している。 まだ仮想ページはまったく動作しないので、MMU 関係の命令だけ (エミュレータ的未実装としてストップさせずに) スルーしてあげると チェックにひっかかって (無事?) MMU なしと判定してくれた。 で、だいぶ進んだところで MFP で無限ループに入った。めでたしめでたし?。


2004/01/20

[x68k/emulator] XM6 のPI.さんからメールが来た。 いやそんなたいそうなものを作ってるつもりはないんだけど(汗

[x68k/emulator] 知らない間に こんなところ から捕捉されてることに今ごろ気付く。 てか、けろぴーの X11 版があるのか。じゃうちのは用済みってことでよい?(汗


2004/01/21

[x68k/keropi] xkeropi-20030429 を FreeBSD 4.3 に入れてみた。 ちょっと手直しでコンパイルは通ったけど、MIDI の初期化あたりで バスエラーが起きて起動しなかったので、MIDI を片っ端から削ってやったら 動いた。マンセー。 でも手元に FD イメージがないので、ディスクをセットしてくださいが表示 されたまんままだ遊べてない。 修正方法はちゃんとメモってないのでないです。スマソ。 怒られたパスだけ直せばいい感じだったと思う。 ここんところちょっと報告するほどの気力はないのでごめんなさい。 ここ読んでると思うのでこれで報告に代えさせてください。


2004/01/24

[x68k/spc] 最近またさぼってたのでメール消化中。 1/5 頃、以前筒井さんが作られた SPC (sys/dev/ic/mb89352.c) をきれいにする変更がおおしまさんところの X68030 で動かなく なってた模様。で、筒井さんが瞬殺で直された模様。早っ。 うちの X68030 も MC68030/25MHz のはずなので、本体側じゃなく ターゲットデバイスに依存する話なんやろか。 何が起きててどういう修正なのか分かってないから意味ないんだけど。(汗

[x68k/X] [元ネタ(2003/12/27)] メール消化中。1/7、みのうらさんが x68k 用の XF4 を commit されてる模様。 で、1/8 に lukem さんから xsrc が cross buildable になったという アナウンスが流れてた。その中に x68k が入ってるから流石だなー。

[x68k/X] cvs update の仕方がまずかった (いや知ってたけど) ので src/x11 ていうディレクトリが増えていることに今更気付いて取り出し中。 cvs サーバ新しくなったから姑息な手段は使わなくてもいいのかしら?

[MI/ffsv2] メール消化中。1/9、去年の春頃にあった FFSv2 の カーネルにすると superblock の互換性がなくなるので fsck も一緒に 更新しなきゃいけなかった話が、改善されたらしい。 でもどう改善されたのかは分かってない。もっかい fsck も新しくしてね と言われてるように見える。

[MI/pkgsrc] 山本かず先生による 転けつまろびつ NetBSD

[x68k/build] さっそく NetBSD/i386 上で X11 入り x68k をクロスビルド してみる。2時間後、x11/tools/fc-cache の中でしょぼい syntax error でこけた。 でもエラーが出たファイルを見ると revision 1.1.1.1 のままなんだけど どういうことかしら。

[x68k/XM6] XM6 (Windows 用 X68000 エミュレータ) で遊んでみた。 1.50 になって SxSI が使えるようになったのが嬉しい。 今までいくつか X68000 エミュレータに挑戦してみたけど、Windows で 動くエミュレータ上に X68000 の生活環境を一から構築するほどの 時間やら気力やらがなくて、まともにエミュレータで遊んだことはなかった けど、これなら実機の SCSI HDD のイメージを持ってくればそのまま動くと いうことなので楽ちん。 と思ったら持ってきたイメージでは認識しなかった。 うーん、惜しい。 てか、xkeropi みたく xXM6...(うそ [続き(01/25)]


2004/01/25

[MI/audiobell] ってビープを持たない機種のために オーディオデバイスでビープを鳴らすためのものなのかしら?

[x68k/XM6] [元ネタ(01/24)] PI.さんところの掲示板で聞いたところあっさり解決したので、 実機(PRO-II)の HDD イメージがエミュレータ上でほぼそのまま使える 環境になった。「ほぼ」なのはうちの PRO-II は Xellent30 を載っけて いるため高速化のためにあちこちに 030 専用コマンドを使ってるから。 といってもだいたい動く。 X68000 エミュレータは何年も前からあるしいくつか種類もあるけど、 X68000 エミュレータ上でまともにアプリケーションを動かしたのは初めて。 めっちゃ感動。 ぱにっくも見れるし mmdsp もばりばり動く。 いや当たり前というか何を今更って感じかも知れないけど。 初めて思わず Windows で生活しようかと思った。


2004/01/26

[MI/canna] どこの辞書に含まれてる単語か知らないけど iroha (canna 標準?) に代えて cannadic-0.95a を使ってて誤変換を 見付けたので書いておく。誰かその筋の方、ここを見掛けたら直して おいてください。

安芸: × あげ → ○ あき
pubdic+ を使ってる Wnn4 ではこの誤変換はなかった。 [続き(01/30)]


2004/01/29

[MI/qvwm] [元ネタ(01/12)] おばたさんからも17日 に、うちの qvwm では日本語出てますが何か?(意訳)という メールを頂いていたので、今日やっと重い腰を上げて見てみた。 というかなんのことはない昔 FreeBSD で使ってたころの .qvwmrc を そのまま使い続けていたので、ロケールが ja_JP.EUC になってたからだった。 NetBSD は ja_JP.eucJP ね。.qvwmrc で

LocaleName = "ja_JP.eucJP"
に直すだけでタイトルバーに日本語が出た…。 濡衣だった。スマソ > qvwm


2004/01/30

[MI/pcmcia] あれ、NetBSD って FreeBSD の pccardd みたいな 人 (PCカードの挿抜にあわせていろいろしてくれる人) いないんだっけ?(汗。 よく考えたらノートPC に NetBSD を入れてちゃんと生活するのは初めてかも。 ifwatchd(8) かしら?

[MI/canna] [元ネタ] 三重県安芸(あげ)郡ってのがあるのか…。 ちなみに広島は安芸(あき)ね。 「あき→安芸」もちゃんと登録されてた。また濡衣だ、スマソ。

[MI/pcmcia] 違うな、ifwatchd はインタフェースの up/down に 反応するらしい。むう。


2004/01/31

[x68k/XM6] XM6 のソースを見せて頂いた。 まー最初から私なんぞのレベルでどうこうなるとは思ってなかったけど、 実際にソースを見て禿しく挫折、むりぽ…。_|‾|○

[x68k/emulator] 2カ月目の実装状況。
MC68000部分STOP, DIV*, *BCD, CHK を除くすべての命令。
たぶん例外処理も作れてると思う。割り込みはたぶん作ってない。
ファンクションコードは未実装。
クロックサイクルとか無視。
MC68010相当たぶん MOVES 以外の命令は作ったと思う。
例外処理は無視 (68010 として使うことはないため)。
MC68020,
EC030 相当
TRAPcc を実装、CALLM を未実装として用意した (X68030 の IPL-ROM の中で使われているため) 程度かしら。
例外処理をちょこっと。
メモリ間接アドレッシングは未実装。
キャッシュは最初から無視。
MC68030 相当PMMU 命令で分岐するテーブルだけは用意したかしら。
もはや周辺デバイスどころではなくなってきた。 実装状況を示す表なのに「たぶん」とか「思う」とか書いてるあたりに だめだめ感が伝わってくる。


≪ 2003年12月 | 2004年2月 ≫
井崎のホームページへ戻る
isaki@NetBSD.org / isaki@x68k.net