FreeBSD QandA 2001年2月27日 更新分
管理番号 1650 (新規)
更新履歴
Q. apache を 1.3.12 にしたところ、認証をしかけてあるページなど
一部のページが Netscape Navigator で化けて表示されてしまいます。
A. セキュリティ上の理由から apache-1.3.12 以降では、apache が
生成する HTTP ヘッダに charset が付くようになりました。
<URL:http://www.apache.org/info/css-security/>
リダイレクトされたページや認証を要求したページなどは、一度クライアントに
Content-type: text/html; charset=iso-8859-1
Location: http://......
というヘッダが返り、ブラウザは Location ヘッダで示された URL を
再度読み込みます。
しかし Netscape Navigator は
Location で示されたページに charset が指定されていないと、
前ページの charset を次ページに引き継いでしまう
というバグがあるため、日本語のページを charset=iso-8859-1 だと
勘違いして化けて表示してしまうのです。
ですから、AddCharset, AddDefaultCharset, ForceType などのディレクティブを
使って、Location で示されたページが HTML ファイルに見当った charset を
返すように設定すれば解決します。
例えば、あるディレクトリ以下に iso-2022-jp な HTML ファイルしか存在
しないなら (たとえば MHonArc で作成している ML Archive など)
httpd.conf に
<Directory "/usr/local/apache/htdocs/ML">
AddCharset ISO-2022-JP .html
</Directory>
と書きます。
また、一般ユーザ権限しかなく、全コンテンツが EUC-JP で記述されている
なら、~/public_html/.htaccess に
AddCharset EUC-JP .html
と書けばよいでしょう。
参考ページ
<URL:http://www.asahi-net.or.jp/~AE5T-KSN/apache/charset-problem.html>
管理番号 1670 (新規)
更新履歴
Q. cvsup(1) の設定で, 設定例ファイル /usr/share/examples/cvsup/refuse を
refuse ファイルとして使用すると、src-all の更新ができなくなくなるの
はなぜですか?
A. cvsup の refuse ファイルは cvsup で更新したくないファイルの
ファイル名を記述する目的で使われます。このファイルには現在の
ところ`#'で始まるコメント行を書くことができません。
しかし FreeBSD 4.1-RELEASE 以前の /usr/share/examples/cvsup/refuse
には `#' から始まるコメントが含まれているため、設定例ファイルを
そのままコピーして使用するとコメント行が含まれることになります。
その一部に ` src ' という文字があるため src-all が更新できません。
すべてのコメント行を消去すれば解決します。
管理番号 1672 (新規)
更新履歴
Q. fxtv で表示されるチャンネルと、実際のチャンネルがずれて
しまいます。
A. 少なくとも fxtv-1.02 では、日本の周波数を使うようにしないと
チャンネルがずれます。アンテナ入力の場合は X のリソースに
Fxtv.antennaFreqSet: jpnbcst
と記述します。ケーブル TV の場合は
Fxtv.tunerMode: cable
Fxtv.cableFreqSet: jpncable
です。
ただし、これによって影響を受けるのは 13ch 以降のチャンネルを
指定した場合だけで、VHF low 及び VHF high(1〜12ch)の受信は
どちらを指定しても構いません。
管理番号 47 (更新)
更新履歴
Q. NEC PC-9801/9821シリーズでハードディスク起動メニューから、FreeBSD(98)
の領域を選んだのですが boot できません。
A. FreeBSD(98)はハードディスク起動メニューの種類により、起動できない
ことがあります。もしこのような状態なら、DOS 標準の起動メニューを
入れ替える必要があります。
安全かつ確実な方法は、DOS 付属の format コマンドで初期化することです
(この時は、ディスクの中身が全て消えますのでバックアップを忘れずに)。
しかし「フォーマットするのは面倒だ」と思われる方には次の方法があります。
1.起動メニューから選べなくてもよく、DOS から起動できればいい。
---> HSB (Ver3.7 以降) を使用すれば、起動できる可能性があります。
2.起動メニューから選べなくては嫌だ、多少のリスクを負ってもよいので
起動メニューを入れ替えたい。
---> HDU を使えば、起動メニューの入れ替えが行えます。
ただし、付属のドキュメントを十分読んだ上作業してください。
3.FreeBSD(98) 4.1R 以降では、pc98 アーキテクチャ用のブートマネージャ
(boot0, boot0.5) が追加されました。boot98cfg(8) を使って HDD に
書き込んだり、ブートマネージャの設定を変更したりできます。
HD 起動メニューが壊れた場合など、NEC 製 の HD 起動メニューの
代わりに使用できます。使用方法は Instal98.txt を参照してください。
<URL:http://www.jp.FreeBSD.org/pc98/releases/4.1R/Relnot98.txt>
HSB、HDU は Masao 氏 <PAG02771@nifty.ne.jp>が、公開されている
フリーソフトです。
<URL:http://www.vector.co.jp/soft/dos/util/se002233.html>
<URL:http://www.vector.co.jp/soft/dos/util/se009150.html>
また、えらー15氏が HSB を PC-9821Ra で使用するための差分を公開して
います。PC-9821RvII26 等でも使用できる可能性があるので試してみると
よいでしょう。
<URL:http://hp.vector.co.jp/authors/VA000363/>
管理番号 1781 (新規)
更新履歴
Q. FreeBSD 4.2R を使用しています。ipfw を使い Firewall を構築しています。
「/etc/rc.firewall」に独自のルールを記入して、手動で
# sh /etc/rc.firewall
と実行するとエラーにならないのですが、起動時に自動的に実行させようとす
ると ipfw がエラーになり、ルールが追加出来ません。なぜでしょうか?
A. 可能性の一つでしかありませんが、ipfw(8) のルールにIPアドレスではなく、
ホスト名を使っていませんか?
例:
${fwcmd} add pass tcp from any to www.tomoeda.ac.jp http
^^^^^^^^^^^^^^^^^
ホスト名。
ホスト名は使わずにIPアドレスで書いてください。
${fwcmd} add pass tcp from any to 192.168.0.100 http
どうしてもホスト名で書きたい場合は、/etc/hosts に該当ホストを記入して
ください。起動時に /etc/rc.firewall が実行される時点では、ネットワーク
のセットアップがまだ終わっていないので DNS は使えません。
管理番号 1451 (更新)
更新履歴
Q. Future Domain 1610M ISA SCSI カード (TMC18C30 チップセットベース) は
FreeBSD で使えますか?
A. PAO の stg ドライバは ISA frontend をそなえて FreeBSD にマージされました。
4.2-RELEASE 以降の stg ドライバで使うことはできますが、インストールフロッ
ピーでは認識させることができませんので、インストール時には別の方法を使っ
てください。また、3.5R と PAO3 の組み合わせでもおそらく使えると思います。
カーネルをコンパイルする手段は別に必要ですが、kern.flp のカーネルだけ
入れ換えればインストール時にも使えます。入れ換えるカーネルの要点は、
GENERIC (PAO3 なら PAO_ALL) カーネルから不必要なドライバを削除した上で、
device stg # TMC 18C30/18C50
という行を
device stg0 at isa? port 0x140 irq 11 # TMC 18C30/18C50
と変更したカーネルを作ります。リソース指定値は個別に調整してください。
このとき、`options MFS' と `options MD_ROOT' (PAO3 というか 3.x では
`options MFS_ROOT') は削除しないでください。作成したカーネルは kern.flp
を書き込んだフロッピーを普通にマウントすればコピーできます。
# cp GENERIC <your kernel configuration file>
# vi <your kernel configuration file>
# config -r <your kernel configuration file>
# cd ../../compile/<your kernel configuration file>
# make -DNO_MODULES depend all
# mount /dev/fd0c /mnt
# gzip -9cv kernel > /mnt/kernel.gz
# umount /mnt
なお、vnconfig(8) を使えば kern.flp 自体を直接変更できます。
# vnconfig /dev/vn0 /tmp/kern.flp
# mount /dev/vn0c /mnt
# gzip -9cv kernel > /mnt/kernel.gz
# umount /mnt
# vnconfig -u /dev/vn0
管理番号 1617 (更新)
更新履歴
Q. FreeBSD 4.X で IO データ機器製の SCSI アダプタ SC-UPCI を
利用しようとしています。このアダプタには Symbios の 53C875 が
使われているのですが、LINT には ncr と sym という二つのドライバが
存在します。どちらを使えば良いのでしょうか?
A. それぞれの SCSI ドライバは 4.1.1-RELEASE の時点で
以下のコアチップをサポートしています。sym は 4.X から新たに
追加されたドライバで、特に 53C896, 53C895A, 53C1010 向けに
最適化されたものです。
sym | ncr | SCSI アダプタ
-------------+--------------+--------------
53C810 | 53C810 |
53C810A | 53C810A |
53C815 | 53C815 |
53C825 | 53C825 |
53C825A | 53C825A |
53C860 | 53C860 |
53C875 | 53C875 | SC-UPCI
| 53C875A |
53C876 | |
53C885 | 53C885 |
53C895 | 53C895 |
◎ 53C895A | |
◎ 53C896 | 53C896 |
◎ 53C1010 | |
53C1510D | 53C1510D |
SC-UPCI は、53C875 を搭載しているため、従来の ncr、
新しく追加された sym のどちらでも利用可能です。
ncr と sym は現在、両方がメインテナンスされています。
確かな予測ではありませんが、ncr の方が設計が古いため、
将来的に重複する機能は sym へ統合される可能性が考えられます。
しかし、古いバージョン (1.43 より前) の BIOS を搭載した
SC-UPCI で sym を利用する場合、BIOS 起動時に SCSI デバイスを
スキャンしない場合があるなどの不具合が生じる場合があります。
これは 古いバージョンの SC-UPCI の内部で、ユーザ設定情報の
保存に使われている記録形式を sym が正しく認識できないことが原因です。
ncr を利用する場合には、特に不具合は報告されていません。
もし、sym で動作しない場合には、次のいずれかを行なうことで
SC-UPCI を利用することが可能です。
1) firmware をアップデートする。
SC-UPCI の firmware バージョンを 1.43 以降のものにアップデートす
ることで、sym ドライバが正常に動作する可能性があります。また、1.43
以降にアップデートしただけではスキャンしない場合でも、「SC-UPCIコン
フィグレーション(詳しくはボードのマニュアルを参照)」で、SCSI-ID 8
以降をスキャンしないように設定すれば、使えるようになる可能性があり
ます。
アップデートについては、<URL:http://www.iodata.co.jp/> を参照して
ください。
2) ncr を利用する。
sym と同様 53C875 をサポートしていて、動作実績があります。
もちろん、古いバージョンの BIOS を搭載している場合でも
正常に動作することが確認されています。
3) アダプタから設定情報を読み出す機能を無効化する。
ソースファイルの /usr/src/sys/dev/sym/sym_conf.h に含まれる
#define SYM_CONF_NVRAM_SUPPORT
という行をコメントアウトしてカーネルを再構築してください。
なお、確認した環境は
o FreeBSD 4.0-STABLE (Sun Apr 23 05:16:42 JST 2000)
o FreeBSD 4.1.1-STABLE (Sun Oct 22 04:16:38 JST 2000)
o AOpen AX6BC + SC-UPCI SCSI Adapter (BIOS ver.1.32 および 1.63)
o PC-9821V13M + FreeBSD(98)4.2R-Rev01 のインストールフロッピー
(kern144.flp, mfsroot.flp)
です。
管理番号 1788 (新規)
更新履歴
Q. FreeBSD 3.3-RELEASE を使用中ですが corega PCI-TXL(VIA VT6102 + LSI L80225/B) が
認識されません。
A. 3.x を使い続けるなら [FreeBSD-users-jp 53044] のパッチを当てましょう。
なお、4.1-RELEASE 以降なら、GENERIC な kernel で認識されます。
しかし、Windows 終了直後、電源を切らずに FreeBSD を起動し直すと MAC
address が引けないという報告があります。
vr0: <VIA VT6102 Rhine III 10/100BaseTX> rev 0x42 int a irq 9 on pci0.10.0
vr0: Ethernet address: 00:00:00:00:00:00
vr0: MII without any phy!
このように表示される場合、電源を一度切り FreeBSD を立ち上げてみましょう。
vr0: <VIA VT6102 Rhine III 10/100BaseTX> rev 0x42 int a irq 12 on pci0.10.0
vr0: Ethernet address: aa:bb:cc:dd:ee:ff
vr0: autoneg complete, link status good (full-duplex, 100Mbps)
ただ、一度カードをスロットから抜いて差し直さないと駄目という報告もあります。
管理番号 1547 (更新)
更新履歴
Q. wget で HTTP や FTP 経由で再帰的にファイルを取得したいのですが。
A. HTTP や anonymous FTP の場合は、それぞれ
wget -m -np http://host/dir/
wget -m ftp://host/dir/
でできます。
HTTP では、http://host/robots.txt に探索を排除する記述があると、
ファイルを再帰的には取得できません。
また、 wget は HTML の OBJECT 要素、CITE 属性、LONGDESC 属性、
USEMAP 属性、PROFILE 属性、スクリプトなどに対応しておらず、
これらで参照されるファイルは取得できません。スタイルシートへの
対応も不完全です。
普通の FTP で、例えば ~/dir 以下を取得したい場合、
wget -m ftp://user:pass@host/dir/
とします。
普通の FTP で、ホームディレクトリ以外、例えば /dir 以下を取得したい
場合は、絶対パスで、
wget -m ftp://user:pass@host/%2Fdir/
と書きます。 %2F はルートディレクトリを表すスラッシュを URL エンコード
したものです。スラッシュをエンコードせずに、
wget -m ftp://user:pass@host//dir/
としても同じ結果が得られますが、これは RFC 的に正しくありません。
(従って wget 以外に応用しようとするとうまくいかない可能性があります)。
一般的な URL の書式については RFC2396 を、HTTP URL や FTP URL の
解釈については RFC1738 を参照してください。
host というディレクトリを掘られたくなければ、-nH を、home/user/ と
いったディレクトリを掘られたくなければ、--cut-dirs=2 を追加すれば
よいでしょう。
wget には多くのオプションがありますので、詳しくは wget --help や
info wget などとしてください。
管理番号 65 (更新)
更新履歴
Q. I18N、L10N、M17N って何ですか?
A. I18N は InternationalizatioN の略です。I と N の間に 18 文字
挟まれているのでこう呼びます。国際化と訳されます。多くの言語に
対応できるようなフレームワークを作ったり、アプリケーションで
モードを切り替えることで多言語を扱えるようにすることを指します。
例えば Netscape Navigator/Communicator は、文字コードセットを
切り替えて多言語を表示できるので I18N と言えます。
L10N は LocalizatioN の略で、地域化と訳されます。例えば
アプリケーションを日本語を扱えるようにすることを指します。
ASCII しか表示できないアプリケーションにパッチを当てて、
日本語を表示可能にするのは L10N です。
M17N は MultilingualizatioN の略で、多言語化と訳されます。
1つのアプリケーションで多言語を同時に扱えるようにすることを
指します。mule は日本語・ハングルなどを同時に扱えるので
M17N と言えます。
管理番号 710 (更新)
更新履歴
Q. CPU や マザーボードを入れ替えたら、FreeBSD が起動しなくなって
しまいました。どうすればいいのでしょうか。
A. システムの構成が変わると kernel もそれにあわせて変更する必要が
あります。
cpu "I686_CPU"
のような CPU 定義の部分にも注意してください。
FreeBSD 4.X までであれば多くの環境に対応した GENERIC kernel が
/kernel.GENERIC にあるので、これで起動してから kernel を再構築
しましょう。
管理番号 411 (更新)
更新履歴
Q. PostScript 対応でないプリンタを FreeBSD で使いたいのですが、
なにか良い方法がありませんか?
A. お使いのプリンタによって、以下の方法があります。
1. エプソン製のインクジェットプリンタの場合、エプソンコーワが配布して
いる PIPS を使うことで、 PostScript プリンタのように扱えます。
<URL:http://www.epkowa.co.jp/pips/pips.html>
ports/packages の japanese/pips* にもあります。
PIPS は PNG フォーマットの入力を Epson の inkjet プリンタコードに変
換するソフトで、エプソンコーワより配布されています。Ghostscript と
組み合わせたフィルタを利用することにより、PostScript の印刷時にも活
用できます(そのためのフィルタなどが付いているはず)。
Ghostscript による mjc720 や uniprint ドライバなどの Epson inkjet 用
出力に比べて 6色インクのサポートなどにより Windows ドライバ並の良い
画質が得られます。
他にも似たようなやり方をするものには、HP の inkjet の低価格機種など
で、gs の出力を別のプログラムで制御コードに変換することにより印刷が
可能になるものがあります。(詳しい情報求む)
2. その他のプリンタの場合、 Ghostscript を使うことにより PostScript
プリンタのように扱えるものもあります。
Ghostscript については、[管理番号 1458] を参照してください。
管理番号 1812 (新規)
更新履歴
Q. FreeBSD 4.0 以降ではディスクの不良ブロックチェック(スキャン)
などを行う bad144 コマンドがなくなりましたが、これからはどうやって
不良ブロックチェックを行えばよいのでしょうか?
A. FreeBSD 4.0 以降の ad ドライバでは bad sector table のあるパーティ
ションがサポートされなくなり、bad144 コマンドもなくなりました。
したがって、基本的に OS 上で不良ブロックのチェックを行うことはでき
ません。[管理番号 278] 参照。
一般的に OS の稼動中にディスクのチェックツールを使用するのは、
結果に対する信頼性に欠くばかりでなく、HDD などに無理な負担がかかる
可能性もありますので、OS 上での不良ブロックのチェックはあきらめて、
以下のような診断ツールを使ってください。
IBM Drive Fitness Test
<URL:http://www.storage.ibm.com/techsup/hddtech/welcome.htm>
Maxtor POWERMAX v2.4
<URL:http://www.maxtor.com/Softwaredownload/default.htm>
Quantum QDPS
<URL:http://www.quantum.com/support/csr/software/csr_software.htm>
Seagate SeaTools Disc Diagnostic
<URL:http://www.seagate.com/support/index.html>
その他、メーカーを問わずハードウェアのチェックがができる
AMIDIAG(あな診)というものもあります。(有料)
<URL:http://www.amij.com/> (日本語サイト)
<URL:http://www.ami.com/>
また、OS の稼働中にディスク交換する必要がある場合は、ホットスワップ
対応の RAID 装置を使用することを考慮してください。これらのデバイス
を利用すれば、ディスクを一旦システムから切り離して、不良ブロックの
チェックなどのメンテナンス作業を行うことができます。
管理番号 344 (更新)
更新履歴
Q. ppp(8) を利用して PPP 接続を行ったところ、 接続は出来て ping も通る
のですが、 telnet hostname とすると 'unknown host' というエラーが返っ
てきて、接続出来ないのですが?
A. ホスト名から IP アドレスが取得できないようです。/etc/ppp/ppp.conf の
該当セクションに、
enable dns
の一行を加えてください。これにより、ISP の DNS サーバを自動的に参照す
るように、/etc/resolv.conf が設定されます。ただし、最近では少ないと思
いますが、ISP の PPP サーバがこれらの情報を返してくれない場合、こちら
の設定で対処するしかありません。これについては後述します。
もし、ローカルで DNS サーバが動作していて、PPP に接続していないときは
ローカルの DNS サーバを参照する必要があれば、/etc/ppp/ppp.linkdown の
該当セクションに、
resolv restore
を追加します。もし設定ファイル自体がなければ作成してください。
/usr/share/examples/ppp/ 以下にインストールされたサンプルが参考になる
でしょう。
上記の方法が使えない場合、または FreeBSD 2.2.7R 以前では、少々原始的な
方法を取らざるを得ません。/etc/resolv.conf に、
nameserver 192.168.1.2 192.168.2.3
などのように DNS サーバの IP アドレスを並べます。最大 3 つまで書けます
が、もし一番目のサーバが問い合わせに答えなければ、順にあとの DNS サー
バへの問い合わせを行います。接続先が ISP なら、契約時に DNS サーバの
IP アドレスを教えてもらったはずなので、その IP アドレスを書けばよいで
す。それ以外の環境ではそのサイトの管理者に問い合わせてください。詳しい
書式は man ページの resolv.conf(5) を参照してください。
FreeBSD でホスト名の解決を行うには、/etc/hosts データベース、DNS といっ
た順でホスト名から IP アドレスを検索します (2.2.7R 以前は逆でした。詳
しくは /etc/host.conf を参照)。このうち、/etc/hosts には IP アドレスと
ホスト名が一覧されていますが、当然のことながら世界中のホストについて列
挙することは不可能です。このため、/etc/hosts でホスト名が見付からない
場合、DNS への問い合わせを行うのですが、この際どこに問い合わせれば良い
かを指定するのが /etc/resolv.conf です。