FreeBSD QandA 2001年10月22日 更新分

QandA
QandA Project
登録・更新 QandA 一覧

管理番号 1907 (新規) 更新履歴
Q. xmcd をパッケージからインストールしましたが CD の演奏を始めると音は鳴らずに

   CD audio: (pass1:ahc0:0:6:0): READ SUB-CHANNEL. CDB: 42 2 40 0 0 0 0 0 30 0 
   (pass1:ahc0:0:6:0): ILLEGAL REQUEST asc:24,0
   (pass1:ahc0:0:6:0): Invalid field in CDB

   というエラーが出ます。環境は
     Plextor PX-W1210TS (SCSI CD-R)
     FreeBSD 4.3-BETA
     xmcd-2.6_1 (packages)
   です。

A. /usr/X11R6/lib/X11/xmcd/config/rcd0c の curposFormat というパラメータを
   True にしましょう。

   補足:
     FreeBSD をソースから make world している場合は /etc/make.conf で
     HAVE_MOTIF=yes を指定する必要があります。PX-W1210TS は SCSI CD-ROM
     と同じく /dev/rcd0c で問題ありません。


管理番号 1926 (新規) 更新履歴
Q. LAN 経由での Windows から FreeBSD へのデータ転送が、その逆に比べ
   圧倒的に遅いです。Windows 同士だとこのような現象は起りません。

A. 最大の理由は「Winsock2 は 2 packet 送信すると ack を待ってしまうか
   ら」です。

   Windows の TCP/IP 層はデフォルトでは 2 packet 送信する度にAck を待っ
   てしまいます。unix は TCP Window size にゆとりがある場合は「きっと
   向うはまだ送ってくるだろうから」と安心して piggy bag できる packet 
   がないか調べるために、10msec ほど沈黙します。当然一方向の通信 (RPC 
   とか) の場合 piggy bag などできるパケットが存在しませんので、この
   10msec の間、全くデータが転送されることがなくなります。

   Windows 同士の場合、受け側も「2packet 受け取ったら速攻で ack を返さ
   ねばならぬ」と思い込んでいるので、この「待ち」がほとんどありません。

   FreeBSD でこの問題を解決するには、sysctl で

   # sysctl -w net.inet.tcp.delayed_ack=0

   とすることです。こうすれば piggy bag できるかどうか悩むことなく、
   FreeBSD は ack を即座に返すようになります。

   ただし、この設定は「特定のコネクション相手」単位では設定できません。
   全体に有効になってしまいます。で、他の unix マシンと通信する場合、
   これは ack を投げすぎることになるので、逆にパフォーマンスを落す可能
   性が高いです。

   なお、この現象は [管理番号 1582] に似ていますが、異なる現象です。
   しかし、Winsock2 に起因するところは同じです。ただし、Windows 2000 
   (と多分 Windows Me) の Winsock2 では発生しないようです。


管理番号 1942 (新規) 更新履歴
Q. 日本語化された samba を ports (package) からインストールしましたが、
   ブラウザで表示させた SWAT が日本語化されていません。
 

A. SWAT はブラウザ側で設定された言語に合わせて表示言語を選択します。
      ブラウザの言語設定が英語の場合は英語表示になります。

      Netscape Communicator の場合は
       編集 -> 設定 -> Navigator -> 言語
      の設定を確認してください。


管理番号 1952 (新規) 更新履歴
Q. 外部ネットワークにあるサーバに socks 経由で接続しているセッションが、
   ある程度の時間何もせずに放置しておくと切断されてしまいます。

A. socks はデフォルトでは 15 分間無通信状態のセッションをタイムアウトして
   セッションを切断してしまいます。man socks5 すると、SOCKS5_TIMEOUT という
   環境変数でタイムアウトの時間を設定できることがわかります。上記環境変数を
   設定するか、socks5.conf で下記のように設定することができます。

   set SOCKS5_TIMEOUT 120

   上記の設定を行うと、タイムアウトが 2 時間になります。


管理番号 1962 (新規) 更新履歴
Q. VMware を使って Windows2000 Professional をインストールしようとして
   いますが、

   *** STOP: 0x0000007B (0xFE4E8690,0xC0000014,0x00000000,0x00000000)
   INACCESSIBLE_BOOT_DEVICE

   というメッセージが出てインストールできません。

A. Setup Disk を使ってフロッピーから起動していませんか?

   VMware が CD-ROM ドライブを認識していても、Setup Disk から起動された
   インストーラは CD-ROM ドライブを認識しません。Setup Disk は使わず、
   最初から CD-ROM でブートしましょう。

   確認環境:
     FreeBSD 4.2-RELEASE
     vmware2-2.0.3.799 (ports)
     rtc-2000.09.22
     linux_base-6.1

   注意:
     エラーメッセージは多少異なりますが、Windows95 や NT4.0 でも同様の
     トラブルが発生します。

   補足:
     1) 確認してませんが、恐らく Windows98/Me でも同じと思われます。
     2) FreeBSD 固有の問題なのか、Linux でも同様なのかは不明です。


管理番号 1963 (新規) 更新履歴
Q. FreeBSD 4.3-RELEASE で ccd 用 disklabel を作るため
   disklabel -r -w ccd0 auto
   を行ったら、

   Warning, partition c is not marked as unused!
   Warning, An incorrect partition c may cause problems for standard system utilities

   というメッセージが出てきますが、実用上問題ありますか?

A. disklabel(8) は ccd(4) デバイスの初期化の際、他のデバイスと異なり
      C パーティションを指定します。
      4.3-RELEASE 以降では、disklabel コマンドで C パーティションが未使用
      (unused) になっていないと上記メッセージを出すようになりました。
      ccd デバイスにおいて fstype が単一の場合(多くの場合そうでしょう)、
      このメッセージは無視してしまって構いません。
   
      気になる場合は、disklabel -e <ccdデバイス名> して
   
      3 partitions:
      #      size   offset    fstype   [fsize bsize bps/cpg]
      c:  2047968        0    4.2BSD        0     0     0   # (Cyl.    0-999*)
   
      を
      1 partitions:
      #      size   offset    fstype   [fsize bsize bps/cpg]
      a:  2047968        0    4.2BSD        0     0     0   # (Cyl.    0-999*)

     などと書き換えてください。


管理番号 1968 (新規) 更新履歴
Q. FreeBSD(98) のコンソールが見づらいのですが、何か見やすくする方法は
   ありますか?

A. リリース版の tools98 配下に非公式パッチがあり、その中に小金丸さん作
   の「背景をブルーにするパッチ」があります。背景の色を変更できるだけ
   でなく、さまざまなコンソールの設定を行うことが出来ます。
   インストールするには tools98/README.txt ファイルをお読みください。


管理番号 2027 (新規) 更新履歴
Q. tgif ver.4.1(patchlevel 39) で、色をたくさん使った画像を組み合わせて
   一つの PNG ファイルに出力しようとしたのですが、うまく行きません。

   そのとき標準エラー出力に

   xpmtoppm: line too long
   pnmtopng: EOF / read error reading magic number

   というメッセージがでています。出力結果がファイルに保存してもらえず、
   0バイトのファイルが作成されています。

A. これは xpmtoppm が tgif の XPM ファイルを正しく取扱えないのが原因です。
   xpmtoppm の代わりに ImageMagick(version 5.2.3) を使うことで対処できます。

   ~/.Xdefaults 等の X リソースに、

   Tgif.XPmOutputVersion: 3
   Tgif.UseXPmVersion1ForImageMap: false
   Tgif.XpmToPng: /usr/local/bin/convert %s png:-

   を追加して (必要なら xrdb(1) を使って)、tgif を再実行して下さい。
   (Tgif.XPmOutputVersion は PNG 出力するだけなら不要かもしれません)

   リソース「Tgif.UseXPmVersion1ForImageMap」は、tgif が出力する XPM フォー
   マットを XPM version 1 に限定するかどうか制御します。ImageMagick は XPM
   version 1 を取扱えない(真っ黒になる)ので、このオプションを false にする
   ことにより tgif が XPM version 3 で出力するようにします。


管理番号 2031 (新規) 更新履歴
Q. /tmp に知らないファイルがあるんですが、消してよいですか?

A. そもそも /tmp には様々なテンポラリファイルが置かれます。当然その中には
   今その瞬間において、使用中のファイルもあるかもしれません。従って、無闇
   に消して良いというものではありません。

   しかし、中にはプログラムが異常終了したとか、お行儀の悪いプログラムによっ
   て、そのままほったらかしにされたファイルもあるでしょう。また、複数のユー
   ザが使用するようなマシンでは、作業ファイルを /tmp に残したままにする人
   もいるかもしれません。このような場合、いくつか対策が考えられます。

   1. 相手が実体を持つ人の場合は、まずはその人に消してくれるように頼む。(^^;

   2. 繁雑にリブートを繰り返すマシンなら、リブート時に自動的に消去してくれ
      るように、rc.conf(5) に次の設定を追加する。ただし、セキュリティ的に
      は少々マイナスかもしれない。 

      clear_tmp_enable="YES"

   3. periodic(8) を利用して定期的に古い一時ファイルを消去する。この機能を
      有効にするには /etc/periodic.conf に次の設定を追加します。詳細につい
      ては periodic.conf(5) を参照。

      daily_clean_tmps_enable="YES"

   4. 手作業でファイルが使用中かどうか確認しながら消去する。これには 
      fstat(1), sockstat(1), netstat(1) などのコマンドが役に立つでしょう。

      例えば、X をセットアップしたら、/tmp に `.X11-unix' というディレクトリ、
      `.XF86Setup284' というディレクトリが出来ますが、`.XF86Setup284' は 
      XF86Setup を実行したときの作業用ファイルでしょうから消してよいでしょう。

      しかし /tmp/.X11-unix/ は消してはダメです。それを ls(1) で見ると
       % ls -l /tmp/.X11-unix/
       srwxrwxrwx  1 root  wheel  0 Oct  5 11:07 X0
       ^ここ
      というファイルがあります。この先頭が s になっているものはソケットで 
      (see ls(1))、このソケットファイルを経由してデータをやりとりしている
      プログラムがいるということです。 

      具体的にそのソケットを使っているプログラムを見るには sockstat(1) を
      使います。
       % sockstat -u
       root     kterm     1191    3 stream XF86_Mach64[245]:21
       root     kterm     1153    3 stream XF86_Mach64[245]:19
       root     kterm     1048    3 stream XF86_Mach64[245]:20
       mat      mozilla-   370    8 stream XF86_Mach64[245]:17
       mat      emacs-dl   316    4 stream XF86_Mach64[245]:18
       mat      emacs-dl   316    5 stream cannaserver[172]:8
       root     kterm      254    3 stream XF86_Mach64[245]:10
       mat      kinput2    250    3 stream XF86_Mach64[245]:8
       mat      kinput2    250    6 stream /tmp/.ki2-unix/_0-ja_JP
       root     XF86_Mac   245    1 stream /tmp/.X11-unix/X0
       root     XF86_Mac   245    6 stream /tmp/.X11-unix/X0
       root     XF86_Mac   245    7 stream /tmp/.X11-unix/X0
       root     XF86_Mac   245    8 stream /tmp/.X11-unix/X0
       root     XF86_Mac   245    9 stream /tmp/.X11-unix/X0
       root     XF86_Mac   245   10 stream /tmp/.X11-unix/X0
       root     XF86_Mac   245   11 stream /tmp/.X11-unix/X0
       mat      xinit      244    3 stream XF86_Mach64[245]:6
       bin      cannaser   172    0 stream /tmp/.iroha_unix/IROHA
       bin      cannaser   172    8 stream /tmp/.iroha_unix/IROHA
       (略)
      なので
       - /tmp/.X11-unix/X0 を使っているのは XF86_Mach64 (Xサーバ)
       - その X サーバと通信しているのは kterm や emacs や mozilla など
         (つまり Xクライアント) ということがわかります。他の項目を見れば
       - /tmp/.iroha_unix/IROHA を使っているのは cannaserver
       - /tmp/.ki2-unix_0-ja_JP を使っているのは kinput2
      ということも読み取れます。

      ちなみに X サーバと X クライアントが
      やりとりしている内容は、
      「今そっちのウィンドウにマウスがのったよ」(X サーバから X クライアントへ)
      「マウスボタンの右が押されたよ」          (X サーバから X クライアントへ)
      「座標 (x,y) に赤色の円を描いて」         (X クライアントから X サーバへ)
      といったことです。


管理番号 701 (更新) 更新履歴
Q. デジタルカメラで撮ったデータを FreeBSD とやりとりしたい。

A. 次の二とおりの方法が考えられます。

   1. デジタルカメラに付属もしくは別売のパソコン接続用キットを用いること
      により、PC のシリアルポートとをつなぐ方法。

      この方法で問題になるのは、接続用キットが FreeBSD をサポートしていなくて、
      なおかつ通信のプロトコルが公開されていない場合がほとんどなことです。
      とはいえ、シリアルポートを用いた簡単なデータのやりとりなので、通信を解
      析してプロトコルを調べ、通信プログラムを作成することはできます。

      実際、以下のようなものがあります。

        - カシオのデジタルカメラ QV シリーズ用の通信プログラム qvplay
            <URL:http://www.asahi-net.or.jp/~XG2K-HYS/qvindex.html>

        - 富士フイルムのデジタルカメラ DS-7 用の通信プログラム get_ds7
            <URL:http://www.yk.rim.or.jp/~mamo/Computer/DS-7/index.html>
          DS-7 用ですが、富士フイルムの他のデジタルカメラにも使えるはずです。

        - コダックのデジタルカメラ DC20 の画像データダウンロードプログラム
            <URL:http://www.jiugms.mdx.or.jp/~mokada/Linux/DC20/>

        - キヤノンのデジタルカメラ PowerShot および IXY 用の通信プログラム s10sh
            <URL:http://www.kyuzz.org/antirez/s10sh.html>
          上記のサイトでは IXY についての言及はありませんが、IXY200 で使用
          できました。

   2. デジタルカメラのメモリを PCMCIA ポート経由で読み書きする方法。

      デジタルカメラが PCMCIA の Flash ATA を利用していたりスマートメディア
      やコンパクトフラッシュのような PCMCIA に対応するアダプタが存在するメモ
      リカードを利用している場合、簡単な方法です。ただし、当然 PC 側に 
      PCMCIA ポートが必要です。Flash ATA カードとして認識され、MSDOS ファイル
      システムとして利用できます。

      なお、SmartCard を FDD 経由で読み書きする FD-A1 というものが富士フイル
      ムから出ていますが、これは残念ながら現時点では FreeBSD からは利用でき
      ないようです。


管理番号 2034 (新規) 更新履歴
Q. Ports からインストールした smbfs-1.4.1 を使って、Windows の共有フォルダ
   をマウントしたいのですが、下記のようなエラーで失敗します。smbfs.ko を
   ロードすることも出来ません。テスト環境は FreeBSD 4.4-RELEASE です。

   ># mount_smbfs //hoge@hoge_server/hoge_share /mnt
   mount_smbfs: vfsload(smbfs): Exec format error

   ># kldload smbfs
   kldload: can't load smbfs: Exec format error

A. /var/log/messages に次のようなエラーがでていませんか?

   Oct  9 22:57:19 xxxxxx /kernel: link_elf: symbol iconv_open undefined

   その場合、下記のオプションをカーネルに追加する必要があります。

   options         NETSMB             #SMB/CIFS requester
   options         NETSMBCRYPTO       #encrypted password support for SMB
   options         LIBICONV           #Kernel side iconv library
   options         LIBMCHAIN          #mbuf management library

   KLD モジュール (smbfs.ko) を使いたい場合でも、LIBICONV はカーネルに 
   static link しなければなりません。また、mount_smbfs を実行 (smbfs.ko 
   をロード) する前に、libmcain.ko をロードしておく必要が有ります。


QandA
QandA Project
登録・更新 QandA 一覧