ここには、FreeBSD の「インストールに関するメモ」を置きます。
必要なら 「X に関するメモ」 「その他のメモ」 も参照してください。
FreeBSD に関するページへ戻る最近、普段使用している HP Compaq dc7700 の HD の 1 台 (データ用) がそろそろ危いのか、ブート時に、
1720 - SMART Hard Drive detects imminent failureなどと言われるようになりました。 確かに長く使っていた HD だったので交換しないと、 と別なディスクを用意してバックアップをとろうと思い、 2,3 日は大丈夫だったのですが、 その数日後に rsync でコピーをしていたら やはりコピーに失敗する部分がありました。
Failing Drive: SATA 2 (light blue)
Failing Attribute: # 05
To minimize the risk of data loss, backup the contents of your
hard drive and run DPS Self-test in F10 Setup.
とりあえず不要なものと、別にバックアップを取っていたものだったので なんとかなりましたが、OS を入れている HD もほぼ同じ年数使っていたので、 ついでに OS も FreeBSD/i386 13.2 から FreeBSD/amd64 14.0 に変えることにしました。 最近 i386 のサポートが薄くなってきているし、 将来 32 bit 版はなくす、という話も見ましたので、 今のうちです。
昨年末に別なマシンでやっていたので、 インストール自身はそれほど問題ではありませんでしたが、 以前の環境に戻す際に気になったことがいくつかあります。 それを以下にあげておきます。
ports で入れるソフトは、またとりあえず全部入れ直すという方針なので 問題はありませんが、ports 以外に自前でコンパイルしたソフトについては、
と考えていました。 特に私は emacs は古い emacs-20.7 (今だに) を使っているのですが、 以前は古い gcc を入れればなんとかこの emacs-20.7 がコンパイルできたのですが、最近はうまくいかないので、 このバイナリをそのまま使う必要があるためです。
この 32 bit バイナリの共有ライブラリは、/usr/lib32/ に 32 bit 版のライブラリがあり、 そこに入っていないものについては、 よそから持ってきてそこに入れるか、 または自前の置き場所を作っておいて (/home/hoge/lib32 等)、 /etc/rc.conf に
ldconfig32_paths="/usr/lib32 /home/hoge/lib32"
を書いておくか、root で「ldconfig -32 -m /home/hoge/lib32」
とすればそこにあるライブラリも見てくれます。
ただし、/home/hoge/lib32 が root がでない場合は、
ldconfig に -i オプション、rc.conf では
ldconfig_insecure="YES"
が必要になります。
なお、この方法で古い 32 bit バイナリが すべて実行できるようになるかというとそうでもなく、 32 bit バイナリに共有ライブラリの置き場所が埋めこまれてしまっているもの (-rpath) は残念ながらうまくいきません。 例えば 32 bit 用の libpng16.so.16 を /home/hoge/lib32 に入れてあるのに、 それを必要とするバイナリを ldd で見ても libpng16.so.16 がない、 という場合などがそれで、それは /usr/local/lib が共有ライブラリの置き場所として指定されていて、 実際そちらに 64 bit 用の libpng16.so.16 があるために そちらを参照しようとしてしまって、64 bit ライブラリなので使えない、 という状況になっています。
LD_LIBRARY_PATH などを指定してもうまくいきません。 他に方法があればよいのですが、今のところはわかりません。 まあ、再コンパイルをする方が筋だとは思います (それができるなら)。
今まで普通に出ていたビープ音が、同じマシンで出なくなりました。 時報やメールの到着などで利用していますので、出ないと少し困ります。
audio/wavplay などを入れて音声ファイルを再生すると問題なく出ますので、 スピーカーの故障などではありません。 /dev/sndstat の出力も特に問題はないし、 xset や kbdcontrol -b も特に関係はないようです (出る設定になっている)。
ようやく辿りついたのが、/boot/loader.conf の設定です。 sysctl 確認すると、
# sysctl -a | grep bell
kern.vt.enable_bell: 0
hw.syscons.bell: 1
となっていて、この前者が問題でした。
# sysctl kern.vt.enable_bell=1
kern.vt.enable_bell: 0 -> 1
となり、これでようやくビープ音が鳴るようになりました。
/boot/loader.conf にも「kern.vt.enable_bell=1」を入れておきました。
普段、X 上で kterm (今だに) を利用しているのですが、 一時 ports から消えていた japanese/kterm が復帰しているので、 相変わらず kterm を使っています。
それが、どういった具合か japanese/rogue_s (今だに) が動かなくなりました。
Terminal and termcap must have cm and clなどと言われます。 現在の FreeBSD の kterm 上では、printenv | grep TERM とすると
TERM=kterm
TERMCAP=co#80:li#24:
などと表示されますが、
以前の FreeBSD では TERMCAP のところが kterm に対する
termcap エントリ全体に展開されていました。
環境変数 TERMCAP や rogue_s のソースを調べてみたのですが、 どうやら 環境変数 TERMCAP は、termcap のエントリを展開したものを持つ、 というよりも、むしろ termcap ファイルのパス (/etc/termcap) を設定する方が正しいようです。
.login に tset コマンドを入れてたりしたので、 以前はそういうことになってしまっていたのかもしれませんが、 とにかく現在は上のような中途半端な TERMCAP の値が問題だったので、 「setenv TERMCAP /etc/termcap」を .cshrc に入れて、rogue_s も正しく動くようになりました。
他にも、japanese/mh の inc の問題、paperconf の問題もありますが、 そちらは 「その他のメモ」 の方で紹介します。
最近ここも更新していませんが、 通常使用しているマシンについては地道に freebsd-update を使って OS を更新しています。
ところが最近、 EPSON Endeavor MT-7900 が停電のために OS を持つ HD がやられてしまい、 BIOS レベルで認識できなくなってしまいました。 データは別 HD に保存してあったので大きな実害はなかったのですが、 OS 領域の HD が古かったこともあったので、 OS 部分は、いちからインストールしたものを使うことにしました。 これまでは FreeBSD (i386) 13.2-RELEASE を使用していましたが、 一応 amd64 も動くようなので (Pentium Dual-Core E5300)、 これを機会に FreeBSD (amd64) 14.0-RELEASE をインストールしました。
HD は SATA の方がいいのですが、U-ATA のディスクが いくつか予備として取ってあったので、せっかくだからそれを使用しました。 USB メモリでのブートができない機種なので、 CD に bootonly の iso image を焼いてブートします。
パーティションの選択は、デフォルトは「auto zfs」になってるのですが、 とりあえずは使い慣れた UFS で作業します。 これでほぼ問題なくインストールはできました。
だいたい順調に復帰できたのですが、 そのマシンからメールがうまくでないことに気がつきました。 従来の /etc/mail/submit.cf の設定でテストメールを送ってもうまくいかないし、 メールキューも見当たらないし、 /usr/libexec/sendmail/sendmail -v を直接使ってログを見ようとしてもでてこないし、 と何か変だなと思っていました。 メールのログと /etc/mail/mailer.conf を見てようやく気がつきましたが、 どうやらデフォルトのメールシステムが sendmail から dma (DragonFly Mail Agent) とかいうものになっていて、 メールキューも /var/spool/clientmqueue, /var/spool/mqueue ではなく、 /var/spool/dma にあります。
dma の設定方法を調べてそれを使うように再設定する、 でもよかったのでしょうが、面倒なので、/etc/mail/mailer.conf の /usr/libexec/dma の設定をすべて sendmail に戻して、 ようやくほぼ従来通りに動くようになりました。
なお、14.0 には portsnap がありません。 これも ports の ports-mgmt/portsnap から入れる必要があります。
「インストールに関するメモ (06/13 2022)」 に書いた、FreeBSD (i386) の 13.1 への freebsd-update での更新が うまくいかない件ですが、 ThinkPad でも同じ問題が起きます。つまり、 「インストールに関するメモ (09/13 2022)」 に書いた「直してくれたのかもしれません」というのはどうも違うようです。
その問題のファイルだけ、別にうまくいったマシンから /var/db/freebsd-upgrade/files/ にコピーして続けてみたら、 ようやくなんとか更新ができました。
「インストールに関するメモ (06/13 2022)」 に書いた、FreeBSD (i386) の 13.1 への freebsd-update での更新が うまくいかない件ですが、bugzilla に報告して数日後、 もう一度試してみたら、今度は途中で止まらずうまくいきました。 直してくれたのかもしれません。
ちなみに例のファイルは /var/db/freebsd-upgrade/files/ にちゃんとあって、 ファイルサイズは 537805 Byte でした。
gzip compressed data, last modified: Thu May 12 08:35:11 2022,
from Unix, original size modulo 2^32 1186380
なので、前のものともだいぶ違っているようです。
「インストールに関するメモ (04/13 2022)」 に書いた ThinkPad の FreeBSD ですが、最近 13.1 がでたので、freebsd-update を使って 13.0 (i386) から 13.1 に更新しようと思ったのですが、 それがどうもうまく行きません。とりあえず現象のみを書いておきます。 別なマシンの amd64 版ではうまくいっているので、 i386 版固有の問題かもしれません。
「# freebsd-update -r 13.1-RELEASE upgrade
」をやると、
「Applying patches... done.」の後の「Fetching 3164 files...」の途中で
gunzip: (stdin): unexpected end of file
e0904ee257f4bee67b75f7156b864d536ba0ed3f28a3eadb4650aaa6b18f5e27
has incorrect hash.
が出て止まってしまいます。
何度やっても同じ所で止まりますし、
/var/db/freebsd-update/ のファイルを全部消してやり直しても
全く変化しません。
この e090... というファイル (の .gz ファイル) は /var/db/freebsd-update/ にあるのですが、 サイズを見ると 312byte しかありません (別なときには 1190byte のときもある)。 しかし、「unexpected end of file」が示す通り正常な gzip ファイルではなく、 解凍はできず、何らかの原因で途中で切れてしまっていると想像されます。 file コマンドでみると、
gzip compressed data, last modified: Thu May 12 08:35:11 2022,
from Unix, original size modulo 2^32 1777473983
などと表示されます。もしかしてまた
「その他のメモ (04/22 2022)」
に書いた fetch の 4byte 整数限界の問題かと思ったのですが、
現在使用している fetch にはそれは既に当ててありますし、
逆に以前の fetch に戻しても変化はありません。
fetch 以外のツールで同様の 4byte 限界が起きているのかもしれませんが、 今のところそれはわかっていません。 また何かわかったら報告します。
ある必要にせまられて、ほぼ休眠していた ThinkPad の OS を更新しました。引っかかったところなどを備忘録として書いておきます。
このマシンは、freebsd-update を使って 11.2 くらいまでは上げてあったのですが、 13.0 にそれであげるとかなり時間がかかりそうだったので、 今回は HDD を別に購入して、そっちにクリーンインストールすることにしました。 このマシン用の HDD は 1.8inch の特殊形状のものですが、 Amazon で探してみると前に購入したものと同じもの (Hitachi Travelstar HTC424040F9AT00、60GB) がまだ残っていたので早速購入しました (6000円弱)。
前のインストール記録 (「インストールに関するメモ (06/05 2012)」) を見ると、 USB メモリを使ってインストールしたようですが、 USB メモリからのブートができません。 F12 でもメモリをブートメディアとして認識してくれていないようです。 USB メモリにもよるのかもしれません。
しかたがないので、USB CD からのブートをすることにしました。 i386 用の disc1 iso ファイル (CD-R 用) をダウンロードしたのですが、 通常の 700MB CD-R だと容量が足りないとかで書けません。 仕方がないので bootonly iso ファイルで CD-R を作って、 それでブートしました。
ブートはうまくいったのですが、device の認識の途中で panic になります。
これは、13.0 に限らず、10.3 の CD-R (これは disc1 の iso)
でも同じところで panic になってしまいます。
古い記録を調べたら、どうやら「hint.agp.1.disabled=1
」
が必要なようだったので、Boot メニューがでたところで 3 で
loader prompt に落として、
OK set hint.agp.1.disabled=1
OK boot
とすると panic はせずにインストーラの画面に進むことができました。
あとは普通にインストールしましたが、partition は Auto → Entire Disk で、MBR, GPT などの選択がでますが、とりあえず GPT を選択しました (デフォルトは MBR)。GPT でもちゃんとブートできているので、 こちらでもいいようです。
インストール終了後、ハードディスクから立ち上がるように reboot すると、
また上と同じところで panic するので、
とりあえずは Boot メニューで同じ作業をする必要があります。
その後は /boot/loader.conf に「hint.agp.1.disabled=1
」
を入れておけば大丈夫です。
X 用には「hint.drmn.1.disabled=1
」なんてのも必要かもしれません。
今年の始めに、 Mouse Computer MB-B401B2 のハードディスクが不安定になっていたので、ハードディスクの交換を行い、 ついでに、OS を FreeBSD/i386 から FreeBSD/amd64 に変えて 12.2 をインストールしました (1 月頃)。 インストール自身は特に問題なく終了しました。
ただ、簡単に済ませるために、 他の FreeBSD のマシン用にコンパイルした古い emacs など (ports とは別のやつ) をそのまま使おうと、それのインストール先 (/usr/local/ ではない) をそのままコピーしたのですが、どうも動きません。 FreeBSD/amd64 でコンパイルし直せ済むものはそれでいいのですが、 この古い emacs (20.7) は残念ながらコンパイルうまく通らないので、 これが使えないと結構困ります (emacs-20.7 は、FreeBSD/i386 上でも古い gcc (3.4.3) を入れて、 それでコンパイルしないとうまくいかない)。
調べてみると、その古い emacs が必要とする shared library (libXaw.so.6 等) がなぜか引けてないようなのですが、 LD_LIBRARY_PATH, LD_RUN_PATH を設定してもだめで、 どうやらこれは i386 版の FreeBSD と amd64 版の FreeBSD の違いによる問題でした。
FreeBSD/i386 のバイナリは、file コマンドで表示させると 「ELF 32-bit LSB executable, Intel 80386」となりますが、 FreeBSD/amd64 のバイナリは 「ELF 64-bit LSB executable, x86-64」 となっていて、当然、/usr/local/lib の FreeBSD/amd64 用の共有ライブラリも ELF 64bit バイナリになっています。 それで、ELF 32-bit バイナリの emacs を持ってきても、 ELF 32-bit バイナリの共有ライブラリが見つからない、 ということになっていたようです。
FreeBSD/amd64 上では、ELF 32-bit 用の共有ライブラリは /usr/lib32, /usr/local/lib32 などにあり、 これと同様に emacs 用の ELF 32-bit 用のライブラリを FreeBSD/i386 から持ってきてどこかに置いて、 ldconfig でその置き場所を指定すればいいのですが、 とりあえずホームディレクトリの lib/ に必要なライブラリを持ってきて、 そこから /usr/lib32 にシンボリックリンクを貼っておくことにしました。 これで、FreeBSD/i386 でコンパイルした emacs (20.7) が FreeBSD/amd64 上でも動くようになりました。
最近、 EPSON Endeavor MT-7900、 HP Compaq dc7700 の OS を 12.2 に freebsd-update で更新しました。
その際、EPSON Endeavor MT-7900 の時計がだいぶ狂ってしまいました。1 分で 2,3 秒遅れるような感覚です。 「インストールに関するメモ (02/13 2013)」 でやったように、Timecounter を TSC-low から i8254 へ変更したところ、 明らかな遅れはなくなりました。
これまでは問題なかったのですが、遅れの原因が FreeBSD の更新に伴うもなのかどうかはよくわかりません。
最近 EPSON Endeavor MT-7900, Mouse Computer MB-B401B2, HP Compaq dc7700 の OS を 12.1 に freebsd-update で更新しました。 11.3 から 12.0 に上げたときは特に問題なかったのですが、 今回 12.0 から 12.1 に上げたときに一つだけ問題がありましたので、 ここに書き留めておきます。
EPSON Endeavor MT-7900 は、 外付けの USB HDD もつないでいて、 それはデータのバックアップ用なので特に OS などは入れておらず、 もちろんそこからブートもできません。
前回 12.0 に更新してリブートしたときは特に問題はなかったのですが、 今回このマシンで 12.1 に更新してリブートしたら、 どうも起動しなくなってしまいました。
BTX loader 1.00 BTX version 1.02
Console: internal video/keyboard
BIOS drive A: is fd0
BIOS drive C: is disk0
BIOS drive D: is disk1
BIOS drive E: is disk2
の後に水平線がでて止まってしまうのです。
本来ならこの水平線がグルグル回転して次に進むのですが、
それが進みません。
ここから Ctrl-Alt-Delete で再起動できるのですが、
何度やっても同じです。
停止する寸前に USB HDD のアクセスランプが一度点滅するので、 もしやと思って USB HDD を抜いてブートしてみたら、 今度はめでたくブートしました。 起動メッセージがでて 10 秒カウントしている間に USB HDD をつなげば、 ちゃんとそれも認識してくれます。 12.1 になって、BTX loader の調べるディスクの設定でも 変わったのかもしれませんが、 起動の際にいちいち上のようにするのも面倒です。
一方、HP Compaq dc7700 にも 外付けの USB HDD はつないでいるのですが、 こちらは 12.1 になっても特に問題はなく、 つないだままでもちゃんとブートします。 EPSON Endeavor MT-7900 はかなり古いマシンなので、 BIOS の設定とかの何かが引っかかってるのかもしれませんが、 ちょっと困ります。 それで本当に戻るのかはわかりませんが、 可能ならば 12.0 のもの (BTX loader ?) に戻したいくらいです。
HP Compaq dc7700 の OS を 少し前に 12.0 に更新し、 あるユーザのパスワードを変更しようと root で passwd コマンドを実行して変えてみたのですが、更新されません。 su でそのユーザになって passwd コマンドで変えてみたのですが、 それでもパスワードが更新されません。
調べてみると、パスワードデータベースである /etc/pwd.db, /etc/spwd.db が更新される必要があり、その更新には
# pwd_mkdb -p /etc/master.passwd
とする必要があるようです。
man passwd にも一応書いてありました。
ただ、なんとなくそれも含めて passwd コマンドがやるべきなんでは、
という気がします。
「インストールに関するメモ (12/16 2016)」、 「インストールに関するメモ (10/19 2015)」 およびそれ以前のところにいくつか書いていた スキャナ (EPSON GT-8700) の件ですが、 どうやら問題が解消されそうです。
この GT-8700 は、USB 接続、SCSI 接続の両方ができるのですが、 以前書いたように FMV 6333T7 の FreeBSD-10, HP Compaq dc7700 の FreeBSD-10 ではそれぞれスキャンの実行後に OS がハングアップするような状況になっていました。 それより古い FreeBSD-9 以前の頃は問題なく (FMV 6333T7) 使えていたと思います。 ちなみに、FMV 6333T7 の FreeBSD-10, では主に SCSI 接続、 HP Compaq dc7700 の FreeBSD-10 では主に USB 接続を試していました。
その後、「インストールに関するメモ (12/16 2016)」 に書いたように、 ThinkPad の FreeBSD-10 では USB 接続で問題なくスキャナが使えていたので、 スキャナを使うときはわざわざこのマシンを立ち上げて使う、 ということをしていました。 問題の原因は、HP Compaq dc7700 と GT-8700 の相性の問題なのかなとぼんやり想像していました。 その後 OS は 11 に更新しましたが、状況の変化はありませんでした。
実は、最近 HP Compaq dc7700 のもう 1 台のマシンに FreeBSD-12 をインストールして、 試しにこのスキャナを接続して (USB) sane-backend を入れてやってみたら、 問題なく使えてしまったので、 マシン同士の相性ではなかったことがわかり、少し色々試してみました。 おかげで、何度か実運用中の FreeBSD をフリーズさせてしまい、 そのせいでファイルも一部壊してしまったりしたのですが (バックアップは取ってありました)、 おかげでどうやら問題がわかりました。 ただし正確に言えば、 FMV 6333T7 の FreeBSD-10 の SCSI 接続の場合に問題が起きた件についてはよくわかっておらず、 あくまで HP Compaq dc7700 への USB 接続の場合のみの状況です。 また、テストの最中に OS を 12 に上げてしまったので、 FreeBSD-10, FreeBSD-11 でも同じかどうかは今はもうわからないのですが、 多分同様だと思います。
実は、 FMV 6333T7 で 古い FreeBSD を使っていたころ、sane の scanimage -L がうまくいかずに、 /usr/local/etc/sane.d/dll.conf に net と epson2 のエントリのみ残し、 さらに /usr/local/etc/sane.d/epson2.conf を編集して、 /dev/pass0, /dev/pass1, /dev/pass2, /dev/pass3 などのエントリを追加していました。 それを HP Compaq dc7700 でも引き継いでいたのですが、それがどうやら問題だったようです。 epson2.conf からその /dev/pass? のエントリを削除したところ、 めでたく scanimage -L でフリーズしないようになりました。
新しく OS を入れた HP Compaq dc7700 のマシンの方では、/usr/local/etc/sane.d/epson2.conf の内容は編集せず、/usr/local/etc/sane.d/dll.conf のみ編集していたのでうまく動いていたようです。 今までスキャナを運用していた ThinkPad も同様で epson2.conf はいじらずに dll.conf のみ編集していました。
scanimage -L をしたときに問題が起こり、 最後は「ata0: already running!」というメッセージがでて OS がフリーズしだす、という現象はずっと同じだったのですが、 scanimage -L は dll.conf 等で設定されているデバイスを スキャンして回る (多分) こと、 及び「ata0: already running!」が、 実際にはスキャナーとは関係ない ata0 (HD をつないでいる SATA コントローラ) に関するメッセージであることから、 なんとなく状況がつかめてきて、 FreeBSD に関する情報を色々検索しながら考えていて ようやくそこに気がつきました。 考えてみれば /dev/pass0, /dev/pass1 は、今うちの環境では ata0 上の ada0, ada1 なので、 pass0 や pass1 の scan をする際に ata0 の問題が起きるんだと思います。 そこにもっと早く気がつくべきでした。 うちでは、「scsi EPSON」の行もとりあえずコメントアウトしています。
FreeBSD の「ata0: already running!」 に関する情報もいくつか見つかりましたが、ピッタリ合う状況のものは少なく、 ほぼ似たような状況のものはそれに対する正解が見つかならない、 ということでやや困った状況でしたが、 たまたま同じマシンが 2 台あり、一方が動く、一方が動かない、 という状況であったことも幸運でした。
/dev/pass0 などのエントリを epson2.conf 等に追加する、という方法は、 確か以前 (だいぶ前 ?) は FreeBSD のハンドブックにも記載されていのではなかったかと記憶しています。 ただし、確認したら、現在のハンドブックの 対応するページ には 書かれていません。その古い話を引きずって、 私と同じ問題を今も抱えている人がもしかしたら他にもいるかもしれません。
なお、上にも書きましたが、 FMV 6333T7、あるいは HP Compaq dc7700 で、 GT-8700 を SCSI 接続した場合はどうなるのか、どうすればいいのか、 については、テストする環境がありません (SCSI ボードがない) のでよくわかりません。 FMV 6333T7 で特に設定を変えずに FreeBSD-10 頃から問題が起きていたことからすると、 少なくとも epson2.conf に /dev/pass0, /dev/pass1 などのエントリ、特に実際スキャナに割り当てられたデバイス以外のもの (例えばハードディスク) を追加すると、 SCSI 接続の場合でも同じ問題が起きる可能性はあります。 その辺りがもしかすると FreeBSD-10 頃から変わったのかもしれません。
まだ、恐る恐る少し試した程度なので、 今後も安定に動作するとは限りませんが、 これで通常使用しているマシンで使うことができそうです。 しばらくは様子を見たいと思います。
「インストールに関するメモ (11/18 2017)」 に書いた サバ太郎 の続報です。
FreeBSD 12.0 がリリースされたので、12.0 へのメジャーバージョンアップを freebsd-update を使ってやってみました。 すると、やはりブートしませんでした。
ということで、rollback しましたが、 しばらくは 11.1 で使うしかないですかね。 freebsd-update でなく、 12.0 をインストールしてみるとまた違うかもしれませんが、 それで動くようになったとしても、 そういう運用しかできないのはちょっと嫌です。
「インストールに関するメモ (05/08 2017)」 で紹介した サバ太郎 ですが、 しばらく FreeBSD-11.0 のまま放っておいたのを、 freebsd-update を使って 11.2 に上げてみました。
すると、kernel のロードまではいくのですが、その kernel でブートしません。 「Booting...」と表示された後で - が回転せずに止まってしまいます。
仕方がないので、リセットボタンで電源を入れ直して、 kernel.old を選択して (今は起動メニューから簡単にできるんですね)、 11.0 を立ち上げた後で、
# freebsd-update rollback
とやって 11.0 に戻しました。
その後、11.1 に上げてみたらそれはちゃんとブートして、 またそこから 11.2 に上げてみたのですが、 やはり同じくブートしませんでした。 ということで今は 11.1 に rollback しています。
もうすぐ 12.0 が出るので、それが出たら 12.0 を試してみますが、 それがブートできなかったら、 サバ太郎のまともな運用はあきらめるかもしれません。
EPSON Endeavor MT-7900 の OS を 10.3 から 11.1 に freebsd-update を使って更新しました。 気がついたところを備忘録代わりに書いておきます。
ほぼ手順は、 「インストールに関するメモ (01/12 2018)」 と同じですが、 portupgrade -a では www/firefox の更新がこけていて、 これもいつものことなので www/firefox で手動で make したのですが、 これが configure の段階でこけてしまいます。具体的には、
DEBUG: Executing: `/usr/local/bin/cargo --version --verbose`
DEBUG: The command returned non-zero exit status -11.
ERROR: Command `/usr/local/bin/cargo --version --verbose`
failed with exit status -11.
*** Fix above errors and then restart with\
"gmake -f client.mk build"
などとでています。これは今までに見たことがありませんでした。
実際に手動で「/usr/local/bin/cargo --version --verbose
」
とやってもコアダンプします。ldd で /usr/local/bin/cargo を見ると、
/usr/lib/libssl.so.7 と /usr/lib/ssl.so.8 の両方が含まれています。
この libssl.so.7 の方は、FreeBSD 10.X の方のものなので、
ちょっと問題です。
実際、このあと再度「freebsd-update install
」をやったら
10.X の古いライブラリは消えて、/usr/lib/libssl.so.7
(や /usr/lib/libcrypto.so.7) もなくなりますので、
ライブラリが引けない、というエラーになります。
このエラー自体は、ports の misc/compat10x を入れることで解消はするのですが、 cargo がコアダンプする問題は解消されません。 cargo は lang/rust に含まれていて、 これを再コンパイルしても解消されません。
ldd で表示される cargo の共有ライブラリを見たところ、 ほぼ今回の OS の更新と portupgrade -a ですべて更新されていたのですが、 /usr/local/lib/libssh2.so.1.0.1 だけ更新されていませんでした。 しかも、これが /usr/lib/libssl.so.7 を引いていた元凶でした。
よって、ports の security/libssh2 を手動で更新 (make deinstall & make install) したら、 cargo もちゃんと動くようになり、 www/firefox も make できるようになりました。 この問題は少しわかりにくい方の問題だったように思います。
HP Compaq dc7700 の OS を 10.3 から 11.1 に freebsd-update を使って更新しました。 気がついたところを備忘録代わりに書いておきます。
基本的に freebsd-update の作業は問題なく進みました。
そして portsnap fetch と update をやって、
perl を更新しようとしたら
「pkg: Warning: Major OS version upgrade detected.
Running "pkg-static install -f pkg" recommended
」
とでるので pkg-static install -f pkg をやって、
portupgrade で perl を 5.20 から 5.24 に更新しました。
/etc/make.conf に「DEFAULT_VERSIONS+= perl5=5.24
」
を書いて、
portupgrade -o lang/perl5.24 -f lang/perl5.20
portupgrade -f `pkg shlib -qR libperl.so.5.20`
です。
ただし、この 2 つ目の作業の最中、graphics/p5-GD,
graphics/ImageMagick7 の更新でこけていました。
先に devel/pkgconf を reinstall する必要がありました。
portupgrade -aC をやって (X は devd 版に変え、 xf86-video-intel ドライバも 「X に関するメモ (12/21 2017) にある通り UXA にしておきます。 しかし、この portupgrade は今回はかなりこけていました。 「インストールに関するメモ (11/27 2017)」 にある通り、libGL 回りが変更されているのにともなっての失敗や ruby や python のモジュールが、2 種類のバージョン用に入って ぶつかるとか (ruby22 と ruby24 とか)、 既にその ports がないとか色々ありました。
なお x11/xorg のような meta-port は make reinstall してもうまく更新されませんので、 手動で ports の deinstall と install を行っていたのですが、 強制的に更新するには portupgrade -fR x11/xorg のようにすればよかったようですね。 man portupgrade を良く読んでいませんでした。 手動でちまちま更新していると、 例えば x11-servers/xorg-server では 「fatal error: 'epoxy/gl.h' file not found」と出たりして、 それに合わせて graphics/libepoxy を入れたりと結構面倒くさいです。
X もそれに合わせて更新したのですが (そして問題もあったのですが)、 それは 「X に関するメモ (01/12 2018)」 に書きます。
9 月頃に、ThinkPad X40 の OS を 10.3 から 11.1 に freebsd-update を使って更新したのを ここに書いてなかったので書いておきます。
作業は、
# freebsd-update -r 11.1-RELEASE upgrade
# freebsd-update install
# shutdown -r now
# freebsd-update install
で終わるかと思ったのですが、最初の upgrade が全く進まず、
動いている感じがしなかったので、一回切りました。
もう一回やったら、今度は動いています。
他のマシンでも同様だったような記憶もありますが、
本当は勝手に切るのは良くないのかもしれません。
その作業がある程度進んだところで、別な問題 (UPS) で、 また落とさざるを得なくなりました。 最悪最初からかなと思ったのですが、 fetch とかパッチ当てなどは前回のものがちゃんと残っていて、 ある程度は飛ばしてくれるみたいです。
ただ、shutdown 後の install もやったはずなのですが、 freebsd-update をしたら、
You have a partially completed upgrade pending
Run '/usr/sbin/freebsd-update install' first.
Run '/usr/sbin/freebsd-update fetch -F' to proceed anyway.
とか言われたので、もう一回 install をしておきました。
その後、portsnap の fetch と update をしたのですが、 pkg を使おうとしたら、
Shared object "libssl.so.7" not found,
required by "pkg"
などと言われました。
検索してみると、「pkg-static install -f pkg」とせよ、
とあり、それでなんとかいけました。
あとは、perl の更新 (5.20 を 5.24 に) と portupgrade -aC
しましたが、いくつか失敗しました。
conflict しているようなの (libGL 回りや ruby, llvm36, llvm37, mesa-libs 等)
を削除して、必要なのを入れ直しておきました。
X もそれに合わせて更新したのですが、 それは 「X に関するメモ (11/27 2017)」 に書きます。
現在、うちの研究室ではサーバを PC やワークステーションで運用しているのですが、 現在研究室に学生もいませんし、省電力化を考え、 マイクロサーバ化も悪くないかなとマイクロサーバを試してみました。
マイクロサーバといえば、ぷらっとホームの OpenBlocks や RaspberryPi などが有名ですが、 インターネットで検索してみたところ、 アーキテクチャが FreeBSD に親和性があまり高くないもので、 FreeBSD を動かすのは結構面倒そう (できなくはないよう) なので、 以下の Intel 系 CPU を採用しているマイクロサーバ 「サバ太郎」を導入してみました。
SSD や mSATA という選択肢もあるようですが、 安定性を考え HDD 内蔵版の「サバ太郎 Type-P」を購入しました。 ただ、会社としては省電力も考え、SSD を勧めているようで、 HDD 版は現在は販売していないようです (注文生産 ?)。 また、CPU は Intel Celeron J1900 版 (core 4) もありますが、 少し安い Intel Atom E3825 版 (core 2) を購入しました。 それでも値段はやや高額なので、 個人利用には少し向かないかもしれません。
FreeBSD ですが、amd64 版も使えるのかもしれませんが、 とりあえずは i386 版を使います。 11.0-RELEASE の USB メモリイメージを使用しました。 サバ太郎には USB の口が 2 つあり、HDMI 端子があるので、 HDMI にディスプレイ、USB の 1 つにブートイメージの USB メモリ、 もう一つの USB にキーボードを刺して電源を入れました。 LAN コネクタも 2 つあり、 いずれも FreeBSD 11 では問題なく認識され、 全く問題なくインストールが終了し、ブートもできました。 拍子抜けするくらい簡単にインストールと起動が済んでしまいました。
ネットワークの設定などは行いましたが、 まだ X は入れてません。 もしかすると X のインストールでまた問題がでるかもしれませんが、 FreeBSD のサーバとして使う分にはかなりいいかなと思います。 外付けの USB-HDD をぶらさげて安定して運用できれば、 今のサーバの置き換えも検討してもいいかなと思いました。
また、サーバとしては特に必要はないですが、 次回は X の設定や動作についてでも報告できればと思います。
「インストールに関するメモ (10/19 2015)」 およびそれ以前のところにいくつか書いていた SCSI スキャナ (EPSON GT-8700) の件ですが、 その後の情報をまとめていませんでしたので、 少し上げておきます。
実はその後、 FMV 6333T7 でなくて なぜか ThinkPad の USB につなぎ変えて、 そちらで scan すると問題ないことに気がつきました。 今から考えると、 実は ThinkPad では今だに X で hald を使った設定をしていて、 そして FMV 6333T7 の X の設定で hald を使わなくなった頃に一致しているような気がします。
その後、HP Compaq dc7700 にスキャナをつないで試してみたのですが、残念ながら FMV 6333T7 の場合と同じ障害、 すなわち kterm が次々とハングアップするような状況になりました。 hald を立ち上げてやってみたのですが状況は変わりません。 ただし、よく調べてみると、 HP Compaq dc7700 では「hald を使わない X サーバ」(devd を使うデフォルトのもの) を使っています ThinkPad の方は、 「hald を使う X サーバ」を使っているので、 HP Compaq dc7700 でもそういう X サーバ (x11-servers/xorg-server で make config で選択できる) に切り替えるとスキャナがうまく使えるようになるのかもしれませんが、 それはまだ試していません。
FMV-6333T7 の FreeBSD の再インストールに関する続報です。
GPT のパーティションテーブルを dd でつぶして MBR でインストールしてようやく FreeBSD 10.3 がブートするようになったと 「インストールに関するメモ (11/14 2016)」 で報告しましたが、 その後 10.3 をフルインストールしたら、またブートしなくなりました。 前回に似た色々な手順を試してみたのですが、 今度はどうしてもブートしませんでした。
唯一、FreeBSD 8.4 をインストールしたら、 そのパーティションスキームではブートできたので、 仕方ないので、そこから freebsd-update でバージョンアップすることにしました。 まず、FreeBSD 8.4 をインストールし、ブートすることを確認して、 いきなり 10.3 に上げるのでなく、少しずつ上げました。まずは、
# freebsd-update -r 9.0-RELEASE upgradeで 9.0 に上げ (FMV-6333T7 だとそれが終わるのに半日位かかる)、 次は 10.0 に
# freebsd-update -r 10.0-RELEASE upgradeに上げようとしたのですが、
The update metadata is correctly signed, but failed an integrity check. Cowardly refusing to proceed any further.などと言って止まります。これは、以下にもある通り、 freebsd-update に手動でセキュリティパッチを 2 つ (EN-13:04.freebsd-update, EN-13:05.freebsd-update) 当てる必要があるようです。
ところが良くみると、/usr/src にファイルがありません。 もしかすると、8.4 は最小インストールをやって、 src はインストールしなかったのかもしれません。 仕方がないので、9.0 のソースを手動で持ってきて展開します:
# fetch ftp://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/i386/9.0-RELEASE/src.txzその後で上のパッチ当ての作業をやって、10.0 に上げます。
# tar -C / -xvzf src.txz
# freebsd-update -r 10.0-RELEASE upgradeところが今度はこんなものがでます:
WARNING: FreeBSD 10.0-RELEASE-p18 HAS PASSED ITS END-OF-LIFE DATE.ということで、10.0 でなく、10.3 にします。
Any security issues discovered after Sun Mar 1 09:00:00 JST 2015 will not have been corrected
# freebsd-update -r 10.3-RELEASE upgradeこれも、FMV-6333T7 だと相当時間がかかりますが、なんとか動きだし、 ようやく 10.3 に上げることができました。 パーティションスキームは、古式ゆかしい 「ad2s1a (/), ad2s1e (/tmp), ad2s1f (/usr), ad2s1d (/var)」ですが、 ブートはできますし、特に問題はありません。 なおブートは、FreeBSD 標準のブートローダではなく、 mbm を使っています。 結局、なぜブートできないのかの問題はよくわからなくなりましたが、 一応確実な回避策が見つかったので、とりあえずはよしとします。
2 週間ほど前に大学で停電があり、 FMV-6333T7 の FreeBSD 10.3 の OS 領域のディスクがおかしくなりました。 そのため、データを退避させ別のディスクに FreeBSD 10.3 をインストールし直したのですが、どうもうまくいきませんでした。 現象は、 「インストールに関するメモ (09/25 2015)」 でも起きていた、インストール後にブートしない問題です。 今回はこの件についてまとめておきたいと思います。
なお、とりあえず FreeBSD/amd64 10.3-RELEASE を入れてあった HP Compaq dc7700 に FreeBSD/i386 10.3 を入れ直し、 FMV-6333T7 のデータをそちらに移して仮復旧させ、 FMV-6333T7 の方のインストールは少しじっくりとやってみました。
FMV-6333T7 は古いマシンのせいで、 GPT パーティションでのブートがうまくいかないのではないかと考えています。 ブートさせると「Can't load kernel」と出てしまい、 OK プロンプトが出て止まります。 その OK プロンプトで ls とすると / のディレクトリ一覧が表示され、 その中にちゃんと boot ディレクトリもあるのですが、 「ls boot」「ls /boot」などとすると 「open '/boot' failed: no such file or directory」 などと言われます。ブートできない原因はこのあたりにありそうです。 その後 MBR パーティションでインストールしてもうまくいきません。
「インストールに関するメモ (09/25 2015)」 でやったように、 その後古い OS (10.2, 10.1, 9.0, 8.4) などもインストールしてみたのですが、 どうもうまくいきません。 ただし、8.4 をインストールしようとして、妙なことに気がつきました。 10.3 の MBR パーティションでのインストール後に 8.4 のインストーラで現在のディスクの状態 (fdisk) を見ると、 なぜか ad2s1 ではなく ad2p1 のように表示され、 GPT パーティションの状態のままになっているようでした。 どうも GPT パーティションを一度使うと、 そのパーティション情報がどこかに残ってしまっていて、 MBR でインストールしてもそれが上書きされていないようです。
そしてその状態だと 8.4 のインストールができず、 commit 時に「Unable to find device node for /dev/ad2s1b in /dev! The creation of filesystems will be aborted.」 のようなメッセージが表示され、インストールに失敗してしまいます。 ということで、実は HDD を Windows につないで、 そちらでフォーマットしたりしてみたのですが、 改善されませんでした。
上記のエラーメッセージで検索してみると FreeBSD 7, 8 あたりの古い情報がいくつかみつかりましたが、 その中に、「GPT で最初にフォーマットしてしまうと 確かにそのようなメッセージが出る」、 「GPT はパーティションテーブルをディスクの先頭と最後に持つので、 それを dd で強引に消去すればよい」、 といったことが書かれているものがありました。
確かにそのディスクに対して、10.3 の Live CD で
# sysctl kern.geom.debugflags=16とやってみると、
# dd if=/dev/zero of=/dev/ada0 seek=1 count=1 bs=512
GEOM: ada0: the primary GPT table is corrupt or invalid.などというメッセージが出ます。しかし、ここに書かれている通り、 secondary の情報が使われてしまうのか、 それだけではまだ改善されません (8.4 はインストールできないし、 10.3 を MBR でインストールしても boot しない)。 ということで、むしろその GPT table の secondary の方を dd で強引に消してしまったらどうかと思い、試してみました。 実施した操作は以下の通りです。
GEOM: ada0: the secondary instead -- recovery strongly advised.
# gpart show => 34 234441581 ada0 GPT (112G) 34 1024 1 freebsd-boot (512K) 1058 226491392 2 freebsd-ufs (108G) 226492450 7949164 3 freebsd-swap (3.8G) 234441614 1 - free - (512B)
# sysctl kern.geom.debugflags=16
# dd if=/dev/zero of=/dev/ada0 seek=234441614 count=1 bs=512
dd の上書き作業は、先頭バイトの場合とは違い GEOM などの警告は出ませんが、 その後の MBR でのインストールで primary の情報が上書きされてしまうせいか そして secondary も見つからないせいか、 これでうまく 10.3 がブートされるようになりました。 これが正しい方法なのかはよくはわかりませんが、 前回の試行錯誤の際は原因などさっぱりわからなかったのですが、 今回は多少わかったような気がします。
ほかにも色々苦労した点はありますが (実際上の問題が解決するまで 2 週間位かかっています)、 まだ今もなお作業の最中でもありますので、 それらについてはまた折を見てまとめたいと思います。
夏休み中に、本学の計算機実習室の中古マシンとなった HP Compaq dc7700 に、 FreeBSD/amd64 10.3-RELEASE をインストールしました。
最初、USB メモリ用のイメージを使ってインストールしようとしたのですが、 うまく USB メモリからブートしてくれず、CD-R からインストールしました。 以前同じマシンに FreeBSD 9.0 (i386) をインストールしたときは (したことがあります)、 USB メモリからインストールしたように思うのですが、 今回は amd64 を選択したせいかうまくいきませんでした。 CD-R からなら問題なくブートできました。 その後は特に問題はありませんでした。
X も /usr/ports/x11/xorg で make install しただけで、 startx で 1680x1050 の wide 画面がちゃんと表示できました。 ただ、X を落としたら black out したので、例によって vt を有効 (kern.vty=vt) にしたら、 今度は X の終了後もちゃんと console に戻ってくるようになりました。
最近 FreeBSD 10.2 の何台かを freebsd-update を使って 10.3 に更新し、 その後 portsnap で ports も更新して portupgrade でパッケージソフトを更新したのですが、 その際、perl が perl 5.18 だったものが 1 台あったので、 一旦 portupgrade を行った後にそれを perl 5.20 に更新しました。 しかし、その際少し問題がありましたので、ここに記録しておきます。
perl の更新手順は、/usr/ports/UPDATING (20150513) に従い、
# portupgrade -o lang/perl5.20 -f lang/perl5.18
をまず行い、「pkg info | grep perl」で perl5.20 が追加されたことを確認し、
# portupgrade -f `pkg shlib -R libperl.so.5.18 | tail +2`
としました。しかし、こちらがうまく行きません。
「pkg shlib -R libperl.so.5.18 | tail +2」で出てくるのは、 実際には 4 つ位の perl module なのですが、 その module の install の前に、なぜか perl-5.20 の再コンパイルを始めてしまいます。 そしてそれをインストールしようとして「conflict」で失敗しています。
よくみると、install された perl のパッケージ名が 「perl5.20-5.20.3_15」になっています。 ところが、lang/perl5.20 で make install すると 「perl5-5.20.3_15」をインストールしようとします。 この妙な現象の対処も /usr/ports/UPDATING の 20150914 に載っていて、
# pkg set -n perl5.20:perl5
とすればよいようです。
これを行って、portupgrade の 2 つ目を行ったらうまく行きました。
ついでに、/etc/make.conf に「DEFAULT_VERSIONS += perl5 = 5.20」
という行も書いておきました。
なお、perl5.20 を入れたあと良くみたら、/usr/bin/perl はもちろん、 /usr/local/bin/perl, /usr/local/bin/perl5 もありませんでした (/usr/local/bin/perl5.20.3 はあった)。それではさすがに支障がでるので、 /usr/local/bin/perl, /usr/local/bin/perl5 として /usr/local/bin/perl5.20.3 へのシンボリックリンクを作っておきました。
Blade 150 に入れてあった FreeBSD/sparc64 10.1-RELEASE も 10.2-RELEASE に更新しました。 ただし、FreeBSD/sparc64 では freebsd-update は使えません (upgrade バイナリが置かれていない) ので、 ハンドブック 17.6 節「world の再構築」 にある make world で更新しました。
基本的にはそこに書いてある通りでいいのですが、 注意すべき点を備忘録代わりに上げておきます。
/usr/src をまず更新する必要がありますが、 10.1 から 10.2 への更新なので、ほぼ「さら」の更新と考え、 以下のようにしました。
# mv /usr/src /usr/src-0
# svnlite checkout https://svn.FreeBSD.org/base/releng/10.2 /usr/src
実は、最初は /usr/src を移動せずに
いきなり svnlite をやってから作業を始めたのですが、
FreeBSD の kernel のバージョン表示が 10.1 のまま変わりませんでした。
なお、svnlite は 2 度目以降は
# svnlite update /usr/src
だけでいいようです。
ハンドブックの作業のうち、 うちは zfs, kdbmap, adjkerntz の作業は必要ありませんでした。
最初、buildworld の作業中に 一旦停止しようとして失敗したことがあったのですが、 そのためか installworld の際に何かがないとかいって make が stop しました。 しかたがないので、make buildworld と make installworld だけをやり直しました。 その際、kernel の install は済んでいたので、 buildkernel と installkernel およびそれに関する作業は skip しました。
これまで、FreeBSD の upgrade は、 ハードディスクも交換して一からインストールし直すことが多かったので、 mergemaster は今回始めて使用しました。 最初は何をすればいいのかとまどいましたし、 編集などの作業をやり直したりして、 結局以下のようにやればいいことに気がつくまで結構時間がかかりました。
d: delete (新しいのを消して前のを残す)
i: install (新しいのを install)
m: merge: (マージ作業に入る)
v: view: 差を見る
この作業後、freebsd-version で確認したら、 めでたく「FreeBSD 10.2-RELEASE-p13」と表示されました。 次は ports の作業です。
現在、何台かあった 10.1-RELEASE の FreeBSD マシンを、 freebsd-update を使って 10.2 に更新しています。 ついでに portsnap で ports ツリーも更新して、 portupgrade -a をかけました。
その作業の際に気がついたのですが、 各種ソフトウェアのソースアーカイブは、 インターネットからダウンロードされ /usr/ports/distfiles に保管されます。 しかし、2 台目以降はインターネットを見にいかなくても、 1 台目で取得したものを見にいくようにすれば、 わざわざまた同じファイルをインターネットから ダウンロードしなくても済むのでは、と思いました。
手っ取り早くそれをやるには、/usr/ports/distfiles を tar アーカイブして別のマシンにコピーして展開するとか、 rsync を使ってミラーリングするなどしてしまえばいいのですが、 インストールされているソフトがマシン毎に少しずつ違うので、 必要なソースアーカイブも少しずつ違います。
他には、NFS で /usr/ports/distfiles を共有する、 という方法もあり、それでどこかの 1 台に置き場所を集約する、 という手もあります。 無駄を省くという点ではこれが一番いいのですが、 逆に置き場所のマシンには必要ないファイルも置かれてしまうのが 少しいやですし、 ソースをそれぞれのマシンで個別に持っておきたい場面も ありそうな気がします。
ということで、最初の fetch 先を、 その 1 台目の FreeBSD マシンにすることができないか調べてみました。
fetch は、MASTER_SITE_OVERRIDE という環境変数 (または /etc/make.conf) に ftp アーカイブサイト、http アーカイブサイトの URL を書けば、 まずそのディレクトリでソースアーカイブを探して、 なければ次のデフォルトサイトを探しに行ってくれるようです。 URL には、ftp ログインするユーザ名やパスワードも書けます (csh 環境下):
setenv MASTER_SITE_OVERRIDE ftp://[user]:[passwd]@[host]/usr/home/[user]/local-distfiles/
なお、最初は「[host]//usr/ports/distfiles/」と
直接 /usr/ports/distfiles/ を見にいくように書いてみたのですが、
X11 のアプリケーションのように /usr/ports/distfiles/ 直下に置くのでなく、
その下にサブディレクトリを作って置かれるものもあり、
そのような指定ではサブディレクトリの下のファイルを検索できません。
よって、ftp ログインするユーザのホームディレクトリに「local-distfiles」 なるディレクトリを作り、 そこに /usr/ports/distfiles の下のすべてのファイルへの シンボリックリンクを置きました。 それは以下のようにして作ってあります (csh 環境下):
foreach i ( `find /usr/ports/distfiles -type f` )
ln -s $i `basename $i`
end
もちろん、/etc/inetd.conf で ftp への応答や、
/etc/hosts.allow で 2 台目以降の FreeBSD マシンに
ftp ログインを許可しておく必要があります。
これで、めでたく最初に [host]/local-distfiles/ のファイルを探して、 それがあればそこからダウンロードし、 だめならインターネットを見にいくようになってくれました。
「インストールに関するメモ (09/25 2015)」, 「インストールに関するメモ (10/08 2015)」, 「インストールに関するメモ (10/12 2015)」 の FMV-6333T7 の FreeBSD 10.2 の SCSI スキャナ (EPSON GT-8700) の件ですが、 boot 時にスキャナの電源を入れて立ち上げてもだめなようです。 何度かスキャンをしていると固まってしまいます。 これは困りました。とりあえずは、必要なスキャンをやったあとは、 OS が手動で reboot できるうちに reboot するしかないかなと思っています。
graphics/sane-backends のバージョンも ports パッチも、 8.4 からはだいぶ変わっているので、その辺りに原因がある (memory leak ?) のかもしれませんが、よくわかりません。
「インストールに関するメモ (09/25 2015)」, 「インストールに関するメモ (10/08 2015)」 の FMV-6333T7 の FreeBSD 10.2 の SCSI スキャナ (EPSON GT-8700) の件ですが、 fvwm のバージョン変更だけではやはりだめで、 そちらでも固まる状態になりました。 C-A-F1 では、「ata1: already running!」 のようなメッセージも出ていましたが、 この辺が原因なのかどうかはわかりません。とりあえずは、おとなしく、 boot 時にスキャナの電源を入れて立ち上げることにします。
「インストールに関するメモ (09/25 2015)」 に書いた、 FMV-6333T7 で FreeBSD 10.2 のインストールに関する SCSI スキャナ (EPSON GT-8700) の問題について報告します。
起きる現象は、OS のブート後に、ハンドブックにあるように 「camcontrol rescan all」で認識させて使用すると、 使用した後にキーボード等の反応がなくなって、 HD のアクセスランプがつきっぱなしになって、 ハングアップした状態になってしまう、 というものです。 従来の FreeBSD 8.4 ではそれは起きておらず、 同じ事をやっても特に問題はありませんでした。
この SCSI スキャナ (EPSON GT-8700) には、実は USB の口もあるので、 USB で接続してほぼ同じことをしてみました。 そうしたら同じ現象が発生してしまいました。 ということは、SCSI ドライバ等の問題というより スキャナの問題か、アプリケーションの問題か、という気がしてきました。
実は、スキャン動作をさせた後、しばらくはキーボードも使えるのですが、 次に割とメモリを食うようなアプリケーションを立ち上げたところあたりから キーボードの反応が徐々になくなったりしていたので、 もしかしてメモリリークでも起きているのかと思い、 top と vmstat (vmstat -c 1000) を起動させながらハングアップを再現させたところ、 どこかのメモリに関する数値が特に上がったり下がったりはしておらず、 そういう状況なのになぜかキーボード等が使えなくなったりしていました。
まだキーボードが使えている間、 一度 C-A-F1 でコンソールに落としてみたのですが、 すると以下のような見たことがないメッセージが出ていました:
(EE) [mi] EQ overflowing. Additional events will be discarded
until existing events are processed.
(EE) [mi] These backtraces from mieqEnqueue may point to a
culprit higher up the stack.
(EE) [mi] mieq is *NOT* the cause. It is a victim.
[mi] Increasing EQ size to 512 to prevent dropped events.
[mi] EQ processing has resumed after 27 dropped events.
[mi] This may be caused my a misbehaving driver monopolizing
the server's resources.
検索してみると、Xorg 回りのメッセージのようでした。
なんともよくわからないのですが、 とにかく X 回りの問題だとすると、私は普段 fvwm2 (x11-wm/fvwm2 の fvwm-2.6.5) を使っているのですが、 以前も ports の x11-wm/fvwm2 の fvwm-2.6 系統を使っていて 不安定なことがあったので、 自前でコンパイルした fvwm-2.4 系統を使っていたことを思い出しました。 今回もダメモトで fvwm-2.4.20 に切り替えてみたら、 それ以後スキャナで固まる問題は起きていません。 ということで、もしかしたらスキャナというよりも、 fvwm-2.6.5 の問題なのかもしれません。
FMV-6333T7, および Toshiba Dynabook (Satellite J40 140C/5, Intel 852GM chipset) (「インストールに関するメモ (08/21 2012)」, 「インストールに関するメモ (04/19 2013)」 参照) でしばらく FreeBSD/i386 8.4-RELEASE を使っていたのですが、 freebsd-update で「もう 8.4 はあかんで」 というメッセージが出ていたので、 夏休みを利用して最新版の 10.2-RELEASE に更新してみました。 そこで気がついたことなどをここに記録します。
まず、更新の方法ですが、8.4 から 10.2 なので、freebsd-update ではなく、 クリーンインストールを行いました。 すなわち、まずは以下のような方針を考えました。
この作業中に起きた問題点やその対処などを上げていきます。
10.2 の CD (disk1) でほぼ問題なくインストールは終わったのですが、 それがブートしませんでした。「can't load kernel」とかでて、 OK プロンプトで止まってしまいます。インストールした HDD の jumper を cable select から master にしたりしてみたのですが、 変化ありませんでした。
デフォルトでは、partition scheme = GPT で、 ディスク全体を使用、ということで
ada0 149GB GPT(インストール時はほかの HDD は外していたので ada0) のようにやりましたが、 plpbt や mbm のようなブートマネージャソフトを使っても ブートできませんでした。
ada0p1 512KB freebsd-boot
ada0p2 145GB freebsd-ufs /
ada0p3 4.0GB freebsd-swap none
partition scheme を MBR にしてみたり、 10.0-RELEASE, 10.1-RELEASE を試してみたりしたのですが、 やはりうまくいきませんでいた。 最終的には、なぜかよくわかりませんが、 partition scheme = MBR で全体を FreeBSD で使用するようにして 10.2 を入れたら (jumper も cable select) ようやくブートするようになりました。
ブートはしたものの、なぜかルートディレクトリのマウントに失敗していて、
Loader variables:などと毎回でて止まります。 ここで「ufs:/dev/ada0s1a」を指定するとちゃんとその先に進んでくれます。 /etc/fstab にはちゃんと「/dev/ada0s1a」のエントリはあります。
Manual root filesystem specification:
...
mountroot>
結果的には、/boot/loader.conf に 「vfs.root.mountfrom=ufs:/dev/ada0s1a」 を入れて、ルートのマウントで止まらずに進むようになりました。
さらに、このあと、別の HDD をつないだ (primary master, primary slave) りしたのですが、BIOS のブート順の設定のせいで、 「10.2 の kernel でブートして、/ は 8.4 のルートをマウント」 みたいなことになったりもしてしまいました。
現在は、/boot/loader.conf の設定と BIOS の設定を修正して、 mbm を使って 8.4 も 10.2 も正しくブートできる環境にしています。 BIOS の設定を行うと、なかなかデフォルトの FreeBSD のブートローダでは うまくブートしてくれないようで、mbm のお世話になっています。
10.2 のデフォルトのコンソールは、 なんか 8.4 と違って速いような気がします。 特に、ボタンを押し続けた場合の反応が速く、 あっという間にカーソルが移動します。 10.0 や 10.1 ではそうは感じません。
rc.conf も少し変わっているようで、 router_* は routed_* のように変わっていて、 しかもなんか増えているようです。
perl を入れたのですが、従来 /usr/bin/perl もありましたが、 10.2 では /usr/local/bin/perl しかありません。 そのため、いくつか使用しているスクリプトの変更が必要でした。
このマシンでは今だに SCSI のスキャナを使っているのですが、 8.4 の頃は安定して使えていたのですが、 10.2 だとやや不安定な気がします。
まず、8.4 のときは、ブート時にスキャナの電源が OFF で、 OS 起動後にスキャナの電源を投入しても、 「/sbin/camcontrol rescan all」すると使えるようになっていましたが、 10.2 ではそれがうまくいかず、 そのあたりを何度かテストしていたら OS が落ちてしまいました。
次に scanner の電源を入れたままブートして、sane-backend の /usr/local/etc/sane.d/dll.conf をいじって作業していたら scanimage -L が hung up したりもしました。
その他、X の問題と japanese/mh に関する問題については、 「X に関するメモ (09/25 2015)」, 「その他のメモ (09/25 2015)」 に書きます。
Dynabook では、10.2 は CD だとそのインストーラの boot の途中で急に reboot (panic ?) してしまいます。 USB メモリだとブートしません。 mbm でも USB メモリからのブートはできないようです。 kern.cam.boot_delay, kern.cam.scsi_delay, autoboot_delay などの数字をいじってみましたがだめなようです。
10.1 だと問題なくブートし、インストールできます。 よって、10.1 でインストールしておき、 その後で freebsd-update で 10.2 に上げる (freebsd-update -r 10.2-RELEASE upgrade) ことを考えたのですが、 実際にそれをやるとまた 10.2 に上げたとたん、 10.2 のブートの途中で reboot してしまいました。
結局、以下からのスレッドにあるように、OK プロンプトで 「set hint.agp.1.disabled=1」をやったら 10.2 でも reboot しないようになりました。 インストール完了ののち、/boot/loader.conf でも設定しました。
うちの Dynabook も Intel 852GM chipset なので、 共通の問題なのだろうと思います。
最初は当初の予定通り、 外付けの USB-HDD (Seagate Expansion 4B00) へインストールしました。
最初は 10.2 のインストールができなかったので、 10.1 をインストールしてブートしようとしたのですが、 普通には USB-HDD からブートしません。mbm もだめでした。 plpbt を使ったらなんとかブートはできました。 ところが、freebsd-update をしたところ、 「Inspecting system」とかいうところで止まってしまいました。
色々調べてみたのですが、sha256 などの作業が止まっているようで、 どうやら USB-HDD に妙なスリープのようなものが 入っているためのようです。 以前も別のマシンで USB-HDD に OS を入れた場合に そういうことがありました (cf. 「インストールに関するメモ (04/19 2013)」)。
ということで、USB-HDD はあきらめ、 内蔵 HDD を一つ買って (Seagate ST980815A; 80GB)、 結局そちらにインストールしました。 その前に、内蔵 HDD の中身を rsync で USB-HDD にコピーして、 内蔵 HDD を交換したあと、OS を入れて USB-HDD のデータを内蔵 HDD に戻す、 という方針で作業を行いました。
なお、USB-HDD がスリープする問題は、 USB の電源管理が BIOS で省電力モードになっているため、 BIOS のレガシー USB サポートが有効になっているため、 などの情報を見ましたが、結局のところよくわかっていません。
コンソールは「kern.vty=vt」として vt も試してみました。 また、unicode のビットマップフォントを使えば日本語も出せる、 ということでそれも試してみました。 しかし、私の持っているファイルの大半が EUC-JP であること (UTF-8 しか日本語で表示できない) などから あまりうまく使えないようなので、結局それはやめました。
その他、X に関する問題、libgd に関する問題については、 「X に関するメモ (09/25 2015)」, 「その他のメモ (09/25 2015)」 に書きます。
Lenovo B590 (Celeron 1005M) のノート PC が別にあり、 そこに MS-Windows 7 professional と FreeBSD 10.0 の dual boot の環境を作ってあったのですが、 それを以前 10.1 に freebsd-update で minor version up してありました (cf. 「X に関するメモ (12/10 2014)」)。
先日久しぶりにその FreeBSD をさわってみて、 freebsd-update, portsnap などをした後 portmaster -a してみたのですが、 なぜかかなりひどい状態で、 ports のソフト (graphics/libfpx, multimedia/libvpx) なのに コンパイルエラーがボロボロでてきました。 例えば libvpx の方は、「fatal error: 'emmintrin.h' file not found」 などと言われ、/usr/include/clang/3.3/ の下にそのヘッダーファイルはあるのですが、 通常あるはずの /usr/include/clang/3.4.1 というディレクトリ自体がなぜかありませんでした。
インターネットにもほとんど情報がなく、 何が原因かはわかりませんが、 どうもデフォルトの C の環境 (clang-3.4.1) が崩れているようです。 インストールがうまくいかなかなったのか、 それともあとで何かの要因で崩れたのかはわかりませんが、 これは ports などの作業では復帰できなさそうだったので、 結局 FreeBSD-10.1 を最初から入れ直しました。 今度はちゃんと /usr/include/clang/3.4.1 ができていて、 上のソフトなども問題なく ports からインストールできました。
なお、前は 10.0 を入れてから 10.1 に上げたせいか 3.3 のディレクトリがありましたが、 今回は最初から 10.1 にしたせいか 3.3 のディレクトリはありません。
また、前回 Win7 と FreeBSD とのマルチブート環境にしたときは、
という手順でマルチブート環境にしましたが、今回の再インストール時は、
だけでいけました。mbm 部分は FreeBSD には上書きされないのか、 FreeBSD インストール後にブートすると、 前に入れた mbm がそのまま立ち上がり、 普通に Win7 や FreeBSD がブートできるようになっています。
ちなみに、今回のインストールの際、FreeBSD の i386 版と amd64 版のどちらを使えばいいのかちょっと迷いました。 Win7 は 64bit だと思ったので amd64 でいいのかなと思ったのですが、 CPU (Celeron 1005M) を調べてみると、 EMT64 のサポートはなさそうだったので結局 i386 版を使いました。
Sun の古いワークステーション Blade 150 の 2 台に、 FreeBSD/sparc64 を入れてみました。 実際には、2014 3 月位に 10.0 をインストールしてみたのですが、 インストールと X の設定だけして、使用はしていませんでした。
今回改めて 10.1-RELEASE をインストールしました。 インストール自体はそれほど難しくはなく、 bootonly か disk1 の ISO image を CD-R に焼いて、 Blade の電源を入れて stop+A で ok prompt に落として 「boot cdrom」とすれば、 あとは通常の FreeBSD のインストールとほぼ同じです。
ただし、CR-ROM からのブートはうまくいくときと うまくいかないときがあるようで、 disk label が見つからないとかいってブートしない場合もあります。 実際、1 台は当初ブートしなかったので 10.0 にダウングレードして、 そこからもう一度 10.1 のインストールをやりました。
また、FreeBSD/sparc64 は、pkg がない (使えない) ので、 基本的に ports でソースからコンパイルしなければならないし、 freebsd-update もない (使えない) ので、 アップデートするにはソースを update して make world みたいなことをしないといけないようなので、 実運用するのは大変そうです。
OS のインストール後に portspnap で ports ツリーを更新してから X 等をインストールしましたが、 とりあえず普通の ports はまあ使えているようです。 ただし、中には sparc はだめ、みたいなものもあります。 なお、ports ツリーを更新してからでないと、 あとで「依存関係の XX はもはや使えない」とかいうのがあったりするので、 最初にやっておく必要がありそうです。
ちなみに、10.1 では通常はデフォルトのコンパイラは clang (LLVM) のようですが、FreeBSD/sparc64 では今でも gcc-4.2.1 です。 kernel のコンパイルができないとかいうことでしょうか。
最近、2 台のノート PC で、MS-Windows 7 (professional) と FreeBSD 10.0-RELEASE のデュアルブート環境を作りました。 いずれも mbm というマルチブート用のフリーソフトを利用しましたが、 それについてはまた次の機会に書きたいと思います。
別に、最近 EPSON の A4 モノクロレーザプリンタを購入しました (LP-S230DN)。 その設定等について書いておきます。
このプリンタは、PostScript 3 対応 (エミュレーション)、 ネットワーク対応となっていて、値段も安かったので購入しました。 もちろん USB 接続も可能ですが、 ネットワークプリンタにして使用することにしました。 MS-Windows での設定は、付属の DVD でドライバを インストールすれば使えるようになります。 いまどきのネットワークプリンタらしく、 http でプリンタアドレスにアクセスすることで、 Web 上でステータスの確認や設定、テストプリントなどが可能です。
FreeBSD から使う場合は、FreeBSD ハンドブックの 「10.4.3. リモートプリンタからの出力」を参照するとわかりますが、 このプリンタは LPD をサポートするので、 「10.4.3.1. リモートホストに接続されたプリンタ」の設定を行えば OK です。 具体的には、
くらいです。これで、PostScript ファイルをそのプリンタに lpr で流すことで一応印刷されるようになります。
しかし、残念ながら、 日本語が含まれる PS ファイルは日本語部分が文字化けしてしまいます。 調べてみると、このプリンタは欧文の PS フォントは持っているのですが (80 書体)、日本語の PS フォントは持っていないようです。 よって、日本語が含まれる PS ファイルは、 日本語に対応した ghostscript で事前にラスタライズすることで 日本語フォントを埋めこんでやる必要があります。 それには、ghostscript 付属の ps2ps を使用します。 例えば、ports の japanese/a2ps (a2ps-j) を入れてテキストファイルを PostScript ファイルに変えて印刷する場合は、
% a2ps-j file.txt | ps2ps - - | lpr
のようにします。これで無事に日本語も表示されるようになりました。
firefox で印刷する場合は、 ファイルに一旦落としてから同様にラスタライズしてからなら印刷できますが、 firefox はデフォルトの印刷サイズが letter (8.5inch x 11inch) で A4 より少し大きいので、 A4 で印刷するように設定してからファイル出力させるか、 またはラスタライズ後に psresize で A4 にするといいようです。 ラスタライズとリサイズを行うスクリプトを用意して、 lpr の代わりにそれで印刷するように設定すれば もっと楽にできるかもしれません。
なお、ghostscript-7.X の ps2ps は - の引数 (stdin) は受けつけないようですが、ghostscript-8.71 の ps2ps は大丈夫でした。 受けつけない場合は、ps2ps の中身を見て、 自前で gs にオプションをつけてフィルタとして使うようにすればいいでしょう。 psnup や psselect, psresize などを使う場合は、 ps2ps の後がいいようです。
ただ、このプリンタが「PostScript 3 互換 (エミュレーション)」 であることを考えると、プリンタの内部 OS などは知りませんが、 プリンタの内部で ghostscript 使って実際のプリンタ言語に変換している、 といった可能性もあります。 とすると、コンピュータとプリンタで二回も gs にかけて印刷していることになるかもしれません。 もしそうだとすると、なんか二度手間なような気もしますね。
現在の安定版の ntpd のデフォルトの挙動にセキュリティ上の問題があり、 DDoS 攻撃に利用される可能性が、今年 1 月中旬に指摘されていたようです。
対処は、/etc/ntp.conf に「disable monitor」を入れればいいようですが、 せっかくなので、freebsd-update を利用して 8.0 と 8.2 の 2 つの FreeBSD マシンを 8.4-RELEASE-p7 にバージョンアップしてみることにしてみました。
やることは、 ハンドブック の 「18.2. FreeBSD Update」 を見ながら作業をすればいいので、まあそれほど苦労はありません。 ただ、GENERIC カーネルではなく、「カスタムカーネル」、 すなわち自分で再構築したカーネルを使用している環境では やや手間が必要なようで、再構築のやり直しも必要なようです。 うちも一台は再構築してあったのですが、手順がややわかりやすくはなかったし、 実際にカスタムした部分は atapicam の追加だけだったので、 それも GENERIC を使うことにして、 手順に従ってほぼ以下のようなことをやりました。
# cd /root
# ( cd / ; tar cf - ./etc ) | gzip > etc.tgz
# cp -p /usr/sbin/{makemap,mailstats} /usr/bin/vacation .
# cp -p /usr/libexec/sendmail/sendmail .
# freebsd-update -r 8.4-RELEASE upgrade
# freebsd-update install
# shutdown -r now
(ブート)
# freebsd-update install
# cd /etc
# grep 8.4-RELEASE *
# vi hosts
# ....
# cp -p /root/sendmail /usr/libexec/sendmail
# ....
# shutdown -r now
(ブート)
変なものがいくつか入ってますので説明します。 2 行目は /etc のバックアップです。 いくつかのファイルは書き変わる (実際には差分形式で追加されるだけ) ので、 念のためバックアップを取りました。 3,4 行目は、実はうちではデフォルトについている sendmail ではなく、 自前で新しい sendmail をコンパイル・インストールして使っているので、 そのバックアップです。/etc のバックアップにはその意味も含まれています。
5-7 行目が実際の OS のアップグレードの作業ですが、 fetch するファイル、パッチ当ても数万件位あったようで、 相当時間がかかります。特に非力な方のマシン (FMV-6333T7) では、 なかなか終わらなかったので一晩放っておきました。
ブート後に再び freebsd-update install の作業をしますが、 /etc のファイルは、新しい OS 用に変更された部分が差分形式で追加されます。 8.4-RELEASE とかいうものを目印に修正すればいいです。 実は、freebsd-update の際に、vi での修正がうながされるので、 本当はその時点でやればいいのでしょうが、 初めてのこともあり、またパイプで標準出力を log に流していたので vi も使えず、その時点での修正はすべてパスしました。
その後、バックアップしていた sendmail 等を元に戻し、 /etc/mail/submit.cf もバックアップしていたものを元に戻し、 再起動しました。これでだいたいいいようです。
「インストールに関するメモ (08/21 2012)」 に書いた、ValueStar ([va]) と Dynabook ([dy]) への FreeBSD のインストールの続報です。 しばらくは [dy] には結局入れずに、[va] に外付け USB HDD をつないで、 そちらに FreeBSD を入れて、フロッピーから USB HDD をブートする、 という運用を行っていましたが、USB HDD のためか、 emacs での編集中に頻繁にスリープ状態になります。
そろそろ内蔵 HDD の寿命も怪しかったので、 内蔵 HDD のバックアップをかねて、新しい少し大きめの内蔵 HDD を購入し、 そちらに現在入っている MS-Windows 領域をまるまる移し、 そして余った領域に FreeBSD を入れてみることにしました。
現在入っている HDD の内容を新しい HDD へまるごと移す作業は、 内蔵 HDD を購入するとついてくる Acronis True Image というソフトを使用しました。
FreeBSD は、9.1 だとブートマネージャの選択が良くわからないので、 8.3 をインストールしました。 BootMgr を選択することで起動時にブートセレクタが出て マルチブートできるようになっています。
X のインストールや各種ソフトのインストールもほぼ問題なく行えました。 今までとは違い、どちらのマシンでもかなり安定して使えています (スリープも起こりませんし、[dy] の方でも問題なく使えています)。 インストールや、運用に関していくつか気がついたことを上げておきます。
/usr/local/lib/X11/ja_JP.eucJP/app-defaults/Tgifに書いてある
ipa-uigothic-medium-r-*--12-*-*-*-c-*-jisx0208.1983-*がだめなようで、検索すると「XFree86 だとよくて、Xorg だとだめ」とか、 「Xorg 5.7.1 だとだめで、5.7 だといい」といったようなものが見つかります。 とりあえずこのリソースの設定を k12 と k12b に変えたものを .Xdefault に登録して OK.
ipa-uigothic-bold-r-*--12-*-*-*-c-*-jisx0208.1983-*
とりあえず、前の状態よりも十分安定して使えているのでよかったです。
昨年 3 月くらいに、メインマシンを VZ-3000 から FMV 6333T7 にかえています。 その情報を更新していなかったので、あげておきます。
まず、時計がかなり狂っていました。数時間で 10 分位遅れていました。
# sysctl kern.timecounter.hardwareとなっているので、dmesg を確認すると
kern.timecounter.hardware: TSC
% /sbin/dmesg | grep Timecounterとなっています。そこで PIIX に変更するために
Timecounter "i8254" frequency 1193182 Hz quality 0
piix0: <PIIX Timecounter> port 0x7000-0x700f at device 7.3 on pci0
Timecounter "PIIX" frequency 3579545 Hz quality 0
Timecounter "TSC" frequency 341268274 Hz quality 800
Timecounters tick every 1.000 msec
# sysctl -w kern.timecounter.hardware=PIIXとして、/etc/sysctl.conf に「kern.timecounter.hardware=PIIX」 を追加しました。
kern.timecounter.hardware: TSC -> PIIX
音は Yamaha Xwave 6000 を差しています。 ただ、以前は X の起動時に NAS を利用して音声ファイルを鳴らしていたのですが、 それだと X の起動が不安定だったので、 今は起動時の音声の実行はやめていて、 必要最小限の音声ファイルの再生を行っています (できています)。
ネットワークの調子も最初はよくなかったのですが、 IF を変えたりして、現在は使えています。
SCSI ボードは、SCSI の MO とスキャナ用に使用しています。 スキャナは、通常は電源を切ってあって、使用するときに電源を入れて 「/sbin/camcontrol rescan all」で scanimage で使えるようにしています。
プリンタも当初使えなかったのですが、dmesg で 「ppc0: parallel port not found.」とあるのを見て、 BIOS で parallel port が disable になっているのに気がつきました。 enable にして使えるようになりました。
なお、プリンタは、2 枚目の NIC のプライベートアドレス空間にある MS-Windows の PC (ほとんど使わない) からも印刷できるようにと考え、 当初は samba を入れてみたのですが、設定が面倒なのと、 また FreeBSD 側が生きてないとプリントアウトできない、ということになるので、 結局このプリンタ (RICOH IPSiO SP 6210) のネットワークも プライベートアドレス空間につないで、 そちらのネットワークプリンタとして打てるようにしました。
USB の HDD (BUFFALO HD-PCTU2) も、つないだらあっさり使えました。
マウス、キーボードは、hald を使うようにしています。 マウスは最初は PS/2 のを使っていたのですが、 最近 Logicool のトラックボール (M570) にしてみました。 wireless の USB 接続のものですが、 USB に付属のレシーバをつないだら何の設定もなしに使えました。 ただ、トラックボールのカーソルの反応が速いので、 個別のマウスのカーソル移動の変更の設定を色々調べたのですが、 どうやら hald の設定には見つかりませんでした (個別にできてもよさそうですが)。 usb mouse の場合には moused が立ち上がるので、 そのオプションでできないかとも思ったのですが (-a とか)、 それもうまくいきませんでした。 moused は hald の場合は自動起動で、設定は rc.local 内で moused_flags でやることになりますが、 それだとすべてのマウスに通用する設定になってしまいます。 結局今は、~/.xinitrc の中で、 トラックボールがつながっているかどうかを判別して場合分けして、 「xset m 1/2 1」のようなことをやっています。
ちょっと事情があって、うちの研究室のパソコンではないのですが、 少し古いパソコンで FreeBSD の起動テストをやってみました。 使用したのは、以下の 2 台です。
いずれも現在は MS-Windows マシンなのですが ([va] の方は MS-Windows Me, [dy] は MS-Windows Xp)、 それをつぶさずに FreeBSD を動かすことを考えました。
[va] の方はデスクトップ PC なのですが、 いわゆる省スペース型のもので、開けてみると IDE 1, 2 (HDD, DVD) はそれぞれマスターのみのケーブル、 電源コードしかなく、増設スペースもありません。 [dy] はノート PC で、通常の atapi 2.5inch HDD で取り外しも容易ですが、 かといっていちいち入れ替えるのは面倒です。 ということで、いずれも USB の口はあるので、 外付けの USB HDD に FreeBSD をインストールすることにしてみました。
ところが BIOS を見ると、[va] の方は USB からのブートはできなさそうです。 [dy] は USB ブートはできそうで、 実際 USB メモリに入れた Knoppix Linux はちゃんとブートしたのですが、 FreeBSD の方はなぜかうまくいきません。 後で USB-HDD も試しましたが、 FreeBSD を USB-HDD から直接ブートさせるのはどうもだめなようです。
その後調べてみると、BIOS が USB からのブートに対応していない PC の場合、 「フロッピーから PC を起動してそこから USB-HDD の OS をブートする」 という方法があるらしいことを知り、それを試してみることにしました。 使用するのは、plpbt というソフトです。
ここから plpbt-5.0.14.zip というファイルをダウンロードして、 そこに含まれるフロッピーイメージ (plpbt.img) を、 付属ドキュメントに書かれているように 何らかの方法でフロッピーに焼いて使用します。 FreeBSD 上ならば dd でできますし、 MS-Windows (Xp) 上ならば rawwritewin という 別のフリーソフトでそれを行うことができます (なお、どこでダウンロードしたものだったか忘れましたが、 [va] の MS-Windows Me 上で rawwritewin を実行したら、 実際に書き込む際にライブラリがない、とかいって実行できませんでした)。
使用した USB HDD は、I-O DATA の「超高速カクうす」(HDPC-UT500BR, 500GB) です。 こちらには、ThinkPad と FreeBSD 9.0 インストールイメージを焼いた USB メモリを用いて FreeBSD 9.0 をインストールしました。 ただしこの場合、USB メモリが da0、USB HDD が da1 になるため、 /etc/fstab のマウント先が da1p2 になってしまい、 このままこの USB HDD でブートすると / パーティションのマウント時にこけて、 別なマウントパーティションを選択するように言われてしまいます。 一旦そこで da0 を選択 (ufs:/dev/da0p2 を指定) して立ち上げた後で /etc/fstab を変更しておきます。
まず [va] ですが、plpbt の入ったフロッピーディスクを入れて、 USB HDD をつないで電源を入れると、フロッピーから起動し、 plpbt のグラフィカルな選択メニューが表われます。 そこで USB を選択してリターンすると、 めでたく USB HDD の FreeBSD が立ち上がります。 しかしなぜか / のマウントあたりで panic になってこけてしまいました (後に解決)。
[dy] の方は、上にも書いたように USB-HDD から 直接 FreeBSD をブートさせるのはどうもだめなようで、 通常なら最初に現れる回転する | (線) が、 -- の形で出たまま止まってしまいます (USB メモリの方も確か同じ)。 ということで plpbt を試します。 [dy] には 3.5inch FDD もついていて USB FDD をつける必要はありません。 ただ plpbt で USB を選択すると、こちらはそのままブートに移行せず、 plpbt が途中で止まってしまいます。 これは、plpbt のメニューで「setup」を選択して、 そこで設定を多少変更してみるとうまくブートするようになりました。 変更したのは、Force USB 1.1 を Mode 1 (Ignore the EHCI Controller) と countdown くらいだったと思います。 これで USB HDD の FreeBSD が立ち上がるのですが、 [va] 同様やはり / のマウントあたりで panic になってしまいます。
これは、後で気がついたのですが、panic になるのはどうやら FreeBSD がフロッピーディスクを検査にいったときに plpbt のフロッピーがささっているために起こっているようです。 よって、plpbt から FreeBSD のブートに移行した段階で plpbt のフロッピーディスクを抜いておけば、 [va], [dy] ともに問題なく外付け USB HDD の FreeBSD がブートしてくれます。 これで、USB からブートできない BIOS のマシンでも USB-HDD で FreeBSD を利用することができそうです。
他の研究室より ThinkPad X40 (2371-GGJ) をもらったので、 これに FreeBSD 9.0 をインストールしてみることにしました。
元々入っている HD は 40GB なので、 これを別なものに入れかえてそちらに FreeBSD を入れ替えようと思いました。 HD 自体はネジ 1 本で入れ替えができるのですが、 HD を抜いて初めて知りましたが、 ThinkPad X40 の HD は通常の 2.5inch HD ではなく、 1.8inch の Hitachi の特殊形状のものでした (Hitachi Travelstar HTC424040F9AT00 (DK13FA-40), 4200rpm 40.01GB, ATA/IDE)。 調べてみると、60GB のもの (HTC426060G9AT00 (C4K60-60)) があり、 それを通販で取り寄せて FreeBSD をインストールします。 なお、ネットではこの HD は遅い (4200rpm) ので、 むしろ SSD に入れ替えるという情報が多いようです。
インストールは USB メモリスティックを使いました。 F12 でブートドライブを選択して boot したのですが、 USB を認識するあたりで止まってしまいます。 FreeBSD 8.1 インストール用の USB メモリで試してみると、 やはりほぼ同じところで止まりますが、 HD (ad0) を認識したところで止まることに気がつきました。
そこで情報を検索すると、IDE2 を無効にするといいのだけど、 BIOS ではその設定ができず、 IBM (現レノボ) のサイトにあるツールを使ってそれをやる、 という情報がありました (以下の 487 番の記事)。
上記の通りにやると、確かに boot が止まらずに進むようになりました (9.0 も 8.1 も)。
9.0 からはインストーラが bsdinstall に変わっていて、 今までとは多少違いますが、OS のインストールはそれでやって、 後は今までの sysinstall を使って (それも入っている) 追加ソフトのインストールなどをやりました。 そこまではほぼ問題はありませんでした。
卒研中間発表会のプレゼンテーション用に設定をしている EPSON Direct のノート PC EdiCube F750 ですが、boot 時に、
Entropy harvesting: interruputs ethernet point_to_pointの箇所でしばらく止まっていることが気になっていました。 /etc/rc.d 以下を見ると、これは initrandom がやっているらしく、 そこに書かれているものを手動で試してみたところ、 sysctl -a のバッテリチェックに時間がかかっていることがわかりました。 古いノートなのでバッテリがいかれてしまっているようなのですが、 その検出に時間がかかっているようです。 よって、その行の sysctrl -a の部分を削除したところ、 すんなり通るようになりました。
卒研中間発表会のプレゼンテーション用に使おうと思っていた EPSON Direct のノート PC EdiCube F750 の調子があまり良くなかったため、 マウスコンピュータから安いノート PC MB-B401B2 を購入して、 それに FreeBSD を入れて運用してみることにしました。
当初の検討段階では、できれば、
元々の HDD (320GB) には MS-Windows 7 が入っていたのですが、 MS-Windows 7 でのデュアルブートはちょっと面倒そう、 という情報をネットで見たので、 いっそ HDD を外してサラのものに変えて それをまるごと FreeBSD にすることにしました。 ただ、この MB-B401B2 の HDD はあまり簡単には外せなくて多少苦労しました。
キーボードを外すならネジ 1 つだけですし、 簡単に開けられる小さな裏ぶたはメモリとファンが見えるだけです。 HDD は、ノート PC の裏の CD/DVD ドライブの手前にあり、 表のキーボードを外して届くタイプのものではありません。 CD/DVD ドライブは裏のネジ一本で外せますが、 元々 CD/DVD ドライブが入ってないものを買ったので、 そこにはダミーの型が入っています。 そこからも HDD には届かず、 結局裏ぶた全体を取り外す必要があります。 そのために、次のようにしました:
今回は新品でプラスチックの劣化も少なかったためか、 たまたま破損等はなかったようですが、 元々裏ぶた全体はユーザが開けるようには作られていないので、 このような作業による裏ぶたのツメやコードなどを破損の可能性は高そうで、 あまりお勧めではありません (やりたくない)。 この後、HDD をサラのもの (SATA 2.5inch) に入れかえて、 逆の手順でふたを閉じておしまいです。
OS のインストール自体は、USB メモリからやりましたが、 デフォルトの BIOS の設定では USB メモリよりも 無線 LAN からのブートが優先されているようでしたので、 それを切り替えて USB メモリ (+ http proxy 経由) でのインストールを行いました。 HDD は、geometry が XXXXXX/16/63 になっているが、 といういつもの警告がでましたので、 no を選択して XXXX/255/63 にして行いました。 HDD は ad4 と認識されているようです。 それ以降はほぼすんなりインストールが完了しました。
しかし、X で少し問題が出たので、結局今は EdiCube の方をメインにしています。 (詳細は 「X に関するメモ (09/08 2011)」 参照)。 Dual Core、メモリ 4GB というマシンなので、 Xorg がちゃんと対応するようになれば、 是非有効活用していきたいと考えています。
あまり実運用していなかった EPSON Direct のノート PC EdiCube F750 ですが、 卒研中間発表会のプレゼンテーション用に使用するため、 いくつか設定をしながら様子を見ていたら、 X の終了時が不安定だったり、以下のようなものが出たりしていました。
MCA: Bank 4, Status 0xa40000000005001b MCA: Global Cap 0x0000000000000105, Status 0x0000000000000000 MCA: Vendor "AuthenticAMD", ID 0xf4a, APIC ID 0 MCA: CPU 0 UNCOR GTLB LG error MCA: Address 0x1060400これに関して検索してみましたが、 ほとんど情報らしいものは見つけられませんでした。 ただ、メモリに関連する話で似たようなものがあったので、 メモリが問題かなと疑っていました。
いっそ安いノート PC を購入して、 そちらに変えるか、とやってみたのですが、 そちら (MB-B401B2) はそちらで X 等で問題があったので (詳細は 「インストールに関するメモ (09/08 2011; no.2)」, 「X に関するメモ (09/08 2011)」 参照)、結局、EdiCube に 元々入っていた 512MB のメモリ (PC2700) を交換することにしました。 現在は 1GB にしてあります。 ついでに OS を FreeBSD-8.2 に入れかえてみました。 とりあえずは調子は悪くはないようです。
最近ノート PC SOTEC WL2130 のファンが止まったりすることが起こるようになってきたので、 以前他の研究室から譲り受けた EPSON Direct のノート PC EdiCube F750 に FreeBSD-8.1 をインストールしました。 備忘録代わりにまとめておきます。
この EdiCube は USB メモリからのブートもできるようでしたので、 FreeBSD-8.1-RELEASE-i386-memstick.img をダウンロードして dd で USB メモリに焼いてそれでブートしました。
内蔵 16GB HD の Fdisk の際、デフォルトでは 310101 cyls/16 heads/63 sectors と認識されていて、古い BIOS では 65536 以上の cylinder は認識されない、 と出るのですが、そのままインストールすると Boot のとき (BootMgr を選択) にハングアップしてしまいました。
そこでこの画面の際に No を選択して 19457 cyls/255 heads/63 sectors でインストールしたらちゃんとブートするようになりました。 ただし、ブート時に
GEOM: ad0s2: geometry does not match label (255h,63s != 16h,63s).などと出るのが少し気になります。 ちなみに、ad0s1 は後で MS-Windows をインストールするために 80GB ほど空けてあります。
配布物はネットワーク経由で取得したのですが、 EdiCube には本体の LAN の口一つの他に モデムポートのようなものも一つあり、 さらに無線 LAN の機能も内蔵されているようです。 そして、ネットワークデバイスの選択画面も 4 つのエントリが出ました。
plip は違うだろうと思っていたのですが、 最初はいずれを指定しても接続に失敗していました。 調べてみたところ、fwe0 は IEEE1394 による Ether 接続のようでこれは関係なさそうです。 再ブートして BIOS 画面で無線 LAN と Modem の機能を OFF (LOCKED) にしてみたら sk0 でつながるようになりました。
それ以外はすんなりインストールできました。
長年使用していた PC9821Xs のディスプレイが壊れ、 そのストックもなくなった (探せば多分ありますが) ので、 急遽 VZ-3000 に FreeBSD-8.1 を入れて乗り換えることにしました。 それが意外に手間取りましたので、備忘録代わりに書いておきます。
「インストールに関するメモ (03/20 2006)」 に書いたようにこの VZ-3000 の BIOS は古いせいで、 40GB 以上の IDE HD は認識してくれない (32GB まで) のですが、 手持ちの HD の最小単位が 40GB (Seagate ST340015A) だったので、 まずはそこから始めました。
「インストールに関するメモ (03/20 2006)」 にあるように、jumper の設定でなんとかなるかと思って調べたところ、 Seagate のサイト に 32GB 制限にするためのような jumper の設定の絵があります (1-2)。 実際にそこに jumper を入れてみると、 BIOS は IDE のディスクがない (認識しない)、とみなすようです。
このマシンは IDE CD-ROM からのブートさえできない (SCSI CD ならできる) ようなので、小金丸さん のところから FreeBSD 8.1 用のインストール用フロッピーをダウンロードして それでブートすると、 ちゃんと FreeBSD では IDE の HD が 40GB として認識されます。 ところが、そのフロッピーでインストールを終了すると、 BIOS がこの HD を認識しないため、この HD からのブートができません。 FreeBSD が立ち上がらないと HD が認識できない、ということは、 フロッピーからブートして、そこのローダから HD の kernel を引っ張り出す、 ということもできなさそうです。
ということで別な手を探したところ、Seagate が提供するツール (Seatools) を使って HD を 32GB に制限して使用できる、という情報を見つけました。
CD-ROM 版もあるようですが、VZ-3000 は CD-ROM ブートができないので、 フロッピー版を使用しました。これは FreeDOS ベースのようです。 なお、Graphical 版 (v.2.20) と Text 版 (1.10) があり、 Graphical 版は英語版だけでなく日本語版もあるようですが、 Graphical 版はうまく動かなかったので、Text 版を使用しました。 「Set Capacity」というメニューがあり、 そこで「Set 32GB Capability」を実行して終わりです。 なお、メニューを見ると元の 40GB に戻すこともできるようです。 とりあえずこれでちゃんと現在の BIOS で認識されるようになりました。 その代わりこれをやると 32GB しか使用できなくなります。
後は普通にフロッピーブートして普通にインストールできました。
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 に上げたのですが、 マシンは別の部屋にあったので、 遊んでいた 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)」) から、その辺りが今後の問題になると思います。
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 を試してみることにしました。以下がその際の留意点です。
(cf. 「インストールに関するメモ (12/04 2004)」, 「インストールに関するメモ (03/07 2005)」)
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 のセットアップでも同様の現象が出ましたが、それに関しては 「X に関するメモ (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 presentFreeBSD-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 へのパッチも新たな物は作成しない予定です。
一度は使えていると思った 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 です。 このマシンの詳しい情報は後で追加します。
「インストールに関するメモ (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 が使えることのみ確認しました。
「インストールに関するメモ (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 ...(以下略)...のように書かれているためのようです。
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 と表示されるのが少し気になります。
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 で置き換えるための下準備ができました。
「インストールに関するメモ (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) *
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
のように言われてしまいます (+_+)
(cf. 「インストールに関するメモ (02/20 2002)」, 「インストールに関するメモ (02/20 2002)」)
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 の作業を止めるしかありません。