FreeBSD QandA 2001年11月3日 更新分

QandA
QandA Project
登録・更新 QandA 一覧

管理番号 596 (更新) 更新履歴
Q. /kernel など一部のシステムファイルに対して、削除、上書き、名前の変更を
   しようとすると、Operation not permitted といわれてしまいました。

A. まず、Operation not permitted というエラーメッセージが表示される状況に
   は二つのケースが考えられます。

   1. スティッキービット: sticky(8)
     具体的には /tmp ディレクトリなどの様に、ファイルモードの最後が `t' に
   なっているディレクトリで、ファイルのオーナとは異なる一般ユーザが rm し
   ようとした場合です。スーパユーザにはこの制限はありません。

     % ls -ld /tmp
     drwxrwxrwt  13 root  wheel  1024 Oct 29 22:56 /tmp/
     % ls -l /tmp/list
     -rw-r--r--  1  foo  wheel  18561 Sep 21 14:58 /tmp/list
     % su bar
     % rm -f /tmp/list
     rm: /tmp/list: Operation not permitted

   2. ファイルフラグ: chflags(1)
     これはそれらのファイルに schg フラグが設定されているからです。実際に
   どのファイルにフラグが設定されているかは、FreeBSD のバージョンにより異
   なりますが、このフラグが付いているファイルは、スーパユーザでも変更する
   ことができません。フラグを確認するには ls(1) に -lo オプションを付けて
   実行します。また、find(1) を使えばファイル一覧を得ることができます。

     # ls -lo /kernel
     -r-xr-xr-x  1 root  wheel  schg 2383647 Sep 19 22:30 /kernel*

     # find / -flags schg -exec ls -lo {} \;
     -r-sr-xr-x  1 root  wheel  schg 354504 Sep 21 22:05 /bin/rcp
     -r-x------  1 root  wheel  schg 388072 Sep 21 22:13 /sbin/init
     -r-sr-xr-x  1 man  wheel  schg 28944 Sep 21 22:08 /usr/bin/man
     ...省略...

   これらのファイルを変更するには、例えば

     # mv /kernel /kernel.old
     mv: rename /kernel to /kernel.old: Operation not permitted
     # chflags noschg /kernel
     # mv /kernel /kernel.old

   と chflags(1) コマンドで schg フラグを消去してから操作します。カーネル
   については make installkernel したとき自動的に行われます。注意点として、
   カーネルのセキュリティレベルが 1 以上では、chflags でフラグを消去する
   ことも禁止されます。この場合、システムをシングルユーザ・モードでブート
   し必要な作業を行なってください。securelevel(8), security(7) を参照。

     # sysctl kern.securelevel
     kern.securelevel: 2
     # chflags noschg /kernel
     chflags: /kernel: Operation not permitted


管理番号 362 (更新) 更新履歴
Q. 日本語の含まれるファイルを、kterm 上で jless を使って表示させると
   文字化けします。

A. jless は出力する漢字コード (および入力漢字コード) を選べます。
   たとえば、環境変数 JLESSCHARSET に次のように設定します。

       % setenv JLESSCHARSET japanese   (csh 系)
       $ export JLESSCHARSET=japanese   (sh 系)

   以下に代表的な三種類を例示しておきますので、kterm(1) 側の設定に合わせ
   てください。いずれも入力については、JIS, EUC, Shift-JIS の自動認識を
   試みます。

   1. japanese-jis または japanese
     出力を JIS コードに変換して表示します。

   2. japanese-ujis または japanese-euc
     出力を EUC コードに変換して表示します。

   3. japanese-sjis
     出力を Shift-JIS コードに変換して表示します。

   なお、同様の環境変数として LESSCHARSET がありますが、4.1-RELEASE 以降
   では less(1) が標準システムに含まれたため、こちらに上記の設定をしない
   ようにしてください。間違えて LESSCHARSET に設定した場合、less(1) およ
   び more(1) が ``invalid charset name'' というエラーメッセージを表示し
   て動作しません。


管理番号 745 (更新) 更新履歴
Q. FreeBSD で音楽 CD の曲データ (CD-DA) を CD-ROM, PD ドライブを用いて
   取り出せますか?

A. ドライブの機種に依存しますが、次の樣な方法があります。最近のドライブで
   はほとんど問題ないと思われますが、一部の古いドライブなどでは不具合が
   報告されています。

   1. ATAPI CD-ROM

    a) FreeBSD 4.3-RELEASE 以降を使っている場合

     もはや特別なソフトウェアは不要です。読み出し時の block size を
     2352 bytes に指定してコピーするだけです。

     まず必要とするトラック番号までのデバイススペシャルファイルを作ってお
     きます。次の例は 50 トラック (t50) としています。
       # cd /dev; ./MAKEDEV acd0t50

     CD メディアをドライブにセットしたら、OS に目次を読み込ませます。
     ついで、どのトラックを吸い出そうとしているのか確認します。
       % cdcontrol -f /dev/acd0c info

     吸い出したいトラック番号を # とすると、以下のコマンドで raw データ
     がファイル track#.raw に吸い出せます。
       % dd if=/dev/acd0t# of=track#.raw bs=2352

     後は、好きな順番に並び替えて My best CD を cdrecord や burncd で
     焼くも良し、MP3 にエンコードするも良し。
       % gogo -nopsy -offset 0 track#.raw

     WAV 形式で保存するのであれば、適切な 44Byte のヘッダを付けなければなり
     ません。
     ヘッダには、サンプリング周波数,長さその他各種の情報が格納されています。
     AFsp (ports/audio/afsp) を利用した場合の例:
       % CopyAudio -t noheader -F WAVE -P 'integer16, 0, 44100, native, 2, 1.0' track#.raw > track#.wav
  
     また、 sox (ports/audio/sox) を利用して変換を行うことが可能です。

    b) dagrab (ports/audio/dagrab) を使います
       <URL:http://web.tiscali.it/marcellou/dagrab.html>

     ただし、一部の CD-ROM ドライブにおいて dagrab を用いて取り出しを行うと、
     出力にノイズが混じるという事例が報告されています。
     その場合は、このあと紹介する cdda2wav を試してみてください。

   2. SCSI CD-ROM

    a) tosha (ports/audio/tosha) を使います。

    b) cdda2wav (ports/sysutils/cdrtools) を使います。
       <URL:http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html>

   3. SCSI PD

     松下 LF-1000 では tosha-0.6 に以下のパッチが必要です。

   ---ここから---
   *** tosharc  Wed Jan 13 15:37:42 1999
   --- tosharc  Mon Jan 18 22:24:51 1999
   ***************
   *** 66,71 ****
   --- 66,72 ----

     #   This one was tested with "MATSHITA" "PD-1 LF-1001" "A105":

   + "MATSHITA" "PD-1 LF-1000"  "" 0xd8 0 0x00 0 10 0
     "MATSHITA" "PD-1"     ""     0x28 1 0x00 0 10 0

     #   Someone reported the following setting for his
   ---ここまで ---

   Appendix. 参考情報
     <URL:http://www.kobe1995.net/~kaz/FreeBSD/cd_rip.html>


管理番号 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. デジタルカメラのメモリを PC-CARD ポート経由で読み書きする方法。

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

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

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

       デジタルカメラのマニュアル等に "USB ストレージクラス対応" と書かれて
       いる場合、または Windows でリムーバブルディスクとして読み書きできる
       場合は、USB 接続で使える可能性があります。
       PC につないだ時に umass ドライバがアタッチされた場合、SCSIディスクと
       して認識され、MSDOSファイルシステムとして利用できます。

       デジタルカメラによっては、以下の udsc ドライバが使えるかもしれません。
         <URL:http://www.geocities.co.jp/SiliconValley-Oakland/4187/udsc/udsc-j.html>
       上記のサイトによると、Nikon の CoolPix880 等に対応しているそうです。

       デジタルカメラの機種によっては、そのままでは mount できず
       cam/scsi/scsi_da.c に修正が必要があるようです。
       bsd-usb:462 が参考となるでしょう。


QandA
QandA Project
登録・更新 QandA 一覧