--- [管理番号 1601] (最終更新 2001/04/18 02:12:12) Q. TDK LAK-CD021BX のように fe driver で動く PC Card ether device が FreeBSD 4.0-RELEASE で使えません。何故でしょうか。 A. FreeBSD 4.0-RELEASE では PC Card 周りが newbus 化されましたが、 この時点では fe driver はまだ newbus 化されておらず、PC Card では利用できませんでした。 2000年9月14日に fe driver も newbus 化され、FreeBSD 4.1.1-RELEASE 以降では PC Card でも使えるようになりました. --- [管理番号 1616] (最終更新 2001/08/12 02:51:18) Q. system の状態をみるコマンドでつぎのようなエラーが発生してしまう。 % swapinfo swapinfo: undefined symbol: _numvnodes % pstat pstat: undefined symbol: _numvnodes % top top: nlist failed A. FreeBSD の version を 3.x-RELEASE から 4.0-RELEASE 以降に upgradeしましたか? 3.x-RELEASE では、kernel の symbol table は /etc/rc のなかで kvm_mkdb(8) によって /var/db/kvm_kernel.db につくられ、 これらコマンドの実行時には参照されていました。 4.0-RELEASE 以降、/etc/rc で、kvm_mkdb を行わなくなり kernel を読み 込むのに /boot/loader を使用しないと、symbol table が、参照できないため _numvnodes のような kernel 内の static に宣言された変数が参照できなくて、 このようなエラーとなります。 /boot.config の中に "kernel" 等と記述していると、直接 kernel を load する ことになりますので、上記のような現象が発生します。/boot.config を空とするか、 消去するなどして、/boot/loader が、kernel を load するようにすることで、 これらのコマンドが使えるようになります。 3.x-RELEASE の時に、/boot.config に /kernel などと記述していて、 4.0-RELEASE 以降に upgrade した時に発覚するようです。 --- [管理番号 1617] (最終更新 2004/04/09 05:05:18) 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 以降をスキャンしないように設定すれば、使えるようになる可能性があり ます。 アップデートについては、 を参照して ください。 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) です。 --- [管理番号 1620] (最終更新 2001/08/12 05:25:06) Q. WindowsNT/2000 上の VMware で FreeBSD を使うと、起動時に IPv6 アドレス のエラーが起きます。 lnc0: starting DAD for fe00:0001::0250:56ff:fe00:1a83 lnc0: DAD detected duplicate IPv6 address fe00:0001::0250:56ff:fe00:1a83: 1NS, 0NA lnc0: DAD complete for fe00:0001::0250:56ff:fe00:1a83 - duplicate found lnc0: manual intervention required A. この問題は、VMware の ethernet chip エミュレーションが ethernet multicast について正しくない為起きています。 現在は lnc driver に修正を加えて回避しています (2000/12/11)。 --- [管理番号 1621] (最終更新 2000/06/25 02:30:19) Q. FreeBSD 4.0-RELEASE で xmcd-2.6 を ports からインストールしたのですが、 no disc と言われて CD が再生できません。また、-debug オプションをつけて 起動すると、 SCSI CDB bytes (dev=/dev/rcd0c rw=0 to=20): 0000 00 00 00 00 00 00 -- -- -- -- -- .............. SCIOCCOMMAND ioctl failed: Inappropriate ioctl for device というメッセージが出力されます。 A. おそらく、お使いの imake のバージョンが古いことが原因です。 に、以下のような記述があります。 -- ここから -- 1.25 Wed Feb 23 3:40:29 2000 UTC by deischen CVS Tags: RELEASE_4_0_0 Diffs to 1.24 Upgrade to latest release (xmcd-2.6). This still fails to build correctly on -current since the /usr/libexec/cpp fiasco -- old versions of imake still use /usr/libexec/cpp instead of gcc -E. If you don't have a fixed version of imake, a quick fix to get around this is to set IMAKECPP=/usr/bin/cpp in your environment before make'ing this port. Note that the port builds without errors if you don't have the correct version of imake, but FREEBSD_CAM will not be defined and xmcd will use the ioctl method which hasn't worked since 3.0. -- ここまで -- 新しい imake を入れるか、 $ IMAKECPP=/usr/bin/cpp make として make して下さい。 FreeBSD 4.1-RELEASE 以降では、この問題は起こらないはずです。 --- [管理番号 1624] (最終更新 2001/01/08 04:45:02) Q. 3.5-RELEASE / 4.1-RELEASE / 5.0-CURRENT にしたら、 ppp(8) が利用できなくなりました。/var/log/ppp.log を 見ると 状況 1. chat script の set dial "......" の部分に書いた $N1=1 という部分が表示されていません。 状況 2. 認証のところで tun0: Phase: Chap Input: CHALLENGE (16 bytes from denwa) tun0: Phase: Chap Output: RESPONSE (xxxxxxx) tun0: Phase: Chap Input: FAILURE とすぐに失敗してしまいます。 A. /etc/ppp/ppp.conf に "$" 記号が含まれていませんか? "$" を "\" でエスケープする必要があります。 2000/3/21 に、3.0-STABLE/4.0-STABLE/5.0-CURRENT の ppp が変更され、 "$" で始まる文字列は環境変数への参照とみなされるようになりました。 FreeBSD 3.5 または 4.1 以降のバージョンをお使いの方は気を付けて下さい。 状況 1. に対して、具体的には次のような設定の場合、 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT OK-AT-OK ATQ0V1X0$N1=1 OK \\dATS7=50&K3 OK ATDT\\T TIMEOUT 30 CONNECT" 以下のように書き換えなければなりません。 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT OK-AT-OK ATQ0V1X0\$N1=1 OK \\dATS7=50&K3 OK ATDT\\T TIMEOUT 30 CONNECT" つまり、 ATQ0V1X0$N1=1 → ATQ0V1X0\$N1=1 と、"$" を "\" でエスケープしなければいけません。 状況 2. に対して、authkey の設定されている password に "$" が 含まれていませんか。 set authkey "XXX$XXXX" ↓ ^ set authkey "XXX\$XXXX" ^^ としてエスケープしなければなりません。 --- [管理番号 1730] (最終更新 2001/01/08 04:34:53) Q. FreeBSD 4.1.1-RELEASE 以降を使用しています。 FreeBSD ハンドブック「10.5 ディスクの追加」の「10.5.2.2 専用モード」を 参考にして HDD の追加を試みましたが、次のエラーが出て先に進めません。 % dd if=/dev/zero of=/dev/rad1 dd: /dev/rad1: Operation not permitted A. 可能性の一つでしかありませんが、インストール時に「Select default system security profile」を「High」(4.1.1R) または「Extreme」(4.2R 以降) に設定しなかったでしょうか。sysinstall(8) で次の場所にある項目です。 /stand/sysinstall -> Configure -> Security 設定したなら /etc/rc.conf に次の行があると思います。 -- /etc/rc.conf -- kern_securelevel="2" kern_securelevel_enable="YES" ------------------ この二行があると、上記エラーになります。システムをシングルユーザモード で再起動して作業するか、セキュリティレベルを下げてください。 FreeBSD のカーネルには 0〜3 までの 4 つのセキュリティレベルがあり、こ の値によってデバイスファイルへの書き込みを禁止できます。これ以外にも、 カーネル変数の変更を禁止したり、パケットフィルタルールの変更を禁止した りできます。 現在のセキュリティレベルは % sysctl kern.securelevel で参照可能。デフォルトは -1。 詳しくは securelevel(8) または init(8) を読んでください。また、セキュ リティに関して security(7) も参考になるでしょう。なお、sysinstall(8) のメニューに登場したのは 4.1.1-RELEASE が最初ですが、セキュリティ レベルの機能自体はもっと以前からありました。 --- [管理番号 1764] (最終更新 2004/04/09 05:05:29) Q. FreeBSD 4.x (4.8-RELEASE 以前)で kterm を使っているときに、vi など で画面の文字がゴミとなって残ることがあります。 A. FreeBSD 4.x で画面制御ライブラリに ncurses(3) を使用するように なったため、termcap(5) データベースの kterm に関するエントリに 潜んでいたバグが顕在化しました。 今のところ 2 通りの解決方法があります。 1) /usr/share/misc/termcap の kterm のエントリを以下のように修正し、 /usr/share/misc で cap_mkdb termcap を実行して下さい。 kterm|kterm kanji terminal emulator (X window system):\ :hs:es:ts=\E[?E\E[?%i%dT:fs=\E[?F:ds=\E[?H:\ :KJ:sc=\E7:rc=\E8:cs=\E[%i%d;%dr:TY=ascii:\ :eA@:as=\E(0:ae=\E(B:tc=xterm-r6: 2) $HOME/.termcap (なければ作成する) に以下の記述を追加し、 eval `tset -s` をシェルの初期化ファイルなどで実行して下さい。 ただし setuid/setgid された一部のプログラム( systat(1) , top(1) など)には、このやり方では対応できません( ncurses(3) 参照)。 kterm|kterm kanji terminal emulator (X window system):\ :hs:es:ts=\E[?E\E[?%i%dT:fs=\E[?F:ds=\E[?H:\ :KJ:sc=\E7:rc=\E8:cs=\E[%i%d;%dr:TY=ascii:\ :eA@:as=\E(0:ae=\E(B:tc=xterm-r6: なお 4.9-RELEASE からは、この修正が標準で /usr/share/misc/termcap に入っています。 --- [管理番号 1893] (最終更新 2001/05/07 03:21:09) Q. 色々なデバイスを使いたいのですが、毎回カーネル (kernel) のコンパイルにえらい時間がかかります。なんとかなりませんか。 A. /sys/xxx/config にある、config ファイルに記述された device や option を KLD 化して config ファイルから 取り去ってしまいましょう。 全ての device や option はまだ外せないですが usb や network card, netgraph, sound 関係は 外せるようです。 外した device などを 使いたい時は、デフォルト設定を参考に /boot/loader.conf へ 記述するか、 起動時に明示的に load しましょう。 --- [管理番号 1894] (最終更新 2004/07/12 23:14:37) Q. 3.x-RELEASE から 4.x-RELEASE にアップグレードしたら ls(1) などで表示されるタイムスタンプの形式が変わってしまいました。 3.4-RELEASE: -rw-r--r-- 1 user group 1718 Apr 12 21:29 filename 4.2-RELEASE: -rw-r--r-- 1 user group 1718 4/12 21:29 filename 3.x-RELEASE と同様の形式にするにはどうしたらよいですか? A. LANG や LC_TIME などの環境変数を確認してみて下さい。 4.0-RELEASE 以降: /usr/share/locale/ja_JP.EUC/LC_TIME 4.6-RELEASE 以降: /usr/share/locale/ja_JP.eucJP/LC_TIME が変更され、出力の書式が変更されています。 このため emacs の dired など一部のアプリケーションでは正常に 動作しない場合もあります。従来の書式にしたい場合は、 Bourne shell 系 $ LC_TIME=C $ export LC_TIME C shell 系 % setenv LC_TIME C emacs 内のみで設定を行う場合 ~/.emacs に以下の設定をいれる (setenv "LC_TIME" "C") 等の方法があります。 --- [管理番号 2229] (最終更新 2002/08/24 06:22:40) Q. FreeBSD 4.6-RELEASE で /stand/sysinstall や rc.conf で sendmail_enable="NO" としているにもかかわらず、sendmail が デーモンとして起動されます A. sendmail が 8.12.x に変更されたためです。 sendmail では、その機能実装のために root の setuid が必要ですが、sendmail 8.12.x ではセキュリティ強化 のために MSP (Mail Submission Program) を root の setuid から切り離して独立させました。 このために sendmail 8.12.x では MSP もデーモンモード で稼働させる必要があります。したがってセキュリティの 確保を目的として sendmail をデーモンモードで起動させ ないつもりで sendmail_enable="NO" と設定しても、MSP としての sendmail がデーモンモードで起動します。この MSP として起動されている sendmail デーモンには、従来 指摘されてきた脅威の可能性はありません。 qmail や postfix のような sendmail 以外の MTA を使って いる場合や、その他の方法で MSP を起動する場合などで rc.conf で MSP としての sendmail の起動も不要な場合には、 rc.conf に sendmail_enable="NONE" ("NO" ではないことに 注意)と設定します。 参考: [FreeBSD-users-jp 68867] から始まるスレッド --- [管理番号 2549] (最終更新 2004/04/09 05:05:29) Q. FreeBSD 4.9-RELEASE 以降及び 5.x-RELEASE で、kterm 上でページャや エディタ等を起動して終了した時に、画面がこれらのプログラムを実行する 直前の状態に戻ってしまい、プログラム終了時の画面が参照できなくなり ます。 4.8-RELEASE 以前では、プログラム終了時の画面がそのまま残ったはずな のですが。 A. termcap(5) の kterm エントリにおいて、:tc= の示す先が旧来の xterm から xterm-r6 に変更され、ti/te ケーパビリティが有効になったため です。 4.8-RELEASE 以前のように、プログラム終了時の画面が残るように するには、:tc= の前に :ti@:te@ を入れるのが簡単です。root に なって、/usr/share/misc/termcap 中の kterm エントリの最後の行、 :eA@:as=\E(0:ae=\E(B:tc=xterm-r6: これを次のように変更して、cap_mkdb(1) コマンドを実行してください。 :eA@:as=\E(0:ae=\E(B:ti@:te@:tc=xterm-r6: 参考: [FreeBSD-users-jp 77760] 4.9R の (j)less [FreeBSD-users-jp 77765] Re: 4.9R の (j)less