Linux 下的準備工作及抓取方法
1996/12/xx刊出


如果想在 Linux 下直接轉錄 CD 音軌,目前可以找到的工具是 cdda2wav0.71.src.tar.gz。

1. 將 cdda2wav0.71.src.tar.gz 解開來

  tar zxvf cdda2wav0.71.src.tar.gz

2. 首先去看看 Makefile,開頭的幾行可以看到下面的東西:

  INTERFACE=\"generic_scsi\"

                  # set the default cdrom device
  DEF_DEVICE=\"/dev/sgd\"
                  # matching device
                  # used for a MULTISESSION ioctl
  AUX_DEVICE=\"/dev/cdrom\"

  # for nonscsi cdrom drives with cdda kernel support ie atapi, cdu31a
  # choose this if the kernel driver supports cdda reading
  #INTERFACE=\"cooked_ioctl\"

                  # set the default cdrom device
  #DEF_DEVICE=\"/dev/cdrom\"
                  # not actually used
  #AUX_DEVICE=\"/dev/cdrom\"

如果你的光碟機是 SCSI 的,就注意一下前面那個 DEF_DEVICE=\"/dev/sgd",把它改成你自己的光碟機位置。

而如果你的光碟機是非 SCSI 的,包含舊式的 AT-BUS 或是 ATAPI 光碟機,則把前面那三個 INTERFACE DEF_DEVICE AUX_DEVICE 前面加上 "#",取消他們的設定,然後把下面那三個 INTERFACE DEF_DEVICE AUX_DEVICE 前面的 "#" 給拿掉,使得這個設定生效。

3. 輸入 make 來 compile 執行檔。 如果 make 到 interface.c 時發生錯誤,請看一下 interface.c,在第 39 行附近,有以下的設定:

  #include <scsi/sg.h>
  #include <scsi/scsi.h>

這個設定可能並不適用於你目前的 kernel 目錄,Linux 的目錄常常變更結構是常玩 Linux 的人眾所皆知的事情。試著去改成下面的設定看看:

  #include </usr/src/linux/include/scsi/sg.h>
  #include </usr/src/linux/include/scsi/scsi.h>

當然這表示你將 Linux 的 source code 放在 /usr/src/linux 下,如果不是的話,請自己改變一下囉!重點是 include/scsi 這邊要正確。

4. 現在應該有 cdda2wav 這個執行檔了。請注意你的光碟機是不是符合 Makefile 中的設定,否則就要在執行 cdda2wav 時另外給 -D 的參數來指定你的 device。