lord_lt@retemail.es
pacopepe@insflug.org
Este documento pretende guiar al usuario, de forma que sepan qué tienen que hacer y cómo solucionar los posibles problemas que puedan plantearse a lo largo del camino de la grabación de CDRoms.
Se da una pequeña explicación sobre los sistemas de ficheros para los CDs (todo a su tiempo) y de cómo se usan los programas más utilizados para grabar en Linux. Por supuesto, y en último lugar, la omnipresente PUF (Preguntas de Uso Frecuente) por si se escapa algo.
Recomiendo leer todos los apartados, uno detrás de otro, para ampliar conocimientos, que resultará beneficioso a la hora de buscar posibles irregularidades, fallos o errores en la elaboración de este documento o en lo que se refiere a conceptos en Linux en sí.
Y ya por último indicar que hasta la versión 1
de este documento
explicaremos cómo se graban CDs normales, pero para la siguiente versión,
la 2.0
intentaremos ir mas allá, a las grabadoras DVD, momento que
bajo mi punto de vista no tardará en llegar.
Recuerde que este documento está en desarrollo y cualquiera que pueda aportar su granito de arena con sus problemas y soluciones, correcciones (ya que seguro que me he equivocado en algún sitio) o adición de detalles; siendo además amablemente incluido como colaborador. (Ver sección Créditos)
Para hacerlo sólo tiene que o bien utilizar el sistema en línea de
Insflug,
http://www.insflug.org/comos/comos.php3
de adición al sistema
de fe de erratas, o sugerencias, para que inmediatamente esté disponible
para todos, y enviar un mail a
lord_lt@retemail.es
Animo a leer este documento con paciencia, sin reparos en participar con correcciones o añadiduras al mismo, para que toda la comunidad Linux se beneficie de él. Las felicitaciones y enhorabuenas también son bien recibidas ;-).
Podemos dividir el soporte a una grabadora bajo LiNUX en tres aspectos:
Respecto al punto 1, Linux soporta genéricamente grabadoras CD-R, CD-RW, DVD-R, DVD-RW y DVD-RAM con interfaces:
Podemos decir por tanto que, a excepción de las grabadoras SCSI, con las que además es preciso que la controladora SCSI esté soportada por Linux, hoy en día la capacidad de utilizar una grabadora en concreto reside enteramente en el programa utilizado para grabar.
En la actualidad, el único programa con desarrollo activo es
cdrecord
; por lo que la cuestión dependerá enteramente de que
cdrecord
la soporte o no; a grosso modo, podemos afirmar que casi
todas las grabadoras están soportadas.
En
http://www.guug.de:8080/cgi-bin/winni/lsc.pl
Winfried
Truemper mantiene un listado de las soportadas. Si entre ellas
está la suya, hay un 99% de posibilidades de que pueda utilizarla
bajo Linux sin problemas.
No obstante, la última palabra la tiene siempre la documentación de
cdrecord
: vea la sección
cdrecord.
Aun en el caso de que su grabadora no estuviera soportada, le quedaría la opción de crear las imágenes bajo Linux, y grabarlas bajo cualquier otro sistema operativo.
El primer paso es configurar el kernel para que Linux vea nuestras grabadoras y/o lectores correctamente, tanto si son SCSI como IDE o ATAPI por puerto paralelo.
En los dos últimos casos hay que hacer ciertos «chanchullos», aunque el que más pueda resultar dificultoso sea configurar el kernel para grabadoras IDE, ya que no basta conectarla, decirle que es un dispositivo IDE/ATAPI CD-ROM y directo a grabar como un poseso; hay que recompilar el kernel con una serie de opciones y modificaciones que se describen y explican en su apartado correspondiente.
Hay que saber cómo configurar el kernel, para ello entramos en el
directorio /usr/src/linux
, donde normalmente se encuentran los
fuentes. Para asegurarnos de que nada raro pueda pasar, ejecutaremos
make mrproper
lo que elimina todos los binarios, incluso las
configuraciones; es decir, una limpieza exhaustiva que asegure que no haya
ninguna interferencia de nada de lo anterior que pueda hacer que el nuevo
kernel no compile o nos dé errores.
Una vez hecho esto, teclearemos make menuconfig
si queremos interfaz
ncurses para el shell o make xconfig
desde un terminal de X-Window
para hacer lo mismo en X con interfaz TCL/TK, lo que quiere decir que si
no tiene dichas librerías no podrá compilar los programas respectivos.
Podrá recurrir en última instancia al viejo programa de configuración, un
script que se invoca desde la consola con make config
y en el que
tendrá que poner y (si)
, n (no)
y/o m (módulo)
el los
lugares en donde corresponda en el prompt, ya que éste no permite volver
hacia atrás; si quiere hacerlo tiene dos opciones, una pulsar
Control+C
y cancelar la configuración volviendo a empezar, o terminar
de configurar y volver a empezar, (lo configurado anteriormente se
mantiene), y rectificar lo que haya dejado o haya puesto mal.
Si tiene mas dudas sobre cómo configurar el núcleo del sistema le remito
al documento Kernel Como que se encuentra en
http://www.insflug.org
.
Voy a suponer que no tiene ni la más remota idea de qué es el sistema SCSI, cosa en la que tampoco voy a profundizar, ya que para eso hay un hermoso documento llamado SCSI-HOWTO al cual puede referirse en caso de dudas y o problemas de configuración del dispositivo SCSI.
El caso es que se ha comprado un equipo cuya placa madre trae SCSI integrada, o una controladora SCSI en la que ha puesto el CD, y el dichoso windows lo ha configurado a la primera o los amables chicos de la tienda de informática en donde acaba de comprarlo han instalado y configurado todo.
Lo primero es saber qué tipo de controladora SCSI es, me refiero a su chip principal; las controladoras más comunes son Adaptec, Advansys y las basadas en los chip Symbios 53c8xx (NCR), pero si no tiene ninguna de éstas no se preocupe, el kernel lleva soporte para muchas más. Puede saber qué controladora tiene mirando simplemente los manuales, mirando el chip principal de la tarjeta o el nombre del controlador de windows (sólo en última instancia).
Si el controlador no corresponde exactamente al modelo que aparece en el kernel, seguramente funcionará con alguno de los que lleva genéricos para varios tipos de controladoras con las mismas características. Puede compilar como módulo las que más se parezcan al suyo y luego ir probando los módulos hasta que dé con el que corresponda. Si al cargar algún módulo nota que se le ha quedado el ordenador colgado, no lo vuelva a intentar con ese, ya que algunos controladores que no corresponden al hardware instalado son cargados de todos modos produciendo estas desagradables situaciones.
Acto seguido nos vamos a la configuración del kernel y entramos en
SCSI Support
, lo que luego nos dejará señalar las demás opciones que
son para dar soporte genérico, y a unidades de CD-ROM, Discos Duros y
cintas, de las cuales nos interesa el soporte genérico, SCSI generic
support
, que proporciona el interfaz ASPI, (para poder grabar) y el
SCSI CD-ROM support
, para leer unidades de CD-ROM, incluidas
grabadoras y DVDs. Si dispone de un disco duro, ZIP o JAZ SCSI deberá
responder y
también si quiere poder usarlo.
Si por casualidad tiene la grabadora como unidad externa, y la
controladora SCSI dedicada en exclusiva a ella, recomiendo que ponga
el driver de la controladora como módulo, es decir, poniendo m
en
lugar de y
, ya que le permitirá cargar/descargar a voluntad todos los
módulos de soporte SCSI cuando no los necesite, y apagar la unidad externa
cuando no la esté usando (cosa que con windows no es posible hasta el W98)
ya que al cargar su módulo, la controladora inicializará y escaneará los
dispositivos de nuevo sin necesidad de reiniciar el ordenador para
detectarlos; si la tiene interna, añada el soporte directamente en el
kernel y se ahorra trabajo en cargar los módulos.
Tenga en cuenta no obstante, que si carga, descarga, y vuelve a cargar el
módulo sin reiniciar el equipo, la controladora recibirá un número de host
distinto, y los parámetros que tengamos para cdrecord
configurados no
serán válidos.
Si no puede descargar el soporte SCSI por tener otros dispositivos dependiendo de él (porque su disco duro raíz sea SCSI, por ejemplo, o por no poder tenerlo como módulo por las razones que sean) también puede activar y desactivar dispositivos a voluntad, incluidas grabadoras, cintas, escáneres, etc. sin necesidad de descargar el módulo. vea la sección Activación y desactivación de dispositivos SCSI al vuelo.
Así que una vez hecho esto pase al apartado siguiente para especificar el driver de su controladora. Si le ha dicho antes, en soporte SCSI, que lo compile como módulo solo le dejará seleccionar como módulo el driver del controlador.
Espero que no se equivoque en escoger el driver para su controladora,
porque si es así le tocará elegir otro y recompilar solo los módulos. Una
vez recompilados los nuevos módulos, previa configuración, sólo tendrá que
probarlos; si ha incluido soporte SCSI en el kernel junto a un
controlador, éste detectará el dispositivo y podrá accederse a él desde
los ficheros de dispositivo /dev/scdX
o /dev/srX
(estos
últimos se crean, si no lo están ya, a través de un script que se puede
encontrar junto a los programas de grabación, así como con el script
/dev/MAKEDEV
, o bien el que trae el X-CD-Roast
(sección
X-CD-Roast) o bien a mano con el comando
mknod
con este bucle:
for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ;
do mknod /dev/sr$i b 11 $i;
done
Del mismo modo, si lo ha hecho como módulo, sólo tendrá que cargar los módulos SCSI en el siguiente orden:
scsi_mod.o
que es el driver principal del que cuelgan
todos:
insmod scsi_mod
sg.o
y
el de soporte de CD-ROMs SCSI, sr_mod.o
:
insmod sg
insmod sr_mod
insmod
al driver que corresponda a su
controladora, el cual sacará un debug de lo que encuentre, de tal forma
que las unidades de CD corresponderán a /dev/sr0
para el primer
dispositivo CD-ROM SCSI, /dev/sr1
para el segundo, etc,
independientemente del bus o ID SCSI en el que estén.
De todas maneras si hace un cat
al archivo /proc/scsi/scsi
podrá ver qué ID SCSI se tienen sus dispositivos, dato indispensable para
determinar los interfaces genéricos /dev/sgX
.
Si instala X-CD-Roast
podrá usar los dispositivos /dev/sr0
hasta /dev/sr15
; también puede usarlos en lugar de los
dispositivos /dev/scdX
, que usan otros programas, como
cdrecord
. Estos son los nuevos dispositivos que se usarán a partir de
ahora para referirse a las unidades de discos ópticos tipo ROM como los
CD-ROM y DVD-ROM.
Recomiendo que active el soporte kerneld
, e introduzca el alias
apropiado a la controladora en /etc/conf.modules
, para que la
carga de los módulos sea automática. Si tiene dudas sobre esto, lea el
Kernel-Como para mejor referencia. Si ya tiene una distribución con
el kernel 2.2.XX
no se cargará el kerneld
, el propio kernel hace
las funciones del kerneld
.
Lea también la sección Configuración del kernel para grabadoras IDE porque explico algunas cosas más que pueden servir para solucionar posibles problemas que puedan ocurrir y que son comunes tanto para IDE como para SCSI. Y porqué no, para cuando un amigo se instale una grabadora IDE...
La forma más limpia de hacer que el kernel active o desactive sin necesidad de resetear el sistema, o cargar/descargar módulos, dando igual si está compilado el soporte como módulo o no, es mediante el siguiente método.
El activar o desactivar dispositivos SCSI a voluntad sin necesidad de demasiados aspavientos puede ser más práctico de lo que parece: suponga que su grabadora es externa, y la mantiene apagada mientras no la usa, lo mismo sucede con un scanner, unidad ZIP, JAZ, CDROMs o unidades de cinta externa, dando por supuesto que son SCSI, claro está.
Advertencia: Cuando hablamos de activar, nos referimos al caso en que el dispositivo está conectado externamente a la controladora, pero en un principio apagado, y una vez encendido, deseamos activar; no que cualquier controladora SCSI mediante este método soporte conexión/desconexión en caliente de dispositivos, tenga cuidado o puede desde corromper datos a estropear definitivamente dispositivos del bus SCSI.
Supongamos que la grabadora está en la primera o única controladora SCSI del sistema, y que la grabadora tiene asignado el ID SCSI 4.
si ejecutamos el comando:
echo "scsi add-single-device 0 0 4 0" > /proc/scsi/scsi
El kernel activará la grabadora.
En este caso, el primer 0
especifica la primera controladora, el
segundo el canal de la controladora (a menos que tenga una Wide o UW SCSI.
siempre será 0
, ya que sólo tiene uno; no confundir canal con
conector) el 4
especifica el ID SCSI, y el último 0
el LUN. (Ver
sección
Notación estándard)
y si ejecutamos
echo "scsi remove-single-device 0 0 4 0" > /proc/scsi/scsi
La desactivaremos.
El problema de las grabadoras IDE es que no hay software específico que detecte y grabe en estos dispositivos, ya que todos los programas se basan en la interfaz SCSI (ASPI) del kernel para acceder a éstos.
Por esta razón, no es tan sencillo configurar del Kernel para las grabadoras IDE. Lo primero es aplicar una pequeña modificación al Kernel, sólo necesario si tiene una grabadora Regrabable HP como las 7100 o 7110 o superiores.
La modificación, que consiste en aumentarle el tiempo de espera del IRQ, es absolutamente necesaria ya que si no lo hacemos no cerrará los CDs, o al intentar cerrarlos, es decir, al escribir la Tabla de Contenidos, se detendrá con un error y habremos perdido el CD sin forma de recuperarlo.
Para efectuarla, vamos al archivo ide.h
que se encuentra en
/usr/src/linux/drivers/block
, y buscamos la siguiente línea:
#define WAIT_CMD (10*HZ) /* 10sec - maximum wait for an IRQ to happen */
que tenemos que modificar de modo que quede así:
#define WAIT_CMD (1000*HZ) /* 1000sec - maximum wait for an IRQ to happen */
Con lo cual solucionamos el problema. Parece ser que con poner 400
en
vez de 1000
funciona, pero no lo he probado personalmente. De todas
formas, con el paquete de los fuentes del cdrecord
viene un archivo
llamado README.ATAPI
, en que se dice que haga exactamente esto, así
como cómo hacer funcionar estas grabadoras con la versión antigua de
cdrecord
, es decir, la 1.5
, aplicándole un serie de parches al
programa y al kernel.
Una vez realizada la modificación debe configurar el kernel, ir al menú
Floppy, IDE and other block devices
, desactivar el soporte para
IDE/ATAPI CD-ROM
(¡OJO, NO el Enhanced IDE/MFM/RLL
disk/cdrom/tape/floppy support
!) y activar la emulación SCSI que sólo
hay en los últimos kernel, versiones 2.0.31
en adelante y 2.2.XX
,
para que así los programas detecten nuestra grabadora IDE como SCSI y
funcione como tal.
Si activamos el soporte IDE/ATAPI para las unidades de CD-ROM el kernel no detectará nuestra grabadora como un dispositivo SCSI y habremos perdido el tiempo. Hacer que a nuestra grabadora la vean los programas como si fuera SCSI es muy sencillo, y se basa en que las grabadoras reciben comandos estandarizados (pertenecientes al interfaz ASPI, Advanced SCSI Programming Interface) para grabar que por casualidad son específicos de los SCSI; de esta forma, con la emulación lo que hacemos es que se puedan enviar este tipo de comandos a través del bus IDE de nuestra grabadora.
Hasta el momento que he tenido para probarlo, funciona perfectamente, tan bien, que se consigue un rendimiento similar al de una SCSI auténtica.
De la misma forma, windows lo que hace es emular SCSI con las IDE, lo que le trae una pequeña serie de inconvenientes como cierto software que no funciona bien o el excesivo consumo de recursos del sistema.
Por lo visto las grabadoras IDE consumen muchos recursos, más que las SCSI, pero en linux con la emulación la carga parece menor, o al menos no se nota de forma excesiva; lo único recomendable es dejar un puerto IDE para ella sola, según recomiendan los fabricantes; lo mas común suele ser el secundario.
Con esto nos aseguramos de que no haya cualquier posible interferencia del otro dispositivo que haya conectado al puerto de la grabadora (solo por seguridad); yo he probado a tener el lector y la grabadora en el mismo interfaz, esto se puede hacer pero recomiendo que desmonte la unidad lectora de CD para que no haya interferencias; se puede usar, por ejemplo, para escuchar CDs de música mientras se graba el CD, si tiene botón de reproducción, claro esta ;).
He recibido noticias de que hay gente que tiene la grabadora y la unidad lectora colocadas en la misma interfaz haciendo copias directas sin muchos problemas. Antes de ponerlo así, recomiendo realizar muchas pruebas antes de dejarlo de forma fija.
El último paso para configurar el kernel es ir a la sección SCSI
support
e incluir el soporte SCSI en el kernel, junto al SCSI
generic
y el soporte SCSI para los CD-ROM (Ojo, no lo haga como módulo,
hay un fallo en la configuración para la emulación SCSI a la hora de
incluir el soporte genérico SCSI en el kernel, por lo que si no lo
incluimos manualmente en él no podremos compilar el nuevo kernel y es
posible que se pase un buen rato dándole vueltas a lo mismo).
Gracias a este procedimiento ahora nuestra grabadora y/o lectora/as aparecerán como dispositivos SCSI en vez de IDE.
No es nada recomendable hacer cosas con el disco duro «origen» mientras se está grabando, si lee datos de un disco secundario podrá trabajar con el principal, pero no recomiendo abusar de su uso ya que es posible que pueda haber alguna pequeña interferencia con el DMA, aunque no suele ser muy común. Es decir, deje el disco duro sólo para la grabación.
Otra cosa a tener en cuenta es que si no tiene un disco con extracción por DMA como un Fast ATA o Ultra DMA desactive del kernel el soporte para el chip Intel Tritón (I/II), ya que si hará interferencia el DMA con la emulación y dejará el controlador colgado, obligándole a resetear el ordenador con ese botón que se tiene algo olvidado la gente de linux. (Mirar en el apartado Preguntas de Uso Frecuente) para más detalles).
¿Grabadoras por puerto paralelo? ¿De verdad eso existe? Pues sí, existe, y
cómo Linux es capaz de usarlas, ¿Cómo? Gracias cdrecord
y a los
desarrolladores del kernel que han introducido como novedad de los núcleos
2.1.x: (de desarrollo) el soporte para unidades ATAPI por puerto
paralelo como unidades de CD-ROM y discos duros.
Para esto deberemos tener el kernel 2.0.35
o superior con la
configuración necesaria para que reconozca nuestra unidad externa, que se
describe a continuación:
Lo primero de todo es reiniciar el ordenador y entrar en la configuración
de la BIOS, y, normalmente, en el menú Integrated Peripherals
,
si tiene la controladora del puerto paralelo integrada en la placa base,
como en las últimas placas de 486 y en todas las placas de Pentium y
Pentium Pro/II. Configuraremos el puerto de impresora en modo EPP, si
no lo establecemos así, no habrá forma de que funcione.
Seguidamente, una vez arrancado nuestro sistema entrar en la configuración
del kernel en Floppy, IDE, and other block devices
y seleccionar como
módulo el parámetro Parallel port IDE device support
. Seguidamente
seleccionar, al menos, también como módulos los siguientes:
Parallel port ATAPI CD-ROMs
Parallel port generic ATAPI devices
Shuttle EPAT/EPEZ protocol
De esta forma ya tenemos los módulos para hacer funcionar la grabadora como unidad lectora; si lo prefiere puede incluirlo en el kernel, pero primero asegúrese de que funciona bien como módulo antes.
Seguidamente procedemos a la recompilación e instalación de los módulos en
su lugar, y sin necesidad de reiniciar (a no ser que se actualice partes
no compiladas como módulos) ejecute depmod -a
para crear las
dependencias de los módulos a fin de poder cargarlos con modprobe
,
kerneld
o kmod
.
Comenzamos por cargar el modulo paride
, el epat
, y por último el
módulo del driver que vayamos a usar; como nos interesa poder usar nuestra
grabadora tenemos que cargar el pg
para que nos reconozca la
grabadora cdrecord
(equivalente al módulo sg
en SCSI) y el
pcd
para usar la grabadora como unidad lectora (el equivalente a
sr
en SCSI).
Para usar nuestra unidad como lectora debemos montar la unidad con la orden:
mount /dev/pcd0 /cdrom
No obstante, si piensa utilizar su grabadora como lector, o para extracción de audio asiduamente, le recomiendo que lea la sección ¿Es recomendable utilizar la grabadora para extraer o leer?, su bolsillo lo acabará agradeciendo.
Si no existe el dispositivo /dev/pcd0
puede crearlo con el
siguiente bucle:
for i in 0 1 2 3 ; do mknod /dev/pcd$i b 46 $i ; done
Si dispone del un kernel de la serie 2.1.x
o 2.2.x
antes de usar
los controladores de cualquier dispositivo de puerto paralelo ha de cargar
el módulo parport.o
, el cual hace de interfaz para poder tener
cargados y operativos varios dispositivos de puerto paralelo al mismo
tiempo como unidades ZIP, discos y lectores/grabadores de CD e impresoras
y scanners simultáneamente (genial ¿¿¿no??? ;-)).
Como todavía no ha caído en mis manos una grabadora de este tipo no he podido hacer pruebas ni nada por el estilo, los detalles de la configuración del kernel los he elaborado a partir de lo que he podido recopilar leyendo por la Web y la ayuda prestada por colaboradores.
Apelo a la colaboración de la comunidad linuxera a fin de completar este apartado con lo que más le vaya haciendo falta, para estar a la altura de los anteriores; bien se lo merece el esfuerzo mostrado por las personas que hacen posible que dispositivos tan raros y minoritarios sean capaces de ser utilizados por Linux.
En linux (y en unix) existe la posibilidad de poder acceder, leer y
escribir en sistemas de archivos que no se encuentren en una partición o
en un disco, sino, en un fichero. ¿Cómo? ¿En un fichero? Si, así es, y
para eso solo necesitamos dos cosas, un dispositivo loopback
y el
comando mount
.
Para asegurarnos de que incluimos esta opción en el kernel como módulo
entramos en la configuración del kernel mediante make menuconfig
, y
accedemos al menú Floppy, IDE, and other block devices
; justo tras
Additional Block Devices
se encuentra la opción Loopback device
support
la cual recomiendo seleccionar como módulo, y si en el menú
principal Filesystems tiene seleccionada la opción Kernel
automounter support
al montar el archivo, este módulo se cargará
automáticamente; si la opción anterior está como módulo deberá cargarlo a
mano, sino no se cargará automáticamente ningún modulo y nos dará error.
Para cargarla manualmente deberemos teclear: insmod loop
.
También debemos asegurarnos que en dev
existan los ficheros
especiales de dispositivo loopX
:
brw-rw---- 1 root disk 7, 0 Jul 1 1996 /dev/loop0
brw-rw---- 1 root disk 7, 1 Jul 1 1996 /dev/loop1
brw-rw---- 1 root disk 7, 2 Jul 1 1996 /dev/loop2
...
si no los tiene, créelos con el siguiente bucle:
for i in 0 1 2 3 4 5 6 7; do mknod /dev/loop$i b 7 $i ; done
así, para montar una imagen para revisarla, en el directorio
/mnt/imagenesCD
haremos:
mount -o loop imagenCD.iso /mnt/imagenesCD
Una vez hecho esto, acceda al directorio /mnt/imagenesCD
y podrá
ver los contenidos de la imagen. Las imágenes ISO9660 son de sólo lectura,
por lo que no podrá modificarlas de ninguna manera, claro, a menos que
genere otra imagen nueva.
Como puede observar no he puesto el comando -t iso9660
para
especificarle que es una imagen ISO9660, ya que automáticamente lo debe
detectar.
Si tiene pensado hacer imágenes Joliet, le recomiendo que cargue en el
kernel el soporte para Joliet, en el menú principal Filesystems
,
activar el soporte para ISO9660 en los kernels 2.0.33
en
adelante, y en los superiores a 2.0.37
, o 2.1.x
o 2.2.x
activar Microsoft Joliet CD-ROM extensions
; y dentro del submenú
Native Language Support
activar Codepage 437
, 850
y NLS
ISO 8859-1
.
Recomiendo al menos incluir esto como parte del kernel de arranque, aunque si no le sobra mucha memoria inclúyalos como módulos, que el kernel se ocupará de cargarlos cuando sea necesario. El resto de Codepages y NLSs recomiendo que los ponga como módulos si decide activarlos, aunque los más utilizados son los mencionados anteriormente.
Este es un tema para el que convendría que leyera el SCSI-Howto, pero como no hay disponible traducción, haré una breve introducción, necesaria para poder especificar parámetros necesarios al software que usaremos.
Básicamente, para lo que necesitamos, hemos de saber de la existencia de
los dispositivos de bloque, /dev/scdX
o /dev/srX
, y los
dispositivos genéricos, /dev/sgX
:
En lo que a nosotros atañe, tanto para extraer audio, como para grabar
bajo Linux, el kernel ha de tener activado Generic SCSI Support
, que
proporciona la interfaz ASPI necesaria.
Pero, ¿de qué manera determina Linux cómo ha de tratar un mismo dispositivo? dependiendo de a qué fichero de dispositivo le hagamos referencia; si es un fichero de dispositivo de bloques, lo tratará como tal, y si es genérico, utilizará comandos ASPI.
El dispositivo genérico de cada unidad conectada al bus SCSI se determina
mediante su ID SCSI, haga cat /proc/scsi/scsi
para ver un listado
de los disponibles en su sistema, por ejemplo:
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: QUANTUM Model: FIREBALL1280S Rev: 630G
Type: Direct-Access ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 01 Lun: 00
Vendor: QUANTUM Model: FIREBALL ST4.3S Rev: 0F0C
Type: Direct-Access ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 02 Lun: 00
Vendor: PIONEER Model: CD-ROM DR-U06S Rev: 1.05
Type: CD-ROM ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 04 Lun: 00
Vendor: YAMAHA Model: CDR102 Rev: 1.01
Type: WORM ANSI SCSI revision: 02
Lo que nos interesa es la línea Host: scsi0 Channel: XX Id: XX Lun: XX
de cada dispositivo; concretamente Id:
.
El sistema asigna dinámicamente dispositivos sgX
por orden de ID
a los presentes en ese mismo instante; en el ejemplo anterior:
00 ---> /dev/sga
01 ---> /dev/sgb
02 ---> /dev/sgc
04 ---> /dev/sgd
cuando decimos dinámicamente, nos referimos a que si por ejemplo, tiene una unidad externa magneto óptica, un zip, o similar, en el ID 03, la enciende, y hace que el kernel reescanee el bus, los dispositivos ahora serían:
00 ---> /dev/sga
01 ---> /dev/sgb
02 ---> /dev/sgc
03 ---> /dev/sgd
04 ---> /dev/sge
Ahora, la grabadora sería /dev/sge
en lugar de /dev/sgd
como antes.
Con lo que queremos decir que hay que tener mucho cuidado con
la adición de
dispositivos SCSI «al vuelo» y el uso de los sgX
.
En el caso concreto que nos ocupa, nos interesan los dispositivos ROM:
/dev/scdX
o la nomenclatura nueva, /dev/srX
.
Aquí el primer fichero de dispositivo corresponderá al primer CDROM SCSI
(incluyendo grabadoras) SCSI disponible en el sistema, /dev/sr0
,
/dev/sr1
será el segundo, etc; da igual el ID SCSI que tenga, o
en el bus SCSI que esté.
En entornos *nix existe cierta notación para identificar dispositivos SCSI:
Numero_Bus_SCSI,ID_SCSI_dispositivo,LUN_dispositivo
El LUN es un parámetro que siempre va a ser 0
, menos en el caso
improbable de que Vd disponga de un cargador de CDs, o un robot cambiador
de magneto-ópticos o de cintas.
Por tanto, un dispositivo que tuviese el ID 4
en la primera
controladora SCSI del sistema sería el dispositivo SCSI del sistema
0,4,0
.
Este apartado está dedicado a explicar algunas cosas para familiarizarle con la grabación de CDs, de modo que le sea mas fácil y rápido elaborarlos.
Una breve explicación sobre los sistemas de ficheros de los CD-ROMs, para que pueda elegir cuál es el más conveniente en cada momento o CD: como ya sabrá, se sigue un estándar para que todos los ordenadores puedan leer los CD-ROMs sin ningún problema, para eso se creó el ISO9660 que especifica el estándar.
Pero dentro de ese estándar existen algunas variantes, o más concretamente extensiones, que permiten ampliar las posibilidades originales del ISO9660, como son los nombres largos o incluso sistemas de arranque y ciertas cosas más.
Estos sistemas fueron diseñados por Microsoft para su plataforma Windows 95/NT. Permiten sistemas de archivos tipo VFAT pero con la limitación de longitud a 64 caracteres, en Joliet, y de 128 para Romeo.
Para que Linux sea capaz de ver estos sistemas de ficheros ---por ahora
sólo Joliet--- Necesita tener dicho soporte en el kernel: hasta el
kernel 2.0.34
no lo había, aunque es posible tenerlo gracias a
parches para el kernel que se encuentran en Internet. Estos mismos parches
permiten ver también particiones con FAT32, el sistema de archivos que usa
la OSR2 de Windows 95 que le posibilita tener particiones de hasta 4
TeraBytes, limitación inexistente en el sistema de ficheros de Linux,
ext2, que desde su aparición soporta precisamente 4 TeraBytes ;)
Para los que estén usando un kernel de la serie 2.2.x
, decirles que
tanto el soporte Joliet como de FAT32 vienen «de serie», y no
tienen más que compilar o cargar módulos cuando se necesite si el kernel
no los carga automáticamente.
Esta extensión se ideó para la plataforma UNIX, por lo que recoge una serie de características y ventajas de las que nos podemos beneficiar más que con los otros.
La primera ventaja es la de poder tener un sistema de ficheros con atributos propios del UNIX en él, es decir, puede haber archivos ejecutables, de acceso restringido a un usuario, enlaces simbólicos y demás aspectos típicos de un sistema de archivos UNIX, en el CD. Otra de las ventajas es que podemos tener nombres de hasta 128 caracteres, a diferencia del Joliet.
Por otra parte hay un sistema de compatibilidad que permite a otros
sistemas operativos ver nombres de hasta 32 caracteres; no es mucho, pero
de algo sirve. Para aquellos que no ven este sistema de ficheros tenemos
la posibilidad de crear unas tablas de transcripción en forma de ficheros
llamados TRANS.TBL
, que aparecerán en cada directorio del CD,
transcribiendo el nombre visible por el que de verdad se encuentra en él.
En algunos casos puede ayudar, pero unas veces por fallo del sistema operativo foráneo, otras por sus controladores, la transcripción no funciona muy bien, llegando incluso al reseteo sin previo aviso.
No sé mucho sobre este sistema de ficheros, sé que es el que utilizan los Macintosh y es incompatible con el de los PC, por lo menos windows no sabe lo que es. Como es habitual Linux se adapta y por supuesto hay un parche para el kernel para ver este tipo de sistema de ficheros y también hay un programa para crear imágenes con este sistema de ficheros para que podamos grabar CDs a nuestros amigos los del mac.
Sobre las características de este sistema de ficheros no puedo decir nada, puesto que de momento no las sé. Si alguien conoce las características de este sistema por favor, envíemelas a mi dirección de correo y amablemente le incluiré como colaborador.
Este es el sistema de archivos que usan los DVD y también se puede usar en los CD-ROM normales, de hecho el Adaptec DirectCD usa este sistema de ficheros. Las características son muy interesantes, hasta 256 caracteres en ASCII y 128 en unicodes, posibilidad de grabar los discos en modo packet writing, lo cual elimina la posibilidad de un buffer underrun (muy común cuando no llegan los datos de forma constante al CD y acabamos por tirarlo a la basura). Es el sistema de ficheros que acabará por estandarizarse. En Linux este sistema de ficheros aun está algo verde, aunque ya se ha conseguido leer discos grabados con DirectCD con ciertas limitaciones.
Hasta la fecha el parche para el kernel de Linux soporta hasta la versión 1.5 del sistema UDF .
Para más información, consulte estas páginas web:
http://www.osta.org
para obtener
toda la información sobre el sistema UDF y
http://trylinux.com/projects/udf
desde donde podemos acceder
a los parches para que el kernel vea este sistema de ficheros y no solo
eso, también hay utilidades para crear CDs con el sistema UDF.
Lo que todavía no he conseguido es copiar un sistema UDF a mi regrabable y poder grabar en él. Si alguien sabe cómo hacerlo, por favor, me lo comunique con explicaciones claras, si no es mucha molestia.
Sí, en efecto, no se trata de un formato de ficheros típico de CDRoms, lo cual no significa que no pueda hacerse.
Consulte la sección mke2fs.
El nombre en castellano puede llevar a confusiones pero es el nombre que se le ha puesto al sistema para incluir un sistema de arranque en el CD. La explicación de cómo hacer un CD arrancable con este sistema se describe en la sección del mkisofs
Casi todos los programas que aquí vamos a mencionar pueden obtenerse de
ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/
; no
obstante, es posible que no estén las últimas versiones de desarrollo, por
ello procuro además dar en la sección de cada uno la dirección origen.
Aquí hago una descripción de los programas que vamos a necesitar para elaborar nuestros propios CDs, con ellos haremos las imágenes y las grabaremos; podremos comprobar la diversidad que hay y las ventajas que nos proporcionan.
Sólo voy a describir las últimas versiones de estos programas, que aunque en algunos casos están en fase alpha o de desarrollo (sólo algunos) funcionan perfectamente.
En el caso concreto de cdrecord
, resulta imprescindible para poder
usar grabadoras IDE, IDE-ATAPI de puerto paralelo y las regrabables, al
ser el único que de momento las soporta.
La parte más importante es hacer una imagen, pero ¿porqué hay que hacer una imagen? Muy sencillo, la imagen es el molde con el que se crea el futuro CD; y no sólo eso, la imagen nos permite comprobar que el CD va a salir como nosotros queremos, pudiendo evitar errores y ciertas cosas más, difícilmente detectables en el momento de la grabación si la generamos al tiempo de grabar.
Además, podemos montar las imágenes para comprobar cómo han quedado, como se explica en el apartado Otras opciones del Kernel recomendables
Sí, ya lo sé, en windows puedo hacer CDs perfectamente sin necesidad de hacer imágenes, si continúa leyendo, luego explico cómo podrá hacer CDs sin necesidad de hacer imágenes.
mkisofs
Puede obtener este programa de
ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs
.
La última versión estable disponible es la 1.11
y la de desarrollo
es la 1.12b5
.
Este es el principal programa que usaremos para crear nuestras imágenes,
ya que está hecho especialmente para hacer imágenes ISO9660 a las que
añadir extensiones Rock Ridge, o imágenes Joliet (sólo versiones
1.12
).
Puede también combinar las dos, es decir, en un solo CD tener los dos
sistemas, Rock Ridge y Joliet, de tal forma que el CD sea
portable entre los sistemas operativos que usen uno u otro, manteniendo
los nombres largos (sólo versión 1.12
).
Esta explicación está basada en la versión 1.12a5
, de la cual sólo
voy a indicar los parámetros que son más utilizados.
La sintaxis de este programa y su uso se explica a continuación:
Este parámetro indica que queremos incluir todos los
archivos que se encuentran en el directorio especificado, ya que el
programa no incluye por defecto los archivos que contengan caracteres
~
y #
que son generalmente copias de seguridad creados
por la mayoría de editores *nix.
Este parámetro indica un comentario sobre la aplicación
a la que va dirigido el CD, puede ser definido en un archivo
.mkisofsrc
que se puede crear en el directorio raíz de cada usuario,
con el que poder definir por defecto varias cosas. En concreto este
parámetro se identifica como APPI=
especificando lo que quiera poner
mientras tenga una extensión no superior a 128 caracteres. En versiones
anteriores a la 1.12
se debe especificar en la línea de comandos con
el comentario entre comillas.
Este parámetro sirve para indicarle el nombre y la ruta del archivo que contiene la imagen de arranque que será usada para hacer un CD arrancable según el estándar El Torito. De esta forma creamos un CD arrancable para aquellas BIOS que acepten arrancar desde CD-ROM. La imagen debe tener un tamaño de 720, 1.44 o 2.88 Mbs, la de un diskette de arranque, que contenga por ejemplo el LILO. Ojo que esto no funciona muy bien con CDs SCSI aunque la controladora SCSI lo soporte teóricamente, por culpa generalmente de la controladora, no del estándar.
Con este parámetro, que está ligado al anterior para hacer CDs arrancable, se especifica dónde se creará en el CDROM el archivo del catálogo para el arranque del CD-ROM. Por defecto lo crea en el directorio raíz de la imagen
Con este parámetro hacemos que los enlaces que se encuentren dentro del directorio maestro especificado no sean tomados como tales, sino como ficheros o directorios reales, lo cual nos permite incluir en el CD cosas que no estén en el mismo sistema de ficheros donde tenemos el master, es decir, le especificamos que siga los enlaces que contenga.
Nos muestra la ayuda del programa, muy útil si no nos acordamos de alguno de los parámetros.
Sirve para añadir archivos que no estén en el directorio o subdirectorio que hayamos indicado para hacer la imagen, para su adición a la imagen del CD. Esta opción está temporalmente deshabilitada, y parece ser que da problemas, por lo que está en espera de ser reescrita.
Gracias a esta opción podremos crear CDs con sistema de ficheros
Joliet. No incluida en versiones anteriores a la 1.12
.
Gracias a este parámetro podremos establecer el modo de compatibilidad de ficheros de 32 caracteres para aquellos sistemas que no aceptan la longitud de los ficheros para los que está grabado el CD. Usar con cuidado.
Con este parámetro indicamos un patrón de archivos que
no queramos incluir en el CD, que puedan encontrarse dentro de algún
subdirectorio en la ruta desde la que vamos a hacer la imagen (ficheros
core
etc...) Se pueden usar comodines o nombre completo.
Con esta opción indicamos el nombre que le queremos dar al fichero, incluida su ruta, que contendrá la imagen, o el fichero de dispositivo correspondiente a la partición donde queremos volcarla.
El volcar las imágenes (sólo de datos) a partición es muy recomendable para equipos lentos; dicha partición no ha de tener formato alguno, por ello la lectura es más rápida, ocurre como con la partición de swap.
Si utilizamos volcado a partición, conviene «resetearla» antes de generar una imagen nueva con el comando:
dd if=/dev/zero of=/dev/sda1
Suponiendo que sda1
sea donde queremos volcar la imagen; OJO
con especificar una partición equivocada, o se irá a hacer gárgaras...
Este es complementario al parámetro -A
, con él
podremos indicar el autor del CD, Tiene una extensión máxima de 128
caracteres. Corresponde al parámetro PREP=
en el archivo
.mkisofsrc
.
Muestra por pantalla el tamaño estimado que ocupará la imagen, sin hacer nada más.
Especifica el editor del CD. Su longitud máxima son
128 caracteres. En el archivo .mkisofsrc
se identifica como
PUBL=
.
No muestra mensajes por pantalla.
Genera un sistema de ficheros con extensiones Rock Ridge. Esta es la opción principal para generarlo, manteniendo los permisos tal y como estén.
Esta opción es como la anterior pero resetea los permisos de modo que todos los usuarios puedan acceder al CD por completo.
Con esta opción generamos los archivos de
transcripción, llamados TRANS.TBL
en cada directorio del CD-ROM, que
contendrán todas las transcripciones de los nombres de fichero para que se
puedan ver por ejemplo en un sistema DOS (de tipo de nombres de fichero
8+3) y con su longitud correspondiente en el sistema Rock Ridge. Cuando
utilizamos la opción -l
los archivos tendrán nombres de 32 caracteres
y no de 8+3.
Nos muestra la ayuda y la versión del programa. Y mientras se genera la imagen nos va mostrando el porcentaje de la imagen generada y una estimación de tiempo para terminar. Muy útil.
Esta opción nos permite darle un nombre de volumen al CD para
identificarlo. En el archivo .mkisofsrc
se especifica con el
parámetro VOLI=
con una extensión máxima de 32 caracteres.
Esta opción nos permite excluir un directorio específico que se encuentre dentro de la ruta de origen. Puede excluir hasta un máximo de 1000 directorios, ojo que hay que especificar el parámetro antes de cada directorio, tantas veces como directorios a excluir haya:
mkisofs ... -x estedirectoriono -x yestetampoco -x nieste
Estos son los parámetros más utilizados, si quiere más información o más posibilidades siempre puede consultar la página del manual. Ahora unos pocos ejemplos de cómo funcionan algunos parámetros:
Para generar un sistema de ficheros Rock Ridge simplemente tenemos hacer esto:
mkisofs -a -r -T -o /cd/imagen.iso /ficheros
Aquí se indica un sistema de ficheros Rock Ridge al que se le incluyen
todos los archivos que se encuentren en el directorio /ficheros
,
generando archivos TRANS.TBL
, para el archivo de imagen
/cd/imagen.iso
.
Para que al crear la imagen se establezca el nombre de volumen, la
identificación, el editor y la aplicación del CD, hay dos métodos, uno
consiste en crear un archivo llamado .mkisofsrc
en nuestro directorio
personal. Recuerdo que este archivo sólo sirve para la versión 1.12
,
con una sintaxis como ésta:
El nombre de volumen.
Cualquier cosa que quiera poner, normalmente un pequeña descripción del CD.
Aquí puede poner sus datos o cualquier cosa para identificar el CD como suyo.
Aquí puede poner una descripción del objetivo de este CD o su destino.
O bien puede especificarlo en la línea de comandos así:
mkisofs -a -R -l -T -V "Volumen" -P "descripción CD" -p "preparador" \
-A "Aplicación" -o imagen.iso /ficheros
Este único comando se ha introducido en dos líneas, detrás del carácter
\
hay que teclear Enter
, y teclear el resto. Se ha hecho
así por motivos de formato de este documento.
En él podemos observar, aparte de cómo poner el nombre de volumen al CD y otras cosas, que estamos haciendo un CD con el modo de compatibilidad para otros sistemas de 32 caracteres, tomando los permisos y la identificación que tiene cada archivo en el disco.
Un ejemplo de cómo crear un sistema de ficheros con Joliet es:
mkisofs -a -J -f -m '*.o' -m core -x /master/excluir -o /cd/imagen.iso /master
En este sistema de ficheros Joliet hemos excluido todos los archivos que
correspondan con la descripción *.o
y core
con la opción
-m
, la opción -f
indica que los enlaces que se encuentren serán
tomados como los archivos o directorios a los que apuntan. Por último,
excluimos el directorio excluir
que se encuentra en la ruta de origen
desde donde queremos hacer la imagen.
Y por último un sistema de ficheros con Rock Ridge y Joliet, que recuerdo
que sólo se puede hacer en la versión 1.12
:
mkisofs -a -J -f -R -m '*.o' -m core -x /master/excluir -o /cd/imagen.iso /master
Para hacer un CD arrancable (para arrancar con él es necesario que la BIOS soporte arranque desde unidades CD-ROM) necesitamos la imagen de un disquete de arranque de 720KB, 1.44MB o 2.88MB, de MS-DOS o Linux según queramos, que podemos encontrar en varios sitios ya hechos o hacernos nosotros mismos. Una vez tenemos la imagen, la ponemos dentro del directorio en donde se encuentran los archivos desde los que vamos a hacer la imagen y procedemos a lo siguiente:
mkisofs -a -b /cdboot/eltorito.img -c /cdboot/catalogo -R -T -o imagen.iso /master
Nótese que a los parámetros -b
y -c
le especificamos lo que
parece un path absoluto, pero el directorio /cdboot
no se
encuentra en el directorio raíz de su disco duro, sino que en realidad es
un subdirectorio de /master
; esto es así porque mkisofs
para este parámetro se sitúa como si estuviera ya dentro del CD.
mkhfs
Puede obtener este programa de
ftp://ftp.ge.ucl.ac.uk/pub/mkhfs
.
Es su homólogo para el sistema de ficheros de los mac, HFS, no lo he llegado a probar todavía pero seguro que funciona bien. Su uso es muy sencillo y no tiene mucha complicación.
mkhybrid
Puede obtener este programa de
ftp://ftp.ge.ucl.ac.uk/pub/mkhfs
.
Es la mezcla de los dos anteriores, la ultima versión usa código del
mkisofs 1.12
para mejor soporte de Joliet. La ayuda parece
exactamente la del mkisofs
, salvo que incluye las siguientes opciones
para añadir el sistema de ficheros de los mac:
Añade la extensión ISO9660 de Apple, para la compatibilidad con el estándar.
Crea el sistema HFS híbrido para la extensión ISO9660.
Prueba todos los archivos para el sistema Unix/HFS.
Crea todos los nombres según el estilo de los mac para ISO9660/Joliet/Rock Ridge
Evita lo anterior para los archivos Unix/Mac
mke2fs
¿Cómo? ¡Pero si este programa sirve para crear sistemas de ficheros en el
formato nativo de Linux, el ext2
!
Pues sí, es posible crear CD-Roms en formato ext2
, que por supuesto
no podrán leerse en sistemas que no dispongan de algún tipo de soporte
para leer este tipo de sistema de archivos, básicamente Linux.
Su utilidad dependerá de la creatividad de cada uno ;)
Para ello, hay que seguir el siguiente procedimiento:
cdrecord
en su versión de desarrollo 1.8
de la siguiente forma:
# cdrecord -v dev=3,0 -atip
Cdrecord release 1.8a29 Copyright (C) 1995-1999 Jörg Schilling
TOC Type: 1 = CD-ROM
scsidev: '3,0'
scsibus: 0 target: 3 lun: 0
Using libscg version 'schily-0.1'
atapi: 0
Device type : Removable CD-ROM
Version : 2
Response Format: 2
Capabilities :
Vendor_info : 'YAMAHA '
Identifikation : 'CRW4260 '
Revision : '1.0q'
Device seems to be: Generic mmc CD-RW.
Using generic SCSI-3/mmc CD-R driver (mmc_cdr).
Driver flags : SWABAUDIO
Drive buf size : 1176000 = 1148 KB
Current Secsize: 512
ATIP info from disk:
Indicated writing power: 5
Is not unrestricted
Is not erasable
ATIP start of lead in: -11324 (97:31/01)
ATIP start of lead out: 359849 (79:59/74)
Disk type: Long strategy type (Cyanine, AZO or similar)
Manuf. index: 22
Manufacturer: Ritek Co.
Una vez obtenida esta información nos fijamos en la siguiente linea:
ATIP start of lead out: 359849 (79:59/74)
de la que nos interesa el numero 359849
el cual al multiplicarse por
2048
nos dará el tamaño máximo de la imagen que puede ser grabada en
el CD. Si se fijan el tamaño concuerda con un CD 80 minutos que corresponde
exactamente a 702 MegaBytes absolutos del tamaño de la imagen.
dd if=/dev/zero of=imagen-vacia.ext2 bs=2048 count=359849
mke2fs -m 0 -b 2048 imagen-vacia.ext2
mke2fs
advertirá de que imagen-vacia.ext2
no es un fichero de
dispositivo de bloque, y le pedirá confirmación:
imagen-vacia.ext2 is not a block special device.
Proceed anyway? (y,n) y
loopback
, en lo que va a ser nuestro
directorio «maestro»:
mount -o loop imagen-vacia.ext2 /mnt/master
/etc
:
cd /etc
find | cpio -pdamvu /mnt/master
Si queremos montar un CD-Rom de este tipo, habrá que especificarle a
mount
que el tipo de sistema de ficheros es ext2
, y de sólo
lectura:
mount -t ext2 -o ro /dev/cdrom /mnt/cdrom
si queremos incluirlo en /etc/fstab
, habrá que indicar además de
su tipo de sistema de ficheros, y de ser sólo lectura, que no sea
comprobado:
/dev/cdrom /mnt/cdrom ext2 defaults,ro 0 0
El último 0
es el que hace que fsck
no lo compruebe en cada
arranque.
Aviso: La mayoría de las grabadoras requieren que el orden de palabra de los ficheros de audio en formato CDDA o PCM raw sea Big Endian, salvo las Yamaha, Sony y recientemente las últimas grabadoras que cumplen el estándar SCSI-3/MMC, que lo necesitan Little Endian.
Casi todos los programas extractores de CD-Audio extraen por defecto en Big Endian.
Si graba ficheros de audio con el orden de palabra equivocado para su grabadora, cuando intente escuchar ese CD no oirá más que un horripilante ruido, similar al sonido de una televisión sin sintonizar.
Dependiendo del software que utilice para grabar, esto se puede abordar de dos maneras:
cdrecord
: Indistintamente de la grabadora que tenga, y del
software de extracción que use, extraiga siempre en Big Endian,
el formato por defecto.
cdrecord
sabe qué formato necesita cada grabadora, e invertirá el
orden de palabra si es necesario; notará si lo invierte porque aparecerá
la palabra swab
en el listado de pistas de audio a grabar.
cdwrite
: Aquí no hay error posible, ha de saber qué orden
necesita su grabadora, y tener los ficheros CDDA con el orden apropiado. Otro concepto, que aunque es mencionado más veces posteriormente a lo largo del documento, quiero recalcar, y que necesitará especialmente con los extractores, es el del dispositivo genérico SCSI, que es explicado en la sección Dispositivos genéricos.
readcdda
Este programa es un poco difícil de encontrar, ya que las versiones disponibles son modificaciones o portings del original a Linux.
Uno de los paquetes que lo trae modificado es el X-CDRoast, que es de donde lo he obtenido, ver sección X-CD-Roast.
No hay página man disponible, y tampoco certifico que los comandos que aquí explico correspondan a la versión que Vd. pueda conseguir; no obstante lo expongo aquí por su excepcional calidad y fiabilidad. Eso sí, sólo funciona con dispositivos SCSI.
Su sintaxis es un poco pesada, pero como decía antes, vale la pena.
El orden de palabra de los ficheros cdda creados con readcdda
es
Big Endian por defecto.
Para especificar el dispositivo genérico de la unidad con la que vamos a extraer.
Dispositivo de bloque de la unidad con la que vamos a
extraer, son válidos tanto dispositivos /dev/srX
como
/dev/scdX
.
Desde qué pista a extraer
Hasta qué pista extraer (inclusive)
desplazamiento del principio de la pista
desplazamiento del final de la pista
Tiempo total de grabación
Velocidad de extracción.
imprimir información sobre el CD.
Formato de salida Little Endian
Así que un ejemplo, utilizando el CDROM SCSI que estuviera en el ID SCSI
3
, que fuese el primer CDROM disponible, extrayendo de la pista
1
a la 15
, a velocidad 6x en un solo fichero .cdr
, sería:
readcdda -D /dev/sgd -B /dev/scd0 -t 1 -z 15 -o 0 -s 0 -S 6 audio.cdr
Esto es un poco latoso si queremos que cada pista tenga su fichero, para ello podemos utilizar un bucle:
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
readcdda -D /dev/sgd -B /dev/scd0 -t $i -z $i -o 0 -s 0 -S 6 audio.$i.cdr ;
done
cdda2wav
Este programa es más reciente, y permite extraer de CDROMs IDE si éstos
soportan extracción. Puede obtenerlo de
ftp://ftp.gwdg.de/pub/linux/misc/cdda2wav/
. También se puede
encontrar incluido en el mismo paquete de las últimas versiones de
cdrecord
.
Comentaré sólo las opciones más habituales:
Dispositivo genérico de la unidad lectora; /dev/sgX
o
0,1,0
si es SCSI; si es IDE, con el fichero de dispositivo de bloque
correspondiente: /dev/hdb
por ejemplo para un CD esclavo del bus
primario, o el enlace simbólico que apunte al apropiado.
Dispositivo auxiliar: será un /dev/scdX
si el lector es
SCSI o el mismo que le especificamos en -D
si es IDE.
Tipo de interfaz; generic_scsi
para dispositivos SCSI o
cooked_ioctl
para IDE.
Extracción a calidad CD: muestreo a 44100Hz, 16 bits estéreo. Esta es la opción por defecto, asi que si quiere estas opciones no tendrá que volver a ponerlas.
Especificamos la pista o rango de pistas a extraer.
Formato del fichero de salida, opciones validas útiles pueden ser
raw
para formato cdr (CDDA) o wav
.
Orden de la palabra binaria: big
para Big Endian,
little
para Little Endian.
Extraer cada pista a un fichero separado.
Velocidad de extracción.
Desactivar overlap (utilizar si se obtienen mensajes de error
tipo increase overlap (X) or decrease SYNC_SIZE (X)
.
No crear ficheros informativos (.inf
) por cada fichero de
audio creado.
Permite la salida directa al dispositivo de audio del ordenador. Por defecto /dev/dsp.
Cambia el dispositivo de audio por defecto /dev/dsp por que se le especifique.
No muesta información alguna mientras se realiza el proceso de extracción.
Supongamos que usamos un lector SCSI, que tiene el ID 2 del bus SCSI, que
queremos extraer las pistas de la 3 a la 8, en formato CDDA, Big
Endian (por defecto), en ficheros con el patrón audio_*.cdr
separados, con sus correspondientes ficheros informativos:
cdda2wav -D /dev/sgb -A /dev/scd0 -I generic_scsi -x -t 3+8 -B -O cdr -S 10 audio
tambien se puede escribir de forma más abreviada de la siguiente forma:
cdda2wav -D 0,2,0 -I generic_scsi -x -t 3+8 -B -O cdr
Si extraemos las pistas con la opción -O wav
por defecto serán
Little Endian.
En la versión 1.0
de cdda2wav y en adelante para extraer las
pistas de audio directamente, aunque hayan otros tipos de pistas en el
disco, como por ejemplo una de datos al principio o al final, se ha de
poner tan sólo esto:
cdda2wav -D 0,2,0 -I generic_scsi -B
al mismo tiempo, esto nos puede servir de ejemplo de como se pueden extraer pistas para la sección DAO con cdrecord.
Existe una variante del cdda2wav
, llamada cdparanoia
, de
rendimiento muchísimo menor, pero que como su nombre indica, es muy
paranoica con la calidad de las pistas extraídas, puede resultar útil
con CDs muy estropeados.
cdrecord
La página principal de cdrecord
es
http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html
Puede obtenerlo por FTP de
ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/
.
Este programa es más avanzado y actual que cdwrite
, al estar en
desarrollo e incorporar soporte para las novedades del mercado actual, a
pesar de no soportar algunas unidades antiguas que sí lo hace
cdwrite
.
La mayor ventaja de este programa es que funciona perfectamente con las grabadoras IDE (con emulación SCSI activada, por supuesto) y SCSI, incluyendo más opciones como el soporte para regrabables y sus comandos específicos, como borrar un CD-RW, una partición, etc.
Permite visualizar las tablas de contenido (TOC, Table Of Contents), que es donde se almacena la información sobre las pistas y el tamaño de las mismas.
Esta tabla la genera el programa y se tiene que grabar para que se pueda leer el CD, ya sea cuando haga un CD multisesión o al hacer un CD normal o de CD-Audio.
También puede grabar pistas CDI, en modo normal de datos data 1 y data 2, multisesión xa1 y xa2 de datos, y audio.
Otra función muy útil es que puede realizar ciertas pruebas a la unidad para comprobar sus capacidades y compatibilidad, etc.
Los comandos que más nos pueden interesar se detallan a continuación:
Muestra la versión del programa. Recomendada la versión
1.6.1 final
, las que llevan a
despues del número son alphas y no
es recomendable usarlas. Para unidades tanto IDE como SCSI se recomienda la
1.8aXX
.
Muestra información mientras se ejecuta el programa para conocer el estado de la grabación (Muy recomendable ya que indica los Mb grabados y el porcentaje de llenado del buffer).
Muestra los comandos SCSI mientras se ejecuta el programa.
Muestra mensajes para encontrar posibles fallos.
Especifica la situación de la grabadora en el sistema
SCSI. Hay que especificarle el bus scsi, el ID SCSI del dispositivo, y el
LUN SCSI (Logical Unit Number, valor variable sólo si se emplea
por ejemplo un lector múltiple de CDs, en donde 0
identificaría a la
primera bandeja, 1
a la segunda, etc).
Un ejemplo frecuente sería 0,4,0
para el primer bus SCSI, el ID SCSI
4
y el LUN de todo dispositivo no múltiple, 0
. Si usamos la
emulación SCSI o una unidad de puerto paralelo, siempre será 0,0,0
.
Con este parámetro indicamos que vamos a hacer un test de la unidad y del sistema, simulando una grabación para comprobar si se realiza adecuadamente. Durante este test el láser de la grabadora está desactivado por lo que no correremos el riesgo de perder un CD.
Esta opción es para indicar que vamos a hacer un CD
multisesión, es decir con varias pistas de datos. Este parámetro no puede
ser usado en unidades Sony ya que no llevan soporte hardware para CD-ROM
modo XA 2 por lo que se deberá de usar el parámetro -data
para
este fin.
Esta opción nos permite ver la información que hay grabada en un CD multisesión o con al menos una pista, mientras el CD no se haya cerrado.
Muestra información sobre la tabla de contenidos del CD, este parámetro puede ser usado tanto en las grabadoras como en los lectores.
Esta opción es para cerrar un CD que no se haya cerrado antes, si después de haber grabado los datos no se ha escrito la tabla de contenidos. De momento esto no funciona con las unidades TEAC.
Esta opción, usada en la línea de comandos es para que al grabar un CD no se escriba la tabla de contenidos, para que no lo cierre. Puede ser útil para grabar un CD por pasos o para grabar un CD-Audio ya que hay lectores de CD-Audio que pueden leer CDs sin cerrar, siempre y cuando no contengan además datos. Los CDs de datos sin cerrar no pueden ser usados por unidades lectoras.
Esta opción es para cerrar la bandeja, luego sale del programa.
Esta opción permite expulsar el CD una vez grabado, hay unidades como las Philips o las Yamaha que deben hacer esto.
Esta opción es para indicarle a la unidad la velocidad a la que debe grabar. El número especifica el multiplicador de 150Kb/s para datos y 172Kb/s para audio.
Esta opción borra un CD-RW y sale, o bien borra antes de continuar con una grabación. Sólo puede ser usada por unidades regrabables y con discos CD-RW. Las opciones se describen a continuación:
help
Muestra la ayuda.all
Borra totalmente un disco. Esta opción tarda bastante tiempo.disc
o disk
Borra un disco totalmente.fast
o minimal
Borrado rápido del disco: Solo borra el TOC,
los pregaps y el PMA.track
Borra una sola pista.unreserve
Activa una pista reservada.trtail
Borra la cola de una pista.unclose
Abre una pista cerrada.session
Borra la ultima sesión.
Esta opción especifica el buffer fifo para almacenamiento
intermedio de los datos, a fin de hacerlos llegar a la grabadora sin
retraso. Para facilitar las cosas puede especificar este buffer con un
número seguido de b
para indicarle bytes, k
para kilobytes,
m
para megabytes.
Por defecto tiene un buffer de 4 Mb. La recomendación para el tamaño del buffer es de entre 4 y 32 Megas, debiendo ser como mínimo igual al tamaño de buffer interno de la grabadora y como máximo no superior a la mitad de la RAM física del ordenador.
Lo normal es que no necesite poner más de 8 MB que es lo que yo
recomiendo. Si aún así aparecen mensajes como fifo empty count
, tiene
problemas de configuración o hardware. Ej: fs=8m
.
Esta opción es para especificarle un driver concreto; para
ver la lista de todos los drivers simplemente especifique
driver=help
. Si no se indica opción, cdrecord
tratará de
encontrar el driver más apropiado para la unidad. Si no lo consigue,
tendrá que indicárselo; sepa que si el driver no es absolutamente
compatible corre un riesgo muy grande de perder el CD.
Esta opción busca el driver que corresponda a su unidad y termina la ejecución.
Esta opción imprime las posibilidades de las unidades que cumplan el estándar SCSI-3/mmc y sale.
Esta opción hace un examen de la unidad, imprime los resultados en pantalla y sale.
Esta opción examina el bus SCSI en busca de unidades. Sirve para buscar nuestra unidad.
Esta opción resetea el bus SCSI donde se esté nuestra grabadora.
Detrás de esta opción se indican los nombres de los archivos
de sonido que serán grabados como pistas de audio, siempre y cuando los
archivos tengan una calidad de muestreo 44.100 Khz a 16 Bits, estéreo en
alguna variante PCM; si no son así, serán rechazados por cdrecord
.
Acepta formato CDDA (tanto .cdda
como .cdr
son extensiones
válidas), .wav
, .au
y .raw
.
cdrecord
, si no se le especifica lo contrario, asume que el orden de
palabra es Big Endian, y convertirá automáticamente a Little
Endian si detecta que la grabadora lo necesita.
Tras de esta opción se indica el nombre del archivo que
corresponde a la imagen ISO9660 que anteriormente hemos creado con
mkisofs
u otro de los anteriormente descritos. Esta opción viene por
defecto, lo que quiere decir que si no la indicamos grabaremos de esta
forma.
Si esta opción esta presente, todas las pistas de datos que la sigan se grabarán en modo 2.
Si esta opción esta presente, todas las pistas que la sigan se grabarán en modo XA 1.
Si esta opción esta presente, todas las pistas que la sigan se grabaran en modo XA 2.
Si esta opción esta presente, todas las pistas que la sigan se grabaran en CDI.
Estos son los comandos que más se usan, para ampliar información puede acudir al manual. Ahora unos ejemplos para que la cosa quede mas clara:
cdrecord -scanbus
cdrecord dev=0,0,0 -checkdrive
cdrecord dev=0,0,0 -prcap
cdrecord dev=0,0,0 -inq
cdrecord dev=0,0,0 -toc
cdrecord dev=0,0,0 -msinfo
Así se realizan los test; en el primero se escanea el bus SCSI para ver nuestra unidad, en los demás se toma que tenemos la unidad en el dispositivo que corresponde al bus 0, id 0 y lun 0 para hacerle los test a los que corresponde la explicación anterior.
cdrecord dev=0,0,0 fs=8m speed=2 -nofix -eject -xa1 imagen.iso -audio audio1.wav audio2.cdda audio3.au
Aquí podemos ver que le hemos puesto 8 Mb al buffer fifo, especificado que
grabe a doble velocidad, que expulse el CD una vez terminado, que la
primera pista es una imagen de datos en formato multisesión XA 1 y las
siguientes pistas serán de audio (este programa puede grabar varios
formatos de audio como el .wav
de Microsoft, el .cdda
, el PCM en
bruto o .raw
y el .au
siempre y cuando tengan una calidad de
muestreo de 44100 Hz a 16 bits, en estéreo). Y al final no será escrita la
TOC por lo que para hacerlo tenemos la siguiente línea:
cdrecord dev=0,0,0 -fix
Para grabar una sola pista de datos podemos usar esto:
cdrecord dev=0,0,0 fs=8m speed=2 -eject imagen.iso
Ya que como se dijo antes no hacía falta especificar el parámetro
-data
, que es el asumido por defecto.
Las nuevas opciones que incluye el cdrecord 1.8 se describen en su sección.
cdrecord
Como puede observar, es un poco latoso el tener que especificar datos no cambiantes una y otra vez, como por ejemplo dónde se encuentra la grabadora, o la velocidad de grabación ya que generalmente grabará casi siempre al máximo de velocidad.
Para no tener que especificarlo siempre en la línea de comandos,
cdrecord
provee la posibilidad de establecer dichos parámetros por
defecto, mediante las variables de entorno CDR_DEVICE
, CDR_SPEED
y CDR_FIFOSIZE
.
Supongamos que su grabadora está en el primer bus SCSI, y tiene el ID 4. (El LUN siempre va a ser 0). Y que quiere que la velocidad de grabación por defecto, a menos de que se especifique lo contrario mediante parámetros de la línea de comandos, va a ser a doble velocidad (2x) y el buffer de datos FIFO sea de 16 megabytes.
Estableceríamos dichas variables de entorno mediante la inserción,
generalmente en el fichero /etc/profile
, de las siguientes
líneas, suponiendo que utilice bash
como intérprete de comandos:
CDR_SPEED=2
CDR_DEVICE=0,4,0
CDR_FIFOSIZE=16m
export CDR_SPEED CDR_DEVICE CDR_FIFOSIZE
Dichas variables no estarán disponibles hasta que el sistema relea el
fichero /etc/profile
, lo mejor es reiniciar el terminal con un
logout o bien recargando el archivo con source /etc/profile.
Si esto no funciona, reinicie el sistema para salir de dudas.
Ahora viene algo que puede interesar a más de uno, hacer un CD directamente desde el disco sin necesidad de hacer una imagen previa.
He de advertir sobre este procedimiento y es que no se debe, por ninguna circunstancia, acceder al disco que contenga el directorio maestro con los ficheros a partir de los que se está generando una imagen directa al CD, ya que cualquier mínimo retraso en la transferencia de datos puede ocasionar que no se grabe el CD correctamente a pesar de que durante la grabación no aparezcan errores.
El problema de que no se genere correctamente la imagen puede no radicar
necesariamente en que su disco duro sea lento, hay otros factores como la
memoria disponible: tenga en cuenta que por ejemplo mkisofs
necesita
al menos 12MB de memoria para generar las extensiones Rock Ridge.
Repito, no acceda al disco duro maestro durante la grabación, peligro de hacer un CD desde el que no se pueda leer ningún dato sano, aunque aparentemente se haya grabado bien; esto se puede comprobar editando un archivo de texto y viendo como parte del archivo anterior o los gaps se han introducido en ellos.
Así mismo recomiendo realizar esta operación sólo con versiones de
cdrecord
superiores o iguales a la 1.6.1
, y 1.12b5
de
mkisofs
, ya que he comprobado que funcionan y se entienden mucho
mejor, con mucho menor peligro de realizar CDs corruptos.
Antes de grabar el CD debe realizar primero la siguiente operación:
mkisofs -r -T -l -print-size -f /files
la cual nos facilitará un número, este número se lo deberemos de pasar en
un parámetro al cdrecord
para que nos reconozca el tamaño de la
imagen a grabar, ya que si no, cdrecord
no tiene forma de saber cuál
es el tamaño de la imagen. De esta forma, si por ejemplo, mkisofs
nos
mostrará la siguiente línea:
Total extents scheduled to be written = 290699
Para que cdrecord
reconozca el tamaño
de la imagen a grabar:
nice --20 mkisofs -r -T -l -f /files | nice --20 cdrecord fs=16m \
tsize=290699*2048 -eject -
O bien para multisesión:
nice --20 mkisofs -r -T -l -f /files | nice --20 cdrecord fs=16m \
tsize=290699*2048 -eject -multi - -audio audio1.wav audio2.wav audio3.au
Nótese que no especificamos ni la localización SCSI de la grabadora, ni la velocidad de grabación, ya que la hemos establecido con las variables de entorno mencionadas anteriormente.
Seguramente se preguntará el porqué del nice --20
que hay delante de
cada uno de los programas. El comando nice
sirve para asignar la
prioridad de ejecución, y en este caso concreto establecemos la máxima
posible.
Se preguntará por qué en la opción tsize
del cdrecord multiplico
por 2048
la cantidad dada por el mkisofs. La razón es muy
simple, a partir de la version 1.6.1
y 1.8
de cdrecord, hay
que pasarle el tamaño en bytes de la imagen, y debido a que realiza la
multiplicación él mismo, sólo lo tenemos que multiplicar por el tamaño de
cada sector de un CD y listo.
Use esto con cuidado.
Y para terminar voy a indicar cómo usar el programa con las grabadoras IDE/ATAPI y de puerto paralelo, que por ejemplo al ejecutar la siguiente linea nos muestre algo como lo siguiente:
# cdrecord -scanbus
Cdrecord release 1.6 Copyright (C) 1995-1998 Jörg Schilling
scsibus0:
0) 'HP ' 'CD-Writer+ 7200 ' '3.01' Removable CD-ROM
1) *
2) *
3) *
4) *
5) *
6) *
7) *
Así es como ve cdrecord
nuestra grabadora, ya sea interna o externa,
por lo que para indicarle cómo acceder a nuestra grabadora tendremos que
especificar el parámetro dev=0,0,0
.
cdrecord dev=0,0,0 speed=2 fs=16m -v -dummy image.raw
Recomiendo usar la grabadora con una version de cdrecord 1.6.1
,
aunque como se aprecia en el escaneado de muestra anterior hecho con la
versión 1.6
, esta última es capaz de usarla. También es muy
recomendable hacer pruebas de grabación para comprobar que no haya falta
velocidad en el puerto paralelo antes de proceder a la grabación final de
CD-ROMs.
cdwrite
Puede obtener este programa (y casi todos los relativos a creación de CDs)
de
ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/
.
Este programa era el más utilizado hasta hace un par de años mas o menos, (y el único que había). Está en actual desuso, ya que ha dejado de desarrollarse y se ha quedado algo anticuado; de todas formas funciona perfectamente en grabadoras SCSI a excepción de las Sony.
Si ha comprendido los comandos del cdrecord
no tendrá problemas en
entender los de este programa ya que no tiene muchos. Una diferencia que
sí hay entre uno y otro es que para identificar la unidad grabadora
utiliza los dispositivos /dev/srX
y no va directamente al bus
SCSI, lo cual puede resultar mas fácil de usar.
Por defecto cdwrite
busca /dev/cdwriter
como dispositivo por
defecto de la grabadora, por lo que si hace un enlace simbólico del
dispositivo /dev/sgX
a /dev/cdwriter
con el dispositivo
de acceso genérico correspondiente, (vea sección
Dispositivos genéricos) se ahorrará un parámetro más que poner.
cdwrite
necesita que se le especifique el tamaño en bytes de la
imagen que va a grabarse; para saberlo, usamos el programa isosize
(lo podemos encontrar dentro del paquete de distribución de cdwrite
con otras utilidades extra que nos pueden venir muy bien); si nuestra
imagen se llama imagen.iso
:
# isosize imagen.iso
382060544
nos informa de que el tamaño es 382060544
, parámetro que le
especificaremos posteriormente con -b
.
podemos usarlo también con CD-Roms o particiones, si hemos generado la imagen directa a una partición en lugar de a fichero:
isosize /dev/sda1
634986355
Si hemos volcado la imagen generada por mkisofs
en la primera
partición del primer disco SCSI (con la opción -o /dev/sda1
).
Algunos ejemplos de cómo se usa cdwrite
son:
cdwrite -ve -s 2 -b 382060544 -D /dev/sgd -data /dev/scd0
Copiará directamente el CD que esté en el primer CD-Rom SCSI del sistema a
la grabadora, expulsará el CD una vez listo, e irá informando del
transcurso de la grabación; 382060544
es el tamaño del CD en
cuestión, que hemos averiguado previamente mediante isosize
.
cdwrite -s 2 -e -D /dev/sgd -b 382060544 -data image.iso -audio *.cdr
Grabará un CD mixto de datos y audio, en donde el parámetro -s
indica
la velocidad de grabación (equivale al speed=2
del cdrecord
), el
parámetro -e
expulsa el CD al terminar (equivalente al -eject
),
el -D
indica la unidad grabadora, aunque si ha hecho un link de
/dev/sgd
(por ejemplo) a /dev/cdwriter
no hace falta que
lo especifique; y por último igual que en el anterior están los parámetros
-data
y -audio
, estando el formato de los ficheros de sonido en
Compact Disc Digital Audio (extensiones .cdda
o .cdr
);
podemos pasarlo de otros formatos a éste mediante el programa sox
.
cdwrite
necesita que el orden de la palabra del fichero de audio sea
el apropiado para su grabadora, u obtendrá un CD en el que sólo se escuche
un desagradable ruido.
Consulte la sección Software de extracción de audio.
No podrá hacer CDs multisesión con este programa. Para hacer CDs
multisesión tendrá que usar las opciones que lleva el mkisofs
para
este fin, generando una imagen multisesión.
cdrdao
Parece ser que se ha conseguido que este programa haga lo que se quería, copiar CDs al vuelo, incluso los mixtos, de música, y ohhhhhhh, de ¡Playstation!. No dejéis de ver la sección dedicada a este programa porque merece la pena.
Puede obtener este programa de
http://www.fh-muenchen.de/rz/xcdroast/
.
Este programa es el más sencillo de usar ya que está hecho para las X con
un interfaz TCL/TK y se basa en modificaciones del cdrecord
y
mkisofs
para su funcionamiento. En versiones anteriores utilizaba un
derivado del cdwrite
, pero tuvo que dejarlo ya que cdwrite
ha
dejado de desarrollarse.
La mayor ventaja que tiene este programa es su facilidad de uso y que
detecta y configura los dispositivos automáticamente, además de funcionar
correctamente y sin problemas. Con él puede configurar y hacer las
imágenes de CD fácilmente sin necesidad de ir a la línea de comandos, así
como extraer pistas de audio y volver a grabarlas gracias a sus
modificaciones del readcdda
y playcdda
(que sólo se pueden usar
con dispositivos SCSI).
Si quiere sacar pistas de audio con un lector IDE lector ha de usar el
cdda2wav
, aunque no todas la unidades lectoras soportan la extracción
de pistas CDDA o de CD-Audio.
Puede hacer una copia directa de CD a CD, siempre que sean sólo de datos, y que las dos unidades, la grabadora y la lectora, sean dispositivos SCSI, ya que con las IDE no funciona muy bien, debido no al programa en sí, sino mas bien por las características de las unidades IDE, ya que no suelen satisfacer las capacidades de carga de las grabadoras. Aun así he llegado a comprobar como unidades del tipo Philips IDE de 32x en adelante funcionaban perfectamente.
Lo normal es que no tenga problemas para grabar con este programa siempre
y cuando su grabadora sea SCSI, cuando sea IDE o usa la ultima versión
0.96d final
o superior o no conseguirá que salga ni un solo CD bien.
Este entorno utiliza las últimas versiones de cdrecord
, mkisofs
y cdda2wav
, lo más peculiar sin duda es que esta escrito íntegramente
en java; su desarrollo es muy rápido.
Puede obtenerlo de
http://www.imada.ou.dk/~jews/BurnIT/
.
CDR son las siglas de Create/Duplicate/Rip (Crear/Duplicar/Extraer).
Su utilidad actualmente es más que nada para la preparación de audio que
posteriormente va a ser grabado con cdrecord
o cdwrite
desde la
línea de comandos. Provee una interfaz tipo ncurses. Sólo extrae de
unidades SCSI.
Puede obtenerlo de
http://www.burdell.org/cdr.shtml
.
Hay varias utilidades entre las que tengo que destacar sdir
,
isovfy
, cdinfo
y isodetect
, que son pequeñas, de consola,
pero muy útiles a la hora de comprobar y verificar CDs. Estas pequeñas
utilidades se pueden encontrar en el FTP de sunsite
ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/
y
otras que se pueden encontrar tanto en el paquete de X-CD-Roast (sección
X-CD-Roast) como en el de cdrecord
(
cdrecord).
Por ejemplo, sdir
nos puede ayudar a saber el tamaño total de un
directorio y sus subdirectorios lo cual resulta muy útil cuando queremos
evaluar y calcular el tamaño del CD a copiar al vuelo; isovfy
nos
sirve para verificar que no hayan errores en una imagen creada en el disco
duro; cdinfo
nos puede ayudar a comprobar que se han copiado bien los
CDs y no sólo eso, este pequeño programa muestra la estructura de un CD en
minutos y segundos, nos dice si es arrancable, los sistemas de ficheros
que contiene, si lleva pistas de audio o es un vídeo CD, etc; por último,
con isodetect
podemos ver la etiqueta del volumen de un CD así como
los comentarios de los mismos.
Descripción de las utilidades:
este programa muestra la capacidad de un directorio con sus subdirectorios. Los parámetros a pasarle son directorios.
programa para ver el volumen, el editor, el publicador y la aplicación de una imagen. Su sintaxis es la siguiente:
-h
Muestra la ayuda.-d
y un nombre de un archivo de imagen o de un dispositivo le
indican en dónde realizar la búsqueda; por defecto busca en
/dev/cdrom. Si no se indican mas parámetros indicará el tipo de
imagen que es, iso9660 o HFS.-V
muestra el nombre del volumen de la imagen o CD.-P
muestra el comentario que hay como publicador.-p
muestra el comentario que hay como preparador.-A
muestra el comentario que hay como aplicación.Sólo se puede indicar un comando a la vez con -d
. Este programa se
puede encontrar en el paquete X-CD-Roast
(sección
X-CD-Roast).
excelente y pequeña utilidad que nos muestra la estructura de
un CD; en lo que a pistas se refiere, identifica CDs mixtos, arrancables,
con sistema HFS, CD Plus, etc. (Altamente recomendada y muy útil). La
última versión se puede descargar desde
http://www.in-berlin.de/User/kraxel/dl/cdinfo.c
Desgraciadamente, parece ser que se ha abandonado su desarrollo.
Esta pequeña utilidad nos servirá para encontrar posibles
errores en las imágenes. Su sintaxis es muy sencilla, solamente se le ha
de indicar un dispositivo de bloque o el nombre del fichero imagen. Este
programa viene en el paquete de X-CD-Roast
(sección
X-CD-Roast).
cdrecord 1.8
Puede obtener la última alpha del servidor FTP
ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/alpha/
.
Descripción de los nuevos comandos para la nueva versión:
Utiliza los archivos de extensión .inf sobreescribiendo las opciones por defecto.
Muestra la información referente al CD y sale. Esta información tambien la ofrecia la version anterior pero sólo cuando se disponia a grabar.
Graba el medio en Disc-At-Once.
Ejemplo de como se usa la opción -atip
se tiene en la sección referente
a crear un sistema ext2 con el
mke2fs en un
archivo.
Para usar la opción -useinfo
necesitamos primero haber extraido con el
cdda2wav
un CD-Audio al disco duro sin poner la opción -H
.
cdrecord -v dev=0,3,0 fs=16m speed=4 -useinfo *.wav
Pues sí, cdrecord
tambien graba en DAO, pero sólo a partir de la
versión de desarrollo 1.8a20
. La forma de usar cdrecord
es
prácticamente la misma solo que para usar las características de la
grabación en DAO ha de tener una grabadora que soporte MMC y utilizar
la opción -dao
; salvo esto, puede usarlo como haría normalmente.
Cuando utilizemos esta opción notaremos una forma distinta de grabar los CDs.
En primer lugar veremos una nueva frase que nos muestra el cdrecord,
Sending CUE Sheet.
que nos indica que lo primero que está haciendo es
escribir las separaciones de las pistas, los gaps y pregap para luego grabar
todo, incluida la TOC sin desactivar el laser de grabación. Gracias a esta
opción se puede ahorrar unos segundos o minutos si se tiene que grabar un CD
con muchas pistas de audio.
Un ejemplo podria ser:
cdrecord -v dev=3,0 fs=16m speed=4 -dao /imagen.iso /audio/*.wav
y tambien si se pretende copiar directemente desde un CD
cdrecord dev=3,0 speed=4 fs=16m -v -dao -isosize /dev/sr0 -audio /wavs/*.wav
Prometedora aplicación, con entorno gráfico en X-Window, que permitirá generar escaletas (cue sheets para la creación de CDs, así como de subcódigos, como CD-G, CD-TEXT, etc.
En la actualidad está en su primera etapa (alpha de desarrollo, aunque dotado de cierta funcionalidad.
Puede obtenerlo de
http://www.ccs.neu.edu/home/bchafy/cdb/cdb.html
.
Al parecer se ha abandonado el desarrollo de este programa.
cdrdao
Este programa ha evolucionado tanto que la copia en DAO y al vuelo está empezando a dar sus frutos. Es posible copiar CDs al vuelo sin volcar los datos al disco duro incluso con las pistas de audio; el problema en este último aspecto es que no soporta todas las unidades lectoras a pesar de incorporar código del CDParanoia para realizar la extracción de audio.
Echándole un vistazo a la documentación se puede ver qué unidades están soportadas; tanto unidades grabadoras, incluyendo modelos SCSI e IDE, como unidades lectoras que hayan sido probadas sin problema.
También se pide que si su unidad está soportada para extraer Audio con
cdparanoia, pero no con cdrdao
, le envíe la información que se
obitene de ejecutar el comando cdparanoia -v
a la dirección de correo del
autor, que tratará de incorporarar su unidad lo antes posible.
Todo lo referente a las unidades soportadas se encuentra en el archivo
README
del paquete del código fuente. En el mismo paquete se encuentran
otras utilidades bastante interesantes que comentaré seguidamente una vez
explicados los comandos de esta utilidad.
La última versión, recomendada y realmente funcional, la 1.1.3
, se puede
obtener de
http://www.ping.de/sites/daneb/cdrdao.html
.
Descripción de los comandos del programa:
cdrdao comando [opciones] archivo-toc
indicamos al programa qué es lo que queremos hacer. Los comandos disponibles son:
show-toc
Muestra la TOC y sale.toc-info
Muestra una pequeña descripcion de la información del
archivo TOC extraido previamente.toc-size
Muestra el número total de bloques para la TOC.read-toc
Crea un archivo TOC desde un CD.read-cd
Crea el archivo TOC y extrae el contenido del CD.show-data
Muestra el contenido de los datos y sale.read-test
Realiza una prueba de lectura de todas las pistas y
sale.disk-info
Mustra información sobre el disco que hay en unidad.unlock
Desbloquea la unidad despues de un fallo de escritura.simulate
Ya no se utiliza, ahora es write --simulate
.write
Graba un CD.copy
Copia, esto se utiliza para la copia al vuelo.
Aqui se describen las diferentes opciones que soporta el programa.
--device (x,y,z)
Especifica el dipositivo de la grabadora. Se
puede suprimir si existe un enlace simbólico del dispositivo correspondiente a
su grabadora a /dev/cdrecorder
. Se puede indicar tanto la del
dispositivo directo como el identificador SCSI, ejemplo: 0,3,0
o
/dev/sr1
--source-device (x,y,z)
Aquí especificamos la unidad desde la
cual tomaremos los datos para realizar la copia. Se puede especificar tanto un
dispositivo como un identificador SCSI. Es necesaria si usamos el comando
copy.
--driver (id)
Forzamos al programa a usar un controlador
específico para la grabadora.
--source-driver (id)
Forzamos al programa a usar un controlador
específico para la unidad lectora. Es necesaria si usamos el comando copy
,
aunque no si el programa identifica correctamente esta unidad.
--simulate
Para realizar una copia con el láser desactivado, en
modo de simulación o prueba.
--multi
No cierra el CD, para poder crear un CD multisesión.--eject
Expulsa el CD una vez grabado.--swap
Invierte el orden de palabra de las pistas de audio.--on-the-fly
Realiza una copia al vuelo, no crea imagen.
--datafile (archivo)
Nombre del archivo de datos en donde se
encuentran los datos a los que hace referencia el archivo TOC. Usado por
read-cd
, read-toc
y copy
.
--buffers (número)
Expecifica el tamaño del buffer (min. 10).--session (número)
Selecciona la sesión para read-toc/read-cd
.--fast-toc
No extrae los pre-gaps ni las marcas índice.--read-raw
Lee los sectores raw para read-cd.
--paranoia-mode (número)
nivel de paranoia para la
extracción de audio (0..3).
--reload
Relee el disco si es necesario para grabar.--force
Fuerza la ejecución de la operación.-v (número)
Expecifica el nivel de muestra de datos.-n (número)
No hace una pausa después de grabar.De aqui hay que comentar que el comando copy
sólo se usa para copiar un CD
directamente, si tenemos una imagen y la queremos copiar hay que usar el
comando write. Un tamaño muy recomendado del buffer es 64, y de ahí en
adelante, aunque con 64 creo que es más que suficiente.
Ahora una breve descripción de lo que más nos interesa del programa, la copia directa (al vuelo) sin imagen.
cdrdao copy -v 2 --device 0,3,0 --source-device 0,1,0 --speed 4 --buffers 64 \
--reload --eject --on-the-fly --fast-toc
Este es el comando que utilizo para duplicar cualquier tipo de CD al vuelo. Al ponerle la opción --fast-toc realiza una lectura rápida de la tabla de contenidos del CD, de lo contrario primero leerá y comprobará el CD fuente, lo que tardará lo que necesite su lector, y luego lo copiará. Si le indicamos el susodicho parámetro, leerá la TOC de forma rápida y empezará enseguida a copiar. El resto de parámetros no necesitan de una explicacion más detallada.
Es recomendable que cuando se copie un CD de música o mixto se utilice de la
siguiente manera con la opción --paranoia-mode
:
cdrdao copy -v 2 --device 0,3,0 --source-device 0,1,0 --speed 4 --buffers 64 \
--reload --eject --on-the-fly --fast-toc --paranoia-mode 0
Con la opción --paranoia-mode
le especificamos en que modo ha de ser
paranoico a la hora de extraer las pistas de audio, si le especificamos 0
,
será lo menos posible y es el que se recomienda a la hora de grabar al vuelo ya
que se desactiva la verificacion de errores, que como es normal, reduce la
transeferencia de datos ya que la unidad lectora se dedica más tiempo a
comprobar los posibles defectos de las pistas e intentar corregirlos que a
pasarle los datos a la grabadora, por lo que si no le ponemos este modo es muy
posible que se produzca un buffer underrun y perder el CD.
Si lo que queremos es que los verifique le indicamos modo 3
y será tan
paranoico que para extraer una pista de audio en un lector 32X SCSI (como mi
TEAC) tardará más tiempo que dura la misma cancion al reproducirla; con esto el
programa se asegura de que no pierda calidad y de correguir posibles errores en
el CD. Este modo es recomendable cuando tengamos algun CD en mal estado y la
única forma de poder grabarlo sea volcando primero a disco duro.
Otra de las funciones que nos puede interesar muchisimo es la de extraer una imagen al disco duro, como por ejemplo para lo dicho anteriormente, para cuando tengamos algun CD que no podamos grabar al vuelo por estar defectuoso, o bien, para grabarlo mas tarde. El comando a utilizar es el siguiente:
cdrdao read-cd -v 2 --device 0,1,0 --read-raw --datafile imagen.bin imagen.toc
De esta forma conseguimos extraer una imagen en el archivo imagen.bin
del
contenido del CD-ROM fuente y el en archivo imagen.toc
almacenamos la
información que nos servirá posteriormente para poder grabar y dejar el nuevo
CD tal y como estaba el original. El comando a utilizar es el siguiente:
cdrdao write -v 2 --device 0,3,0 --speed 4 --buffers 64 imagen.toc
Como habrá notado, no hemos indicado el nombre de la imagen ya que la toma del
archivo que contiene la información TOC. El indicarle la opción --datafile
con el nombre de la imagen es sólo para identificarla, por si tenemos más de
una extraida en el disco duro; sino, por defecto la imagen se llamará
data.bin
. Si diese la casualidad de que ya hubiera un archivo con el
mismo nombre, el programa detendrá el proceso mostrando una advertencia,
indicando de que ya existe el archivo.
También se puede usar el cdrdao
para copiar una imagen de datos que
hayamos hecho, pero no lo recomiendo; ya que primero tenemos que crear un
archivo TOC, cosa que resulta más laborioso que copiarla con el cdrecord.
Se puede usar cdrdao
para copiar archivo .wav
, y que gracias a un
script en PERL que incluye en el directorio /contrib/wav2dao/
del
paquete del código fuente podamos copiar dichas pistas sin que al final de las
mismas nos ponga 2 segundos de silencio.
Para obtener la ayuda del programa ponemos:
wav2dao.pl -H
Deberia funcionar simplemente con
wav2dao.pl -d /dev/sr0 -w -n *.wav
En el directorio de los fuentes /contrib/mp32dao/
encontramos otro
script en PERL para realizar de forma automática la extracción de los archivo
.mp3
a .wav
, nos crea la TOC y nos graba el CD, interesante, ¿no?.
Debido a la falta de algunos archivos en la distribución del PERL en mi sistema
no he podido probarlo. Este script hace uso del programa mpg123 que se
encuentra en la mayoria de distribuciones del mercado o bien por internet.
Puede que necesite completar su distribución perl con módulos del CPAN
(Comprehensive Perl Archive Network)
http://www.cpan.org
para hacer uso de
este script.
Por último tenemos en el directorio /contrib/psxcopy-x.y/
dos
programas y dos scripts para la extracción y copia de los dichosos CDs de
PlayStation. Lo siento por aquellos que quieran copiar dichos CDs al vuelo,
pero de momento no soportan dicha función, tal vez mas adelante, pero hay que
reconocer que ya es un comienzo que por lo menos se puedan grabar, ¿no?.
Pues bien, lo primero es compilar los dos programas que son necesarios y luego
instalarlos. Una vez compilados sin errores hacemos que los scripts
read-psx
y write-psx
sean ejecutables. Como son dos scripts normales,
habrá que editarlos y modicicar los parámetros para que apunten a nuestra
unidad lectora y grabadora respectivamente en cada archivo. Una vez hecho eso
simplemente introducimos el CD fuente en la unidad lectora, tecleamos:
read-psx cd1
y una vez extraído
write-psx cd1
Hay más posibilidades pero las descritas anteriormente son las que son más faciles de usar y que más nos pueden interesar. En próximas versiones ampliaremos el contenido dedicado a este fabuloso programa.
Tambien indicar que en el mismo paquete de las fuentes se encuentra un interfaz para X, el problema es que no soporta la grabación al vuelo.
ATENCION: Durante la utilización del programa para la duplicación de un CD-ROM al vuelo, no se podrá acceder de ninguna de las maneras a la unidad. Si se intenta montar la unidad fuente, por ejemplo, el proceso de grabación terminará con errores y el CD origen no se completará, perdiedo un disco. Esto se puede comprobar grabando un disco en modo de pruebas o de simulación y accediendo a la unidad desde donde se obtienen los datos.
cdrdao
, muestra una capacidad de casi 750megas para un CD 74 minutos. ¿Esto a que se debe?
Una curiosidad que se observa mientras se está grabando un CD con el programa es que en lugar de decirnos el tamaño de cada pista que se está grabando nos muestra una capacidad abismal del borde de los 750 megas para un CD 74 minutos completo.
Esto se debe a que la grabación que ofrece este programa no es en megas reales de ordenador sino en megas de CD, que en lugar de ser de 8/16/32 bits es de 12'5 bits, de ahí el tamaño. No tiene porque asustarse, es completamente normal. Otra de las ventajas que he podido apreciar es que ofrece mucha información sobre el CD antes de realizar el proceso de grabación.
Me sale este mensaje después de que el disco duro deje de funcionar durante unos segundos:
hda: irq timeout: status=0x58 { DriveReady SeekComplete DataRequest}
hda: disabled DMA
ide0: reset: success
Tiene que recompilar el kernel y desactivar el soporte para el chip Intel Tritón (I/II) DMA, ya que su disco duro no soporta extracción por DMA.
Esto puede ocasionar problemas a la hora de estar grabando un CD, puesto que el disco duro se puede parar durante 6 a 9 segundos, hasta que el kernel se da cuenta, resetea el IDE y desactiva la extracción DMA para ese disco, (con las unidades de CD-ROM que no lo soporten también) tiempo suficiente para que el CD pueda salir dañado al no llegarle constantemente los datos.
En el caso de estar emulando dispositivos SCSI es rotundamente necesario desactivar dicha opción en el kernel ya que en el momento en que pase, el bus se quedará colgado al hacer interferencia el controlador IDE y la emulación SCSI, haciendo que no pueda leer de las unidades al estar literalmente bloqueadas, por lo que el único remedio suele ser apagar el ordenador.
Sí. Hay una forma de transferir una copia binaria de un CD directamente a
disco duro, haciendo simplemente un cat
o dd
del dispositivo
donde tenga la unidad lectora de CD (normalmente el enlace
/dev/cdrom
) y redireccionando a un archivo o partición libre en
el disco duro; de esta forma podremos hacer una imagen exacta del CD si no
tenemos una unidad secundaria desde donde copiarlo, o si queremos
comprobar la legibilidad del CD.
Un ejemplo de cómo se hace es
cat /dev/cdrom > imagenCD.iso
o
dd if=/dev/cdrom of=imagenCD.iso
una vez hecho esto sólo tenemos que usar esa imagen para grabar y
obtendremos una copia exacta del CD original. Si el CD lleva pistas de
audio tendrá que extraer las pistas de audio primero a disco con un
extractor digital como cdda2wav
, o readcdda
, suponiendo que su
lector lo soporte, sino puede hacerlo desde la grabadora (ver sección
¿Se puede usar la grabadora para leer o extraer?).
Efectivamente se puede copiar de CD a CD sólo de datos sin ningún problema, pero eso sí, (el típico pero) no es nada recomendable hacer la copia desde un CD IDE y sobre todo si la unidad lectora se para o hace cosas raras. Para las grabadoras IDE no recomiendo (como ya dije anteriormente) que ponga la unidad lectora en el mismo puerto IDE que la grabadora. Si lo hace así, hágale muchas pruebas antes de proceder.
Para grabar directamente de CD a CD basta con indicarle al programa
grabador que la imagen la obtenga del dispositivo lector, es decir
/dev/scdX
.
cdrecord -v dev=0,0,0 speed=2 fs=8M -isosize -eject /dev/sr1
En este ejemplo podemos ver cómo se hace una copia directa desde la unidad
lectora a la grabadora (IDE en este caso), y si se da cuenta, el parámetro
-isosize
es para forzar al programa grabador a que determine primero
el tamaño del CD imagen ya que por sí solo no lo hace, e intenta leer los
dos ultimos bloques, pudiendo resultar un CD defectuoso.
Actualmente, solo un programas para grabación de CDs bajo Linux permite duplicar directamente un CD mixto (1 o varias pistas de datos y una o varias de audio) sin extraer al menos las de audio a disco duro gracias a que soporta duplicación de tipo DAO (Disk At Once) y OTH (On The Fly). Por supuesto, la unidad grabadora ha de soportarlo, además del programa; además, el lector de CDRom ha de estar soportado por el programa para poder extraer las pistas.
Ver sección cdrdao.
La respuesta a si se puede duplicar un CD en mode xa2 es sí.
SI. ¿Cómo? ¿Ahora sí? Pues sí, gracias al cdrdao ahora es posible duplicar CDs de PlayStation.
El problema de los CD-ROM de PlayStation es que incorporan un sistema de
grabación basado en la pista 0. Esta pista está grabada como de datos y es
errónea desde el punto de vista del estándar ISO9660. No obstante,
con las extensiones de nuestros sistemas somos capaces de leerlas. Al
copiar con cdrecord
la pista 0 pasa a ser pista 1; la PlayStation no
coge el CD, ya que el busca la pista 0 sin encontrarla. Esa es la razón
de usar un programa tipo DAO/OTH para hacer este tipo de
copias.
software/grabadora/lector que soportase duplicación DAO, como ahora lo hay. Ver sección ¿Puedo duplicar un CD mixto o de audio?.
Sí. En ella puede consultar desde qué tipo de CD-R vírgenes son mejor para qué cosa hasta qué grabadora es la más recomendable, o cuáles son en realidad productos OEM basados en marcas conocidas.
Su autor es Andy McFadden, puede consultarla en
http://www.fadden.com/cdrfaq/
Eso sí, está en inglés, aunque puede aprovechar el traductor de Altavista:
http://babelfish.altavista.digital.com/cgi-bin/translate
.
La traducción es un poco burda, pero menos da una piedra... :)
.
Consulte la sección Software de extracción de audio, Ha utilizado el orden de palabra binaria endian equivocado para grabar ficheros de audio.
Poseo una controladora Ultra-SCSI NCR 53c810a a la cual tenia conectada la grabadora, y en las opciones de configuración del kernel me aparecen una serie de parametros opcionales que no recomiendan ellos mismos que se activen, a no ser que los dispositivos den problemas o cuelguen el sistema.
Pues bien, cuando tenía sólo la grabadora y estos tres parámetros activados efectivamente el sistema se colgaba. Posteriormente adquirí una unidad lectora SCSI para poder realizar duplicaciones directas, pero en las duplicaciones aparecían errores por todos sitios.
Me di cuenta de que la unidad lectora no funcionaba a todo su rendimiento, asi que activé todas las opciones del kernel para mi controladora, solucionando el problema y comprobando que mi sistema no se caía.
Pero los problemas no acabaron ahí, cuando intentaba extraer audio la controladora se me colgaba, teniendo que resetear, así que me puse a recompilar el kernel de nuevo y cuál fue mi sorpresa al ver que no sólo había ese controlador para las tarjetas NCR de la serie 53c8xx.
El problema no era de la controladora sino del controlador que estaba
usando. Por lo tanto cambié de controlador al más novedoso y recomendable,
el ncr53c8xx
, solucionando el problema y dejando de tener todos los
inconvenientes anteriormente citados, funcionando todo a la primera.
De aquí deduzco que hay que fijarse mucho en todos los controladores disponibles, ya que por ejemplo para las controladoras NCR hay más de uno; familiarícese con su controladora.
Esto es un ejemplo de lo que puede pasar si el controlador de su dispositivo SCSI no corresponde lo mas recientemente con su controladora SCSI.
Para crear un CD en modo mixto, es decir, con una primera pista de datos y
las siguientes de audio hemos de crear una imagen de datos con el
mkisofs
y tener las pistas de audio listas en algún directorio,
procediendo con cdrecord
de la siguiente manera:
cdrecord -v dev=4,0 speed=2 fs=16m -eject image.raw -audio /wavs/*.wav
y si lo que queremos es copiar una CD de este tipo, lo primero es extraer
las pistas de audio al disco duro con, por ejemplo, el cdda2wav
y
luego usar el cdrecord
de esta forma:
cdda2wav -D 0,2,0 -B -t 2+9
cdrecord -v dev=1,0 speed=4 fs=16m -nopad defpregap=0 pregap=0 -isosize \
/dev/cdrom -audio *.wav
Las opciones que he incluido -nopad defpregap=0 pregap=0
nos
sirven para que el CD ocupe un poco menos al ser grabado y no grabar
espacios entre las imágenes. Recomiendo usarlas en las copias de CD mixtos
y CD Plus.
ATENCION: No es posible crear CDs Multisesion con formato Joliet.
El asunto de un CD multisesión es complicadillo. Si comenzamos con que
hemos grabado una imagen digamos de 200 MB y también queremos grabar otra
de otros 200 MB a continuación no podremos, es decir, primero tendremos
que grabar una, y después crear la segunda imagen con unas opciones que
tenemos que sacar de cdrecord
, pasándoselas a mkisofs
como
muestra el ejemplo:
cdrecord dev=4,0 -msinfo
Para obtener el número que hace falta, es decir, la información
multisesión del CD. Sólo funciona con CDs que hayan sido grabados con la
opción -multi
. Entonces le pasamos a mkisofs
el número que
puede ser: 0,131456
de la siguiente forma:
mkisofs -v -a -C 0,131456 -r -R -T -V "CDROM" -N /imagen1.iso -o /imagen2.iso /files/.
Como se puede observar, también se ha incluido el parámetro -N
con el nombre de la imagen anteriormente copiada al CD, aunque si la hemos
copiado podemos indicarle el nombre del dispositivo en el que se
encuentra, si bien no he comprobado esto último.
Luego procedemos a copiar la imagen con el cdrecord
de forma normal
con el parámetro -multi
para que sea multisesión.
¿Pero qué es un CD Plus? Un CD Plus contiene primero pistas de audio y al final una pista de datos. ¿Qué raro no? ¿Y para qué sirve? Se usa de forma común para usar este tipo de CDs con lectores de CD-Audio normales, ¿Ha probado a escuchar un CD de datos en un lector de CD-Audio normal? Para crear este tipo de CDs lo primero es crear una imagen sin archivos en ella, es decir, hacer una imagen básica desde un directorio en el que no hayan archivos. Grabamos las pistas de audio y la imagen básica que hemos creado con la siguiente sentencia:
cdrecord -v dev=4,0 speed=4 fs=16m -multi -audio *.wav -data imagen.iso
una vez grabada, obtenemos la información de multisesión del CD y hacemos la imagen y la grabamos de la misma forma que está explicada en la sección ¿Como se crea un CD Multisesión?.
Sí, pero es algo altamente desancosejable. Las razones:
De lo cual se deduce que no es nada rentable, por no decir efectivo, malgastar la vida útil de una grabadora en emplearla como lector.
cdrecord
me hace cosas raras...
Como por ejemplo, en un -scanbus
:
bus, target: 0, ,0,0 0 'PIONEER ' 'CD-ROM DR-A02S ' '1.08' Removable CD-ROM
bus, target: 0, ,1,0 1 'HP ' 'CD-Writer+ 7500 ' '1.0a' Removable CD-ROM
0,,1,0 1,0 ('HP ' 'CD-Writer+ 7500 ' '1.0a' Removable CD-ROM) == 0,,1,0
1,0 ('HP ' 'CD-Writer+ 7500 ' '1.0a' Removable CD-ROM)
O fallos continuos...
Necesita aplicar un parche a cdrecord
, y recompilarlo para que soporte
adecuadamente su grabadora.
En
http://www.guug.de:8080/cgi-bin/winni/lsc.pl
puede obtenerlo.
La única solución es leer bien el archivo README
que acompaña al programa
y comprobar si su unidad está realmente soportada en la lista que acompaña. Si
realmente no está tiene la posibilidad de enviar un mail al autor para que
añada soporte para ella. Pero antes de hacer eso, pruebe con todos los
controladores de unidades que soporta el programa, a lo mejor alguno de ellos
funciona.
NOTA: Dejo este apartado tal y como está para que se siga aportado ayuda a
otros programas que lo necesiten. Si bien el que mas promete en este aspecto es
cdrdao
pido que el que pueda ayudar en su desarrollo no deje de lado tal
programa que nos ayudará mucho si lo aprendemos a utilizar. Referirse al
apartado del programa
CDRDAO
Desde este documento pido la ayuda, dedicación que cada uno pueda aportar a la creación/desarrollo de algún programa DAO (Disk-At-Once) para la duplicación de CD-ROMs, ya que es muy costoso y trabajoso la creación o duplicación de CD Mixtos y de Audio, para que linux esté a la altura de hacer las cosas como lo hacen programas de este tipo para otras plataformas, como los conocidos DAO/CDRWIN de MS-DOS/Windows respectivamente de la empresa Golden Hawk y Adaptec Easy CD/Pro.
Éste documento ha sido escrito por Leandro Terrés
lord_lt@retemail.es
tras leer varios documentos en
inglés, tanto el CDWriters-HOWTO como los manuales de varios programas que
he comentado y gracias a la experiencia obtenida en este campo.
Otras partes de este documento son de incorporación propia y pruebas que he ido haciendo, a base de perder algún que otro CD con grabadoras IDE, que es la parte más actual por la que se ha hecho éste documento.
Éste documento es propiedad intelectual de Leandro Terrés como parte del Insflug, y del LDP (Linux Documentation Proyect). Para cualquier modificación, añadidura, traducción, etc. póngase en contacto con el autor.
Colaboraciones, añadiduras y correcciones:
toke@toke.net
por su inestimable ayuda en la finalización del
apartado sobre las grabadoras IDE/ATAPI por puerto paralelo.
pacopepe@insflug.org
a los que desde aqui doy mis más sinceras gracias por la ayuda prestada.
El INSFLUG forma parte del grupo internacional Linux Documentation Project, encargándose de las traducciones al castellano de los Howtos (Comos), así como la producción de documentos originales en aquellos casos en los que no existe análogo en inglés.
En el INSFLUG se orienta preferentemente a la traducción de
documentos breves, como los COMOs y PUFs (Preguntas de
Uso Frecuente, las FAQs. :)
), etc.
Diríjase a la sede del INSFLUG para más información al respecto.
En la sede del INSFLUG encontrará siempre las últimas versiones de
las traducciones «oficiales»:
www.insflug.org
. Asegúrese de comprobar cuál es la última
versión disponible en el Insflug antes de bajar un documento de un
servidor réplica.
Además, cuenta con un sistema interactivo de gestión de fe de erratas y sugerencias en línea, motor de búsqueda específico, y más servicios que estamos trabajando incesantemente para añadir.
Se proporcionará también una lista de los servidores réplica (mirror) del Insflug más cercanos a Vd., e información relativa a otros recursos en castellano.
En
http://www.insflug.org/insflug/creditos.php3
cuenta con una
detallada relación de las personas que hacen posible tanto esto como las
traducciones.
¡Diríjase a
http://www.insflug.org/colaboracion/index.php3
si desea
unirse a nosotros!.
Francisco José Montilla,
pacopepe@insflug.org
.