RAFA !!
Opciones Curso Básico de Linux
MANEJO DE LA GRABADORA EN LINUX


Indice:

1.- Introducción
2.- El hardware
3.- El kernel
4.- El Software
5.- Ejemplos
6.- Documentación

1. Introduccion

Ante todo decir que este documento se ha hecho con la unica pretension de hacer mas sencilla la configuracion de grabadoras en Linux. No soy ningun experto en el tema y no he contado con la ayuda de nadie para redactar estas lineas, me he basado en mi propia experiencia, por lo que los ejemplos se limitan a mi caso en concreto, es decir: una regrabadora IDE Ricoh CD-R/RW MP7063A en un Red Hat Linux 6.0
INICIO


2. El hardware

Lo primero que necesitaremos es, evidentemente, la unidad CDR. Esta puede ser IDE o SCSI, tambien puede conectarse por puerto paralelo si emula conexion SCSI (similar a las unidades ZIP). Mi consejo es una unidad IDE por su precio y por lo extendidas que estan.

Además de la CDR, necesitaremos (aunque no es absolutamente necesario) una unidad lectora CD-ROM (para las copias CD - CD) y espacio libre en el disco para las imagenes creadas, lo ideal seria disponer de una particion dedicada o al menos 800 Mb de espacio en alguna particion (para las copias CD - disco - CD)

INICIO

3. El kernel


Si la unidad CDR es SCSI activaremos el soporte generico SCSI mas el resto de opciones que creamos necesarias:

SCSI support  --->
   SCSI support
   SCSI generic support

Si la unidad es IDE activaremos el soporte de emulacion SCSI ademas de las opciones anteriores:

Block devices  --->
      SCSI emulation support

Estas opciones podemos dejarlas tanto integradas dentro del kernel como en forma de modulos, en este segundo caso para cargar el soporte de emulacion SCSI bastará con ejecutar el comando:

# modprobe ide-scsi

Recomiendo el uso de modulos porque de esta manera podremos usar una unidad como ATAPI o como SCSI sin necesidad de reiniciar. El funcionamiento basico de los modulos seria el siguiente:

Para cargar el soporte ATAPI:

    [root] [~]$ modprobe ide-cd
    hdb: ATAPI 48X CD-ROM drive, 120kB Cache
    hdc: ATAPI 32X CD-ROM CD-R/RW drive, 2048kB Cache

    [root] [~]$ rmmod ide-cd
    [root] [~]$ modprobe ide-scsi
    scsi0 : SCSI host adapter emulation for IDE ATAPI devices
    scsi : 1 host.
      Vendor: Philips   Model: CD-ROM PCCD048    Rev: EH13
      Type:   CD-ROM                             ANSI SCSI revision: 02
      Vendor: RICOH     Model: CD-R/RW MP7063A   Rev: 1.30
      Type:   CD-ROM                             ANSI SCSI revision: 02

Como veis solo ha hecho falta cargar los modulos adecuados para tener acceso a la unidad mediante interfaz ATAPI o SCSI.

Si los modulos se han cargado correctamente habrá aparecido un directorio /proc/scsi que contiene informacion sobre los dispositivos instalados.
INICIO



4. El software

El programa básico para la grabación es cdrecord, que podeis encontrar en ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/, sobre este programa han aparecido muchos frontends para facilitar su uso.

Esta utilidad se limita a acceder a la unidad y "tostar" el contenido, por lo que necesitaremos otras utilidades para completar todas las funciones:


# cdrecord: ftp://ftp.fokus.gmd.de/pub/unix/cdrecord, escribe audio y data tracks en una unidad CDR
# cdda2wav: ftp://ftp.fokus.gmd.de/pub/unix/cdrecord, pasa tracks de CD audio a formato WAV
# mkisofs: ftp://ftp.fokus.gmd.de/pub/unix/cdrecord, crea imagenes ISO, JOLIET y HFS

(Nota: estos programas estan en formato rpm en el mismo ftp)

El funcionamiento básico es el siguiente:
cdrecord opciones tracks

Para ver una lista de las opciones podemos ejecutar cdrecord sin parametros. Podemos usar el archivo /etc/cdrecord.conf para definir opciones por defecto y variables de entorno, por ejmeplo el mio tiene esta pinta:

[root] [~]$ cat /etc/cdrecord.conf
    CDR_DEVICE=0,1,0
    CDR_SPEED=6
    CDR_FIFOSIZE=4m
INICIO



5. Ejemplos

En esta sección vamos a ver de manera practica como hacer las operaciones mas comunes con la grabadora, suponiendo que y atenemos soporte para nuestra unidad en el kernel, los modulos cargados y el software necesario instalado.

Obtener información de las unidades:

[root] [~]$ cdrecord -scanbus
Cdrecord 1.9 (i686-pc-linux-gnu) Copyright (C) 1995-2000 Jörg Schilling
Linux sg driver version: 2.1.38
Using libscg version 'schily-0.1'
scsibus0:
cdrecord: Warning: controller returns wrong size for CD capabilities page.
        0,0,0     0) 'Philips ' 'CD-ROM PCCD048  ' 'EH13' Removable CD-ROM
        0,1,0     1) 'RICOH   ' 'CD-R/RW MP7063A ' '1.30' Removable CD-ROM
        0,2,0     2) *
        0,3,0     3) *
        0,4,0     4) *
        0,5,0     5) *
        0,6,0     6) *
        0,7,0     7) *

En mi caso ha detectado una unidad lectora en el dispositivo SCSI 0,0,0 y una unidad grabadora en la 0,1,0.

Información ampliada de una unidad:

[root] [~]$ cdrecord -inq -v dev=0,1,0
Cdrecord 1.9 (i686-pc-linux-gnu) Copyright (C) 1995-2000 Jörg Schilling
TOC Type: 1 = CD-ROM
scsidev: '0,1,0'
scsibus: 0 target: 1 lun: 0
Linux sg driver version: 2.1.38
Using libscg version 'schily-0.1'
atapi: 1
Device type    : Removable CD-ROM
Version        : 0
Response Format: 1
Vendor_info    : 'RICOH   '
Identifikation : 'CD-R/RW MP7063A '
Revision       : '1.30'
Device seems to be: Generic mmc CD-RW.
Escribir una imagen iso a CD:

[root] [~]$ cdrecord -v speed=6 dev=0,1,0 debian.iso

Escribir un CD audio a partir de archivos WAV:

[root] [~]$ cdrecord dev=0,1,0 speed=6 -multi -audio -pad *.wav

Escribir audio y datos en un CD:

[root] [~]$ cdrecord dev=0,1,0 speed=4 -multi -pad -audio *.wav -data linux-2.2.15.tar.gz

Borrar un CD regrabable:

[root] [~]$ cdrecord dev=0,1,0 blank=all

Generar una imagen ISO:

[root] [~]$ mkisofs -R -o copia_de_seguridad.iso /

Generar una imagen ISO directamente sobre el CD:

[root] [~]$ mkisofs -R / | cdrecord -v fs=6m speed=4 dev=0,1,0

Extraer los datos de un CD audio y copiarlos a un CD:

[root] [~]$ cdda2wav -v255 -D2,0 -B -Owav
[root] [~]$ cdrecord -multi -pad -v -audio *.wav dev=0,1,0
INICIO



6. Documentación


Para escribir estas lineas he usado los siguientes documentos:

CD-Writing.ps
Kernel-como
Grabadoras-como: de http://www.insflug.org
Paginas del manual: man cdrecord, man mkisofs, man cdda2wav
Manuales y ejemplos de /usr/doc/cdrecord


Grabar en modo consola

Hay sitios majos que evitan leerse pesados manuales:

          o http://www.maestre.arrakis.es/linux/tutorialcd.html

Grabar archivos de audio (WAV, AU, MP3, OGG)

Las pista de audio de un CDROM deben consertirse a un archivo *.wav o *.au, que puede grabarse como un pista de audio en un CD virgen:

     nice --20 cdrecord -v -pad dev=0,0,0 speed=10 fs=8m -audio *.wav
     cdrecord dev=0,0,0 speed=2 fs=8m -fix -eject -audio audio1.wav audio2.wav audio*.au

La opción dev=0,0,0 indica que unidad scsi debe utilizar. Para averiguarlo, hay que usar cdrecord (como root, o mediante sudo):

 pepe@misitio:~$ sudo cdrecord -scanbus
 Cdrecord 1.8 (i686-pc-linux-gnu) Copyright (C) 1995-2000 Jörg Schilling
 Using libscg version 'schily-0.1'
 scsibus0:
        0,0,0     0) 'ATAPI   ' 'CD-ROM DRIVE-40X' 'T0CP' Removable CD-ROM
        0,1,0     1) 'ATAPI   ' 'CD-R/RW 10X8X32 ' '8.EZ' Removable CD-ROM
        0,2,0     2) *
        0,3,0     3) *
        0,4,0     4) *
        0,5,0     5) *
        0,6,0     6) *
        0,7,0     7) *

En el ejemplo, cdrecord nos indica que dev=0,0,0 es un lector de CDROM y que dev=0,1,0 es una grabadora. Evidentemente, en este caso el ejemplo anterior no funcionará.

Para grabar *.mp3, se pueden convertir a *.wav, o usar mp3burn. Ejemplo:

 sudo mp3burn -c 74:00 -o "-v dev=0,1,0 fs=16m speed=4" *.mp3

Nota: El ejemplo se hace con una grabadora 10x, pero la velocidad se fija a 4x, ya que con la opción -d podemos ver que a la máxima velocidad se puede quedar con un fifo del 0%, debido a la conversión "al vuelo" mp3-wav.
Hacer una imagen de CD
Clonar un CD

Hay varias formas. Estas sirven para Cds de datos:

 # dd if=/dev/cdrom of=/ruta/imagen.iso
 # cat   /dev/cdrom >  /ruta/imagen.iso

Para CDs de datos, música y juegos playstation, mejor es usar cdrao:

 cdrdao read-cd --device 0,0,0 imagen

Esyo genera imagen.bin (datos del CD) e imagen.cue (informacion sobre pistas, etc.). Para escribir:

cdrdao write --device 0,0,0 imagen.cue
Grabar una imagen de datos en una sola pasada:

Se trata de grabar Para los ejemplos, asumimos que la grabadora es /dev/sr0 y dev=0,0,0

   mkisofs -r -J -v -R -o img.raw ruta/
   cdrecord dev=0,0,0 speed=2 fs=8m -fix -eject img.raw

Grabar datos en multisesión:

          o Primera grabación:

     mkisofs -J -L -R -o img1.raw libros/
     cdrecord -v -multi speed=10 dev=0,0,0 -data img1.raw

          o Segunda grabación:

     cdrecord -msinfo dev=0,0,0
        0,49040 {{2:(Anotar este dato para el siguiente comando)}}
     mkisofs -J -L -R -o img2.raw -M /dev/sr0 -C 0,49040 noticias/
     cdrecord -v -multi speed=10 dev=0,0,0 -data img2.raw

Nota: En el ejemplo, el contenido del directorio "libros" y "noticias" se copian al CD, mezclando sus ficheros, que los veremos en /mnt/cdrom (asumiendo que montamos aquí el cdrom). Para obtener directorios separados (/mnt/cdrom/libros y /mnt/cdrom/noticias), una solución es hacer la imagen del directorio superior, que contenga sólo el-los subdirectorio-s que queremos grabar el en CD
Hacer imagen y grabar con una sola orden

Se puede hacer una imagen en memoria, y grabarla mientras se va haciendo. Es interesante si no disponemos de espacio en disco, aunque tener un programa (mkisofs) corriendo al tiempo que cdrecord en un ordenador poco potente, podría dar al traste con la grabación. Formato:

 mkisofs .... | cdrecord .......

Un ejemplo:

 mkisofs -J /unaruta/otra/backup | cdrecord -v dev=0,0,0 fs=6m speed=4 -data -

Si es en multisesión:

    mkisofs -JRlL carpeta1/ | cdrecord -v -eject -multi - (pimera grabación)
  cdrecord -msinfo
     0,49040
  mkisofs -JRlL -C 0,49040  -M /dev/sr0 Carpeta2/ | cdrecord  -v -eject -multi -

Clonar un CD

Una forma:

     exec dd if=/dev/cdrom of=imagen.raw  ( esto genera la imagen del cd)
     cdrecord -v speed=10 -eject dev=0,0,0 imagen.raw (esto lo graba)

Otra forma:


     cdrecord ....-isosize /dev/scd0

(En el ejmplo, /dev/scd0 es el CD origen)
Borrar un regrabable:

 cdrecord --blank=fast dev=0,0,0

Grabar un regrabable

     mkisofs -J /unaruta/otra/backup | cdrecord -v dev=0,0,0 fs=6m speed=4 -data -

opciones comunes para cdrecord

          o nice --20 cdrecord ... da máxima prioridad (como root)
          o -v (verbose) indica el progreso (muy útil)
          o -pad evita problemas con algunos archivos de audio.
          o dev=0,0,0 (suele ser 0,0,0 en las grabadores IDE)
          o speed=10 (velocidad, escoger la apropiada: 1,2,4,6...).
          o fs=8m el buffer con 8m parece que hay de sobra
          o -audio los archivos se graban como audio (por defecto -data)
          o -multi Si no se indica, cuando se fije ya no se podrá gabar más.
          o -eject
          o -fix (por defecto)
          o J Jouliet

Más sobre grabación de CDs:

Mientras se graba un CD, una buena idea es ir llamando a cdlabelgen para crear una simples pero útiles cubieras para el estuche del CD. ;-)

O leer un poco más la documentación:

          o Grabadoras-Como en http://lucas.hispalinux.es
          o CD-Writing-HOWTO http://www.linuxdoc.org
          o CD-Writing-HOWTO Grabadoras-Como
INICIO