私の所では現在数台のパソコンで FreeBSD が動いています (うち数台は FreeBSD(98))。 現在使用しているのは、 FreeBSD(98) は 2.2.8R-Rev03, 4.5R-Rev01, 4.7R-Rev01、4.11R-Rev01、 FreeBSD/i386 は 5.4-RELEASE, 5.5-RELEASE, 7.0-RELEASE, 8.0-RELEASE です。 2.2.1R-RELEASE, 3.3R-Rev03, 3.5-RELEASE, 3.5.1R-Rev01, 4.6R-Rev01, 4.4-RELEASE, 4.7-RELEASE, 4.8-RELEASE, 4.9-RELEASE, 4.11-RELEASE は現在は使用していません。
以前の古い情報については こちら を
ご覧下さい。
(03/20 2006)
このページを含む、Unix のページから検索ができるようにしてみました。
Unix のページ の
検索セクション
をご利用ください。
(04/03 2006)
(上が新着)
VZ-6000 が急に動かなくなってしまったので、 急遽 VZ-6000 のディスクを FMV-6333T7 に 入れ替えて代用しています。
WL2130 のディスクを取り替えて、 OS も FreeBSD-4.8 から FreeBSD-7.0 にバージョンアップしました。
VZ-6000 のディスクを取り替えて、 OS も FreeBSD-4.11 から FreeBSD-7.0 にバージョンアップしました。
PC9821Xs の OverDrive Processer (Intel PODP5V 83MHz) を、また元の i486DX2 (66MHz) に戻しました。
夏休みにマルチヘッドの実験用に、 よそからもらった FMV-6333T7 に FreeBSD 5.5-RELEASE + X.Org 6.9.0 を インストールしました。
普段メインで使用している PC9821Xs の HD を交換したのですが、ついでに、
新たに中古の EPSON DIRECT VZ-3000 を手に入れて、そこに FreeBSD 5.4-RELEASE + X.Org 6.8.2 を インストールしました。
PC9821Xp の OS を FreeBSD(98) 2.2.8R-Rev03 (XFree86(98)-3.3.3) から FreeBSD(98) 4.11R-Rev01 (XFree86(98)-3.3.6) に バージョンアップしました。 ついでにディスプレイを飯山のものにとりかえています。
FMV 5166D8 の OS を、 FreeBSD 4.9-RELEASE (XFree86-4.3.0) から FreeBSD 5.4-RELEASE (X.Org 6.8.2) に バージョンアップしました。 これで追加してあった NIC (BUFFALO LGY-PCI-GT) も認識されました。
Epson Endevor VZ-6000 のカーネル (FreeBSD 4.11) を再構築して CD-R/RW, ATAPI MO, 音声デバイスが使えるようにしました。
9821Xv13 の外付け HDD (SCSI) やプリンタを外して、 そのマシンを Vz-6000 に変えました。 Vz-6000 は OS を FreeBSD 4.4-RELEASE (XFree86-3.3.6) から FreeBSD 4.11-RELEASE (XFree86-4.4.0) へバージョンアップし、 内蔵ディスクを (8.4GB から 30GB へ) 増やし、 外付け HDD (SCSI) を増設しました。
「カーネルの設定に関するメモ」, 「XFree86 に関するメモ」, 「その他のメモ」 のリンクの部分の書き方を少し手直しし、 また、メモ内で別の日に書いたものを参照している部分は、 逆にたどれるようにもしてみました。
更新履歴を書くことにしました。 過去にさかのぼって更新履歴をつけたしていくことも検討しています (RCS 管理なんで一応古いものもたどれます)。
memory: 96MB
HD:
IDE : I-O DATA 4.3GB (UHDI-4.3GH/98) (SAMSUNG SV2001H) (IDE-0)
IDE : I-O DATA 4.3GB (UHDI-4.3GH/98) (SAMSUNG SV2001H) (IDE-1)
SCSI: I-O DATA 8.4GB (HDVS-UM8.4G 204S) (SCSI-0)
CD-ROM drive: なし
MO drive : Melco MO-C1300S (FUJITSU MCM3130SS-S 0020) (SCSI-1)
SCSI IF : I-O DATA SC-98IIIP (SMIT モード) (bs0)
Display : 飯山電機 IIYAMA MF-8615B (15inch Multiscan)
Ethernet IF : Allied Telesis RE1001Plus (fe0)
Melco LGY-98J-T (ed0)
printer : CANON LBP-730 (LIPS III/VI)
scanner : EPSON GT-8700 (SCSI-2: uk0)
OS : FreeBSD(98) 4.11R-Rev01 (IDE-0)
X : XFree86(98)-3.3.6 (NEC-S3 server, 1280x1024 8bpp; 1152x864 16bpp)
OS : FreeBSD(98) 4.7R-Rev01 (SCSI-0)
memory: 43MB
HD:
IDE : I-O DATA 4.3GB (UHDI-4.3GH/98) (SAMSUNG SV2042H)
CD-ROM drive: IDE 内蔵 (PC-CD60D)
SCSI IF : Melco IFN-NS (bs0)
Display : NEC PC-KM152 (15inch Multiscan)
Ethernet IF : Allied Telesis RE1000Plus (fe0)
: Melco LGY-98J-T (ed3)
OS : FreeBSD(98)4.7R-Rev01 (IDE)
X : なし
memory: 72MB
HD:
IDE : I-O DATA 4.3GB (UHDI-4.3GH/98) (SAMSUNG SV2042H) (IDE-0)
CD-ROM drive: なし
MO drive : TEAC (MX-230) (DELTIS MO320) (SCSI-1)
SCSI IF : I-O DATA SC-98IIIP (SMIT モード) (bs0)
Display : 飯山電機 IIYAMA MF-8615B (15inch Multiscan)
Ethernet IF : Corga Ether 98-T (ed0)
OS : FreeBSD(98) 4.11R-Rev01 (IDE)
X : XFree86(98)-3.3.6 (NEC-S3 server, 1280x1024 8bpp)
memory: 135.6MB
HD:
IDE : I-O DATA 4.3GB (UHDI-4.3GH/DV) (SAMSUNG SV0431D)
CD-ROM drive: IDE 内蔵 4 倍速 (FX400_02/B02)
MO drive : なし
SCSI IF : なし
Display : EPSON CR-4700
Ethernet IF : Corga Ether 98-T (ed0)
Melco LGY-98J-T (ed3)
OS : FreeBSD(98)2.2.8R-Rev03 (IDE)
X : なし
memory: 80MB
HD:
IDE : Seagate 4.3GB (ST34313A)
CD-ROM drive: IDE 内蔵 6 倍速 (CDU111-NE/1.1f) (acd0)
MO drive : なし
Display : 飯山電機 IIYAMA A702H
Ethernet IF : 内蔵 (PC-9821-X-B06 互換)
(Intel EtherExpress Pro 10/100B Ethernet) (fxp0)
OS : FreeBSD(98)4.5R-Rev01
X : XFree86(98)-3.3.6 (PC98 MGA server, 1280x1024 8bpp; 1152x864 16bpp)
memory: 384MB
HD:
IDE : 内蔵 120GB (Ultra ATA/100 5400rpm) (Hitachi HTS541612J9AT00) (ata0-master)
CD-ROM drive: IDE 内蔵 CD-ROM 24 倍速 (CD-224E) (ata1-master)
FDD drive : USB 外付け (I-O DATA USB-FDX1)
DVD drive : USB 外付け (I-O DATA DVR-iUN8WR) (NEC DVD_RW ND-2510A 2.26) (cd0)
Display : 12.1 TFT (1024x768)
Ethernet IF : オンボード (SiS 900 10/100BaseTX) (sis0)
mouse : USB 外付け
sound card : オンボード (SiS7018; AC97 準拠) (pcm0)
graphic card: オンボード (SiS630)
OS : FreeBSD 7.0-RELEASE
X : X.Org 1.4.0 (sis driver; 1024x768 24bpp)
memory: 96MB
HD:
IDE : 内蔵 2.6GB (FUJITSU MPA3026AT) (ad0)
CD-ROM drive: IDE 内蔵 CD-ROM 8 倍速 (MATSHITA CR-583) (acd0)
Display : 富士通 FMV-DP978 (1280x1024)
Ethernet IF : 100BASE-TX/10BASE-T (Intel 82557 Pro/100 Ethernet) (fxp0)
: BUFFALO LGY-PCI-GT (Realtex RTL8169S-32) (re0)
graphic card: ATI Mach64 3D Rage II+ 2MB (オンボード)
OS : FreeBSD 5.4-RELEASE
X : X.Org 6.8.2 (ati driver; 1280x1024 8bpp)
memory: 256MB
HD:
IDE : 内蔵 40GB (Western Digital WD400BB) (ad0)
CD-ROM drive: IDE 内蔵 CD-ROM 32 倍速 (HITACHI CDR-8435) (acd0)
Display : 富士通 FMV-DP978 (1280x1024)
Ethernet IF : NetCom Next Cougar Pro 10/100 (RealTek 8139 10/100BaseTX) (rl0)
graphic card: ATI Mach64 3D Rage Pro 8MB (AGP)
OS : FreeBSD 5.4-RELEASE
X : X.Org 6.8.2 (ati driver; 1280x1024 16bpp)
memory: 128MB
HD:
IDE : 内蔵 30GB (Seagate ST3360621A) (IDE-0 master) (ad0)
IDE : 内蔵 160GB (Samsung SP1604N) (IDE-0 slave) (ad1)
CD-ROM drive: IDE 内蔵 CD-ROM 20 倍速 (Sony CDU611-FJ) (acd0)
Display : 富士通 FMV-DP978 (1280x1024)
Ethernet IF : 100BASE-TX/10BASE-T (Intel 82557 Pro/100 Ethernet) (fxp0)
graphic card: Matrox Millennium G200 8MB (AGP)
OS : FreeBSD 7.0-RELEASE
X : X.Org 1.4.0 (vesa driver; 1280x1024 16bpp)
memory: 2GB
HD:
SATA : 内蔵 160GB (Western Degital WD1600AAJS) (ata2-master) (ad4)
SATA : 内蔵 500GB (Samsung HD502HI/JP1) (ata4-master) (ad8)
CD/DVD drive: SATA 内蔵 DVD±R (PLDS DH-16AAS/JE21) (ata3-master) (acd0)
Display : Buffalo FTD-G16AS (1280x1024)
Ethernet IF : Intel PRO/1000 (オンボード) (em0)
graphic card: Intel G31 Express (オンボード)
OS : FreeBSD 8.0-RELEASE
X : X.Org 1.6.1 (intel driver; 1280x1024 24bpp)
VZ-6000 の FreeBSD のバージョンを 4.11 から 7.0 に上げたのですが、マシンは別の部屋にあったので、 遊んでいた FMV-5166D8 を使って代行インストールをしました (FMV に HD をつないで FreeBSD 7.0 をインストールして、 後で VZ-6000 につなぎ直す、という意味)。
VZ-6000 のディスク構成は今までは
まず 30GB へのインストールはほぼ問題なく済みました。 カーネルの再構築はほとんどやらなくてもよさそうだったのですが、 一応今までの設定と合うように、 ident, maxusers, deivce atapicam だけ設定して行いました (「kernel の定義ファイル」 参照)。
ところが、この FMV に 160GB の IDE ディスクを増設したら、 起動時に boot 時に妙なものが出ました。
ad0: 28629MB <Seagate ST330621A 3.39> at ata0-master UDMA33
ad1: 152627MB <SAMSUNG SP1604N TM100-24> at ata0-slave UDMA33
ad1: FAILURE - READ_DMA48 timed out LBA=312581791
ad1: FAILURE - READ_DMA48 timed out LBA=312581804
ad1: FAILURE - READ_DMA48 timed out LBA=312581807
ad1: FAILURE - READ_DMA48 timed out LBA=312581745
...
ad1: TIMEOUT - READ_DMA48 retrying (1 retry left) LBA=312581807
ad1: FAILURE - READ_DMA48 status=59<READY,DSC,DRQ,ERROR>
error=10<NID_NOT_FOUND> LBA=312581807
これはよくわからなかったのでとりあえず無視して、
sysinstall でパーティションの設定等をやりましたが、
Configure, Fdisk と進んだところで、以下のようなものが表示されました。
WARNING: A geometry of 310101/16/63 for ad1 is incorrect. Using
a more likely geometry. If this geometry is incorrect or you
are unsure as to whether or not it's correct, please consult
the Hardware Guide in the Documentation submenu or use the
(G)eometry command to change it now.
Remember: you need to enter whatever your BIOS thinks the
geometry is! For IDE, it's what you were told in the BIOS
setup. For SCSI, it's the translation mode your controller is
using. Do NOT use a ``physical geometry''.
調べてみると、大きいディスクの場合にはよく出るもののようです。
言われるままの設定では、
「19457 cylinders, 255 heads (track), 63 sectors」となります:
19457/255/63 (312576705 sectors)
start size end
0 63 62 -- 12 unused 0
63 312576642 312576704 ad1s1 8 freebsd 165
312576705 5103 312581807 -- 12 unused 0
これを手動で、元々の「310101 cylinders, 16 heads, 63 sectors」
に変えようとすると上の WARNING が出て変更はできないようです。
色々やってみたら、「65535 cylinders, 16 heads, 63 sectors」
に変えることならできるようですが、
もちろん総容量の数値はその右には小さく表示されます:
65535/16/63 (66059280 sectors)
start size end
0 63 62 -- 12 unused 0
63 312581745 312581807 ad1s1 8 freebsd 165
しかし、その下にはちゃんと元のサイズのままの数値が表示されていますし、
その次の段階には進めるようです。
しかも、こちらの方が最後のセクタまで使えるような感じになっています。
ただ、やはり多少心配だったので、
FreeBSD の「19457/255/63」におまかせすることにしました。
ところが、先程無視した TIMEOUT, FAILURE が newfs の最中 じゃんじゃん出ました。その後で fsck してもぼろぼろで、 「THE FOLLOWING DISK SECTORS COULD NOT BE READ:」 なんてのが出てきます。 ディスクが悪いのかと思ったのですが、別の予備の IDE 160GB (Western Digital WD160BB) を使ってもほぼ同じ状況でした。
ところが、その前の 2 種類の HD を Vz-6000 につないでみたら 全然問題がありませんでしたので、どうやらこれはディスクの問題ではなく、 FMV の問題 (BIOS の問題 ?) のようです。 よって、
となると、上の 1. の代わりに
実は Vz-6000 は 24 時間運転させていたのですが、 この手順のために結局だいぶ止めて作業をせざるを得ませんでした (4.11 のバイナリが 7.0 ではそのまま動かなかったのもかなり痛かったです)。 また、このディスクの交換は、 実は最近 SCSI 120GB がだいぶ不安定になってきたために 始めた作業だったのですが、 これがほぼ終わって新たな運用を始めて、 あとは 2,3 のバックアップだけ SCSI HD からコピーすれば、 というところで SCSI HD の read error が頻発しました。 残りのファイルは、別のところにもバックアップがあったので 問題はなかったのですが、本当に危ないところでした。
Canon のデジタルカメラ IXY DIGITAL 10 を買ったので、 ここからデータの吸い出しができるかと思って、次の 3 つを試してみました:
VZ-3000 の FreeBSD 5.4 で試してみました。 このマシンでは、USB、およびそこにつないだデジタルカメラは 以下のように認識されています (dmesg の出力):
ohci0: <AcerLabs M5237 (Aladdin-V) USB controller> mem
0xde000000-0xde000fff irq 5 at device 2.0 on pci0
usb0: OHCI version 1.0, legacy support
usb0: SMM does not respond, resetting
usb0: <AcerLabs M5237 (Aladdin-V) USB controller> on ohci0
usb0: USB revision 1.0
uhub0: AcerLabs OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
...
uhub1: Chicony Generic USB Hub, class 9/0, rev 1.10/1.00, addr 2
uhub1: 3 ports with 2 removable, bus powered
ukbd0: Chicony PFU-68 USB Keyboard, rev 1.10/1.00, addr 3, iclass 3/1
kbd1 at ukbd0
...
ugen0: Canon Inc. Canon Digital Camera, rev 2.00/0.02, addr 4
また、usbdevs で見ると、以下のように認識されています:
# usbdevs -v
Controller /dev/usb0:
addr 1: full speed, self powered, config 1, OHCI root
hub(0x0000), AcerLabs(0x0000), rev 1.00
port 1 addr 2: full speed, power 90 mA, config 1, Generic
USB Hub(0x0068), Chicony(0x0472), rev 1.00
port 1 addr 3: full speed, self powered, config 1, PFU-68
USB Keyboard(0x0068), Chicony(0x0472), rev 1.00
port 2 powered
port 3 powered
port 2 addr 4: full speed, self powered, config 1, Canon
Digital Camera(0x314f), Canon Inc.(0x04a9), rev 0.02
上のソフトでのテストの結果は以下の通りです。
# ptpcam -l
Listing devices...
bus/dev vendorID/prodID device model
/dev/usb0//dev/ugen0 0x04A9/0x314F Canon IXY DIGITAL 10
が、ptpcanon ではうまくいかない:
# ptpcanon -t
Opening session
Getting storage IDs
Magic code begins.
prop 0xd045 value is 0x 4
prop 0xd02e value is 0x80000
prop 0xd02f value is 0x40000
prop 0xd02e value is 0x80000
prop 0xd02f value is 0x40000
prop 0xd045 value is 0x 1
Magic code ends.
Setting prop. 0xd045 to 4
Getting storage IDs
sids.n=1
Getting Storage 0x10001 description.
Volume label is '(null)'
Entering shooting mode
ERROR: Could not start shooting mode.
ERROR: Could not enter shooting mode!
# s10sh -ul
USB mode enabled
S10sh -- version 0.2.2
Copyright (C) 2000-2001 by Salvatore Sanfilippo <antirez@invece.org>
S10sh is FREE SOFTWARE under the terms of the GNU public license
Camera not found, please press the shot button and
check that the camera is in PC mode, then retry
# gphoto2 -L
There are no files in folder '/'.
There are no files in folder '/store_00010001'.
There are no files in folder '/store_00010001/DCIM'.
There are 9 files in folder '/store_00010001/DCIM/100CANON':
#1 IMG_0195.JPG 134 KB 640x480 image/jpeg
#2 IMG_0196.JPG 138 KB 640x480 image/jpeg
#3 IMG_0460.JPG 89 KB 640x480 image/jpeg
#4 IMG_0461.JPG 95 KB 640x480 image/jpeg
#5 IMG_0462.JPG 90 KB 640x480 image/jpeg
#6 IMG_0463.JPG 115 KB 640x480 image/jpeg
#7 IMG_0464.JPG 94 KB 640x480 image/jpeg
#8 IMG_0465.JPG 86 KB 640x480 image/jpeg
#9 IMG_0466.JPG 76 KB 640x480 image/jpeg
There are no files in folder '/store_00010001/MISC'.
# gphoto2 -P
"gphoto2 --list-cameras" の出力を見ると、 "Canon IXY Digital 10" のエントリはまだないのですが、 汎用の "USB PTP Class Camera" として使えているみたいです。 なお、これらの作業は root でないとうまくいかないようです。 FMV-5166D8, Vz-6000 でも、gphoto2 ならばうまくいくことも確認しました。
下 (「カーネルの設定メモ (01/18 2007)」) に書いた FreeBSD-5.5 のブートですが、 一応 20GB のディスク (+SC-98III/p) からでもブートできました。
そして、MO や音声ドライバも調べて見ましたが、 MO のマウントや音声を鳴らすことまではできました。 しかし、その後 MO をアンマウントしようとしたら、やはり 「カーネルの設定メモ (03/07 2005)」 に書いたような症状、 つまり ct0 がリトライを繰り返すような状況が続いて、 OS が使えなくなってしまいました。 ということは、旧式、新式のドライバの食い合わせではなくて、 そもそも新しいドライバとうちの環境の相性がよくない、 ということになりそうです。
問題がどこで起こるのかをちゃんと調べればいいのでしょうが、 今はあまりそんな時間が取れないように思います (元気もありません) が、 ちょっとは調べてみたいと思います。
PC9821Xs のディスク (内蔵 IDE 4.3GB + 4.3GB, 外付け SCSI 8.4GB) が、やや手狭になってきたのと古くなってきたので、 別のディスクを追加しようと、ちょっと色々やりましたので、 ここにまとめておきます。
追加しようとしたのは、予備として持っていた古いディスクで、
PC9821Xs はメインで使用しているので、 こういうときはだいたい別の PC9821Xs につないで、 そっちでディスクの作業をしてからメインマシンにつなぐ、 ということをやっていますし、 だいたいそのときにそのドライブに新しい FreeBSD をインストールして、 うまく動くようならタイミングを見てそっちをブートドライブにする、 というようなことをやっています。 今回もそれを試みたのですが、色々な点でかなり苦労しました。
まず、FreeBSD 6.1-RELEASE (pc98) をインストールしようとしたのですが、 HD の newfs の辺りで panic を起こしてしまい、うまくいきませんでした。 これは、boot 時の設定で SMIT 用の設定をしたり (set hint.ct.0.flags=0x40000)、 SCSI ボード を Melco IFN-NS から IO-DATA SC-98IIIp に変えたり、 SMIT を低速モードにしたり、SMIT を無効にしたりしたのですが、 ほぼいずれもうまくいきませんでした。
実は、6,7 回に 1 回だけうまくいったのですが、 そのときは Network IF がうまく使えず、 Network IF を Melco LGY-98J-T から IO-DATA ET/T-98 に変えたのですが、 またディスクの方に上の症状が起きてしまいました。
それが、FreeBSD 6.1 を FreeBSD 5.5 に変えてやってみたら、 今度はちゃんとうまくいきました。 SMIT でもちゃんといけるようでした。 もしかしたら 6.X とはちょっと相性がよくないのかもしれません。
ところで、インターネットを検索して、ふと 「IFN-NS だと 8GB 超のディスクも BIOS を update すると扱えるようになる」 という情報を見つけ、それをやってみることにしました。 必要なものは、IFC-NN 用の BIOS (1.10) で、これを適用するといいようです。
ただ、元々 8GB 以上のディスクが FreeBSD で使えない、 という話もなさそうだったので、 その前に SC-98/IIIp にこの 20GB をつないで FreeBSD (4.7) を boot してみたら 20GB のディスクはちゃんと認識されました。 SC-98/IIIp のパラメータ解析時には、 セクタ数やシリンダ数などはちゃんと表示されるものの、 容量 (MB) は下 4 桁しか表示されませんでしたので危いかなと思ったのですが、
da1 at bs0 bus 0 target 3 lun 0
da1: <MELCO DSC-UGTV 2.03> Fixed Direct Access SCSI-2 device
da1: 19569MB (40079088 512 byte sectors: 8H 128S/T 39139C)
のように FreeBSD (4.7) ではちゃんと使えそうです。
よって、SC-98/IIIp のままでも 20GB に FreeBSD 5.5 のインストールは
できたのかもしれません。
しかし、まだこの 20GB のディスクで Xs がブートできるか、 MO や音声ドライバとの相性はどうか、などは確認していません。 以前 FreeBSD 4.7 のときに ct ドライバに変えたらうまくいきませんでした (cf. 「カーネルの設定メモ (03/07 2005)」) から、その辺りが今後の問題になると思います。
(cf. 「カーネルの設定メモ (01/22 2007)」)
PC9821Xs に gtk+-2.8 でもインストールしてみようかと思い、 まずは pkg-config (0.20) のコンパイルから始めてみたのですが (ports ではなく、自前のコンパイル)、 今まで見たことがないエラーが出ました (gcc-3.4.3)。
gmain.c:884: internal compiler error: Bus error
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
インターネット上にもほとんど情報はなかったのですが、
ハードの問題の疑いもある、という情報を見て、
先日取り替えた overdrive プロセッサかな
(cf. 「カーネルの設定メモ (08/23 2006)」)、
と思い、それを昔の 486DX2 (66MHz) に戻してみたところ
そのようなエラーは出なくなりました。
またこれでだいぶ遅い環境に戻ることになりますが、 まあ、速さを必要とすることが多いわけではなく、 今までのに戻るだけですからそんなに困らないでしょう。
私の普段使用している PC9821Xs には Network IF が 2 枚差してあって、 プライベートアドレス空間とのゲートウェイにもなっています。 今まではプライベートアドレス空間とグローバルアドレスとの間は delegate を使って HTTP proxy 越しのやりとりのみ行っていました。
それを、(特別な目的があって) プライベートアドレス空間の MS-Windows から Windows Media Player を使って動画を見るために NAT にしてみる設定を試してみましたので、ここに書き残しておきます。 以下の本を主に参考にしました。
やった作業は以下の通りです。
options IPFIREWALLをつけて kernel を再コンパイル
options IPDIVERT
gateway_enable="YES"
natd_enable="YES"
natd_interface="ed0"
firewall_enable="YES"
firewall_type="open"
最初、1. が済んだところで reboot したところ、 立ち上がった kernel ではネットワークへの接続ができなくなっていましたが、 2. の設定を済ませて再び reboot したらうまくつながりました。 これで Media Player での再生もうまくいきました。 今まで delegate 経由では、プライベートアドレス空間内の MS-Windows XP の Windows Update が失敗するようになっていたので (一時期はできていたのですが、最近またうまくいかなくなりました)、 この NAT 経由だとうまくいくのかもしれません (試していません)。
また、2. の設定は、最初は firewall_type="/etc/firewall.conf" として /etc/firewall.conf に設定を書いてみたのですが、 面倒そうだったので、open としました。
しかし、実はこの Xs の FreeBSD は、 古い仕組み (bs や wd) を利用しているせいか (cf. 「カーネルの設定メモ (03/07 2005)」)、 この新しいカーネルでは音声出力が不安定になってしまい、 2,3 秒の再生後は正常な音声出力ができないようになってしまいました。 それは仕事にも差し支えるので、 結局普段は今まで通り delegate を利用した アプリゲーションゲートウェイとして使用することにして、 必要なときだけそのカーネルでブートすることにしました。
最近ふと VZ-3000 の時計がおかしいことに気がつきました。 ブート時はだいたいあっているのですが、 起動後通常の丁度倍のスピードで時刻が進んでいくのです。
情報を色々探して、よくわからないままに "options CLK_..." や "options TIMER_FREQ=..." など設定して カーネルの再構築などもやってみたのですが一向に改善しませんでした。 その後、FreeBSD FAQ に情報を見つけ、ようやく改善できました (FreeBSD FAQ Chapter 3. トラブルシューティング 「3.24. laptop の時間が狂って、大きく進んだり遅れたりします」)。
それによると、
% dmesg | grep Timecounter
Timecounter "i8254" frequency 1193133 Hz quality 0
Timecounter "ACPI-safe" frequency 3579545 Hz quality 1000
Timecounter "TSC" frequency 400893814 Hz quality 800
Timecounters tick every 10.000 msec
# sysctl kern.timecounter.hardware
kern.timecounter.hardware: ACPI-safe
# sysctl -w kern.timecounter.hardware=i8254のようにする
kern.timecounter.hardware=i8254と書いておく
これでめでたく解決しました。 後は ntpdate で合わせるようにしておけば完璧です。
普段メインで使用している PC9821Xs の HD を交換したのですが、ついでに、以下の作業を行いました。
ところで、使用していた kernel の設定ファイルでは、 "cpu I486_CPU" 以外の cpu 部分を全部コメントアウトしてあったので、 正しくブートしてくれずに panic しました。 よって、古い kernel で立ち上げ直して kernel を作り直す必要がありました。 ちなみに、そういうときの手順は、以下のようにします (98readme/Config98.txt などにも書いてあります)。
また、ディスクを入れ替えたり増設したりして、 /etc/fstab の内容が現状に合わなくなると、 ディスクのマウントに失敗してブートが途中で止まります。 ちなみに、そういうときの手順は、以下のようにします
mount -u /のようにして必要なディレクトリをマウント (/ も書き込み可にしないと /etc/fstab が編集できませんし、 /var や /tmp などのマウントは不要かもしれません)。 それらの fstab の記述も現状に合っていなければ、
mount /usr
mount -w /var
mount -w /tmp
mount -w -t ufs /dev/wd0s1g /usrのようにデバイス名等も指定する。
新たに中古の Epson Endevor VZ-3000 を 手に入れたので、 FreeBSD 5.4-RELEASE + X.Org 6.8.2 をインストールしました。
まず、HDD を 40GB の HD (BUFFALO HD-40FB、中身は Western Digital WD400BB) に入れかえてブートしたのですが、どうもそれを認識してくれません。 認識に行ってハングアップしてしまうこともあるようです。
これは、BIOS (Award Modular BIOS v4.51PG) が古い (マシン本体は 1999 年頃のもの) ためらしく、 Western Digital のサイト
ad0: 32253MB <WDC WD400BB-75JHC0/06.01C06> [65531/16/63]
at ata0-master UDMA33
のように 32GB 位しか認識されないようです。
後はほぼスムーズにインストールできました。
最近は、AMD や Pentium やなんたらの速さ等はまるでわからないので、 簡単なベンチマークを取ってみたのですが、 FMV-5166D8 (Pentium 166MHz) とほとんど変わらないようでした。
Epson Endevor VZ-6000 ですが、 設定ファイル (定義ファイル集 の節参照) で atapicam, vn, pcm0 を有効にしてカーネルを再構築することで、
が可能になりました。 FreeBSD 4.4 の時は、atapicam を有効にするには カーネルのソースにパッチを当てる必要がありましたし, ATAPI MO を使う場合もパッチを当てていましたから、 それに比べるとだいぶ楽なように思います。 関連する dmesg 出力は以下の通りです。
ad0: 28629MB <ST330621A> [58168/16/63] at ata0-master UDMA66 acd0: CD-RW <MATSHITA CD-RW CW-7585> at ata1-master PIO4 ata1-slave: <FUJITSU MCB3064AP/0051> - NO DRIVER! da0 at adv0 bus 0 target 0 lun 0 da0: <I-O DATA HDXG-S120 110M> Fixed Direct Access SCSI-2 device da0: 3.300MB/s transfers da0: 117246MB (240121728 512 byte sectors: 255H 63S/T 14946C)
pcm0: <Yamaha DS-1E (YMF754)> port 0xb000-0xb003,0xb400-0xb43f
mem 0xde000000-0xde007fff irq 11 at device 12.0 on pci0
pcm0: <SigmaTel STAC9708/11 AC97 Codec>
ad0: 28629MB <ST330621A> [58168/16/63] at ata0-master UDMA66
acd0: CD-RW <MATSHITA CD-RW CW-7585> at ata1-master WDMA2
da0 at adv0 bus 0 target 0 lun 0
da0: <I-O DATA HDXG-S120 110M> Fixed Direct Access SCSI-2 device
da0: 3.300MB/s transfers
da0: 117246MB (240121728 512 byte sectors: 255H 63S/T 14946C)
cd0 at ata1 bus 0 target 0 lun 0
cd0: <MATSHITA CD-RW CW-7585 1.04> Removable CD-ROM SCSI-0 device
cd0: 16.000MB/s transfers
cd0: Attempt to query device size failed: NOT READY, Medium not present
- tray closed
da1 at ata1 bus 0 target 1 lun 0
da1: <FUJITSU M25-MCB3064AP 0051> Removable Optical SCSI-0 device
da1: 16.000MB/s transfers
da1: Attempt to query device size failed: NOT READY, Medium not present
"/sbin/camcontrol devlist -v" では以下のように表示されます。
scbus0 on adv0 bus 0: <I-O DATA HDXG-S120 110M> at scbus0 target 0 lun 0 (pass0,da0) < > at scbus0 target -1 lun -1 () scbus1 on ata0 bus 0: < > at scbus1 target -1 lun -1 () scbus2 on ata1 bus 0: <MATSHITA CD-RW CW-7585 1.04> at scbus2 target 0 lun 0 (pass1,cd0) <FUJITSU M25-MCB3064AP 0051> at scbus2 target 1 lun 0 (pass2,da1) < > at scbus2 target -1 lun -1 () scbus-1 on xpt0 bus 0: < > at scbus-1 target -1 lun -1 (xpt0)
また、"cdrecord -scanbus" は以下のようになります。
Cdrecord-Clone 2.01 (i386-unknown-freebsd4.11) Copyright (C)
1995-2004 Jrg Schilling
Using libscg version 'schily-0.8'.
scsibus0:
0,0,0 0) 'I-O DATA' 'HDXG-S120 ' '110M' Disk
0,1,0 1) *
0,2,0 2) *
0,3,0 3) *
0,4,0 4) *
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *
scsibus2:
2,0,0 200) 'MATSHITA' 'CD-RW CW-7585 ' '1.04'
Removable CD-ROM
2,1,0 201) 'FUJITSU ' 'M25-MCB3064AP ' '0051'
Removable Optical Storage
2,2,0 202) *
2,3,0 203) *
2,4,0 204) *
2,5,0 205) *
2,6,0 206) *
2,7,0 207) *
これで、ATAPI MO に関しては、
でできますし、CD-R を作成する場合も、
のようにしてできるようになりました。 なお、ATAPI CD-R/RW 用には burncd もありますが、試してはいませんが、 FreeBSD ハンドブックを見ると CW-7585 はだめのようです。
Epson Endevor VZ-6000 の OS を 4.11-RELEASE に入れ換えました。 ついでに、
普段使用している PC (PC9821Xs) の OS を FreeBSD(98)4.7 に version アップしたので、 IDE 関係をデフォルトの wd,wcd から ad,acd に変えてみました (cf. 「カーネルの設定メモ (08/02 2002)」)。 ところが、今度は音声デバイスの挙動がおかしくなりました。
最初は snd + mss0 を使っていたのですが、 /dev/audio の音声の再生がむちゃくちゃになりました。 よくわからないまま pcm0 にしたのですが、 今度は /dev/audio の音声の再生はいいのですが、 その再生終了後 bs0 がハングアップと再起動を繰り返して OS が使えなくなってしまいました。
柴田さんに教えて頂いたのですが、旧式のドライバ (NewBus ではなくて isa_compat 経由) と NewBus ドライバの混在による食い合わせが悪いのでは、 ということでした。つまり、
それで、pcm + ad/acd + ct に入れ換えてみたのですが、 今度は音声の再生、ad へのアクセスも問題はなくなりました。 しかし今度は MO が引っかかってしまいました。 od-driver の元 (cf. 「カーネルの設定メモ (11/22 2004)」) での /dev/od0 でも、 それを外した状態での /dev/da1 でも、 dmesg を見るといずれもちゃんと認識はされているのですが、 mount_msdos をすると固まってしまいました。 これはまた別な話なのかも知れません。 ということで、現在はまた mss + wd/wcd + bs + od の状態に戻しています。
ただ、od-driver を外したとはいっても、 それに付属したパッチは当てたままになっているので、 それを元に戻してまた試してみたいと思いますし、 FreeBSD-users-jp 辺りに情報がありそうなので、 また少し調べてみたいと思います。 うまくいったら FreeBSD QandA にも送りたいと思います。
(cf. 「カーネルの設定メモ (10/13 2006)」, 「カーネルの設定メモ (01/18 2007)」, 「カーネルの設定メモ (01/22 2007)」)
USB ポートのついている Sotec のノートパソコン (WL2130) 用に買ってきた DVD-RW ドライブ I-O DATA DVR-iUN8WR をつないでみました。 特にカーネルの再構築はしていませんが、そのまま認識されたようです。 USB まわり、及びドライブの認識は以下の通りです。
ohci0: <SiS 5571 USB controller> mem 0xdffd0000-0xdffd0fff irq 10 at
device 1.2 on pci0
usb0: OHCI version 1.0, legacy support
usb0: SMM does not respond, resetting
usb0: <SiS 5571 USB controller> on ohci0
usb0: USB revision 1.0
uhub0: SiS OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 3 ports with 3 removable, self powered
umass0: I-O DATA DEVICE,INC. I-O DATA iU-CD2, rev 2.00/11.05, addr 2
ohci1: <SiS 5571 USB controller> mem 0xdffe0000-0xdffe0fff irq 10 at
device 1.3 on pci0
usb1: OHCI version 1.0, legacy support
usb1: SMM does not respond, resetting
usb1: <SiS 5571 USB controller> on ohci1
usb1: USB revision 1.0
uhub1: SiS OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 3 ports with 3 removable, self powered
umass1: NEC NEC USB UF000x, rev 1.10/1.50, addr 2
ums0: Genesys Logic USB Mouse, rev 1.00/2.30, addr 3, iclass 3/1
ums0: 3 buttons and Z dir.
.....
da0 at umass-sim0 bus 0 target 1 lun 0
da0: <NEC USB UF000x 1.50> Removable Direct Access SCSI-0 device
da0: 20KB/s transfers
da0: Attempt to query device size failed: NOT READY, Medium not present
cd0 at umass-sim0 bus 0 target 0 lun 0
cd0: <_NEC DVD_RW ND-2510A 2.26> Removable CD-ROM SCSI-0 device
cd0: 650KB/s transfers
cd0: cd present [2191406 x 2048 byte records]
cd0 として認識され、通常の msdos_cd9660 でマウントできることを
確認しました。ただ、まだ DVD-RW への書き込み等は確認していません。
なお、USB ポートにつないでいる FDD の方は、 FreeBSD のインストール時にはこの FDD でブートしたのですが、 FreeBSD からこの FDD を使えてはいません。 上の認識状況を見ても分りますが、da0 がそれのようですが、 mtools でもマウントしようとしてもうまくいきません。 usbdevs の結果は以下の通りです。
# usbdevs -v Controller /dev/usb0: addr 1: self powered, config 1, OHCI root hub(0x0000), SiS(0x0000), rev 1.00 port 1 powered port 2 powered port 3 addr 2: power 2 mA, config 1, I-O DATA iU-CD2(0x0204), I-O DATA DEVICE,INC.(0x04bb), rev 11.05多少情報を探して試してみたのですがどうもうまくいきません。 また時間が取れたら頑張ってみようと思います。
私は普段使用している PC (PC9821Xs) でプリントアウトをする場合、 このマシンはかなり非力なので、gs を通す必要があるプリントアウトは 別のもう少し速いマシンにデータを送って、 そちらの gs で LIPS データに直してもらって、 それを手元のマシンに送ってプリントアウトする、 ということをやっています。 向こうからデータを送ってもらう時は、 手元のプリンタを向こうからリモートプリンタと見て データを送るようにしていて、 それをこちらで lpd で受けてプリントアウトしています。
ところが、FreeBSD 4.7 に乗り換えてから、 どうもその処理の際に OS に負荷がかかって、 プリントアウトの最中は手元のコンピュータが動かない、 という症状が起きていました。 xload も猛烈な勢いでグラフが跳ね上がっていますし、 /sbin/dmesg では
/kernel: stray irq 14 /kernel: stray irq 14 last message repeated 3 times /kernel: too many stray irq 14's; not logging any moreのように表示されていました。 なお、プリンタに関する起動時のメッセージは以下の通りです。
ppc0: <Parallel port> at port 0x140-0x147 irq 14 on isa0 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/16 bytes threshold plip0: <PLIP network interface> on ppbus0 lpt0: <Printer> on ppbus0 lpt0: Interrupt-driven port ppi0: <Parallel I/O> on ppbus0また、プリンタの電源を入れて boot すると以下のように出るようです。
ppc0: <Parallel port> at port 0x140-0x147 irq 14 on isa0 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/16 bytes threshold ppbus0: IEEE1284 device found /NIBBLE/PS2 Probing for PnP devices on ppbus0: ppbus0: <Canon LASERSHOT LBP-730> PRINTER LIPS,N201,ESCP,CJL plip0: <PLIP network interface> on ppbus0 lpt0: <Printer> on ppbus0 lpt0: Interrupt-driven port ppi0: <Parallel I/O> on ppbus0色々情報を探してみたのですが、 とりあえず lptcontrol で polled mode にしてみると、 という物があったので /etc/rc.conf に
lptcontrol -p -d /dev/lpt0
のようなものを入れてみました。
ただし、プリンタの電源を入れてブートしないとうまく効かないようで、
プリンタの電源を入れずに立ち上げたら lptcontrol が
"lptcontrol: open Device busy" と蹴られていました。
その場合はブート後にプリンタの電源を入れて
手動で lptcontrol を立ち上げる必要があるようです。
今の所はこの polled mode で調子はいいようで (あんまり良く分っていません)、 stray のメッセージもでなくなりましたし、OS が固まってもいないようですが、 しばらく様子をみようと思います。
「カーネルの設定メモ (11/22 2004)」 に書いた MO の件ですが、 format は単に /sbin/newfs_msdos /dev/od0 だけでいけました。 また、ついでに MO ドライブを新しいものに買い替えました。 1.3GB が使える BUFFALO (Melco) の MO-C1300S です (ベアドライブは FUJITSU MCM3130SS-S 0020)。 640MB と同じようにそのまま od driver で使えました。 挙動も 640MB のドライブと全く同様です。
普段主に使用している PC (PC9821Xs) の MO が どうも不安定な挙動を示すようになったので、 OS をバージョンアップしました (2.2.8R -> 4.7R)。 といっても、実際には既に外付けの HD に入れてあったもの (他の PC に元々つないでいたもの) をこちらにつなぐようにしただけです。 最新の物でないのはそういう理由です。
不安定な挙動とは、大きなファイルを書き出し/読み出しすると OS が一時固まって、bs ドライバが再び SCSI の check のような行ないます。 以前からもあったのであまり気にしていなかったのですが、 少し MO 上の大きなデータと HD のデータを比較してみたところ、 比較の度に違った結果が出てしまいました。
最初はメディアの問題かと思いましたが、 別の FreeBSD 4.X (4.4) のマシンについている IDE の MO ドライブでは 同じメディアでもその様なことは起こらなかったし、 2.2.8 の SCSI MO ドライブではどのメディアでも同じ症状が発生するので、 OS をとりあえず上げてみることにしました。 なお、SCSI ボード上の設定の SMIT 転送は、 MO ドライブのみ無効にしてあります。 その辺りをいじっても挙動は変わりませんでした。
まずは、FreeBSD 4.7 にして /dev/da1 をマウントすれば良さそうだったので その辺りをテストしてみたのですが、
今度は、FreeBSD 4.1.1R 用の od-driver ( ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/OD/) を FreeBSD 4.7 へインストールして、 /dev/od0 を試してみることにしました。以下がその際の留意点です。
note PC WL2130 のサウンド関係を使うために
device pcm
をカーネル定義ファイルに入れてカーネルの再構築をしてみたところ、
以外にもあっさり使えてしまいました。dmesg の対応部分:
pcm0: <SiS 7018> port 0xd400-0xd4ff mem 0xdfff0000-0xdfff0fff
irq 5 at device 1.4 on pci0
pcm0: <SigmaTel STAC9721/9723 ac97 codec>
cat /dev/sndstat の出力:
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <SiS 7018> at io 0xd400 irq 5 (4p/1r/0v channels duplex)
snd-5.5 を入れて sndplay で WAV ファイルも AU ファイルも
ちゃんと再生できました。
また、これは直接はサウンドデバイスとは関係ありませんが、
xcdplayer -device /dev/acd0c で音楽 CD の音もイヤホン端子から
ちゃんと出ています。
note PC WL2130 の FreeBSD を FreeBSD 4.8 + XFree86 4.3.0 にあげました。 どうせさしたる物は入っていなかったので、 最初からのクリーンインストールです。 X の環境のチェックはまだちゃんとはやっていません。
SOTEC の安い note PC WL2130 を買って FreeBSD 4.7 をインストールしました。 ディスクは 20GB でしたが、2 つに割ってあって 後ろ半分 (D:) は空きドライブのようだったので、 それを MS-Windows Xp の diskpart で解放してそこにインストールしました。 FDD は USB 外付けですが問題なくブートできました。
最初 FreeBSD 4.6.2 の日本語インストーラで始めたのですが、 それだと日本語表示を選択した所で画面が真っ白になって 次に進めなくなってしまうので、4.7 の英語のインストーラで行いました。 XFree86 のセットアップでも同様の現象が出ましたが、それに関しては 「XFree86 に関するメモ (02/18 2003)」 をご覧下さい。 サウンド関係の設定は何もしていないので、まだ使えないようです。
Xp に SCSI 8GB をつないで、そこに FreeBSD(98)4.7R-Rev01 を入れ、 カーネルの再構築を行いました。 ネットワークも特に問題なく使えているようですが、 MO のドライブを (230MB のものも 640MB のものも) うまく認識してくれないようです。 SCSI ボードの SMIT 転送機能を off にしてもだめでした。 もしかしたら再構築時に必要な物までコメントアウトしてしまったのかも しれません。
一応 FreeBSD(98) 2.2.8R では使えるようですので (まださほどテストはしていません)、 今まで Xs (メインのマシン) につないでいた 230MB MO を Xp に渡して、 640MB MO を新たに Xs につなぐことにしました。 これで backup の tar file を split で分けなくても良くなりそうです。
640MB MO は以下のように認識されています。
(bs0:1:0): "FUJITSU MCF3064SS 0040" type 7 removable SCSI 2
bs0(1:0): {7:0x98:0x1000:pdma} flags 0xffff0300<noparity,nosat>
od0(bs0:1:0): Optical od not present
FreeBSD-users-jp で検索すると、write back cache 機能を off
にしておかないと、大きいファイルの転送時に固まることがある、
といった情報がありました (FreeBSD-users-jp 54713)。
「PC-CD60D に関する WWW ページ」 にも書きましたが、Xs の FreeBSD(98)の動作報告
の情報を、その投稿者の柴田さんに教えて頂いて、 それに従い Xs + FreeBSD(98)4.6R-Rev01 のマシンのカーネルの再構築を行いました (定義ファイルは shige20020722-2)。 今の所全く問題なく使えているようです。しかも、従来は PC-CD60D の使用の特殊性により 音楽 CD の再生には問題があってパッチが必要だったのですが (wcd 用)、 現在の acd ドライバはその問題への対応もなされているので それに関するパッチは必要なく問題なく使えるようです。 dmesg の出力は
nac0: <NEC PC-98x1 ATA Controller> at port 0x640,0x642,0x644,
0x646,0x648,0x64a,0x64c,0x64e irq 9 on isa0
ata0 at bank 0 on nac0
ata1 at bank 1 on nac0
.....(中略).....
ad0: 4126MB <SAMSUNG SV2042H> [62147/8/17] at ata0-master BIOSPIO
acd0: CDROM <NEC CD-ROM DRIVE:260> at ata1-master BIOSPIO
Waiting 60 seconds for SCSI devices to settle
Mounting root from ufs:/dev/ad0s1a
ad0: raw partition size != slice size
ad0: start 0, end 8452079, size 8452080
ad0c: start 0, end 8451991, size 8451992
のようになります。以前の wcd の場合の壊れたようなメッセージもなく、
非常に良さそうです。
柴田さんやこの件に対処された皆さんに感謝したいと思います。
なお、それに伴い、今後はCD60D の WWW ページ の新しい情報の必要性はなくなるでしょうから、 しばらく更新はしないことになるだろうと思いますし、 wcd へのパッチも新たな物は作成しない予定です。
(cf. 「カーネルの設定メモ (03/07 2005)」)
一度は使えていると思った Xs + 4.6R-Rev01 上の fe0 が、 どうもうまく使えないようなのでカーネルの再構築を行い、 irq の調整などを行ってみましたが、どうもうまく使えないようです。 あきらめて ed3 (Melco LGY-98J-T) にしようかと考えています。 こちらはちゃんと使えています。
また、今までは内蔵 PCM 音源は mss0 でしたが、 pcm0 にしてみました。cat /dev/sndstat の結果は以下の通りです。
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <OPTi930> at io 0xf40 irq 12 drq 1 bufsz 4096 (1p/1r/0v
channels duplex)
ついでに 音楽 CD のパッチ も 4.6R-Rev01 用に作って当てました。一応ちゃんと動いているようです。
「カーネルの設定メモ (06/07 2002)」 に書いた Vz-6000 の ATAPI-MO の件ですが、 230MB, 640MB のいずれも MSDOS-FS, FFS のどちらの format の形式とも使えることを確認しました。
「カーネルの設定メモ (07/18 2002)」 に書いた、 FreeBSD(98) 4.6R-Rev01 のブートフロッピー (kern144.flp, mfsroot.flp) で fe0 がうまく使えない問題ですが、色々試してみたところ、
現象としては IRQ が他とぶつかっている場合のものと似ていたので ボードを外したり、不要なドライバを無効にしたり、 と色々やってみたのですが上記以外の手段ではどうしても解消されませんでした。
なお、インストール後にブートすると fe0 は正常に使えているようですので、 あくまでブートフロッピーのドライバの問題だと思われます。
また、ftp サイトの 4.6-RELEASE のディレクトリには XFree86 のディレクトリが無く、FreeBSD(98)4.6R-Rev01 のディレクトリにある XF86336 というディレクトリはそちらへのリンクになっているので、 インストーラで XFree86 のインストールをやろうとすると失敗するようです。
私が現在使っている PC9821Xs/C8W とほぼ同じ構成の PC9821Xs/C8W を入手しましたので、 これに FreeBSD(98) 4.6R-Rev01 をインストール (ftp install) してみました。 しかし、fe0 ドライバが不調なのか、ftp サーバの検索のところで失敗し、 検索中のまま止まってしまいます。
FreeBSD(98) 4.5R-Rev01 ならちゃんとインストールできるようなので、 4.6R のブートフロッピーの fe0 ドライバが 4.5R から何か変わっていて そのためではないかと思われます。 なお、そのマシンに刺さっている NIC は Alied Telesis RE1000Plus です。 このマシンの詳しい情報は後で追加します。
(cf. 「カーネルの設定メモ (07/19 2002)」)
「カーネルの設定メモ (04/03 2002)」 に書いた uname -a で FreeBSD のバージョンが 4.4 と表示されてしまう件ですが、 ようやく原因がわかりました。すべて私のミスによるものでした。 うちの研究室の FTP サーバに持って来た FreeBSD-98/4.5-RELEASE の中の FreeBSD/4.5-RELEASE へのリンクであるはずのものが、 すべて FreeBSD/4.4-RELEASE へのリンクであったためのようです。 つまり、現在このマシンは、FreeBSD 4.4-RELEASE の上に FreeBSD(98) 4.5R-Rev01 が載っているという状態になっているようです。 できるだけ早いうちに 4.6R などに載せ替えないといけないですね。 一番手っ取り早いのは、FreeBSD(98) 4.4R を展開することでしょうか。
Vz-6000 についていて今まで使えていなかった ATAPI-MO を使えるようにしました。 CD-R/W (MATSHITA CD-RW CW-7585) で cdrecord を使えるようにしたとき、MO をつないだだけで立ち上がらなく なっていたのであきらめていたのですが、 FreeBSD-users-jp ML にあった大地さんのパッチ (57988) と報告 (65621) にしたがってやっただけですがうまくいきました。 dmesg の出力は
ad0: 8063MB <SAMSUNG SV0842D> [16383/16/63] at ata0-master UDMA66
acd0: CD-RW <MATSHITA CD-RW CW-7585> at ata1-master using PIO4
afd0: 508MB <FUJITSU MCB3064AP> [508/64/32] at ata1-slave using
PIO4
(noperiph:atapi1:0:-1:-1): Registered SIM for ata1
atapicam1s: read data overrun 40/39
atapicam1s: unknown CMD (0x12) - ILLEGAL REQUEST asc=24 ascq=00 sks=00
22 11 error=00
Mounting root from ufs:/dev/ad0s1a
cd0 at atapi1 bus 0 target 0 lun 0
cd0: <MATSHITA CD-RW CW-7585 1.04> Removable CD-ROM SCSI-0 device
cd0: 3.300MB/s transfers
cd0: Attempt to query device size failed: NOT READY, Medium not present
- tray closed
da0 at atapi1 bus 0 target 1 lun 0
da0: <FUJITSU M25-MCB3064AP 0051> Removable Optical SCSI-0 device
da0: 3.300MB/s transfers
da0: Attempt to query device size failed: NOT READY, Medium not present
のようになっています (なんか変なのも出ていますが)。
とりあえず 230MB の MSDOS format の MO が使えることのみ確認しました。
(cf. 「カーネルの設定メモ (07/19 2002)」)
「カーネルの設定メモ (03/07 2002)」 に書いた uname -a で FreeBSD のバージョンが 4.4 と表示されてしまう件ですが、 カーネルの再構築を行なったためのようで、 what /kernel /kernel.GENERIC98 の出力は
/kernel:
FreeBSD 4.4-RELEASE #1: Thu Mar 7 01:02:34 JST 2002
/kernel.GENERIC98:
FreeBSD 4.5-RELEASE #0: Fri Feb 15 15:09:36 2002
のようになります。で、原因は /sys/conf/newvers.sh が
...(中略)... # @(#)newvers.sh 8.1 (Berkeley) 4/20/94 # $FreeBSD: src/sys/conf/newvers.sh,v 1.44.2.17.2.1 2001/09/14 16:30:08 jkh Exp $ TYPE="FreeBSD" REVISION="4.4" BRANCH="RELEASE" RELEASE=4.4-RELEASE ...(以下略)...のように書かれているためのようです。
(cf. 「カーネルの設定メモ (07/08 2002)」)
PC9821Xv13 の OS を FreeBSD(98)3.5.1R-Rev01 から FreeBSD(98)4.5R-Rev01 に入れ換えました。 カーネルの再構築も IDE の CD-ROM のドライブが acd から wcd になった (戻った ?) 位であまり問題はありませんでした。
ただ、dmesg や X の起動時のログ、uname -a で FreeBSD 4.4-RELEASE と表示されるのが少し気になります。
(cf. 「カーネルの設定メモ (04/03 2002)」)
PC9821Xv13 に、今回 I-O DATA の 80GB の SCSI-HD (HDXG-S80) をつなぎました。 "32GB" のような制限はなく使えそうです。 手順は 「カーネルの設定メモ (02/24 2002)」 の 20GB の時と全く同じでできました (/stand/sysinstall はだめでした)。 なお、disklabel -e のときの fsize, bsize, bps/cpg は、 よくわからないので 20GB のときと全く同じ値 (1024, 8192, 16) を使っています。
ちなみに、dmesg の出力は
da0 at adv0 bus 0 target 0 lun 0 da0: <MELCO DSC-UGTV 2.03> Fixed Direct Access SCSI-2 device da0: 20.000MB/s transfers (20.000MHz, offset 15) da0: 19569MB (40079088 512 byte sectors: 8H 128S/T 39138C) da1 at adv0 bus 0 target 1 lun 0 da1: <I-O DATA HDXG-S80 100S> Fixed Direct Access SCSI-2 device da1: 20.000MB/s transfers (20.000MHz, offset 15) da1: 76351MB (156368016 512 byte sectors: 255H 63S/T 9733C)で、df -k の出力は
Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/wd0a 49583 21858 23759 48% / /dev/wd0s1f 3862290 868778 2684529 24% /usr /dev/wd0s1e 19815 5482 12748 30% /var procfs 4 4 0 100% /proc /dev/da0e 19394398 1 17842846 0% /bsdmnt1 /dev/da1e 75778866 1 69716556 0% /bsdmnt2とこんな感じです。
なお、20GB の方を SCSI-0, 80GB の方を SCSI-1 (ターミネータは 内蔵されている) としているのですが、SCSI BIOS (SCSI-IF は Melco IFC-USP) の起動時の画面では それぞれ SCSI-0, SCSI-2 と認識されています。 一応使えているのでまあよしとしています。
PC9821Xv13に、昔買ってあった Melco の 20GB SCSI-HD (DSC-U20GTV) をつなぎました。 FreeBSD-users-jp ML 50369 の記事を参考に SCSI-IF も同じ物を使用し、書かれている通りにやったところ、 20GB をちゃんと認識してくれました (FreeBSD(98)3.5.1R-Rev01)。
なお、その記事にも書かれていますが、/stand/sysinstall からは うまく初期化できません。よって記事通りに disklabel, newfs を 手動で行ないました。
今まで PC9821Xpに 8.4GB 刻みに SCSI ディスクをダルマ落としの様に追加していたのですが (横置きで積み上げてます)、 これでそのマシンを Xv で置き換えるための下準備ができました。
(cf. 「カーネルの設定メモ (03/04 2002)」)
「カーネルの設定メモ (02/11 2002)」 に書いた VZ-6000 の CD-RW ドライブ CW-7585 の書き込みの件ですが 特に問題はないようです。 今の所 cdrecord による通常のデータの書き込み (音楽データでなく) を 行なっているだけですが、CD-R へ書き込んだものを、 他のマシンの通常の CD-ROM ドライブでちゃんと読めています。
ただ、CD-RW は、"1x,2x,4x" と書かれている低速用のメディアでは 問題はないのですが、高速 (4 倍 ~ 10 倍) 用のメディアでは うまくいきませんでした。 cdrecord で speed=4 あたりを指定したのですがだめでした。 何も speed を指定しないと 2 あたりが使われていたようです。
また、メディアは 650MB の物しか確認していません。
なお、「カーネルの設定メモ (03/02 2001)」 に書いた、 CD ドライブが認識されたりされなかったりする件は、 FreeBSD のバージョンを 4.4 にしたためか、 または ATAPICAM パッチを当てたためか、そのどちらかはわかりませんが 起こらなくなり、問題なく認識されるようになりました。
Vz-6000 用のサウンドカード (Xwave-6000: Yamaha YMF754) も 使えるようになりました。 これはFreeBSD は確か 4.3 位から使えるようになったように 記憶しています。 定義ファイルは単に
device pcm0 at isa? irq 10 drq 1 flags 0x0
を付け加えただけです。
今回、Vz-6000の CD-R/W (MATSHITA CD-RW CW-7585) でデータを焼くために色々やったことをまとめておきます。
# cdrecord -scanbus
Cdrecord 1.11a13 (i386-unknown-freebsd4.4) Copyright (C) 1995-2001 Jg Schilling
Using libscg version 'schily-0.5'
scsibus0:
0,0,0 0) 'MATSHITA' 'CD-RW CW-7585 ' '1.04' Removable CD-ROM
0,1,0 1) *
0,2,0 2) *
0,3,0 3) *
0,4,0 4) *
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *
(cf. 「カーネルの設定メモ (02/20 2002)」)
Xp の壊れたメモリもまだ保証期間中だったので、無事無償修理されて 戻って来て、また 72MB で運転し出しました。
数日前から Xp が多少不安定になり、メモリの空きがあるのに それを使えなくなってきて、 最後は頻繁にリブートがかかるようになってしまいました。 メモリに障害が起きたためのようなのですが、突然のブートを何度も 繰り返したためかディスクの一部に障害が出たようで (swap 領域 ?) 結局ブートディスクもそれではちゃんと立ち上がらなくなってしまいました。
そのために多少ハードディスク、メモリの構成を変更して なんとか復旧させましたが、 複合的に障害が起きている事を知るまでにかなりの時間と試行錯誤を 繰り返しました。
また、いっそ FreeBSD のバージョンを上げるべきだったのでしょうが、 早急にデータ等を復旧することを考えていたので とりあえず version は古いままにしました。 しかし、復旧といってもかなりいい加減なものなので、 いつか時間を取ってバージョンアップしたいと思います。
9821Xp にさらに外付け SCSI HD 8.4GB を追加しました。 8.4GB づつしか追加できないのがつらい所ですが、問題なく動いています。
9821Xp に内蔵 IDE HD 4.3GB、外付け SCSI HD 8.4GB を追加して、 学内向けに FTP サーバを立ち上げました。 ただ、これではまだ狭いのですが、Xp は 8.4GB までしかアクセス できないので、Xp を使うなら8.4GB ずつ追加するしかありません (;_;) IDE CD-ROM がないので、IDE HD は 4.3GB を 2 つ内蔵しています。 こちらは特に問題なくつなげています。
SCSI HD 8.4GB の方は、SCSI Interface ボード (I-O DATA SC-98IIIP) の仕様のため、HD を付け変えたりする時に 一度 HD の諸パラメータの解析とその登録、という作業が必要で、 これをやらないとうまく認識されません。 これをやって、特に問題なく認識されました。 なお、このディスクは dmesg でも
(bs0:0:0): "SAMSUNG WN34324U (gm030) 0105" type 0 fixed SCSI 2
のようなベアドライブの表示ではなく、
(bs0:1:0): "I-O DATA HDVS-UM8.4G 204F" type 0 fixed SCSI 2
のように商品名が表示されます。HD の仕様でしょうか。
ついでに CD-ROM ドライブを調べてみました。 Xs は 「CD60D に関するページ (CD/CD60D.html)」 にある通りですが、 VZ は 「カーネルの設定メモ (03/02 2001)」 に書いた通り 認識がやや不安定で、 Xv13, 586RA は問題なく使えるようです。 音楽 CD の再生もいずれも問題なくできました。 ただし、VZ はサウンドボードがないので CD-ROM ドライブ付属の イヤホンジャックからのみの再生です。
音声デバイスについて少しテストしてみました。
mss0 at 0xf40 irq 12 drq 1 on isa
mss0: <MS Sound System (CS4231)>
mss0 at 0xf40 irq 12 drq 1 on isa
snd0: <MS Sound System0 (CS4231A)>
sb0 at 0x20d2 irq 10 drq 3 on isa
sb0: <SoundBlaster Pro 3.1>
opl0 at 0x28d2 on isa
opl0: <Yamaha OPL-3 FM>
cat file.au > /dev/audio
のようにやると AU ファイルを途中まで再生し、
途中から音が出なくなって終了します。
drq がぶつかっているのでは ? という情報や、解決は難しい、
といったような情報を見つけましたがまだ何の対処もしていません。
VZ の内蔵 CD-ROM ドライブを使えるように kernel 再構築をやりました。 使用した定義ファイルは 「kernel の定義ファイル」 の節にあります (xv-vz/35/vz-20010301)。 しかしコンパイルが速くてあっという間に終ったのには (5 分かかってない ?) びっくりしました。
それで不要なデバイスは取り除いてみたのですが、ブートしてみると CD-ROM は認識されたりされなかったりしました。
wdc1 not found at 0x170
状況を見てみると CD-ROM ドライブを使った後や、CD-ROM を入れながら
boot したときにはうまく認識するようでしたのでどうも初期化に
失敗しているのではないかとにらんでいます。
が、今は ATAPI のメッセージを追う元気はちょっとありません (^^;
ついでに IDE-MO も認識されているようです。が、以前書いたように
wdc1: unit 1 (atapi): <FUJITSU MCB3064AP/0051>, removable,
accel, ovlap, dma, iordis
wdc1: ATAPI optical disks not supported yet
のように言われてしまいます (+_+)
Xv13 の内蔵音源を使えるようにカーネルの再構築をやりました。 使用した定義ファイルは 「kernel の定義ファイル」 の節にあります (xv-vz/35/xv-20001122)。 不要なデバイスは再構築をやって取り除いておかないと認識されない デバイスもあるようです。
それで VZ の方もやろうと思うのですが、買ってきたサウンドカードが XWAVE6000 (chip YMF-754) なので、先に FreeBSD 4.1 にバージョンアップする ことを検討しています。
MS-Windows 95 が動いていた 2 台のマシン PC9821Xv13/W16, EPSON Direct Endeavor VZ-6000 を FreeBSD マシンにしました。
私の所では FreeBSD による古い機種の復活ばかりやっていますが、 VZ-6000 の方は上を見てもらうと分かると思いますが、珍しく新品で かなり良い性能のマシンです。 Xv13 の方はメモリ、HD が少なかったので上のように入れ換えました。
なお、Xv13 の HD は、最初は 4.3GB を越える IDE HD を入れようと したのですが、BIOS の問題かどうしても認識しなかったので、 あきらめて 8.4GB の HD は VZ に入れ、 Xv13 には 4.3GB の IDE HD を載せました。 また、OS は 3.5 (多分 3.5.1) なのでカーネルの設定は何もやっていません。
なお、VZ の方には IDE の MO (640MB) のドライブがあり、 認識はされているようですが、 まだ MO は support はされていない、と表示されます。 使えるようになると嬉しいのですが...
EPSON 586RA に IDE 4.3GB の HD を入れようとしたのですが、 色々問題がありました。やってみたことを書きます。
Xp + FreeBSD 3.3R で、network 経由で SCSI HD に大きいファイルを 転送している途中で HD のアクセスランプがつきっぱなしになり、 OS が固まってしまう現象が何回か起こりました。 SCSI HD (IO-DATA HDVS-U4.3G)、SCSI ボード SC-98IIIP、 network インターフェースのいずれの問題か、またはいずれかが 3.3R と 相性が悪いか、といったところは特定できていません。 一度は ports のインストールの途中で発生しました。
よって、現在は Xp の方は FreeBSD(98)2.2.8R-Rev03 の方を立ち上げています。 こちらではファイルの転送時に今の所問題は起きていません。
Xp につないでいる SCSI HD (IO-DATA HDVS-U4.3G) と SCSI ボード SC-98IIIP に関しては以前 fj にも投稿しましたが、 結局今の所問題なく使えています。 SC-98III は HD の仕様データを解析して登録する、ということをやりますが、 HD をつないだりはずしたりするときはそれを再設定しないと どうやら使えなくなるようです。
この HD はタグ付きキューイング機能に問題がある、 というものらしいのですが、2.2.8R ではその辺は使用していないのか、 特に対応しなくても問題なく使えています。 3.3R では既に対応がなされているようです。
Xp の FreeBSD(98)3.3R-Rev01 のカーネルは、再構築せず、標準の ものをそのまま使っています。よって IDE 2 台目の wd1 は 3.3R の 方では認識できていません。
実は一度再構築をやったのですが、3.2 位からでしょうか、 ブートの機構が少し変わりました。よって今までのように make depend ; make ; make install としただけではだめなようです。 ちゃんと調べれば良いのですが、2000 年問題の対策のための インストールでもあったので、とりあえずそんな形で動かしています。
単に make install としただけで reboot すると、起動時に多くの プログラムが core dump し、また、kernel の選択の仕方も 変わったようで古いカーネルを起動することもできませんでした。 こうなると Ctrl+Graph+Del で boot の作業を止めるしかありません。
Vz 6000 が動かなくなってしまったので、代わりに Epson Direct の MT7900 を買って、 FreeBSD 8.0-RELEASE をインストールしました。 USB メモリからインストールしたのですが、 それはあっと言う間に (ほんの数分で) 終ってしまいました。
その後、X.org をパッケージからインストールしたのですが、 これが少し苦労しましたので、ここにまとめておきます。
MT7900 のビデオボードはオンボードの Intel G31 Express というもののようです。 これは、intel ドライバが対応しているらしいので、 それで設定しようと思ったのですが、 package インストールした X.org-1.6.1 (xorg-server-1.6.1,1) に xorgconfig がついていません。 調べてみると、どうやら root で X -configure として自動的に生成される /root/xorg.conf.new を使うらしいです。
マウスやキーボード、モニタに関する設定をして、再び root で
# X -config /root/xorg.conf.newとしたのですが、display はリセットされるのですが 真っ黒のまま何も出てきません。 /var/log/Xorg.0.log にも、エラーらしきものはなく、 動作しているような雰囲気すらあります。 Ctrl+Alt+F1 で console に戻して Ctrl+C で終了させないと復帰できません (Ctrl+Alt+BS も効きません)。
その後、intel ドライバがいけないのかと思い vesa ドライバにしてみたのですが、 多少エラーメッセージのようなものが出るものの、 あまり変化はありませんでした。
この intel chip に X が対応してないのかと思って、 手元にあった Knoppix (Knoppix math 2007, Knoppix 5.3.1/DVD, Knoppix 6.0.1/CD) でそれぞれブートしてみたのですが、 多分これらは vesa ドライバだと思いますが、 表示はされるものの解像度が変だったり、マウスがうまく使えなかったり、 とややおかしな挙動を示しました。
ということで一旦オンボードの Intel G31 Express をあきらめ、 実績のあるビデオボードを入れてみました。 使用したのは、PCI-Express 用の ATI Radeon HD4500 です。 これは、radeon ドライバ、ati (generic) ドライバなどで対応しているようですし、 vesa でもいけそうです (radeonhd も OK ?)。 で、これで上と同じことをやってみたのですが、 やはり状況は変わらず、相変わらず root で
# X -config /root/xorg.conf.newとすると真っ黒のままでした。 モニタを LCD ではなく別のブラウン管のものに変えてみたのですが状況は同じです。 しかし、これは Knoppix ではちゃんと正しく立ち上がります (LCD で 6.0.1 の場合はだめだった)。
ということは、モニタやビデオカード等が悪いのではない、と思い、 一旦作成された xorg.conf.new を /etc/X11/xorg.conf としてコピーし、 root ではなく一般ユーザとして startx してみたら、 なんと X がちゃんと立ち上がりました。 ドライバは ati でも radeon でも vesa でも (radeonhd でも) 問題ありませんでした。
ならば、と思い、この ATI Radeon HD4500 を抜いて、 intel ドライバで startx してみたら、 これもちゃんと X が立ち上がりました。
ということで、原因はよくわかりませんが、 どうやら root で「X -config [config file]」とすることに問題があったようです。 なお、一般ユーザでは「X -config [config file]」とするのは問題があるようで、 指定した config ファイルを見てくれないようです (単にパーミッションの問題だったのかもしれませんが)。 よって、少なくともうちでは以下のような順をたどればよかったようです。
ただ、今のところ、Ctrl+Alt+F1, Ctrl+Alt+F2 等は効くものの、 Ctrl+Alt+BS や Ctrl+Alt+(+|-) が使えていません。
Section "ServerFlags"のようなものは入れてあるのですが、だめなようです (AllowEmptyInput を削ると Ctrl+Alt+F1 等も使えなくなる)。
Option "DontZap" "off"
Option "AllowEmptyInput" "off"
EndSection
FMV-6333T7 には元々 graphics card は AGP バスに Diamond FireGL 1000 Pro (4MB) が入っていたのですが、 それを multihead の Matrox Millennium G450DX/D32AD (AGP) にしてしばらく使っていました (cf. 「XFree86, X.org に関するメモ (08/29 2006)」)。
その後 Vz6000 がだめになってしまったので、 その入っていたハードディスクを急遽 FMV-63333T7 につなぎ直して代用にしたのですが、 その際、FreeBSD 7.0 + X.Org 1.4.0 用に xorg.conf を書き直しました。 ただ、代用なので multihead ではなく singlehead として使ってました (cf. FreeBSD-7.0 + X.org X Server 1.4.0 + Matrox Millennium G450DX/D32AD (AGP) で使用している xorg.conf)。
そのうちに、graphics card を Diamond FireGL 1000 Pro (4MB) に戻そうとしたのですが、これ用のドライバは xf86-video-glint らしく、 それを package install しようとするとうまくいかなかった (既に 7.0-RELEASE 用のものはなく 7.2 用のものを入れようとしたら途中でこけた) ので、 結局 Vz6000 についていた Matrox Millennium G200 8MB (AGP) に変えて、 Vz6000 で使っていた xorg.conf (vesa driver) を今は使用しています (なお、その後 7.0 用の package を持っているサイトを見つけたので、 そこから glint ドライバは取得できました)。
WL2130 の HD の交換に伴い FreeBSD のバージョンを 4.8 から 7.0 に上げて、 X も入れかえました。package から以下のものを入れました。 Video card は、オンボードの SIS630 です。
xorgconfig で Chipset は SIS generic を選択して (SIS 630 のエントリはないよう)、 あとはほぼ前に使用していた XFree86 と同じ設定でやったのですが、 startx が見つからず xinit というパッケージを入れて、 startx してみると今度はフォントがないとか言われて x11-fonts の必要そうなものを一通り入れてやっと X が起動しました。
ちなみに vesa ドライバでも X は立ち上がるようですが、 少し問題もあるように感じましたので、sis 用のドライバで動作させています。
fvwm は、このマシンでは今までは fvwm-1.24 を使っていたのですが、 今回 fvwm-2.4 に入れかえて設定ファイルを変換することにしました。 しかし、fvwm-2.2 から 2.4 への変換ツール (fvwm24_convert) しかついていないようだったので、 fvwm-2.5.14 をインストールした別の FreeBSD マシンに設定ファイルを コピーして、それに付属するもので変換しました。 本来は fvwm-2.4 系にも 1.x から 2.x へ変換するシェルスクリプト (fvwmrc_convert) がついているはずなのですが、 それはインストールしてくれないようです (なぜかマニュアルはインストールされます)。
ところで、何かのタイミングで、キーボードが全く受け付けなくなる現象を 2 度ほど経験しています。マウスは効いているので、 1 度はマウスだけでうまくログアウトできたのですが、 もう 1 度は xdm 環境でログアウトした直後だったので、どうにもできず、 Ctrl-Alt-BS や Ctrl-Alt-Del も効かないので、 別のマシンから remote login してなんとか shutdown できましたが、 それしか対処法がないとすると、 出先に持っていったときにこのようになるのが少し恐く感じています。 X のキーボードドライバの不具合なのか、 私のマシンの問題なのかはわかりません。
VZ-6000 の FreeBSD のバージョンを 4.11 から 7.0 に上げたのですが、それに伴って X を入れ替えようとしたのですが、 package から以下のものを入れてみたのですが、うまくいきませんでした Video card は Matrox Millennium G200 8MB です。
ログ (/var/log/Xorg.0.log) を見ると、いくつか (EE) の箇所があるのですが、 なんとか twm の画面が出るのですが、位置も大きさもずれていて、 xvidtune での調整もまったく効きません。 今まででていた 1280x1024 もまるで出ず、 1152x768 から全く変更できず、しかもスクリーンにも収まっておらず、 少なくとも正常な表示とは言えない形でした。
以前の FreeBSD 4.11 の頃は XFree86 でちゃんと使えていたので、
XFree86 にしようかと思ったのですが、
7.0 用の x11-servers の package には XFree86 のエントリがありません。
これは、/etc/make.conf 内に
インターネットで情報を調べてもはっきりせず、 かなり色々試したのですが、結局 mga ドライバではなく、 generic な vesa ドライバを入れてそれを使うことでうまく行きました (「XF86Config, xorg.conf の設定ファイル」 参照)。 これで 1280x1024 (16bpp) が使えています。 xvidtune は使えないようですが、 Ctrl+Alt+{+,-} による解像度の切り替えはできるようです。
うちの研究室では、現在 fvwm-2.4.19 のマニュアルの日本語訳を やっているのですが、 そこに出てくる「マルチヘッド」(マルチモニタ、マルチディスプレイ、 デュアルヘッドなどとも言われます) や「Xinerama」というものの概念が なんとなくわかるものの実際に触ってみないとよくわからない、 ということで、 夏休みを利用してよそからもらった FMV 6333T7 に FreeBSD-5.5RELEASE と XOrg 6.9.0 をインストールして実験してみましたので、 それをここにまとめておきます。
「マルチヘッド」 は、1 台のマシンに複数のディスプレイがついた状態で、 それは複数のグラフィックカードを差して使うか、 複数のディスプレイアダプタのついたグラフィックカードを使用することで 利用できます。 FreeBSD や XOrg では、 新しいカードを使うよりも少し前のカードで実績のあるものを選ぶ方が 安全で、付属のドキュメントによると Matrox のカードは複数の口があるものも使えそうだったので、 結局以下のカードを使って実験してみました。
最後のカッコ内は X.Org でのドライバ名です。 man glint 等でそのドライバ固有のオプション等が参照できます。 card1 が元々 FMV に入っていた AGP バスのグラフィックカード、 card2 は PC9821Xv13 に元々入っていた PCI 用のカードですが、 今回実験のためにそれを抜いて使用しました。 card3 が今回新たに用意したカードで、 これのみディスプレイアダプタ (Dsub15) の口が 2 つついています。
AGP バスは一つしかありませんので、 今回のマルチヘッドの実験は、
現在の X.Org 6.9.0 はマルチヘッド環境も十分に配慮していて、 よって最初から man xorg.conf には 丁寧にマルチヘッドに関する設定も書かれてありますので 思ったほど苦労はしませんでしたが、 よくわからない不具合などもあり、その調査には時間がかかりました。
まず、card1 (AGP) + card2 (PCI) の場合、 xorg.conf には以下のように書きます (直接関連する部分のみ抜粋):
Section "Monitor"
Identifier "FMV-DP978"
HorizSync 30-70
VertRefresh 50-150
EndSection
Section "Device"
BusID "PCI:1:0:0"
Identifier "Diamond"
Driver "glint"
EndSection
Section "Device"
BusID "PCI:0:14:0"
Identifier "MGA1"
Driver "mga"
VideoRam 2048
Option "NoInt10" "On"
EndSection
Section "Screen"
Identifier "Screen1"
Device "Diamond"
Monitor "FMV-DP978"
# DefaultDepth 8
DefaultDepth 16
Subsection "Display"
Depth 8
Modes "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 16
Modes "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
EndSection
Section "Screen"
Identifier "Screen2"
Device "MGA1"
Monitor "FMV-DP978"
DefaultDepth 8
# DefaultDepth 16
Subsection "Display"
Depth 8
Modes "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 16
Modes "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
EndSection
Section "ServerLayout"
Identifier "Diamond+MGA1"
Screen "Screen1"
Screen "Screen2" RightOf "Screen1"
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
EndSection
もちろん、Mouse1, Keyboard1 もちゃんと定義したものを使いますが、
その記述は省いてあります。
要は、
Device セクションの "BusID" は昔はなかったと思いますが、 マルチヘッドを使う場合はほぼ必須で (シングルヘッドなら省略可)、 PCI や AGP のバス番号を記述することで 物理的にどのバスを使用するかを指定します (AGP でも PCI と書くようです)。 私は、とりあえず簡単な xorg.conf で X を起動させてから /var/log/Xorg.0.log のログを見ると、 X がバスを調べて認識した結果が以下のように記録されていたので それを見て書きました。
(--) PCI: (0:14:0) Matrox Graphics, Inc. MGA 2064W [Millennium] rev 1, Mem @ 0xfecfc000/14, 0xfc800000/23
(--) PCI:*(1:0:0) Texas Instruments TVP4020 [Permedia 2] rev 1, Mem @ 0xfebc0000/17, 0xfd800000/23, 0xfe000000/23
また、MGA1 の Device セクションの "NoInt10" は、 これがないと、一度 X を落した後にもう一回 X を立ち上げたときに X が起動せず固まってしまったので入れてあります (キーボードも効かなくなったので、リモートログインして reboot しました)。 元々 2 枚目のグラフィックカードは、 デフォルトで Int10 モジュールを使って初期化する (ソフトブート) らしいのですが、"NoInt10" を On にすると それをやらないようになります。
ドライバ名の "glint" や "mga" などは、 xorgconfig に吐きださせたものを使っています。 モニタは FMV-DP978 というもので、WWW で検索すると 水平周波数は 30-70 kHz, 垂直周波数 50-150 Hz のようです。
以上の設定で startx すると見事に両者のディスプレイに X の画面が表示されます。 同じものが表示されているわけではなく、 別々のスクリーンと見なされているようです。 Xinerama を使用しないデフォルトの状態では、
次に、ServerFlags セクションに「Option "Xinerama" "On"」 を書いて、Xinerama を使ってみました。 この場合は上と違い、
今度は card3 (G450) 一枚のみのマルチヘッド環境について紹介します。 card3 を card1 と入れかえて AGP バスにとりつけますが、 この場合は、非 X の状態から両方の口から同じデータが出て、 2 つの同じ表示が行われています (いわゆるクローンモード)。 なお、上の card1 (Diamond, AGP) + card2 (MGA, PCI) の場合は、 X 以外の場合は card1 側にしかデータは出ておらず、 card2 側は X 以外の場合はブラックアウトしたままです。
この場合の xorg.conf の設定は以下のようになります。
Section "Monitor"
Identifier "FMV-DP978"
HorizSync 30-70
VertRefresh 50-150
EndSection
Section "Monitor"
Identifier "A702H"
HorizSync 27-96
VertRefresh 50-160
EndSection
Section "Device"
Identifier "G450-1"
Driver "mga"
# Chipset "mgag400"
# ChipRev 0x80
# VideoRam 16384
BusID "PCI:1:0:0"
Screen 0
Option "NoHal" "On"
EndSection
Section "Device"
Identifier "G450-2"
Driver "mga"
# Chipset "mgag400"
# ChipRev 0x80
# VideoRam 16384
BusID "PCI:1:0:0"
Screen 1
Option "NoHal" "On"
EndSection
Section "Screen"
Identifier "Screen1"
Device "G450-1"
Monitor "A702H"
# DefaultDepth 8
DefaultDepth 16
# DefaultDepth 24
Subsection "Display"
Depth 8
Modes "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 16
Modes "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 24
Modes "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
EndSection
Section "Screen"
Identifier "Screen2"
Device "G450-2"
Monitor "FMV-DP978"
# DefaultDepth 8
DefaultDepth 16
# DefaultDepth 24
Subsection "Display"
Depth 8
Modes "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 16
Modes "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 24
Modes "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
EndSection
Section "ServerLayout"
Identifier "G450"
Screen "Screen1"
Screen "Screen2" RightOf "Screen1"
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
EndSection
まずモニタですが、両者を見分けやすいように今度は別のモニタを使用しました。 Screen1 側は飯山電機の A702H を使用しました。
Device セクションですが、 上に少し書いたのですが man xorg.conf を見ると分かるように この Device セクションは「各カード毎に一つ」書くのではなく、 「各ヘッド毎に一つ」書くことになっています。 よって、今回のようにカードに 2 つ口がある場合は、 同じ BusID, 同じ Driver の Device セクションを 2 つ書きます。 もちろん Identifier は別にしますが、それを物理的に分けるのは "Screen" という項目です。 Screen は、カードについている口のそれぞれに 0 番からの番号が振られます。 G450 の場合は、AGP の端子に遠い側 (ネジに近い側) が 0, もう一つが 1 になるようです。
Chipset, ChipRev は、man mga に G450 の場合はこのように記述する、 と書いてあるのですが自動的な検出でもうまくいっているようです。 また Option "NoHal" は、mga_hal ドライバの読み込みを行なわない という命令で、 mga_hal ドライバは Matrox 社から提供されていて ドライバのソース、あるいは Linux 版のバイナリドライバであれば
後の Screen セクション、ServerLayout セクションの記述は前と同じです。 ただし、DefaultDepth が 8 の場合はなぜか X が起動しませんでした。 DefaultDepth が 16, 24 の場合はちゃんと起動します。 また、ServerLayout セクションの Screen2 の方をコメントアウトすれば G450 の Screen 0 (上の Screen1; A702H 側) だけを使うことはできるのですが、 逆に Screen 1 側 (上の Screen2; FMV-DP978 側) のみを使うことはできないようで、 そのように設定すると X が起動しません。 両方のスクリーンの Depth が異なる場合も X がうまく起動しないことがありましたが、 Xinerama なしなら Module セクションで Load "dri" をしておくと起動するようです (ログで DRI の初期化がどうとか出てたため)。 Ctrl+Alt+'+/-' で両者の解像度を異なるものにすることも可能です。 しかし Xinerama を使うようにすると異なる Depth では Load "dri" としても X は起動しませんでした。
Xinerama の動作、環境変数 DISPLAY の値等は、 card1 + card2 の場合と全く同じです。
最後に card3 + card2 の場合ですが、これもほぼ上と同様です。 ただ、Xinerama を使う場合は 3 つの画面が一つになるのですが、 Depth が異なっているとやはり X が起動しません (Xinerama を使わない場合は大丈夫です)。 Depth を揃えると、解像度は違っていてもそれなりに起動します。 card2 の VRAM が小さかったせいで、 Depth 16 では 1024x768 が精一杯だったので、 これでは 3 画面の X 環境にはちょっともの足りないのですが、 実験としては一応感覚を掴むことはできました。
FreeBSD-4.11 のマシンには XFree86-4.4 あたりが入っています。 昔はインストーラで X のインストールのときにサブメニューがあって、 そこでフォントだとか何だとかを選択できるようになっていましたが、 最近はそういうものがないようで、 いわばおまかせ状態でインストールしたように思います。
ところで、先日ある X のクライアントソフト (xdu) を 手動でインストールしようとしたのですが、 ふと imake 環境 (xmkmf) が入っていないことに気がつきました。 これまでは割と XFree86 も手動でインストールすることが多かったのですが、 普通に XFree86 を手動でインストールすると、 必須のファイル群の中に imake 環境は入っているので、 はてどこに入っているのかとだいぶ悩みましたが、 結局 /usr/ports/devel/imake-4 にあることがわかりました (/usr/ports/devel/imake-6 なんてのもありますが こちらは X.Org 用のようです)。 これを入れると XFree86 のソースアーカイブから imake 環境を入れてくれるようです。
個人的には、X を入れるなら imake 環境がインストールされるのはほぼ必須では、 と思うのですが、今ではそういう感覚は古いんでしょうか。
私は今だに NEC PC9821 に FreeBSD (+ XFree86) を入れて使っているのですが、 PC98 (のキーボード) は複数のキーの同時押しの認識が優れていて、 例えば今でも視覚障害者用の点字の 6 点入力ソフトで使われていたりします (MS-DOS 環境の BASE 等)。
しかし、これは MS-DOS 上で特殊な (ハード寄りの) プログラミングをやっているに違いない、と思っていたのですが、 先日ふと X 環境でのキーの同時押しを xev などで確認してみたところ、 PC98 なら X 環境でもキー同時押しの認識ができそうなことが分かりました。 xev で見ていると、キーを同時押しすると、 その押したキーの分だけ KeyPress イベントが続いて起きて、 離すとそのキーの分の KeyRelease イベントが続いて起きるようです。 よって、X で複数のキーの同時押しを取得するには、 まずは次のような方法が考えられます。
しかし、これは KeyRelease が起きて (つまりキーを離して) 初めてキー同時押し集合を認識できるので、 押したときと少しタイミングがずれ、 作成するソフトによっては問題となる場合があります。 それに対して、以下のような方法もあります。
これだと押したときに認識されるのでタイミングのずれはなくなりますが、 最終的な確定まで追加され続けることになるので、 これも作成するソフトによっては問題となる場合があります。 他に、
という方法もありますが、これも KeyPress, KeyRelease のどちらを 手がかりに入手するかで結局上のやり方と同じ問題が起きます。
これらを利用した点字の 6 点入力タイプ練習ソフトの プロトタイプのようなものも作ってみたのですが、 環境が限定されていますので (PC98 + FreeBSD + X)、 今のところ急いで公開できる位まで完成度を上げる作業を行うことは 考えていません (時間があれば少しずつ作業をしたいと思いますが)。
なお、Sun ワークステーション (SS5, Ultra 1, Blade150) + Solaris や、 非 PC98 の FreeBSD 上で同様のものを試してみましたが、 その場合は 3 キー位の同時押しなら認識できるのですが、 4 キー以上になると上手くいきません (KeyPress の蓄積も、XQueryKeymap() も)。 同時でなくじわっと押し重ねるなら 6 キー位も認識できたりするのですが、 それでは 6 点入力には意味がなさそうです。
今や、PC98 + FreeBSD + X など使っている人はほとんどいなさそうですが、 そんな点 (だけ ?) に関しては、 他にはない良い面があると言えそうです。
FMV-5166 に以前 FreeBSD 4.9 + XFree86-3.4 を入れたときの XF86Config を公開し忘れていましたので公開しました (cf. 「使用している XF86Config, xorg.conf, kernel の設定ファイル」。 また、今回このマシンを FreeBSD-5.4 + X.Org-6.8.2 に上げたので、 その config ファイル (xorg.conf) も公開しました。
「その他のメモ (10/30 2005)」 にも書きましたが、FreeBSD 4.9 では
pci0: <ATI Mach64-GU graphics accelerator> at 8.0 irq 9と出ていたのですが、5.4 では
pci0: <display, VGA> at device 8.0 (no driver attached)のようになってしまったので X もうまくいかないかと心配しましたが、 xorgconfig で ATI Mach64 を選択して Video RAM を 2048KB に設定して 立ち上げたら従来通りちゃんと 1280x1024 で立ち上がりました。
モニタ (FMV-DP978) は WWW で検索すると水平周波数 30-70kHz のようだったので、
1280x1024x60 (31.5-64.3kHz)辺りを選んでおきました。
50-70Hz
(cf. 「その他のメモ (10/30 2005)」)
普段主に使用している PC (PC9821Xs) を FreeBSD (98) 2.2.8R から FreeBSD(98) 4.7R に入れ換えて、 X はそのまま前の FreeBSD 2.X 用のもの (XFree86-3.3.3 for FreeBSD 2.2) を使用していたのですが (cf. 「XFree86 に関するメモ (11/22 2004)」)、 この状態では X のソフトをコンパイルできないことに気がつきました。 FreeBSD 4.X はバイナリは ELF ですが、FreeBSD 2.X は AOUT 形式なので コンパイラの生成するコードが X のライブラリと合わないことが原因です。
XFree86 4.X は 98 用のものはないようなので XFree86 3.X を探して、 XFree86-3.3.6 の FreeBSD 3.x 用のものを入れました。 FreeBSD 4.x 用のものはなさそうでしたが、 FreeBSD 3.x は ELF なんでとりあえずそれで間に合わせています。
XF86Config ファイルは、 前のものと見比べたところうちの環境に関係する違いはなかったようなので XFree86-3.3.3 用のものをそのまま使っています。 また、前に FreeBSD 2.2.8 でコンパイルした X のソフトが まだたくさんありますので、 XFree86-3.3.3 も /usr/local/XFree86-3.3.3/X11R6 のようなディレクトリに 残してあり、/etc/rc.conf 内で
ldconfig_paths_aout="$ldconfig_paths_aout /usr/local/XFree86-3.3.3/X11R6/lib"
のようにしていて、これでとりあえず古いものも動いていますし、
新しくコンパイルした X のソフトも動いているようです。
普段主に使用している PC (PC9821Xs) を FreeBSD (98) 2.2.8R から FreeBSD(98) 4.7R に入れ換えたのですが (cf. 「カーネルの設定に関するメモ (11/22 2004)」) FreeBSD(98) 4.7R 用の XFree86 には、 今までのような NEC PC98 用のサーバがあるかどうか分かりませんでしたので、 今まで 2.2.8 で使用していた XFree86 を使用しています。 今のところはとりあえずは問題なく今まで通り使えているようです。 ただし、ldconfig は /etc/rc.conf 内で
ldconfig_paths_aout="$ldconfig_paths_aout /usr/X11R6/lib"
のようなものを追加しています。
SOTEC の note PC 用に USB マウスを一つ買って来ました。 マウスはマウスデーモン (moused) を使っています。 FreeBSD が立ち上がった後につないでも使えませんが reboot すると使えるようになります。 タッチパッドと同時に使えるのですが、ps -axw で見てみると 2 つ moused が立ち上がっているようです (最初の方がマウス)。
% ps -axw | grep moused
85 ?? Is 0:00.07 /usr/sbin/moused -p /dev/ums0 -I /var/run/moused.ums0.pid
117 ?? Is 0:00.00 moused -p /dev/psm0 -t auto
また、外部ディスプレイ端子と LCD は通常同じ出力が出ているようで、
同時に同じ解像度で表示されます。
外部ディスプレイの方が高い解像度をサポートしているので、
外部ディスプレイだけに出力するように色々試してみたのですが
どうもうまくいきません。
MS-Windows Xp では Fn+F5 で外部のみと LCD のみ、同時出力の 3 種類が
ちゃんと切り替わるし高解像度出力もできるのですが、
X では Fn+F5 では画面が黒くなるだけ (Ctrl+Alt+'+' で復帰可能) で
どうもうまくいきません。
色々調べて、Option "external"、Option "extern_disp" といったキーワードを見つけて、 XF86Config に書いてみたのですがどうもうまくいきません。 /var/log/XFree86.0.log を見ても
(WW) SIS(0): Option "external" is not used
(WW) SIS(0): Option "extern_disp" is not used
と無視されているようです。
/usr/X11R6/lib/X11/doc/ の文書を見てもそういうキーワードは
見当たらないので、option 名が変わったのでしょうか。
SOTEC の note PC WL2130 に FreeBSD 4.7 + XFree86 4.2.1 をインストールしました。
X のセットアップ時には、 フルグラフィックモードでのセットアップを選択すると 画面が真っ白になってしまいましたが、 とりあえず Ctrl-Alt-BS で元に戻せたのでその後テキストモードで続けました。 ディスプレイの数値等もよくわからなかったので、適当な値 (card: Sis630; Hsync: 31.5-48.5, Vsync: 50-70, depth: 24bits, mode: 1024x768) で設定しましたが、今のところ特に問題なく使えています (cf. wlnote/421/XF86Config-wl-20030218)。 できれば 1152x864 位出て欲しいのですが、それはだめなようです。
マウスはタッチパッドで、とりあえずは使えますが、 小さいマウスを一つ買った方が使いやすそうです。
(cf. 「カーネルの設定メモ (02/18 2003)」)
PC9821Xv13の OS を FreeBSD(98)3.5.1R-Rev01 から FreeBSD(98)4.5R-Rev01 に入れ換えましたが、 XFree86 のバージョンは全く同じ (3.3.6) なので、 前の物をそのまま使っています。特に問題は無いようです。
以前 Vz-6000 + FreeBSD-3.5 + XFree86-3.3.6 の定義ファイルを 「XF86Config の設定ファイルの節」 に置いていましたが、 キー定義を修正したのを書き忘れていました。 xv-vz/336/XF86Config-vz6k-20020211 に書いてあるように
XkbModel "jp106"
XkbLayout "jp"
という設定で使っています
(私は実際はさらに xmodmap を利用して PC98 のキー配置で使っています)。
Xs + 飯山 MF-8615B (15inch) で XF86Config を調整して、 1152x864 (16bpp) を出せるようにしました。 今までも 8bpp では 1280x1024 が出ていましたが、16bpp では Video RAM が 2MB しかないので 1024x768 しか出ていませんでした。 ただし、Xp 同様、16bpp は立ち上がり時はうまく出ませんので Ctrl+Graph+{+/-} で切り替えています。
Xp + PC KM152 (15inch) で XF86Config を調整して、1152x864 (16bpp) を 出せるようにしました。 ただ、1152x864 は少し設定をだましているのでやや危険です。 本当はディスプレイは HorizSync の値は 24.8-62kHz なのですが、 これでは 1152x864@70Hz が立ち上がらないので、HoriSinc の値を 24.8-63 のように設定しています。 また、1152x864 は最初はうまく立ち上がらないので、デフォルトでは 1024x768 が立ち上がるようにしていて、それを Ctrl+Graph+{+/-} で 切り替えています。
また、8bpp では、1024x768 もちゃんと立ち上がるのですが、 16bpp ではきれいには立ち上がりません。 よってこれも Ctrl+Graph+{+/-} で切り替えています。 切り替えるとちゃんと出ます。
Xv13, VZ6000 ともに、現在はディスプレイは飯山電機の A702H (1600x1200; 17inch) を使用しています。そして、いずれも 1600x1200 まで出すことができました。ただし、
なお、XF86Config.98 には 1600x1200 や 1152x864 のエントリは ありませんが、それは VZ6000 の方にあったものから持って来ました。 startx のログに DotClock の最高値が残るので、それを元に 動作可能なエントリを探し、それがうまく立ち上がれば、 後は xvidtune で微調整し、それを XF86Config に書き戻す、 ということを行いました。
ただ、1600x1200 は 17inch のディスプレイではややつらいので、 通常は 1280x1024 で立ち上がるように設定してあります。
Xv13 で、1280x1024 の表示枠がやや狭かったので、 XF86Config でなく、ディスプレイの方の設定メニューで 枠を広げてしまいました。 このときは本体に最初についていたディスプレイ NEC PC-KM173R (1280x1024; 17inch) を使用していました。X を落としてからも、 キャラクタ画面が広がったままだったので変に感じていたのですが、 次回の電源投入時にディスプレイが壊れてしまいました。 X の設定は慎重を期さないといけないようです。
Xv13 は、マニュアルにはグラフィックボード上に 4MB のメモリを 積んでいるように書いてありますが、4MB と設定するとうまくいかず、 Cards98 にあるように 2MB と設定する必要があるようです。
EPSON 586RA は X の test をしていてハングアップしてリセットが かかることがありますが、その後メモリチェック後 うまく立ち上がらなくなります。 そうなると電源をいったん落として再立ち上げする必要があるようです。
EPSON 586RA が持っているグラフィックビデオボードは PCSKB5 (S3-964) ですが、現在 (も過去も) XFree86 は対応していません。 EGC サーバもだめのようです。 よって、X のインストールはしましたが、X のサーバは立ち上げて いません。ネットワーク経由で X のクライアントを利用するのみです。 ディスプレイ CR-4700 は EPSON 純正の 14 inch のものですが、 MS-Windows 3.1 では 1280x1024 まで出ていましたので、 X が動くことを期待しているのですが...
SOTEC の note PC WL2130 の HD が だいぶ手狭になってきたので、HD を交換して、 FreeBSD 7.0 をインストールしました。 ただ、FreeBSD 以外の点でだいぶ苦労しましたので、 備忘録代わりにここに記録しておきます。
HD を取り外したりつけたりするのは、それほど苦労はしませんでした。 以下を参考にしました。
使用した HD は、I-O DATA の HDN-120H5 で、 物はタイ製の HITACHI HTS541612J9AT00 (120GB, 5400rpm) でした。 今まで入っていた HD (FUJITSU MHS2020AT; 20GB, 4200rpm) は、 9GB を MS-Windows XP, 9GB を FreeBSD (4.8) に分けて使っていたので、
まずは FreeBSD の領域のバックアップを取りました。 実は USB 接続の HDD (I-O DATA HDP-U160S; 160GB) がつないであり、 全領域を MS-Windows XP のデータ領域 (FAT32) として使っていたので、 それをマウントしてそこに置くことを考えました。 以下のように一応は認識はされているようでした。
umass0: I-O DATA HDP-U , rev 2.00/7.39, addr 2
....
da0 at umass-sim0 bus 0 target 0 lun 0
da0: <I-O DATA HDP-U 7.39> Fixed Direct Access SCSI-0 device
da0: 650KB/s transfers
da0: 152627MB (312581808 512 byte sectors: 64H 32S/T 21555C)
しかし、mount_msdos, mount_ntfs を試してみたのですが、
どうもうまくマウントができませんでした。
仕方がないので、ネットワーク経由で別のマシンの HD にコピーしました。
次に MS-Windows 領域のバックアップにとりかかりました。 これは HD 付属のソフト (HD 革命/Back Up version 6.0.3) を使用しましたが、 それによると、HD を取り替えた後で MS-Windows をブートして バックアップデータをリストアするのに 以下の 2 種類の方法があるようでした。
ところが、そのフロッピーによるブートが全然うまくいきません。 6 枚目のフロッピーで MS-Windows が立ち上がりかけるのですが、 その後「STOP 0x0000007B」のようなメッセージが出てしまいます。 調べてみてもよくわかりませんでした。
ということで、後者の CD-R の方で 1 枚目だけ書いて試してみたら なんとかブートしたので、そちらでやることにしました。 ただし、1 枚目だけ書いて、残りをキャンセルしようとしたら ハングアップしてしまったので (Ctrl-Alt-Delete でも落ちない)、 強制的に電源を OFF しなければいけませんでした (次回のブート時に HD の chkdsk が行われてしまいました)。
引き続き 11 枚のバックアップを始めましたが、 2 倍速位の古いディスクで check も行うモードにしたら、 一通りバックアップをした後で、 また 1 枚ずつ入れてディスクのチェックをしたので、 えらく時間がかかってしまいました。 しかも、11 枚目のチェックが終わった後でまたハングアップして 何も効かなくなってしまいました。 電源 OFF にして今までの HD で MS-Windows を立ち上げたら、 今度は MS-Windows のシステムディレクトリ (C:\WINDOWS\SYSTEM32\WINDOWS\CONFIG\SYSTEM) がないとか言われ、 ブートできなくなってしまいました。 どうやら HD が一部やられてしまったようですが、 それが HD に問題があったのか、 ハングアップするソフトに問題があったのかはよくわかりません。 とりあえず、CD-R は書けているので、 もうそれで HD にリストアするしかありません。
とりあえず新しい HD に交換して、CD-R からブートしてリストアしました。 これは何とかできたのですが、 しかしリストアした後でその HD からのブートはしないようでした。 ということで、note PC についてきた MS-Windows リカバリ CD で 一旦新しい HD に MS-Windows をリカバリしてみたのですが、 その後でブートしようとしてもやはりうまくいきませんでした。 リカバリ CD に、HD を半分に分割してリカバリする、 というメニューがあり、それでリカバリしてみたらやっとブートしました。
それでもう一度 CD-R からブートしてリストアしたら、 check のときに 3 枚目位で 1 箇所エラーみたいなものがでました。 けど、とりあえず最後まで進んだら、 また 1 枚目の挿入をうながされて何かエンドレスにやらされそうになったので (ここまでも恐しく時間がかかっている)、 1 枚目の作業が済んだところで強制的に終了しました。
これでなんとか MS-Windows がブートするようになったのですが、 HD の C: ドライブが 9GB (元の HD と同じ) で、 HD の未使用領域が HD の後半の 55GB しか表示されず、 リカバリ CD で分けたはずの前半の 55GB - 9GB の部分が 認識されていませんでした。 これは、HD 付属のツール (HD 革命/Partition Lite) で なんとか復帰/修正できました。 結局、MS-Windows の C: ドライブと未使用領域 (FreeBSD を入れる場所) を ほぼ等分で 55GB ずつくらいに分けました。
FreeBSD 7.0 のインストールはほぼ無難に済みました。 しかし Boot Manager の選択で、つい今までの癖で 2 番目のもの (Standard MBR) を選択してしまって、 ブートさせたら FreeBSD しか立ち上がらなくなってしまいました。 正しくは先頭の FreeBSD のブートマネージャを 選択しなければいけなかったようです。 よって、
# boot0cfg -B /dev/ad0で後からブートマネージャを入れて、 ちゃんと OS 別にブートできるようになりました。
FreeBSD を USB の外付け HD をつないでブートしてみたら、 4.8 のときは問題なかった (マウントはできなかったけど認識はしたし、 問題なくブートした) のですが、 今回は panic してしまいました。 まあ、全部を MS-Windows 領域として使っているものなので、 FreeBSD を立ち上げるときは外すことにしました。
この他にも、多少前の環境を復帰するのに少しずつ苦労している点がありますが、 それはまた別の機会にまとめます。 カーネルの再構築はまだやっていません。
VZ-6000 の FreeBSD のバージョンを 4.11 から 7.0 に上げたのですが、それに伴って気がついたことをいくつか上げます。
ftp://ftp3.jp.freebsd.org/pub/FreeBSD/releases/i386のように書くといいようです。
FreeBSD-4.11 の上で新しい gdlib (gd-2.0.35)、GD.pm (GD-2.35) をコンパイルしたときの問題について紹介します。
Solaris 9 の上では特に問題なかったので、 FreeBSD でも同じようにコンパイルしたのですが、 gdlib をインストールして、GD.pm の test をやったときに問題がでました。
% make test
...
t/GD..........Can't load './blib/arch/auto/GD/GD.so' for module GD:
./blib/arch/auto/GD/GD.so: Undefined symbol "pthread_mutex_lock"
at /XXX/lib/perl5/5.8.6/i386-freebsd/DynaLoader.pm line 230.
at t/GD.t line 14
Compilation failed in require at t/GD.t line 14.
BEGIN failed--compilation aborted at t/GD.t line 14.
...
のように言われます。
この pthread_mutex_lock なんですが、gdlib では gdhelpers.h 内で以下のように定義されています:
#ifdef WIN32
/* 2.0.18: must include windows.h to get CRITICAL_SECTION. */
...
#else
#ifdef HAVE_PTHREAD
#include <pthread.h>
#define gdMutexDeclare(x) pthread_mutex_t x
#define gdMutexSetup(x) pthread_mutex_init(&x, 0)
#define gdMutexShutdown(x) pthread_mutex_destroy(&x)
#define gdMutexLock(x) pthread_mutex_lock(&x)
#define gdMutexUnlock(x) pthread_mutex_unlock(&x)
#else
...
HAVE_PTHREAD は configure 時に確かに -pthread が使えると認識されていて
config.h 内で 1 に定義されています。
そして、Makefile では以下のようになっています:
PTHREAD_CC = gcc
PTHREAD_CFLAGS = -D_THREAD_SAFE -pthread
PTHREAD_LIBS =
ということで、取るべき道は、次のいずれかだろうと考えました。
もちろん、
それに、この pthread_mutex_*() が含まれるライブラリですが、 "libpthread" のようなものはなく、 どうやら /usr/lib/libc_r.a と /usr/X11R6/lib/libX11.a 辺りに pthread_mutex_*() が含まれているようでした。 libX11 を X の関係ないプログラムにリンクするのも何ですので、 まず libc_r.a を試してみました。
以前 FreeBSD 5.4 の場合に、やはり同様の問題で -lc_r で逃げたことがある (「その他のメモ (09/23 2006)」 参照) のですが、 一応 gdlib に fontsizetest.c なるテストプログラムが付属しているので、 これを -lc_r をつけてコンパイルしてみました。 すると、何やら妙な warning がでました:
/usr/lib/libc.so: WARNING! setkey(3) not present in the system!
/usr/lib/libc.so: warning: this program uses gets(), which is unsafe.
/usr/lib/libc.so: warning: mktemp() possibly used unsafely; consider
using mkstemp()
...
libc_r は libc と相性でも悪いのでしょうか。
それに Makefile をよく見てみると、 PTHREAD_* という定義はされているのですが、 しかし実際にはどこにも使われていないようで "PTHREAD_LIB = -lc_r" としても何も変わりません。 となると Makefile の方でも、 実際には PTHREAD の対応はしていないということになりますから、 使わない方がいいのかもしれません。
ということで、結局 config.h を直接書き換えて HAVE_PTHREAD の行をコメントアウトして gdlib を作り直すことにしました。 これも、最初は Makefile の CFLAGS に -UHAVE_PTHREAD を入れてみたのですが、config.h を書き直さないとだめなようでした。 とりあえずこれで、GD.pm の make test も問題なく通るようになりました。
CVS 版 gnuplot の wxt terminal のテストをするために、 VZ-3000 の FreeBSD 5.4 (X.Org 6.8.2) に 新しい gtk+-2.8.20, glib-2.8.6, cairo-1.0.2, pango-1.10.4 を手動で入れて (gnuplot-current の wxt terminal は cairo-0.9.0 以上、pango-1.10.3 以上 を要求するので、ports のものだと間に合いません)、 wxWidget (wxGTK) 2.6.3 をインストールしてコンパイルしたのですが、 実行時に一瞬ウィンドウは立ち上がるのですが、 すぐに segmentation fault で core dump してしまいました。
gdb で見てみると、
#0 0x28fa131b in pthread_testcancel () from /usr/lib/libpthread.so.1と出ています。 pthread は libgthread-2.0.so が必要としているようですが、 gnuplot の make 時に gcc に -pthread オプションが使用されて それがリンクされているようでした。 その -pthread オプションを man gcc で調べてみると、
FreeBSD SPECIFIC OPTIONS
-pthread
Link a user-threaded process against libc_r instead of libc.
と書かれています。
しかし ldd で調べてみると libc_r は引いていないみたいなので、
Makefile の "-pthread" を "-pthread -lc_r" と
書き変えてみたところ、
とりあえず落ちないものが作成されました。
ただし、これが正しい対処なのかどうなのかは、まるでわかりません。
いくつかの FreeBSD のマシンでは /stand/sysinstall で package ソフトを インストールすることもあり、先日それをやったのですが、 その際ダウンロードサイトを単純にリストの一覧の中の "ftp3.jp.freebsd.org" から選んだのですが、 そうすると、(http プロクシ経由のためか) 1 つのパッケージをダウンロードする度に ftp を接続し直していて、 しかも、ディレクトリを
pub/FreeBSD/5.4-RELEASEのように探していって、 正解の pub/FreeBSD/releases/i386/5.4-RELEASE にたどりつくまでに だいぶ時間がかかるので (各パッケージ毎にこれが起こる)、 package の因果関係まで含めるといくつかのソフトをインストールするのに かなり時間 (と無駄なネットワークアクセス) がかかってしまいます。
pub/FreeBSD/snapshot/5.4-RELEASE
....
よってあらかじめ接続サイトのディレクトリを確認しておいた上で、 「リストにない ftp サイトを指定」のところで直接
ftp://ftp3.jp.freebsd.org/pub/FreeBSD/releases/i386のように指定する方がいいようです。
PC9821Xs の HD を交換する際に、 FreeBSD 5.5-RELEASE (pc98) をインストールしようと思ったのですが、 フロッピーの読み込みと、デーモン君の画面まではいくのですが、 その先に進もうとしたらリセットがかかってしまい、 結局うまくインストールできませんでした。 よって、FreeBSD (98) 4.11R-Rev01 をインストールしておきました。
現在、ノートパソコン は プライベートアドレスでメインで使用している PC (FreeBSD) につないであって、 FreeBSD と MS-Windows XP が入っているのですが、 たまに Word や Excel のファイル (たいていはメールの添付ファイル) を印刷しなければいけないときに 以下のような作業に使っていました。
この手順は面倒なので、 ftp の手順等を多少バッチ処理化したりはしていたのですが、 ノート PC の MS-Windows XP からメインの PC のプリンタに 直接印刷できることがわかり、これで少しは楽になりました。 設定はそう面倒ではありませんでした (以下、メインの PC のホストを仮に freebsd, ノート PC の MS-Windows 側を winxp とします)。
これの後で、freebsd 側の lpd を -W をつけて再立ち上げしたら、 ちゃんと winxp 側から印刷できるようになりました (実際には多少試行錯誤を繰り返しました)。
卒研で必要になったこともあり、PC9821Xp を復活させて、 OS も FreeBSD(98) 4.11R に入れ替えました。 X はあいかわらず FreeBSD 3.X 用の XFree86(98)-3.3.6 を使いましたが、 最近の FreeBSD パッケージは XFree86-4.X のライブラリに依存しているので たいていだめです。 98 で 4.X のサーバは動かないんでしょうか。
「その他のメモ (2003/07/10)」, 「その他のメモ (2003/07/11)」 に書いたスキャナの件ですが、現在はそれを使っているマシンの OS を FreeBSD 4.7 にしたため (以前は FreeBSD 2.2.8)、 sane-backends-1.0.16 をコンパイルし直して /dev/pass2 を指定して で使えるようになりました。 sane-frontends や xsane はまだ入れていませんが、 取りあえず scanimage が使えるのでこれでしばらくは良しとします。
なお、このマシンには FreeBSD 2.2.8 時代にインストールしたソフトが たくさん入っているのですが、新しいソフトをコンパイルすると、 それが必要とする shared library が a.out 形式でコンパイルされていて 使えず、それらをまた全て再コンパイルしてからでないと インストールできなくなっていて、マシン速度が遅いこともあって (Intel i486-66MHz (^^;)) 結構大変です。
以前学生に FMV-5166 に FreeBSD 4.9 をインストールしてもらったのですが (cf. 「その他のメモ (09/10 2004)」)、 PCI 用のイーサネットボード (1000BASE-T) Buffalo LGY-PCI-GT を差したら 認識してくれませんでした。
情報をいくつか検索してみたのですが、FreeBSD 4.X 系列では 4.10 でもだめ、 5.2.X ならいけた、ということだったので、 いっそ OS を 5.4 に上げました。 これでちゃんと認識して使えるようになってくれましたが、 しかし今度は今まで認識されていたグラフィックカードの認識が 悪くなったようで、今までは dmesg には
pci0: <ATI Mach64-GU graphics accelerator> at 8.0 irq 9と出ていたのですが、5.4 では
pci0: <display, VGA> at device 8.0 (no driver attached)のようになってしまいました。 しかし、X が使えなくなったわけではなく、 今まで通り使えるので特に問題はなさそうです (cf.「XFree86, X.org に関するメモ (10/30 2005)」 )
普段利用しているマシンを、FreeBSD 2.2.8 から FreeBSD 4.7 に 移行したのですが、そのためか色々変化が出ました。
「その他のメモ (2004/10/09)」 および 「その他のメモ (2004/10/05)」 に書いた gnuserv-3.12.6 の問題ですが、 gnuserv-3.12.7 が公開されました。 これはちゃんと configure で対処され、 HAVE_SOCKADDR_SUN_LEN が config.h で 1 となり、 特に何もしなくてもちゃんと動くものができました。 よって下のパッチは不要です。
「その他のメモ (2004/10/05)」 に書いた gnuserv-3.12.6 の問題ですが、 作者からメールが来て、 FreeBSD ユーザーからは 2 度目の報告で これはバグではなく HAVE_SOCKADDR_SUN_LEN を定義して コンパイルしてみて欲しい、と言われました。 確かに
make 'CFLAGS = -g -O2 -DHAVE_SOCKADDR_SUN_LEN'
で、パッチ無しでもちゃんと動くもの (gnuserv) ができました。
作者によると、それでうまくいくなら、 次の版では configure で適切にそれが定義されるように 修正してくれるそうです。
FreeBSD 2.2.8 + mule2.3@emacs-19.34-alpha01 に gnuserv-3.12.6 を 入れてみたのですが、 gnuserv が /tmp に作るパイプファイルは本来
/tmp/gsrvdir[pid]/gsrv
となるはずなのですが、それが
/tmp/gsrvdir[pid]/gsr
になっていて、
そのために gnuclient が "No such file or directory"
でこけていました。以下のパッチで改善されるようです。
一応作者にも報告しておきました。
(cf. 「その他のメモ (10/20 2004)」)
「その他のメモ (2004/09/10)」 に書いた FMV の FreeBSD なんですが、何か time コマンド付近が不安定で、
/usr/bin/time awk 'BEGIN{for(j=0;j<=100000;j++) j*j}'
1.09 real 0.00 user 1.09 sys
/usr/bin/time awk 'BEGIN{for(j=0;j<=1000000;j++) j*j}'
10.77 real 0.00 user 10.77 sys
のようになって user 時間が表示されてません (sys が user になってる ?)。
shell built-in の time や GNU time も同様ですし、
もっと長くかかるプログラムでも
% /usr/local/bin/time -p [program]
real 623.19
user 0.00
sys 621.96
のように表示されました (/usr/local/bin/time は GNU time)。
reboot すると復旧する事もありますが、うまくいかない事の方が多いようです。
古いマシンなので何かのハード的な障害なのかも知れません。
学生に、計算機実習室のお古の FMV に FreeBSD をインストールを やってもらいました。 つまずいたのは boot マネージャの選択位で、 後はすんなりだったようです。 X の設定も楽に済んだようで、17inch のやや小さいディスプレイですが、 一応 1280x1024 の解像度が使えています (デフォルトでは 1152x864 はだめ、1152x768 は真ん中が膨らんでました)。 まだカーネルの再構築まではやっていません。
「その他のメモ (2003/07/10)」 に書いた xscanimage の件ですが、デバイス名をちゃんと指定して
% xscanimage epson:/dev/uk0
としたらちゃんと動きました。また、scanimage も、
一応設定ファイル etc/epson.conf に /dev/uk0 を追加したのですが
デバイス名を指定せずに立ち上げると core dump することがあり、
その場合デバイス名を指定して
% scanimage -d epson:/dev/uk0 > file.pnm
のようにすると大丈夫でした。
これらの問題は、etc/dll.conf で不要なエントリを
すべてコメントアウトすることで解消されました。
サポートされていないデバイスに対するエントリが含まれていたための
問題だったようです。
また、xsane は locale に関するエラーが表示されていたので、 -lcrypt -lxpg4 をつけて再コンパイルしたら動くようになりました。
最近 EPSON の中古の SCSI スキャナ (GT-8700) を手に入れました。 (「使用環境: PC9821Xs」 参照)。 それ用にと思って sane の新しいもの (sane-backends-1.0.11, sane-frontends-1.0.11, xsane-0.91) をコンパイル + インストールしたのですが、 どうもうまく動きませんでした。 sane-find-scanner はちゃんと scanner を認識してくれるのですが scanimage, xscanimage 等はだめです。 これはどうやら FreeBSD 2.2.8 で使っているからのようです。
FreeBSD 3.X 以降では scanner 等への対応が多少なされたようで、 デバイス /dev/pass? と /dev/xpt? が用意されているらしいのですが、 FreeBSD 2.2.8 にはそれらはなく、/dev/uk0 (= unknown device) を使用するようです。 ところが新しい sane はソースを見ると /dev/xpt? を使うように 書かれているようで、それが原因のようです。
これは sane を少し前の物 (sane-1.0.3) にバージョンを落とすことで解決し、 何とか使えるようになりました。 ただ、xscanimage は core dump しますし、xsane もだめなようで、 コマンドライン版の scanimage しか使えません (もちろんそれで十分です)。
新しい GNU awk (3.1.1) では、multibyte 機能が本家に入っているようです (by Isamu Hasegawa) が、 それは OS が locale 周りにそれに必要な関数を持っているかどうかと 関係があるらしく、 私が普段使っている FreeBSD 2.2.8 辺りではどうもその機能は 有効にはならないようです。 (Solaris なんかも 2.6 ではダメで 7 以降が必要そう)。 AWK は日常最も良く使うソフトの一つなので、 ちょっとだけ OS を version up したくなってきました。
普段利用している 9821Xs に dclock (デジタルクロック; Dclock-pl6) をインストールしてみたのですが、 fvwm (fvwm-1.24r) 上ではその上のマウスによる focus が効かず、 キーボードによるアラームセットやオプションの切り替えなどが できませんでした (fvwm も dclock も ports や package からは 入れてませんのでもしかしたらそのせいかも知れません)。
調べてみると以下のようなパッチで対処可能らしいことが分かりました。
ところが、私が普段利用している 9821Xs の FreeBSD(98)2.2.8R + XFree86(98)-3.3.3 (+ fvwm 1.24r) では、 このパッチでも解消しませんし新しい dclock (v2.1) でもうまくいきません。 twm ではちゃんと動くので同じ問題だと思いますし、 新しい方の FreeBSD 4.5R + XFree86-3.3.6 ではちゃんとこのパッチで 問題なく動くようになりました。 その辺の挙動を比較しながら色々調べてみたのですが、 XFree86-3.3.3 のライブラリ辺りにバグがあるのかもしれません。 まあ、こんな古い環境を使っている方が悪いんでしょうが (^^;
今日、普段使用している 9821Xs のマシンが落ちて、 X が動かなくなりました。最初はディスプレイを疑ったのですが、 色々調べてみるとどうも本体のグラフィックボードに問題があるようで、 X の起動時のログが、通常は
(**) S3: chipset driver: s3_generic (**) S3: Option "necwab" (--) S3: card type: 386/486 localbus (--) S3: videoram: 2048k (--) S3: Detected an S3 SDAC 86C716 RAMDAC and programmable clock (**) S3: Ramdac type: s3_sdac (--) S3: Ramdac speed: 135 MHz (**) S3: Using S3 Gendac/SDAC programmable clock (MCLK 61.568 MHz)であるのが、
(**) S3: chipset driver: s3_generic (**) S3: Option "necwab" (--) S3: card type: 386/486 localbus (--) S3: videoram: 2048k WARNING: Did not detect a ramdac of type "s3_sdac" as specified! (**) S3: Ramdac type: s3_sdac (--) S3: Ramdac speed: 135 MHz (**) S3: Using S3 Gendac/SDAC programmable clock (MCLK 61.568 MHz)のようになっていました。 Ramdac に何らかの支障が出たようで、これには全くお手上げです。 もしかして部屋が暑かった事などが影響しているのでしょうか (今日からクーラーをなるべく使うようにします <(_ _)>)。
ただ、たまたま現在 Xs が 3 台自由に使える状態にあるので、 そのうち一台とディスク、メモリ、C Bus ボード類を入れ換えて (所要 40 分程度) 復帰しました。 しかもこの Xs はほとんど使ってなかったようで、 ホコリ等もほとんど溜っておらずしばらくは充分に使えそうです。 ついでにいろいろ拡張しても良かったのですが とりあえず元の状態と同じ状態に戻しただけです。
現在、年度変わりに合わせて研究室の計算機、プリンタ、ハードディスクなどの 整理を行なっていて環境が少しずつ変わっています。 カーネルや X の定義ファイル自身はそう変えずに整理を行なう予定ですが、 余裕があれば (なさそうですが) OS のバージョンアップもそろそろ行っても いいかなと考えています。
「その他のメモ (09/06 2000)」に書いた、 kerberos で上書きされるファイルのリストですが、 /usr/lib/libtelnet_p.a は、「kerberos で追加」ではなく、 「proflibs.?? のものを kerberos が上書き」されることが わかりました。よってこれも戻してやりました。
また、2.2.8R の方では
/usr/include/telnet.h /usr/lib/libtelnet.so.3.0の 2 つは消した方が無難なようなので消しました。
4 台の FreeBSD マシンを NIS のクライアントにしてパスワードを 共有することも一応うまく行きました。NIS のサーバマシンは Solaris 2.6 です。ホームディレクトリは共有せず、ローカルの NIS クライアント側に持つようにしています。 つまり、パスワードのみの共有です。クライアント側でやったことは
hoge:$1$XXXXXX:1003:2000::0:0:FullName:/home/hoge:/usr/local/bin/tcsh
を、UID とパスワード (と GCOS field) のみ NISで参照するように
+hoge:::2000::0:0::/home/hoge:/usr/local/bin/tcsh
と変えます。GID はローカルとサーバ側で共有はしていません。
なお、ypbind の前に portmap が立ち上がっている必要があります。 1 台、portmap を disable にしていたマシンがあり、ちょっとした 作業にいちいち数分ずつ位待たされて、気がつくのにも 時間がかかったため復旧にかなり手間取りました。
4 台の FreeBSD マシン (上の 2 ~ 5) を NIS client にして、 Solaris 2.6 のマシンのパスワードを共有しようと、 DES をインストールしました (international 版)。 しかし、そのとき kerberos も一緒にインストールしたのですが、 それによりいくつかのバイナリファイル、ライブラリが置き換わって しまい、不具合が生じました。たとえば FreeBSD 3.5R の方では passwd コマンドが使えなくなりました。
よって、何が置き換わったのかをチェックして kerberos を アンインストールしました。
以下に、どのファイルが置き換わってしまうかを上げます。 オンラインマニュアルファイルは除きます。
よって、bin.?? を展開し、そこから必要なものを元に戻していけば いいのですが、
# mkdir tmpdir
# cat $dist/bin.?? | /usr/bin/tar --unlink -xpvzf - -C tmpdir
のようにします。でないと /etc などのファイルがインストール時の
状態に戻ってしまう恐れがあります。
(cf. 「その他のメモ (09/07 2000)」)
どうやら、PC9821Xs (X-MATE 内蔵 PCM 音源: mss0) の、 上にあげた環境では、Linux 用の RealPlayer 5.0 を Linux emulation の機能で使うことは難しいようです。
FreeBSD 用の RealPlayer 3.0 なら一応動きますが、やや不安定です。
フロッピーディスクの MS-DOS フォーマットに関して少し調べたことを まとめておきます。
FreeBSD 上でフロッピーをフォーマット (MS-DOS 形式) する場合は /usr/sbin/fdformat を行った後で MS-DOS ファイルシステムを 作りますが、それには幾つかの方法があります。
以上のテスト結果、パッチなどは fj.os.bsd.freebsd に投稿しました。 その記事、およびそれに対する柴田さんのフォローに対する返事を 下に上げておきますので、詳しくはそちらをご覧下さい。
ディレクトリ dir2 の中に、ディレクトリ dir1 をそのまま コピーするためには
cp -r dir1 dir2
のようにしますが、FreeBSD 2.2.8 の /bin/cp は、dir1 の最後に
'/' をつけて
cp -r dir1/ dir2
とすると、dir1 自身はコピーせず、dir1 の中身を dir2 に
コピーしてしまいます。
GNU fileutils に含まれる GNU cp, あるいは Solaris (2.6) の
cp などは '/' があってもなくても dir1 を dir2 内にコピーしますので、
少し特殊な仕様に見えます。
なお、他のバージョンの FreeBSD に関しては確認していません。
MS-DOS 領域のファイル名の制限の問題ですが、リリースノートによると 2.2.7R の頃から Win95 のロングファイルネームがサポートされ、 その頃から MS-DOS のファイル名に対する扱いが厳密になったようです。 '.', '+' 以外にも、',', ':', ';', '=', '[', ']' などが MSDOS の規格にならって使えないようになっています。
mount_msdos には -W のオプションがあり、それにより昔の型の ファイル名を扱うようにすることはできるようです。「その他のメモ (12/27 1999)」に書いた、 MS-DOS 領域のファイル名の制限の問題ですが、 '+' もだめであることがわかりました。
なお、mount_msdos には -l なるオプションがあり、 長いファイル名のファイルを作ることもできます。 ファイルを新規に作る場合は問題ないのですが、 元からそのような名前のファイルがある場合に問題があります。
あちこちの FTP サイトからダウンロードしてきたソフトを MO の MS-DOS 領域に落としているのですが、MS-DOS 領域に関する仕様も 2.2.1R と 2.2.8R では変わったようです。 2.2.1R では "2.2.2" のようなファイル名 (拡張子に . が含まれるもの) も許されていましたが、 2.2.8R ではそのようなファイル名は許されないようで、 ls では見れるのですが、ls -l や ls -F などでは、 そのようなファイルはない、と言われますし、アクセスもできなくなります。
また、今まで MS-DOS 領域のディレクトリ名の変更を mv ではできない、 という不具合がありましたが、これは 2.2.8R でもそのままです。 変更したい場合は (dir1 から dir2 へ)
mkdir dir2
mv dir1/* dir2
rmdir dir1
のようにすれば一応できるようです。
(cf. 「その他のメモ (12/30 1999)」)
私は他にも複数の UNIX (Solaris, HP-UX) を使っていることもあって、 FreeBSD のソフトも package や ports を使わずに (パッチや Makefile などは参考にさせてもらっています) 自分でコンパイルしてインストールしているのですが、 普段使用している Xs の OS を 2.2.1R から 2.2.8R に上げたときに いくつか問題が出ました。
Xs では 2.2.8R で 2.2.1R のバイナリを使用していたのですが、 shared library がバージョンアップしているので、 特に X のライブラリを使うプログラムは 2.2.8R 用にいくつかは コンパイルし直しました。
しかし、mule (mule-2.3@19.34) に問題があり、mule -nw 以外では core dump して立ち上がらなくなってしまいました。 結局、リンク時に -lcrypt -lxpg4 をつけて再コンパイルすることで 動くものができましたが、ライブラリの参照順序が大事なようで、 うまく入れてあげないとだめなようです。 Xp のマシンには package インストールした mule があったので、 それを参考にして -lutil と -ltermcap との間に -lcrypt -lxpg4 を 入れました。
また、LANG も適切なものに設定しておく必要があるようです。
以下の物からまとめてキーワード検索します。
なお、この全文検索システムは
Namazu
v2.0.20
によって構築されています。