如何做出 Linux 下的 cdda2wav 呢?


想要做 MP3 档, 就要先有 wav 档, 如果想在 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 的目录常常变更结构是众
   所皆知的事情. 试著去改成下面的设定看看 :

   #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.