In English In Japanese
Linux で libc5 -> libc6 への移行が面倒だったので、OpenBSD-2.3 に 入れ替えた。
NetBSD か OpenBSD が候補だったが、セキュリティ関係とか、CTM が使 えるということで OpenBSD にした。(でも最近 NetBSD でも CTM が使 えることを発見。ちなみに netbsd.org で CTM とか AnonymousCVSを正 式にサポートしないのは FreeBSD は Net/2 -> 4.4BSD への移 行の際、一からCVS のリポジトリを作り直したのにたいして、NetBSD は作り直さずに移行したからだそうだ。つまり NetBSD では Net/2 のうち配布できなくなったファイルがリポジトリが残って いるということだ。)
OpenBSD、NetBSD 共にインストールに使うブートフロッピは1枚。だが、 私は FDD をもっていないので、休眠中だった ThinkPad 701 に HDDを 付け替えてインストールした。
インストールはとくに問題もなくまったく順調に終了。 ハイバネーションのための領域もしっかり確保しておいた。
XF86Config は Debian で使っていたものを そのまま使用。
今のところ OpenBSD、NetBSD ともに Linux や FreeBSD + PAO の ように PC カードの活線挿抜はできない。設定がまだできてない のかもしれないが、 suspend & resume した後 NIC が使えなく なってしまう。 最近、Thorpe さんとか cgd さんといった重鎮たちがこの辺の実装に とりかかっているそうなのでもうすぐ 'correct solution' がでてくる かもしれないなと期待してまっています。
cd /usr cvs status -v src/Makefileで tag を確認.
cd $SRCDIR cvs update -d -r OPENBSD_2_4_BASE -PA srcで更新.
2.3には /usr/include/ssl がないので make build に 失敗. /usr/src/lkm/ipl でもコンパイルエラー だけど make -k でしのぐと次の make build からはエラーがなくなっ た.
3CEX589E もしっかり認識して動作する. APA-1460もDoCoMoの データカードもOK.
dhclientも一発で動作. 勝手にresolv.confを書換えてしまうのだった. 元に戻してはくれないのかな.少しはまった.
IBM の DDLA-21620 は DMA mode をサポートしているので これを有効にできないかどうか調べてみた。
wd* at wdc? channel ? drive ? flags 0x0000
この flags を HDD の仕様書にあるモードに設定しても dmesg を見る限り何も変らないようだ。
結論は、「E-IDE の DMA mode は PCI バスのマシンでしか有効 にできないようだ。」である。
ただ、PIO mode でもチューニングできる設定があった。
カーネルの構成ファイル(?)を以下のように設定する。
wdc0 at isa? port 0x1f0 irq 14 flags 0x01flags 0x00 -> 0x01 にすると 16bit PIO mode -> 32bit PIO mode になる。が体感速度は全然変っていない気がする。
Libretto70 には PC Card スロットが1つしかないので、localhost 以 外のインタフェースがあることを想定しているソフトウェア(例えば今 はもう使っていないが CDE)を Ehternet Card を刺していないときに 使えなくなってしまう.
この問題は Linux を使っていた頃からあるが、 やっとしっくりくる設定ができたような感じだ。 以前は dhcp を使っていなかったが、今はこれも含めて わりときれいに動作できるようになったと思う。
細かい事を抜きにすれば、「lo0 またはそれ相当のデバイスに 127.0.0.1 以外の IP アドレスをつけてやる。」ということになる。
IP address | hostname | device | memo |
---|---|---|---|
127.0.0.1 | localhost | lo0 | 特に設定をいじらなくてもOK |
10.0.1.1 | orange | lo0 | OpenBSD-2.6 では次のエントリを /etc/ifaliases に
追加した。
lo0 10.0.1.1 255.255.255.255 |
10.0.0.3 | melon | ep0 | DHCP で IP アドレスを割り当てた場合でも固定アドレスでアク
セスしたいことが多いのでそのための設定。
/etc/dhclient.conf に以下を追加した。
alias { interface "ep0"; fixed-address 10.0.0.3; option subnet-mask 255.255.255.255; }IP アドレスの alias をつけるときなぜ netmask 255.255.255.255 と するのかはよくわからない。 |
10.0.0.[11-30] | dhcp[11-30] | ep0 | DHCP で割り当てられる IP アドレス。
/etc/dhclient.conf の設定は以下の通り。
interface "ep0" { supersede domain-name-servers 127.0.0.1; }これはこのマシンの named をネットワークのセカンダリネームサーバに しているため。 |
というわけで大げさに始まったが、こんな簡単な説明で終わっちまった。 では。また来週!
東芝テクノセンタ でキーボードを US配列に交換した。 空いていたのか待ち時間は 1 時間半くらいだった。 (もちろん事前に電話で確認はしておいたが。) 預けるときに PC-UNIX 入っていますとは言わなかったので 途中で、「101キーボードドライバをインストールする 必要があるので BIOS のパスワード解除してもいいですか?」と 電話がかかってきた。「PC-UNIXが入っていますのでインストール しなくていいですよ。」といったらすぐに了解してくれた。
さっそく動作チェックしたが、全然問題なし。これで xmodmap の細工 はCAPS LOCK キーを Ctrl として動作させるだけでよくなった。キーの 幅も広くなって以前よりは打ちやすくなってごきげんである。
HDD を 1月に入手済みの MK6412MAT に換装。dmesg 的には以下のような ドライブである。
wdc0 at isa0 port 0x1f0/8 irq 14 wd0 at wdc0 channel 0 drive 0: <TOSHIBA MK6412MAT> wd0: can use 32-bit, PIO mode 4 wd0: 16-sector PIO, LBA, 6194MB, 13424 cyl, 15 head, 63 sec, 12685680 sectors
あれ? おかしいな。こいつは UltraDMA mode 2 までサポートしている ドライブのはずだが。ちなみに atactl 的には以下のとおり。
Model: TOSHIBA MK6412MAT, Rev: K2.10 B, Serial #: Z9952372A Device type: ATA, fixed Cylinders: 13424, heads: 15, sec/track: 63, total sectors: 12685680 Device capabilities: IORDY operation IORDY disabling Device supports following standards: ATA-1 ATA-2 ATA-3 ATA-4 Command set support: NOP command READ BUFFER command WRITE BUFFER command Host Protected Area feature set look-ahead write cache Power Management feature set Security Mode feature set SMART feature set Advanced Power Management feature set Command sets/features enabled: look-ahead write cache Security Mode feature set SMART feature set Advanced Power Management feature set
う〜む。ATA-4 っつう規格があるのか、すでに。
ジオメトリ関係でつまずくかと思っていたが、簡単にインストールでき てしまった。ちなみにハイバネーションの領域はWindows98 2nd edition の fdisk.exe で libretto でパーティションを切ってみたと ころ90720セクタ = 約46Mバイト確保された。ついでに fdisk と disklabel の出力を載せておこう。fdisk では 12594960 セクタしかな いのに disklabel のほうでは 12595680 ある。つまりこの差 12685680 - 12594960 = 90720 セクタが libretto の BIOS が 自動的に確保するハイバネーション領域というわけ。
js3guj@orange(/var/users/js3guj)$ fdisk wd0 Disk: wd0 geometry: 784/255/63 [12594960 sectors] Offset: 0 Signatures: 0xAA55,0x0 Starting Ending #: id cyl hd sec - cyl hd sec [ start - size] ------------------------------------------------------------------------- 0: 00 0 0 0 - 0 0 0 [ 0 - 0] unused 1: 00 0 0 0 - 0 0 0 [ 0 - 0] unused 2: 00 0 0 0 - 0 0 0 [ 0 - 0] unused *3: A6 0 1 1 - 783 254 63 [ 63 - 12594897] OpenBSD js3guj@orange(/var/users/js3guj)$
js3guj@orange(/var/users/js3guj)$ disklabel wd0 # /dev/rwd0c: type: ESDI disk: ESDI/IDE disk label: TOSHIBA MK6412MA flags: bytes/sector: 512 sectors/track: 63 tracks/cylinder: 15 sectors/cylinder: 945 cylinders: 13424 total sectors: 12685680 rpm: 3600 interleave: 1 trackskew: 0 cylinderskew: 0 headswitch: 0 # microseconds track-to-track seek: 0 # microseconds drivedata: 0 16 partitions: # size offset fstype [fsize bsize cpg] a: 196497 63 4.2BSD 1024 8192 16 # (Cyl. 0*- 207) b: 196560 196560 swap # (Cyl. 208 - 415) c: 12685680 0 unused 0 0 # (Cyl. 0 - 13423) d: 8388765 393120 4.2BSD 1024 8192 16 # (Cyl. 416 - 9292) e: 3813075 8781885 4.2BSD 1024 8192 16 # (Cyl. 9293 - 13327) js3guj@orange(/var/users/js3guj)$
最初から入っていた IBM DDLA-21620 と比べるとかなり静かなドライブ ある。体感速度も上がったようだ。ただ勝手にスリープしてしまうのは いかん。というか DDLA-21620 がスリープ効かなかったのかもしれない。 これで X のソースとか全部持って歩けるようになった。
xdm を使っているが、xlogin の画面(?)が出てくるまで 10 数秒かかる。 MMX Pentium 120MHz だとこの程度のものなのかと思っていたが原因は 15bpp の xpm 画像を表示しようとしているからだとわかった。あきら めていたのだが、fj でいただいたフォローを参考に再度調べてつきと めることができた。
# ktrace -id -t n xdm ; kdump -l
として見ていると
23645 xdm NAMI "/usr/X11R6/lib/X11/xdm/pixmaps/OpenBSD_15bpp.xpm"
のところで時間がかかっていることがわかった。15bpp? そんな色数使っ てたっけ? 4bpp のものを読み込むようにしたら速くなった。
では、また来週!
16bit audio が使えるようにしてみた。
libretto70 は SoundBlaster 互換でも Windows Sound System 互換で も動かせるらしい。今までは sb(4) を使って 8bit audio のまま使っ ていた。いろいろ試してみたところ 16bit audio を動作させることが できた。
まずは BIOS の設定から
WSS I/O Address =530H SBPro I/O Address =220H Synthesizer I/O Address =388H WSS & SBPro & MPU401 IRQ Level =IRQ11 WSS(Play) DMA =Channel 1 SBPro DMA =Channel 0 Control I/O Adress =370H MPU401 (MIDI I/F) =330H
デフォルトの設定から変えたところは IRQ のみ。
カーネルの構成ファイル。
wss0 at isa? port 0x530 irq 11 drq 1 # Windows Sound System opl0 at isa? port 0x388 # use only if not attached to sound card midi* at pcppi? # MIDI interface to the PC speaker midi* at opl? # OPL FM synth audio* at wss?
wss(4) には opl* at wss? もあるが config(8) の時点でエラーになり 設定できない。midi* at wss? も同様。
.au なファイルの再生、midi ファイルの再生も OK のようだ。 mpg123 で .mp3 なファイルを再生してみたが ioctl(2) の呼び出しで 異様に時間がかかっているようで再生が始まるまでに数十秒かかる。ま た mpg123 自体が 50% 近くの CPU 時間を喰い続ける。NetBSD-1.4.2 (Celeron466MHz) では起動はすぐだし、CPU 時間も数%なのでこれは libretto の wss 固有の問題なのだろうか。もしくは MMX Pentium120MHz と Celeron466MHz の差なのだろうか。
OpenBSD-2.7-stable, つまり OpenBSD-2.7 の patch branch にアップ デートしました.ssh でログインしたまま再起動しようとすると, mfs マウントした /tmp にロックが残ってしまい,ファイルシス テムのアンマウントに失敗して DDB に落ちるというのが頻繁に起こっ ていたのだが,OpenSSH が 2.1.1 -> 2.3.0 に上がったみたいなの で直っているだろうか.
いつも正確なやり方を忘れてしまっているのでここにメモしておきます.
$ su # CVS_RSH="/usr/bin/ssh" # [email protected]:/cvs # CVS_IGNORE_REMOTE_ROOT=1 # export CVS_RSH CVSROOT CVS_IGNORE_REMOTE_ROOT # cd /usr/src # cvs -d $CVSROOT -q up -rOPENBSD_2_7 -Pd # rm -rf /usr/obj/* # make obj && make build ... # cd /usr/X11 # cvs -d $CVSROOT -q up -rOPENBSD_2_7 -Pd # make build
OpenBSD-2.8-stable にアップデートしました.ただいま 2回目の make build 中です.す.
今回もすんなりはいきませんでした.chown, chgrp, chflags が chmod に統合された関係でそのままだと make install でこけます. というわけで今回のアップデートの手順概略です.
今回は libc のバージョンがあがっていないので自分でインストールし た xemacs などを再コンパイルせずに済みそうです.2.7 では使えなかった FNW-3600T が使えています.FNW-3700T もIntel EtherExpress PRO/100 もたぶん OK でしょう.
FNW-3700T と EtherExpress PRO はだめでした.3C574TX は OK.
ffs_softupdates を有効にしてみました.これイケますねぇ. ですがメイリングリストを見ていると,結構バグバグらしいので 無効にしました.
パフォーマンスといえば,PCI でない IDE でも 規格上は DMA 転送が 可能みたいですね.ただ今からそのためのコードを書こうという人 はいないでしょうけど.
FAQ によると,PCI IDE でない IDE でも drq を指定してやれば DMA mode が使えるはずだ,とのこと.例ではなぜか drq の指定が ないけど.
というわけで
wdc0 at isa? port 0x1f0 irq 14 drq ? flags 0x01
とやってみたけど,drq が割り当てられなかった. 明示的に
wdc0 at isa? port 0x1f0 irq 14 drq 7 flags 0x01
などとやると,DMA のチャネルが割り当てられて, `can use DMA mode 2' などと表示されるのですが root ファイルシステムをマウントしようとするところで HDD のアクセスを示す LED が点灯したままハングしてしまいます.
drq は 0, 5, 6, 7 を試してみたけどだめ.(5, 6, 7 は 16bit だから 0 は 8bit だと OK かどうか試すために試行.)
というわけでだめでした.ファームウェアのサポートが必要 なんだろうか...
やっと Linux 用の JDK を動作させることができました.
いままでは native thread で起動しようとしてだめだったのですが green thread にすると Swing とか Tomcat とかが特に問題なく 動作しています.ちょっと動作が鈍いような気がしますが.
Linux 用の JDK を何も考えずに /usr/local/jdk1.3 以下に インストールします.(詳しいやり方は忘れてしまいました.) たぶん配布されているシェルスクリプトを実行するだけだった と思います.
$JDK_HOME/bin/.java_wrapper の expr コマンドの path を /emul/linux/usr/bin/expr に書き換えます.
$JDK_HOME/jre/lib/jvm.cfg で -classic を先頭に 持ってきます.(java 関連のコマンド起動時に -classic と指定 しても OK.)
Comments, suggestions, and donations are welcome.
Go to index page
Copyright (c) 1999-2003 IKEDA Shigeru. ALL RIGHTS RESERVED.
Last modified $Date: 2003/10/06 10:38:40 $