Content-type: text/html
cdrecord [ options générales ] dev=périphérique [ options de pistes ] piste1...pisteN
Cdrecord est utilisé pour enregistrer des disques compacts audio ou de données sur des graveurs de CD Orange Book.
Le périphérique se réfère à busscsi/cible/lun du graveur de CD. La communication sur SunOS est réalisée avec le pilote SCSI général scg. Les autres systèmes d'exploitation utilisent une simulation de bibliothèque de ce pilote. La syntaxe possible est : dev=busscsi,cible,lun ou dev=cible,lun. Dans le dernier cas, le graveur doit être connecté au bus SCSI par défaut de la machine. Busscsi, cible et lun sont des nombres entiers. Des systèmes d'exploitation ou des implantations de transport SCSI peuvent nécessiter la spécification d'un nom de fichier supplémentaire. Dans ce cas, la syntaxe correcte pour ce périphérique est : dev=nompériphérique:busscsi:cible, ou dev=nompériphérique:cible:lun. Si le nom du noeud de périphérique ayant été spécifié sur un tel système se réfère à exactement un périphérique SCSI, un raccourci de la forme dev=nompériphérique:@ ou dev=nompériphérique:@,lun peut être utilisé au lieu de dev=nompériphérique:busscsi,cible,
Pour accéder à un périphérique SCSI distant, vous devez préfixer le nom du périphérique SCSI par un indicateur de périphérique distant. L'indicateur de périphérique distant est soit REMOTE:usager@hôte: soit REMOTE:hôte:. Un nom valide d'un périphérique SCSI distant peut être : REMOTE:usager@hôte: pour permettre un parcours du bus SCSI distant ou REMOTE:usager@hôte:1,0,0 pour accéder au périphérique SCSI de hôte, connecté sur le bus SCSI #1, cible 0 lun 0.
Pour rendre cdrecord portable sur toutes les plates-formes UNIX, la syntaxe dev=nompériphérique:busscsi,cible, est préférable puisqu'elle cache la connaissance spécifique de l'OS sur les noms de périphériques à l'usager. Un OS particulier ne doit pas nécessairement supporter une façon de spécifier un nom de fichier d'un périphérique réel ni une façon de spécifier bussci,cible,lun.
Busscsi 0 est le bus SCSI par défaut sur la machine. Surveillez les messages de démarrage pour plus d'informations ou regardez dans /var/adm/messages pour plus d'informations au sujet de la configuration SCSI de votre machine. Si vous avez des problèmes pour trouver les valeurs bussci,cible,lun à utiliser, essayez l'option -scanbus de cdrecord décrite ci-dessous. Si un fichier /etc/defaut/cdrecord existe, le paramètre pour l'option dev= peut être également un nom d'unité inscrit dans ce fichier (voir la section FICHIERS).
Sur les systèmes compatibles SVr4, cdrecord utilise la classe temps réel pour obtenir la plus haute priorité de répartition du temps possible (plus élevée que tous les processus du noyau). Sur des systèmes avec la répartition temps réel POSIX, cdrecord utilise également la répartition en temps réel, mais peut ne pas être capable d'obtenir une priorité qui soit plus haute que les processus du noyau.
En mode « Track At Once », chaque piste correspond à un seul fichier qui contient les données préparées pour cette piste. Si l'argument est -, l'entrée standard est utilisée pour cette piste. Seulement une piste peut être prise de l'entrée standard.
Les options générales doivent apparaître avant n'importe quel nom de piste ou option de piste.
Cette option n'a de sens qu'avec un CD qui contient au moins une session fermée et qu'il est possible d'en rajouter (pas fermé complètement). Des unités créent des messages d'erreur si vous essayez d'obtenir les informations pour un disque qui n'est pas fait pour cette opération.
Si cdrecord est capable de récupérer le temps de démarrage de la zone d'entrée de la première session, il essaiera de décoder et d'afficher l'information du fabricant à partir du disque.
Utilisée avec le drapeau -force, cette option peut être utilisée pour vider un disque CD-RW qui autrement ne peut pas être vidé. Notez qu'il est possible que vous ayez besoin de spécifier blank=all parce que certaines unités ne continueront pas avec certains types de mauvais disques CD-RW. Notez également que cdrecord fait sont possible si le drapeau -force est utilisé mais il dépend du logiciel résident de l'unité pour que l'opération réussisse ou non.
La taille spécifiée par l'argument fs= inclut le mémoire partagée nécessaire à l'administration. C'est au moins un page de mémoire. Si aucune option fs= n'est présente, cdrecord essaiera d'obtenir la valeur de la taille du fifo à partir de la variable d'environnement CDR_FIFOSIZE. La taille par défaut du fifo est actuellement 4 Mo.
Le fifo est utilisé pour augmenter le tampon pour le processus d'écriture en temps réel. Il permet de faire fonctionner un tuyau à partir de mkisofs directement dans cdrecord. Si le fifo est actif et un tuyau entre mkisofs et cdrecord est utilisé pour créer un CD, cdrecord s'arrêtera avant de faire des modifications sur le disque si mkisofs termine avant qu'il ne commence d'écrire. La taille de fifo recommandée est entre 4 et 32 Mo. Comme règle, la taille du fifo devrait être au moins égale à la taille du tampon interne du graveur et pas plus que la moitié de la RAM disponible dans la machine. Si la taille de fifo est assez grande, les statistiques du fifo afficheront un compte de zéro et le remplissage minimum du fifo n'est pas inférieur à 20 %. Il n'est pas raisonnable d'utiliser trop d'espace pour le fifo. Si vous avez besoin de plus de 8 Mo pour écrire un CD sur une machine inactive, votre machine est soit pas assez puissante, a un problème matériel ou est mal configurée. L'architecture sun4c (ex : une Sparcstation-2) a seulement des entrées de table de page MMU pour 16 Mo par processus. Utiliser plus que 14 Mo pour le fifo peut dans ce cas entraîner le système d'exploitation à dépenser trop de temps à recharger constamment les tables MMU. Les machines plus récentes de Sun n'ont pas ce problème matériel. Je n'ai pas d'information sur le matériel PC reflétant ce problème.
Si vous avez un sous-charge de tampon ou des problèmes similaires et observez un compte vide de fifo zéro, vous avez un problème matériel. La taille du fifo dans ce cas est suffisante.
Sur Linux, les unités connectées à un adaptateur de port parallèle correspondent à un bus SCSI virtuel. Différents adaptateurs correspondent à différentes cibles sur ce bus SCSI virtuel.
Si aucune option dev n'est présente, cdrecord tentera d'obtenir le périphérique à partir de la variable d'environnement CDR_DEVICE.
Si l'argument pour l'option dev= ne contient pas les caractères ',', '/', fichier /etc/default/cdrecord (voir la section FICHIERS).
Il y a deux entrées de pilotes spéciales dans la liste : cdr_simul et dvd_simul. Ces entrées de pilotes sont conçues pour faire des tests de minutage à n'importe quelle vitesse ou des tests de minutage pour des unités qui ne supportent pas l'option -dummy. Les pilotes de simulation implantent une unité avec une taille de tampon de 1 Mo qui peut changer via la variable d'environnement CDR_SIMUL_BUFSIZE. Le pilote de simulation simule correctement même les conditions de sous-charge de tampon. Si l'option -dummy est présente, la simulation n'est pas arrêtée dans le cas d'une sous-charge de tampon.
Les options de piste peuvent être mélangées avec les noms de fichier des pistes.
Si un nom de fichier fini par .au ou .wav le fichier est considéré comme étant structuré comme un fichier de données audio. cdrecord suppose que le fichier dans ce cas est un fichier audio Sun ou fichier .wav de Microsoft et extrait les données audio à partir des fichiers en passant au-dessus des informations d'en-tête non audio. Dans tous les autres cas, cdrecord fonctionnera correctement seulement si le flux de données audio n'a aucun en-tête. Parce que beaucoup de fichiers audio structurés n'ont pas une longueur en nombre de blocs intégral (1/75e de seconde), il est souvent nécessaire de spécifier l'option -pad. cdrecord reconnaît que les données audio dans un fichier .wav sont enregistrés dans l'ordre binaire Intel (petit boutiste), et automatiquement va changer l'ordre des octets des données si le graveur nécessite des données grand boutistes. cdrecord rejettera tous les fichiers audio qui ne respectent pas les spécifications Red Book d'échantillons 16-bit stéréo en codage PCM à 44 100 échantillons/seconde.
Utiliser un autre format structuré de données audio comme entrée de cdrecord fonctionnera généralement si la structure de la donnée est la structure décrite ci-dessus. (donnée PCM brut avec l'ordre des octets de type grand boutiste). Cependant, si le format de données inclut un en-tête, vous entendrez un clic au début de la piste.
Si ni -data ni -audio ont été spécifiées, cdrecord définit par défaut -audio pour tous les fichiers finissant par .au ou .wav et -data pour tous les autres fichiers.
Notez que les sorties verbeuses de cdrecord vous montreront si le changement est nécessaire pour faire correspondre l'ordre des octets des données d'entrée à l'ordre des octets requis du graveur. cdrecord ne vous montrera pas si le drapeau -swab était présent pour une piste.
-data est une option par défaut si aucun autre drapeau est présent.
Si ni -data ni -audio n'ont été spécifiées, cdrecord définit par défaut -audio pour tous les fichiers finissant par .au ou .wav et -data pour tous les autres fichiers.
-pad reste valide jusqu'à ce qu'elle soit désactivée par -nopad.
En mode « Disk-at-once » et avec quelques unités qui utilisent l'interface de programmation TEAC, même en mode « Track-at-once », cdrecord a besoin de connaître la taille de chaque piste avant de commencer à écrire sur le disque. cdrecord le vérifie désormais et s'arrête avant de commencer à écrire. Si cela arrive, vous aurez besoin d'utiliser mkisofs -print-size avant et d'utiliser le résultat comme argument à l'option tsize de cdrecord.
Voir fs= pour les arguments possibles.
Pour tous les exemples ci-dessous, il sera supposé que cdrecord est connecté au premier bus SCSI de la machine. L'id de la cible est positionné à 2.
Pour enregistrer un CD-ROM pur à double vitesse, en utilisant les données à partir du fichier cdimage.raw :
cdrecord -v speed=2 dev=2,0 cdimage.raw
Pour créer une image pour un système de fichier ISO 9660 avec extensions Rock Ridge :
mkisofs -R -o cdimage.raw /home/joerg/master/tree
Pour vérifier le fichier résultat avant d'écrire sur le CD sur Solaris :
mount -r -F fbk -o type=hsfs /dev/fbk:0cdimage.raw /mnt
Sur Linux :
mount cdimage.raw -r -t iso9660 -o loop /mnt
Continuez avec :
ls -lR /mnt
umount /mnt
Si la vitesse générale du système est suffisante et la structure du système de fichiers n'est pas trop complexe, cdrecord fonctionnera sans créer d'image du système de fichiers ISO 9660. Simplement lancer le tube :
mkisofs -R /master/tree | cdrecord -v fs=6m speed=2 dev=2,0 -
La taille minimale recommandée du fifo pour lancer ce pipeline est de 4 Megaoctets. Comme la taille par défaut est 4 Mo, l'option fs= a besoin d'être présente seulement si vous voulez utiliser une taille de fifo différente. Si votre système est chargé, vous devriez lancer mkisofs dans la classe temps réel également. Pour augmenter la priorité de mkisofs remplacez la commande
mkisofs -R /master/treepar
priocntl -e -c RT -p 59 mkisofs -R /master/treesur Solaris est par
nice --18 mkisofs -R /master/treesur les systèmes ne possédant pas la répartition temps réel compatible avec UNIX International.
cdrecord fonctionne à la priorité 59 sur Solaris, vous ne devriez pas faire fonctionner mkisofs à une priorité supérieure à 58. Sur d'autres systèmes, vous ne devriez pas faire fonctionner à moins de nice --18.
Créer un CD-ROM, sans l'image du système de fichiers sur le disque, a été testé sur un Sparcstation-2 avec un Yamaha CDR-400. Il a fonctionné en quadruple vitesse quand la machine n'était pas trop chargée. Une machine plus rapide aurait pu supporter la quadruple vitesse même chargée.
Pour enregistrer un CD-DA pure (audio) à une vitesse, avec chaque piste contenue dans un fichier nommé piste01.cdaudio, piste02.cdaudio, etc :
cdrecord -v speed=1 dev=2,0 -audio piste*.cdaudio
Pour vérifier la possibilité d'utiliser la double vitesse pour l'exemple précédent, utilisez l'option d'écriture -dummy :
cdrecord-v -dummy speed=2 dev=2,0 -audio piste*.cdaudio
Pour enregistrer un CD en mode mixte avec un système de fichiers ISO 9660 à partir de cdimage.raw sur la première piste, les autres pistes étant de l'audio à partir de piste01.cdaudio, piste02.cdaudio, etc :
cdrecord-v -dummy dev=2,0 cdimage.raw -audio piste*.cdaudio
Pour manipuler des unités qui ont besoins de connaître la taille de la piste avant de commencer à écrire, d'abord lancer :
mkisofs -R -q -print-size /master/treeet ensuite
mkisofs -R /master/tree | cdrecord speed=2 dev=2,0 tsize=XXXs -où XXX est remplacé par la sortie du premier appel de mkisofs.
Pour copier un CD audio de façon la plus précise, d'abord lancer :
cdda2wav-v255 -D2,0 -B -Owavet ensuite lancer
cdrecord -v dev=2,0 -dao -useinfo *.wav
CDR_FIFOSIZE=8M ou CDR_SPEED=2 .
Chaque ligne qui suit une étiquette contient une liste d'éléments séparés par des tabulations. Actuellement, trois éléments sont reconnus : l'ID SCSI de l'unité, la vitesse par défaut à utiliser pour cette unité et la taille du FIFO par défaut à utiliser pour cette unité. Les valeurs pour la vitesse et la taille du FIFO peuvent être positionnées à -1 pour indiquer à cdrecord d'utiliser les valeurs globales par défaut. Une ligne typique peut ressembler à ceci :
teac1= 0,5,0 4 8m yamaha= 1,6,0 -1 -1
Ces lignes indiquent à cdrecord qu'une unité appelée teac1 est au busscsi 0, cible 5, lun 0 et peut être utilisée avec la vitesse 4 et une taille de FIFO de 8 Mo. Une seconde unité peut être trouvée au busscsi 1, cible 6, lun 0 et utilise la vitesse et la taille du FIFO par défaut.
cdda2wav(1), readcd(1), scg(7), fbk(7), mkisofs(8).
Sur Solaris vous devez arrêter le gestionnaire de volume si vous voulez utiliser le remplacement USCSI du code de transport SCSI. Même les options comme cdrecord -scanbus ne fonctionneront pas si le gestionnaire de volume fonctionne.
Les disques réalisés en mode « Track-at-once » ne sont pas acceptables comme original pour une production de masse directe par les fabricants de CD. Vous avez besoin de l'option « Disk-at-once » pour enregistrer de tels disques. Néanmoins les disques réalisés en mode « Track-at-once » sont lus normalement dans tous les lecteurs CD. Quelques vieux lecteurs de CD audio peuvent cependant produire un clic de 2 secondes entre les pistes audio.
La taille minimale d'une piste est de 4 secondes ou 300 secteurs. Si vous écrivez des pistes plus petites, le graveur de CD ajoutera des blocs inutiles. Ceci n'est pas une erreur, même si le message d'erreur SCSI y ressemble.
cdrecord a été testé sur un graveur Philips CDD-521 amélioré à simple et double vitesse sur une SparcStation 20/502 sans problème, des ordinateurs plus lents devraient fonctionner également. Les nouvelles unités Philips/HP/Plasmon/Grundig et également Yamaha CDR-100 et CDR-102 fonctionnent aussi. Le Plasmon RF-4100 fonctionne, mais n'a pas été testé en multisession. Un Philips CDD-521 qui n'a pas été amélioré ne fonctionnera pas. Le Sony CDU-924 a été testé mais ne supporte pas XA-mode2 au niveau matériel. Le Sony ne peut pas créer de disques multisession conformes. Le Ricoh RO-1420C fonctionne, mais des personnes semblent avoir des problèmes à les utiliser avec speed=2, utilisez speed=0 dans ce cas.
Le Yamaha CDR-400 et toutes les nouvelles unités conformes à SCSI-3/mmc sont supportés en simple et multi-session.
Vous devriez faire fonctionner plusieurs tests pour toutes les vitesses supportées par votre unité avec l'option -dummy activée si vous utilisez cdrecord sur un système inconnu. Écrire un CD est un processus temps réel. NFS ne fournira pas toujours avec constance le taux de données nécessaire. Si vous désirez utiliser cdrecord avec des images CD situées sur un système de fichiers monté avec NFS, assurez vous que la taille du FIFO soit suffisamment grande. J'ai utilisé cdrecord avec une charge moyenne sur un SS20/502 et même en quadruple vitesse sur un Sparcstation-2 qui était fortement chargé, mais il est recommandé de laisser le système le plus faiblement chargé possible pour graver un CD. Si vous voulez être sûr qu'une sous-charge de tampon ne sera pas causée par votre disque source, vous pouvez utiliser la commande
cdrecord -dummy dev=2,0 padsize=600m /dev/nullpour créer un disque qui est entièrement composé de fausses données, cdrecord a besoin de fonctionner en tant que superutilisateur pour obtenir l'accès aux noeuds de périphérique /dev/scg? et d'être capable de se positionner en mémoire.
Si vous ne voulez pas autoriser les usagers à devenir superutilisateur sur votre système, cdrecord peut de manière sécuritaire être installé « suid-root ». Ceci permet à tous les usagers ou à un groupe d'usagers sans les privilèges du superutilisateur d'utiliser cdrecord. cdrecord, dans ce cas, vérifie si l'usager réel aurait eu la possibilité de lire les fichiers spécifiés. Pour donner accès à l'utilisation de cdrecord à tous les usagers, entrez :
chown root /usr/local/bin/cdrecord chown 4711 /usr/local/bin/cdrecord
Pour donner à un groupe restreint d'usagers l'accès à cdrecord entrez :
chown root /usr/local/bin/cdrecord chgrp cdburners /usr/local/bin/cdrecord chmod 4710 /usr/local/bin/cdrecordet ajoutez un groupe « cdburners » sur votre système.
Ne donnez jamais aux usagers les permissions d'écriture aux périphériques /dev/scg? à moins que vous n'autorisez n'importe qui à lire/écrire/formater tous vos disques.
Vous ne devriez pas connecter de vieilles unités qui ne supportent pas la déconnexions/reconnexions aux bus SCSI qui est connecté au graveur ou au disque source.
Un Disque Compact ne peut avoir plus de 99 pistes.
Pendant la création d'un disque avec à la fois des pistes audio et de données, les données devraient être sur la piste 1 autrement vous devriez créer un disque CDplus qui est un disque multisession avec la première session contenant les pistes audio et les sessions suivantes contenant les pistes de données.
De nombreux systèmes d'exploitation ne sont pas capables de lire plus qu'une simple piste de données, ou ont besoin de logiciels pour le faire.
Plus d'informations sur l'ensemble des commandes SCSI pour les graveurs HP se trouvent à http://www.hp.com/isgsupport/cdr/index.html <URL:http://www.hp.com/isgsupport/cdr/index.html>
Si vous avez plus d'informations ou des manuels sur les commande SCSI pour des graveurs actuellement non supportés, s'il vous plaît contactez l'auteur.
Le graveur Philips CDD 521 (même la version améliorée) a plusieurs bogues du logiciel résidant. Certains d'entre eux vous forceront à rallumer le périphérique ou à redémarrer la machine.
En utilisant cdrecord avec le pilote générique SCSI de Linux, vous devez noter que cdrecord utilise un bidouillage, qui tente d'émuler les fonctionnalités du pilote scg. Malheureusement, le pilote sg sur Linux a plusieurs bogues sévères :
La sortie du pourcentage du FIFO est calculée juste après qu'un bloc de données a été écrit sur le disque. Pour cette raison, il n'y aura jamais un FIFO rempli à 100 %, pendant que le FIFO est en mode flux.
Vous avez 9 secondes pour taper ^C pour arrêter cdrecord après que vous avez vu le message :
Starting to write CD at speed %d in %s mode for %s session
Un message typique d'erreur pour une commande SCSI ressemble à :
cdrecord: I/O error. test unit ready: scsi sendcmd: no error CDB: 00 20 00 00 00 00 status: 0x2 (CHECK CONDITION) Sense Bytes: 70 00 05 00 00 00 00 0A 00 00 00 00 25 00 00 00 00 00 Sense Key: 0x5 Illegal Request, Segment 0 Sense Code: 0x25 Qual 0x00 (logical unit not supported) Fru 0x0 Sense flags: Blk 0 (not valid) cmd finished after 0.002s timeout 40s
La première ligne donne l'information sur le transport de la commande. Le texte après le premier deux-points donne le texte d'erreur pour l'appel système vu du noyau. C'est habituellement : « I/O error » à moins que d'autres problèmes se passent. Les prochains mots contiennent une courte description pour la commande SCSI qui a échoué. Le reste de la ligne vous indique s'il y a eu des problèmes pour le transport de la commande sur le bus SCSI. Une erreur fatale signifie qu'il a été impossible de transporter la commande (ex : pas de périphérique présent à l'adresse SCSI demandée).
La seconde ligne affiche le bloc descripteur de commande SCSI pour la commande qui a échoué.
La troisième ligne donne l'information sur le code de status SCSI retourné par la commande, si le transport de la commande réussie. C'est une information d'erreur provenant du périphérique SCSI.
La quatrième ligne est le déversement hexadécimal de l'information du sens de requête automatique pour la commande.
La cinquième ligne est le texte d'erreur pour la clé du sens si disponible, suivi par le numéro de segment qui est seulement valable si la commande était une commande de copie. Si le message d'erreur n'est pas directement relié à la commande courante, le texte différé de l'erreur est ajouté.
La sixième ligne est le texte d'erreur pour le send du code et le qualifieur du sens si disponible. Si le type du périphérique est connu, le sens de la donnée est décodé à partir des tables de scsierrs.c. Le texte est suivi par la valeur d'erreur pour un champ d'unité remplaçable.
La septième ligne affiche le numéro du bloc qui est relié à la commande échouée et le texte pour plusieurs drapeaux d'erreur. Le numéro de bloc peut ne pas être valide.
La huitième ligne rapporte la configuration du temps d'expiration pour cette commande et le temps que la commande a réellement eu besoin pour finir.
Le message suivant n'est pas une erreur :
Track 01: Total bytes read/written: 2048/2048 (1 sectors). cdrecord: I/O error. flush cache: scsi sendcmd: no error CDB: 35 00 00 00 00 00 00 00 00 00 status: 0x2 (CHECK CONDITION) Sense Bytes: F0 00 05 80 00 00 27 0A 00 00 00 00 B5 00 00 00 00 00 Sense Key: 0x5 Illegal Request, Segment 0 Sense Code: 0xB5 Qual 0x00 (dummy data blocks added) Fru 0x0 Sense flags: Blk -2147483609 (valid) cmd finished after 0.002s timeout 40sIl indique simplement qu'une piste qui est plus petite que la taille minimum a été étendue à 300 secteurs.
cdrecord a encore plus d'options que ls.
Actuellement, cdrecord avertit seulement si la donnée d'entrée ne tiendra pas sur le disque. Si vous n'annulez pas la commande vous obtiendrez des résultats imprévisibles.
Il devrait y avoir une option pour écrire les numéros d'index pour les pistes audio.
Il devrait y avoir une option de recouvrement pour rendre les disques utilisables, ceux ayant été écrits au moment d'un problème d'alimentation électrique.
Si vous voulez prendre part activement au développement de cdrecord, vous pouvez joindre la liste de diffusion en envoyant un courriel à : <other-cdwrite-request@lists.debian.org> et inclure le mot « subscribe » dans le corps. L'adresse de courriel de la liste est : <other-cdwrite@lists.debian.org>
Joerg Schilling Seestr. 110 D-13353 Berlin Germany
Des informations additionnelles peuvent être trouvées à : http://www.fokus.gmd.de/usr/schilling/cdrecord.html <URL:http://www.fokus.gmd.de/usr/schilling/cdrecord.html>
Si vous avez des questions liées à l'utilisation, envoyez-les à : <cdrecord-support@berlios.de> ou à <other-cdwrite@lists.debian.org>
Si vous avez trouvé un bogue, envoyez un courriel à : <cdrecord-developers@berlios.de> ou à <schilling@fokus.gmd.de>
Pour vous abonner, utilisez: http://lists.berlios.de/mailman/listinfo/cdrecord-developers <URL:http://lists.berlios.de/mailman/listinfo/cdrecord-developers> ou http://lists.berlios.de/mailman/listinfo/cdrecord-support <URL:http://lists.berlios.de/mailman/listinfo/cdrecord-support>
Aymeric Nys , <aymeric@nnx.com>.