
                             HOWTO Graveur de CDs

Winfried Truemper, <winni@xpilot.org>, traduit par Olivier Tharan,
<tharan@int-evry.fr>

   Version 2.4.1, 16 dcembre 1997
     _________________________________________________________________

   _Ce document parle du processus de gravage de CDs sous Linux._
     _________________________________________________________________

1. Introduction

   Ma premire exprience avec des graveurs de CDs a t guide par le
   "Linux CD Writer mini-HOWTO" de Matt Cutts <cutts@cs.unc.edu>. Merci
   Matt !

   Bien que mon intention n'tait que de mettre ce document  jour, je
   l'ai rcrit  partir du dbut aprs avoir ralis combien tout avait
   chang depuis 1994.

1.1 Avertissement

   _Je (Winfried Truemper) rejette toute garantie concernant ce document,
   incluant toutes les garanties implicites de mise sur le march et
   d'utilit pour un certain usage ; en aucun cas on ne pourra me tenir
   compte de dommages spciaux, indirects ou conscutifs , ni d'aucun
   dommage quelqu'il soit rsultant de la perte d'utilisation, de donnes
   ou de profits, que ce soit dans une action contractuelle, de
   ngligence ou autre action, dcoulant de ou en relation avec
   l'utilisation de ce document._ En gros, lisez et utilisez  vos
   propres risques.

1.2 Lectures suggres

   La FAQ sur les CD-R 
   http://www.cd-info.com/CDIC/Technology/CD-R/FAQ.html est une FAQ
   gnrale portant sur les disques compacts enregistrables (CD-R).

   Le _HOWTO CD-ROM Linux_ explique tout ce qu'on devrait savoir sur les
   lecteurs de CD-ROMs sous Linux. En supplment, vous pourrez jeter un
   coup d'oeil sur le _HOWTO SCSI Linux_ et le _HOWTO noyau Linux_.

1.3 Terminologie... Lasers au maximum... Feu !

   _CD-ROM_ veut dire _Disque compact  mmoire en lecture seule_
   (Compact Disc Read Only Memory), un support de stockage utilisant un
   laser optique pour lire des trous microscopiques sur un disque
   brillant en argent. (La brillance argente vient d'une couche
   aluminise qui est le support.) Les trous reprsentent les morceaux
   d'information (en quelque sorte) et sont si petits que des milliards
   d'entre eux tiennent sur le disque. Un CD est donc un support de
   stockage de masse.

   Le terme _CD-R_ est une forme abrge de _CD-ROM enregistrable_
   (Recordable) et se rapporte au CD qui n'a pas ces "trous
   microscopiques" sur sa surface... Il est donc vide.

    la place de la couche aluminise (argente) un CD-R possde un film
   spcial (color) dans lequel des "trous microscopiques" peuvent y tre
   brls. Ceci est ralis en donnant au laser, qui normalement ne fait
   que palper les trous, un peu plus de puissance pour qu'il brle les
   trous. Cette action ne peut se faire _qu'une seule fois_ sur un CD-R.

   Vous pouvez toutefois laisser certaines parties vides pour une
   criture ultrieure, crant ce qu'on appelle un CD multi-sessions.

   Ce HOWTO parle de la tche d'crire un CD-R. Bienvenue  bord,
   Capitaine.

1.4 Graveurs de CD-ROM supports

   La liste dtaille des modles qu'on a vu fonctionner correctement (ou
   pas) est disponible 

     http://www.shop.de/cgi-bin/winni/lsc.pl

   La liste sera incluse dans les versions futures de ce HOWTO. La
   plupart des graveurs de CD-ROM SCSI sont supports et la toute
   nouvelle version de cdrecord supporte mme les graveurs de CD-ROM
   ATAPI.

   Si votre matriel n'est pas support, vous pouvez toujours utiliser
   Linux pour crer une image du CD ultrieur, mais vous devrez alors
   utiliser un logiciel sous DOS pour crire l'image sur le CD-R. (Vous
   aurez envie de faire ceci parce que la plupart des logiciels DOS ne
   peuvent pas grer les noms de fichiers longs disponibles avec Linux.)

   Dans ce cas, vous pouvez passer toutes les sections relatives au
   matriel (celles sur les _priphriques SCSI gnriques_ et
   cdwrite/cdrecord).

1.5 "Possibilits" supportes

   En ce moment les logiciels pour graver des CDs sous Linux supportent
   les caractristiques principales suivantes :

Caracteristique         cd-write-2.1            cdrecord-1.7
-------------------------------------------------------------
Support ATAPI           non                     oui
Multisession            en partie               oui

RockRidge               oui (mkisofs)           oui (mkisofs)
El Torito               oui (mkisofs)           oui (mkisofs)
HFS                     oui (mkhybrid)          oui (mkhybrid)
Joliet                  oui (mkhybrid)          oui (mkhybrid)

   _RockRidge_ est un extension qui autorise des noms de fichiers plus
   longs et une arborescence de rpertoires plus profonde. _El Torito_
   peut permettre de produire des CDs bootables. Veuillez consulter la
   documentation jointe pour plus de dtails sur ces possibilits
   spciales. _HFS_ permet  un Macintosh de lire le CD-ROM comme si
   c'tait un volume HFS. _Joliet_ apporte les noms longs (entre autres
   choses)  certaines variantes de Windows (95, NT).

   La section logiciels liste la disponibilit des logiciels mentionns.

1.6 Listes de distribution

   Si vous voulez rejoindre l'quipe de dveloppement (avec l'intention
   de les _aider_ activement), envoyez un courrier lectronique 

     cdwrite-request@pixar.com

   et mettez la commande subscribe dans le corps du message.

1.7 Disponibilit

   La toute dernire version de ce document est toujours disponible 
   partir de

     http://www.shop.de/~winni/linux/

   (NdT : en France, c'est  http://www.freenix.fr/linux/, mais la
   version peut ne pas tre la dernire en date.)

2. Prparez votre machine Linux pour graver des CD-ROMs

   Avant novembre 1997, les logiciels pour Linux ne supportaient pas les
   graveurs de CD-ROM ATAPI. En consquence, la version actuelle de ce
   HOWTO se concentre sur les priphriques SCSI.

   La bonne nouvelle est que manipuler des priphriques ATAPI est bien
   plus facile et vous pouvez quand mme utiliser ce HOWTO si vous
   oubliez le terme "priphrique SCSI gnrique". Pour trouver comment
   dialoguer avec des priphriques ATAPI vous pouvez lancer la commande
   cdrecord -scanbus.

2.1 Configurez le matriel

   teignez votre ordinateur, et branchez le graveur de CDs sur le bus
   SCSI.

   Assurez-vous que le bus SCSI est termin proprement et choisissez une
   ID SCSI libre pour le graveur. Regardez le HOWTO SCSI Linux si vous
   n'tes pas sr. Si vous tes compltement dpass, demandez  un
   expert.

   Remettez le courant et regardez les messages que le BIOS du contrleur
   SCSI affiche immdiatement aprs l'allumage de l'ordinateur. S'il ne
   reconnat pas votre graveur, revenez  l'tape prcdente. Vous
   devriez voir un message comme celui-ci :

   (Image manquante ; quelqu'un en a-t-il une copie d'ecran ?)

2.2 Note sur le gravage de CDs sous Linux

   Au contraire d'autres rumeurs, le noyau Linux _n'a pas_ besoin de
   patch pour crire sur des CDs. Bien que le fichier drivers/scsi/scsi.c
   des sources du noyau contienne les lignes

                  case TYPE_WORM:
                  case TYPE_ROM:
                    SDpnt->writeable = 0;

   ceci veut seulement dire que ces CDs et WORMs ne sont pas accessibles
   en criture  travers les priphriques standards /dev/sda - /dev/sdh,
   ce qui est normal.

   Au lieu d'utiliser ces priphriques, l'criture des CDs se fait 
   travers les _priphriques SCSI gnriques_ qui permettent presque
   tout -- mme l'criture sur les CDs.

2.3 Crez les priphriques gnriques

   Le _HOWTO SCSI Linux_ dit  propos des priphriques SCSI gnriques :

     Le pilote de priphrique SCSI gnrique fournit une interface pour
     envoyer des commandes SCSI  tous les priphriques SCSI --
     disques, lecteurs de bandes, CDROMs, mcanismes de changement de
     support, etc.

   Parler des priphriques gnriques en tant qu'_interfaces_ veut dire
   qu'ils fournissent une manire diffrente d'accder au matriel SCSI
   par rapport aux priphriques normaux.

   Cette manire dtourne est obligatoire parce que les priphriques
   normaux sont faits pour lire des donnes  l'chelle du bloc  partir
   d'un disque, d'un lecteur de bandes ou d'un lecteur de CD-ROM. D'un
   autre ct, piloter un graveur de CD-ROM (ou un scanner) est plus
   exotique, par exemple on doit pouvoir positionner le laser. Pour avoir
   une implmentation propre (et par consquent rapide) de ces
   priphriques normaux, toutes ces actions exotiques doivent tre
   ralises  travers les priphriques SCSI gnriques.

   Puisque l'on peut tout faire au matriel SCSI  travers les
   priphriques gnriques, ils ne sont pas limits  un usage
   spcifique -- d'o le nom _gnrique_.

   Dplacez-vous dans le rpertoire /dev et vrifiez la prsence des
   priphriques SCSI gnriques ; la commande ls devrait montrer sga -
   sgh :

                bash> cd /dev
                bash> ls -l sg*
                crw-------   1 root   sys     21,   0 Jan  1  1970 sga
                crw-------   1 root   sys     21,   1 Jan  1  1970 sgb
                crw-------   1 root   sys     21,   2 Jan  1  1970 sgc
                crw-------   1 root   sys     21,   3 Jan  1  1970 sgd
                crw-------   1 root   sys     21,   4 Jan  1  1970 sge
                crw-------   1 root   sys     21,   5 Jan  1  1970 sgf
                crw-------   1 root   sys     21,   6 Jan  1  1970 sgg
                crw-------   1 root   sys     21,   7 Jan  1  1970 sgh

   Si vous n'avez pas ces fichiers de priphriques, crez-les en
   utilisant le script /dev/MAKEDEV :

                bash> cd /dev/
                bash> ./MAKEDEV sg

   Maintenant les fichiers de priphriques devraient se montrer.

2.4 Etablissez l'utilisation des priphriques _SCSI gnrique_ et _loopback_

   Le noyau Linux ncessite un module qui lui donne la possibilit de
   grer les priphriques SCSI gnriques. Si votre noyau courant
   possde cette aptitude, elle devrait tre liste dans le
   pseudo-fichier /proc/devices :

                bash> cat /proc/devices
                Character devices:
                 1 mem
                 2 pty
                 3 ttyp
                 4 ttyp
                 5 cua
                 7 vcs
                21 sg          <---------- veut dire "peripherique SCSI
                30 socksys                            generique"

                Block devices:
                 2 fd
                 7 loop        <---------- on peut meme utiliser le
                 8 sd                      loopback
                11 sr          <---------- veut dire "CD-ROM SCSI"

   Vous devrez peut-tre taper la commande insmod sg, insmod loop ou
   insmod sr_mod pour charger le module dans le noyau. Re-vrifiez aprs
   avoir essay ceci.

   Si l'une d'entre elle ne fonctionne pas, vous devez reconfigurer votre
   noyau et le recompiler.

                 bash$ cd /usr/src/linux
                 bash$ make config

                 [..]
                 *
                 * Additional Block Devices
                 *
                 Loopback device support (CONFIG_BLK_DEV_LOOP) [M/n/y/?] M

                 [..]
                 *
                 * SCSI support
                 *
                 SCSI support (CONFIG_SCSI) [Y/m/n/?] Y
                 *
                 * SCSI support type (disk, tape, CD-ROM)
                 *
                 SCSI disk support (CONFIG_BLK_DEV_SD) [Y/m/n/?] Y
                 SCSI tape support (CONFIG_CHR_DEV_ST) [M/n/y/?] M
                 SCSI CD-ROM support (CONFIG_BLK_DEV_SR) [M/n/y/?] M
                 SCSI generic support (CONFIG_CHR_DEV_SG) [M/n/y/?] M

                 [..]
                 ISO9660 cdrom filesystem (CONFIG_ISO9660_FS) [Y/m/n/?] M

   Veuillez noter que j'ai omis les questions un peu moins importantes.

2.5 Construire et installer le noyau

   Si vous avez des questions concernant ceci, la lecture suggre est le
   HOWTO Noyau Linux. De plus, votre distribution Linux devrait contenir
   de la documentation sur ce problme.

   (Astuce : pendant la recompilation, vous pouvez continuer sur les
   tapes createdev et au-del)

2.6 Redmarrer l'ordinateur pour amorcer le changement

   Ne paniquez pas si le noyau Linux affiche les messages plus rapidement
   que vous ne pouvez les lire, au moins l'initialisation des
   priphriques SCSI peut tre raffiche avec la commande dmesg :

        scsi0 : NCR53c{7,8}xx (rel 17)
        scsi : 1 host.
        scsi0 : target 0 accepting period 100ns offset 8 10.00MHz
        scsi0 : setting target 0 to period 100ns offset 8 10.00MHz

          Vendor: FUJITSU   Model: M1606S-512        Rev: 6226
          Type:   Direct-Access                      ANSI SCSI
        Detected scsi disk sda at scsi0, channel 0, id 0, lun 0

          Vendor: NEC       Model: CD-ROM DRIVE:84   Rev:  1.0a
          Type:   CD-ROM                             ANSI SCSI
        Detected scsi CD-ROM sr0 at scsi0, channel 0, id 4, lun 0

        scsi : detected 1 SCSI disk total.
        SCSI device sda: hdwr sector= 512 bytes. Sectors= 2131992

   On a montr ci-dessus uniquement la partie des messages
   d'initialisation qui rapportent la dtection des priphriques SCSI
   prsents physiquement.

2.7 Cration des _priphriques loopback_

   Dplacez-vous dans le rpertoire /dev et vrifiez la prsence des
   _priphriques loopback_. Ce n'est pas grave si vous n'avez pas ces
   priphriques, mais c'est pratique si vous les avez (Voir la section
   test ). Si vous les avez dj, la commande ls devrait montrer loop0 -
   loop7 :

                bash$ cd /dev
                bash$ ls -l loop*
                brw-rw----   1 root  disk    7,   0 Sep 23 17:15 loop0
                brw-rw----   1 root  disk    7,   1 Sep 23 17:15 loop1
                brw-rw----   1 root  disk    7,   2 Sep 23 17:15 loop2
                brw-rw----   1 root  disk    7,   3 Sep 23 17:15 loop3
                brw-rw----   1 root  disk    7,   4 Sep 23 17:15 loop4
                brw-rw----   1 root  disk    7,   5 Sep 23 17:15 loop5
                brw-rw----   1 root  disk    7,   6 Sep 23 17:15 loop6
                brw-rw----   1 root  disk    7,   7 Sep 23 17:15 loop7

   Si vous n'avez pas ces fichiers de priphriques, crez-les en
   utilisant le script /dev/MAKEDEV :

                bash> cd /dev/
                bash> ./MAKEDEV loop

   La dernire commande ne russit que si vous avez le module loop dans
   votre noyau (voir la section utilisation pour la manipulation des
   modules). Si insmod loop ne donne rien, vous devez attendre que le
   nouveau noyau soit correctement install (voir noyau .

2.8 Obtenez le logiciel pour graver les CDs

  Utilitaires en ligne de commande

   Le paquetage suivant est obligatoire pour gnrer des maquettes de
   CD-Rs :

     ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs/ (mkisofs)

     ftp://ftp.ge.ucl.ac.uk/pub/mkhfs (mkhybrid)

   Selon le modle de votre graveur de CDs (voir supportes ), l'un des
   logiciels suivants est ncessaire pour crire les maquettes sur les
   CD-Rs :

     ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/ (cdrecord)

     ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/ (cdwrite)

   Veuillez utiliser les miroirs de ces serveurs FTP les plus proches de
   vous ou chargez-les  partir d'un CD.

   Assurez-vous absolument que vous avez la version 2.0 ou suprieure de
   cdwrite. Aucune version plus ancienne et surtout aucune version beta
   ne fonctionneront ! Ne croyez pas les pages de manuel du (vieil)
   mkisofs qui indique que vous avez besoin de la version 1.5 de cdwrite.

   Pour avoir des informations sur le portage de cdwrite sur Irix et AIX,
   visitez l'URL

     http://lidar.ssec.wisc.edu/~forrest/

   Si vous utilisez un noyau antrieur  2.0.31, vous aurez envie de
   patcher mkisofs pour contourner un bogue du code du systme de
   fichiers de Linux. La distribution Debian fournit un patch pour la
   version 1.05 de mkisofs qui lui ajoute l'option -K (voir iso ) ; il
   est disponible sur

     ftp://ftp.debian.org/pub/debian/rex/source/misc/mkisofs_1.11-1.diff
     .gz

   Ce patch n'est ncessaire que si vous voulez monter l'image du CD 
   travers le priphrique loopback (voir test ).

  Une interface utilisateur graphique (optionnelle)

   X-CD-Roast est un programme de gravage de CDs fonctionnant entirement
   sous X, et succde  cdwtools-0.93. Il est disponible sur

     http://www.fh-muenchen.de/home/ze/rz/services/projects/xcdroast/e_o
     verview.html

   En ce moment X-CD-Roast est bas sur une version patche de
   cdwrite-2.0 et possde par consquent les mmes caractristiques (voir
   possibil ). Les versions futures pourraient tre bases sur le
   logiciel de remplacement cdrecord.

3. crire un CD

   ``Si en fume tu te transformes, je ne cesserai de jouer pendant que
   tu te consumes.'' (L'empereur Nron en crivant ses propres CDs
   classiques ; il n'avait rien compris)

   En gnral l'criture d'un CD se fait en deux tapes :

     * rcolter les logiciels dsirs et les empaqueter en un grand
       fichier avec mkisofs/mkhybrid ;
     * crire le grand fichier sur le CD enregistrable avec cdwrite ou
       cdrecord.

   Il est aussi possible de combiner les deux tapes en une avec un tube
   mais ceci n'est pas recommand parce que ce n'est pas fiable. Voir
   ci-dessous.

3.1 Dterminez  quel priphrique SCSI gnrique le graveur est attach

   (Veuillez noter : la faon actuelle de nommage des priphriques SCSI
   sous Linux est complique  souhait et pas assez fiable. Le fait que
   je la dcrive ici en maints dtails ne devrait pas tre mal interprt
   comme la confirmation de cette tat de faits. Les personnes possdant
   un graveur de CD-ROMs ATAPI peuvent essayer "cdrecord -scanbus" pour
   dtecter le bon priphrique et sauter le reste de cette section.)

   Aprs avoir suivi toutes les tapes du dernier chapitre, votre systme
   devrait tre capable de grer le gravage de CDs. Cette section peut
   tre utilise comme preuve que tout fonctionne comme prvu.

   Lancez la commande dmesg. Elle devrait rapporter les messages du noyau
   Linux, avec ceux imprims lors du dmarrage (limitation : seulement
   les 200 derniers) et contient des informations sur le graveur de CDs
   connects au bus SCSI.

   Exemple simple :

              Vendor: YAMAHA  Model: CDR100       Rev: 1.11
              Type:   WORM                        ANSI SCSI revision: 02
            Detected scsi CD-ROM sr1 at scsi0, channel 0, id 3, lun 0

   Cette machine possde quatre priphriques SCSI connects (vous ne
   pouvez pas le voir donc je vous le dis), avec les ID SCSI allant de 0
    3. Le graveur est le quatrime priphrique SCSI physiquement
   prsent et doit donc tre connect sur /dev/sgd (le quatrime
   priphrique SCSI gnrique quand on compte  partir de la lettre a).
   Dans ce cas, la commande

            cdwrite  --eject  --device /dev/sgd

   ouvre le tiroir et est un test pour voir si tout fonctionne
   correctement. Un exemple plus compliqu :

            scsi0 : AdvanSys SCSI 1.5: ISA (240 CDB)
            scsi1 : Adaptec 1542
            scsi : 2 hosts.

              Vendor: HP      Model: C4324/C4325  Rev: 1.20
              Type:   CD-ROM                      ANSI SCSI revision: 02
            Detected scsi CD-ROM sr0 at scsi0, channel 0, id 2, lun 0

              Vendor: IBM     Model: DPES-31080   Rev: S31Q
              Type:   Direct-Access               ANSI SCSI revision: 02
            Detected scsi disk sda at scsi1, channel 0, id 0, lun 0

            scsi : detected 1 SCSI cdrom 1 SCSI disk total.
            SCSI device sda: hdwr sector= 512 bytes.

   Dans cet exemple deux contrleurs SCSI hbergent un priphrique SCSI
   chacun. Quel gchis (ils sont capables d'hberger jusqu' sept
   priphriques chacun). Ce n'est pas ma configuration alors arrtez de
   demander si j'ai trop d'argent... Cependant dans le but d'tre un
   exemple dont on peut se passer, cette configuration est excellente.
   :-)

   Dans l'exemple ci-dessus le graveur de CD a l'ID SCSI 2 mais elle est
   associe au premier priphrique SCSI gnrique /dev/sga parce que
   c'est le premier priphrique SCSI physiquement prsent que Linux a
   dtect. J'espre que ceci montre clairement que l'ID SCSI d'un
   priphrique n'a rien  voir avec le priphrique gnrique associ.

   Deux questions restent en suspens : qu'arrive-t-il si vous prenez le
   mauvais priphrique ? Si vous ne spcifiez ni l'option
   "--<MANUFACTURER>" ni n'crivez de donnes sur le priphrique, en
   gnral un message d'avertissement est affich et rien de plus :

                bash$ cdwrite  --eject  --device /dev/sgb

                Unknown CD-Writer; if this model is compatible with any
                supported type, please use the appropriate command line
                flag.

                Manufacturer:  IBM
                Model:         DPES-31080
                Revision:      S31Q

   Dans ce cas le priphrique /dev/sbg est un disque dur SCSI (d'IBM).

   Si vous crivez des donnes sur le mauvais priphrique, vous en
   crasez le contenu d'origine et endommagerez votre systme de faon
   probablement irrmdiable. Faites attention, cela m'est dj arriv
   par accident.

3.2 Rassembler les logiciels

   En gnral cela prend plus de temps qu'on ne le croit ; Rappelez-vous
   que les fichiers manquants ne pourront pas tre ajouts une fois que
   le CD sera crit. :-)

   Gardez aussi  l'esprit qu'un certain montant de l'espace libre d'un
   CD est utilis pour stocker les informations sur le systme de
   fichiers ISO 9660 (en gnral quelques Mo).

3.3 Stocker les donnes sur un CD

   Le terme _ISO 9660_ se rapporte au format dans lequel les donnes sont
   stockes sur le CD Pour tre plus prcis : c'est le systme de
   fichiers sur le CD.

   Bien sr, l'apparence des fichiers stocks dans ce format est unifie
   par le noyau Linux comme pour tout autre systme de fichiers. Par
   consquent, si vous montez un CD dans l'arborescence des rpertoires,
   vous ne pouvez pas distinguer son contenu des autres fichiers... 
   part le fait qu'on ne peut crire dessus... mme pas pour root. :-)
   (Le mcanisme utilis pour unifier l'apparence des fichiers est appel
   _systme de fichiers virtuel_, en abrg _VFS_.

   Les possibilits du systme de fichiers ISO 9660 ne sont pas si riches
   compares  celles du systme de fichiers ext2 qui est normalement
   utilis sous Linux. Par contre, le CD n'est inscriptible qu'une seule
   fois et certaines possibilits n'ont mme pas de sens. Les limitations
   du systme de fichiers ISO 9660 sont :

     * uniquement huit niveaux de sous-rpertoires autoriss (compts 
       partir du rpertoire racine du CD) (utilisez les extensions
       RockRidge pour augmenter ce nombre) ;
     * longueur maximale des noms de fichiers : 32 caractres ;
     * capacit de 650 Mo.

3.4 Crer un systme de fichiers ISO 9660

   Avant de pouvoir utiliser un support de stockage (par exemple une
   disquette, un disque dur ou un CD), il doit avoir un systme de
   fichiers (en langage DOS : tre format). Ce systme de fichiers est
   responsable de l'organisation et de l'incorporation des fichiers qui
   devraient tre stocks sur le support.

   Bon, un CD inscriptible ne l'est qu'une fois et donc si nous y
   crivons un systme de fichiers vide, il serait format -- mais
   resterait pour l'ternit compltement vide. :-)

   Nous avons donc besoin d'un outil qui cre le systme de fichiers en
   mme temps qu'il copie les fichiers sur le CD. Cet outil s'appelle
   mkisofs. Une utilisation simple ressemble  ceci :

                 mkisofs  -r  -o cd_image   collection_privee/
                              `---------'   `----------------'
                                   |                |
                   ecrire la sortie vers    prendre repertoire comme entree

   L'option '-r' positionne les permissions de tous les fichiers pour
   tre lisibles publiquement sur le CD et permet les extensions Rock
   Ridge. C'est ce que l'on veut en gnral et l'utilisation de cette
   option est recommande jusqu' ce que vous sachiez ce que vous faites.
   (Astuce : sans le '-r', le point de montage prend les permissions de
   collection_privee !)

   Si vous utilisez un noyau Linux antrieur  2.0.31, vous devriez
   ajouter l'option '-K' pour contourner un bogue du code du systme de
   fichiers. Vous avez besoin de la version patche de mkisofs pour cela.
   Cette option est quivalente  l'option '-P' de cdwrite. Veuillez
   regarder la page de manuel de mkisofs pour plus de dtails.

   mkisofs essaiera de convertir tous les noms de fichiers au format 8.3
   utilis par DOS pour assurer une compatibilit maximale. En cas de
   conflits de noms (des fichiers diffrents qui auraient le mme nom
   8.3), des numros sont utiliss dans les noms de fichiers et les
   informations sur le nom de fichier choisi sont imprimes sur l'erreur
   standard (en gnral l'cran).

   _Ne paniquez pas :_

     Sous Linux, vous ne verrez jamais ces noms de fichiers 8.3 parce
     que Linux utilise les extensions Rock Ridge qui contiennent les
     informations d'origine du fichier (permissions, nom de fichier,
     etc.).

   Maintenant vous pouvez vous demander pourquoi la sortie de mkisofs
   n'est pas envoye directement au priphrique de gravage. Ceci est d
    deux raisons :

     * mkisofs ne connait rien sur la manire de piloter les graveurs de
       CD (voir la section perifgen ) ;
     * On ne peut pas compter sur cette mthode (voir faq ).

   La synchronisation d'un graveur de CD est un point tellement critique
   que nous ne le remplissons pas directement avec mkisofs (rappelez-vous
   que Linux n'est pas un systme d'exploitation en temps rel et que les
   tches peuvent tre mal temporises).  la place, il est recommand de
   stocker la sortie de mkisofs dans un fichier spar sur le disque dur.
   Ce fichier est alors une image parfaite du CD  venir et est en fait
   crite sur le CD avec l'outil cdwrite dans un deuxime temps.

   L'image parfaite est stocke dans un fichier norme, et vous avez donc
   besoin de la mme quantit d'espace disque libre que ce que prennent
   vos logiciels rassembls. C'est le problme.

   On pourrait penser  crer une partition supplmentaire pour cela et
   crire l'image sur cette partition plutt que dans un fichier. Je suis
   contre cette stratgie parce que si vous crivez sur la mauvaise
   partition ( cause d'une faute de frappe), vous pouvez perdre votre
   systme Linux en entier. De plus, c'est du gchis d'espace disque
   parce que l'image du CD reprsente des donnes temporaires que l'on
   pourra effacer aprs avoir grav le CD.

3.5 Tester l'image CD

   Linux a la possibilit de monter des fichiers comme si c'tait des
   partitions de disques. Ceci est trs utile pour vrifier si la
   structure des rpertoires de l'image du CD est bonne. Pour monter le
   fichier cd_image cr ci-dessus dans le rpertoire /cdrom, envoyez la
   commande

        mount -t iso9660 -o ro,loop=/dev/loop0 cd_image /cdrom

   Vous pouvez maintenant inspecter les fichiers sous /cdrom -- ils
   apparaissent exactement comme ils le seraient sur un vrai CD. Pour
   dmonter l'image CD, tapez simplement umount /cdrom. Attention : si
   vous n'avez pas utilis l'option '-K' avec mkisofs, le dernier fichier
   sur /cdrom peut ne pas tre entirement lisible.

   Note :

     certaines versions anciennes de mount ne savent pas manipuler les
     priphriques loopback. Si vous avez une version de mount si
     vieille que a, c'est une indication pour mettre votre systme
     Linux  jour.

     Plusieurs personnes m'ont dj suggr de mettre des informations
     sur la manire d'obtenir les dernires versions de mount dans ce
     HOWTO. Je refuse toujours de le faire. Si votre distribution Linux
     contient un vieux mount, dites-leur que c'est une erreur. Si votre
     distribution Linux se met  jour difficilement, dites-leur que
     c'est une erreur.

     Si je devais donner toutes les informations ncessaires pour
     contourner les erreurs des distributions Linux mal faites, ce HOWTO
     serait beaucoup plus gros et dur  lire.

3.6 Remarques sur les disques CD Rinscriptibles vierges

   Le magazine informatique allemand "c't" donne une liste de trucs
   concernant les CD vierges dans leur numro de novembre 1996 :

     * les disques "sans-noms" (noname) ne sont en gnral pas de la plus
       grande qualit et il vaut mieux ne pas les utiliser ;
     * si un CD rinscriptible est dfectueux, il y a des chances que a
       soit la mme chose pour le paquet entier (si vous en avez achet
       plus d'un  la fois) ; vous avez peut-tre de la chance et pouvez
       au moins utiliser les 500 premiers Mo de tels CDs...
     * ne touchez pas les CD sur leur face brillante avant l'criture.

3.7 crivez l'image du CD sur un CD

   Plus grand chose  faire. Avant de vous montrer la dernire commande,
   laissez-moi vous avertir que les graveurs de CDs doivent tre
   aliments par un flot continu de donnes parce qu'ils n'ont que de
   petits caches de donnes. Le processus d'criture de l'image CD sur le
   CD ne doit donc pas tre interrompu ou bien le rsultat est un CD
   corrompu.

   Pour tre sr que rien ne vient interrompre le processus, virez tous
   les utilisateurs de votre systme et dbranchez le cble Ethernet...
   Lisez le _Bastard Operator From Hell_ pour en apprendre sur la bonne
   attitude  adopter. ;-)

   Si vous tes prt mentalement, mettez une blouse noire, multipliez
   l'ID SCSI du graveur de CD par son numro de version et allumez autant
   de bougies, rcitez deux strophes de la FAQ ASR et finalement tapez :

        cdwrite --device /dev/sgd cd_image

   ou bien

        cdrecord -v speed=2 dev=4,0 cd_image

   selon le logiciel que vous voulez utiliser. Vous devez bien sr
   remplacer le priphrique d'exemple par le priphrique SCSI auquel
   votre graveur de CD est connect.

   Veuillez noter qu'aucun graveur ne peut repositionner son laser et
   continuer au point o il a t drang. Par consquent toute vibration
   forte ou mme un choc dtruira compltement le CD que vous tes en
   train de graver.

3.8 Si quelque chose va mal...

   ...rappelez-vous que vous pouvez toujours utiliser les CD rats comme
   dessous de bouteilles. :-)

4. Questions frquemment poses, avec les rponses

4.1 " quel point le processus de brlure est-il sensible ?"

   Rponse : cela dpend de votre graveur. Les graveurs modernes
   devraient avoir un tampon de donnes de 1 Mo  peu prs et peuvent
   tenir une  deux secondes sans donnes. Voyez les manuels ou demandez
   au fabricant si vous voulez connatre les dtails. Indpendamment de
   la taille de ces tampons, vous devez garantir un dbit constant de 300
   Ko/s ou 600 Ko/s sur une longue priode.

   Les processus qui utilisent beaucoup le disque, comme la mise  jour
   de la base de donnes _locate_ diminuent le dbit maximum et abimeront
   certainement le CD ; vous feriez mieux de vrifier que de tels
   processus ne sont pas dmarrs par cron, at ou anacron pendant que
   vous gravez des CD-Rs.

   Par contre, certaines personnes m'ont dit qu'elles avaient compil un
   noyau pendant le gravage d'un CD sans aucun problme. Vous aurez bien
   sr besoin d'une machine rapide pour de telles expriences.

4.2 "La fragmentation a-t-elle des mauvais effets sur le flot ?"

   La fragmentation est en gnral tellement basse qu'on ne remarque pas
   son impact.

   Si vous n'en tes pas certain, regardez les messages imprims lors du
   dmarrage, le pourcentage de fragmentation est indiqu lors de la
   vrification du systme de fichiers. Vous pouvez vrifier cette valeur
   avec la commande trs dangereuse

                bash$ e2fsck -n  /dev/sda5        # '-n' est important !
                [partie effacee -- ignorez toute erreur]
                /dev/sda5: 73/12288 files (12.3% non-contiguous)

   Dans cet exemple, la fragmentation semble tre trs grande -- mais il
   n'y a que 73 fichiers trs petits sur ce systme de fichiers (utilis
   sur /tmp) et la valeur _n'est pas_ alarmante.

4.3 "Est-il possible de stocker l'image CD sur un systme de fichier UMSDOS ?"

   Oui. Le seul systme de fichiers ni assez fiable ni assez rapide pour
   graver des CD est NFS (_Network FileSystem_, systme de fichiers par
   le rseau).

   J'utilise moi-mme UMSDOS pour partager l'espace disque entre Linux et
   DOS/Win sur un PC (486/66) ddi au gravage des CDs.

4.4 "Y a-t-il un moyen de passer outre les limitations de ISO 9660 ?"

   Oui. Vous pouvez mettre le systme de fichiers qui vous plait sur le
   CD. Mais certains systmes d'exploitation ne pourront rien en faire.

   Voici la recette :

     * crez un fichier vide d'une taille de 650 Mo :

                dd if=/dev/zero of="fic_vide" bs=1024k count=650

     * crez un systme de fichiers ext2 sur ce fichier :

                bash$ /sbin/mke2fs fic_vide
                fic_vide is not a block special device.
                Proceed anyway? (y,n) y

       (NdT : mke2fs demande confirmation de crer le systme de fichiers
       sur un fichier normal.) ;
     * montez ce fichier vide  l'aide du priphrique loopback :

                mount -t ext2 -o loop=/dev/loop1 fic_vide /mnt

     * copiez les fichiers vers /mnt et dmontez-le aprs ;
     * utilisez cdwrite ou cdrecord sur fic_vide (qui n'est plus vide)
       comme si c'tait une image ISO 9660.

   Si vous voulez crer une entre dans /etc/fstab pour un tel CD,
   dsactivez sa vrification, par exemple :

        /dev/cdrom      /cdrom  ext2    defaults,ro     0  0

   Le premier 0 veut dire "ne me compte pas dans les dumps", la deuxime
   (importante) veut dire "ne vrifie pas les erreurs au dmarrage" (fsck
   n'arrivera pas  vrifier les erreurs ventuelles sur le CD).

4.5 "Comment lire et crire des CDs audio ?"

   Veuillez prendre les paquetages "cdda2wav" et "sox", disponibles sur
   sunsite" et ses miroirs :

     ftp://sunsite.unc.edu/pub/Linux/apps/sound/cds/cdda2wav0.71.src.tar
     .gz
     ftp://sunsite.unc.edu/pub/Linux/apps/sound/convert/sox-11gamma-cb3.
     tar.gz

   cdda2wav vous permet de prendre un intervalle spcifique (ou une plage
   entire) de votre CD audio et le convertit en un fichier .wav. sox
   convertit les fichiers wav dans le format cdda (CD audio) pour qu'on
   puisse l'crire sur le CD-R avec cdwrite.

4.6 "Comment rechercher des priphriques SCSI aprs le dmarrage ?"

   Le fichier drivers/scsi/scsi.c contient les informations suivantes
   (NdT : traduites en franais) :

/*
 * Utilisation : echo "scsi add-single-device 0 1 2 3" >/proc/scsi/scsi
 * avec "0 1 2 3" remplaces par vos "Carte Canal Id Lun".
 * Considerez ceci comme une caracteristique BETA.
 *     ATTENTION : Ceci n'est pas fait pour brancher vos
 *     peripheriques a chaud. Comme le SCSI n'a pas ete fait
 *     pour ca, vous pouvez endommager votre materiel !
 * Cependant il est peut-etre autorise d'allumer un
 * peripherique deja branche. Il n'est peut-etre pas garanti
 * que ce peripherique ne corrompe pas un transfert de donnees
 * en cours.
 */

4.7 "Est-il possible de faire une copie exacte d'un CD de donnes ?"

   Oui. Mais vous devriez tre conscient du fait que toute erreur faite
   en lisant l'original (due  la poussire ou  des rayures) donnera une
   copie dfectueuse.

   Premier cas : vous avez un graveur de CDs et un lecteur de CD-ROM
   spar. En tapant la commande :

cdwrite -v -D /dev/sgc --pad -b  $(isosize  /dev/scd0) /dev/scd0

   ou

cdrecord -v dev=3,0 speed=2 -isosize /dev/scd0

   vous lisez le flot de donnes du lecteur de CD-ROM attach  /dev/scd0
   et l'crivez directement sur le graveur par /dev/sgc.

   Deuxime cas : vous n'avez pas de lecteur de CD-ROM spar. Vous devez
   utiliser le graveur pour lire le CD-ROM comme ceci :

dd if=/dev/scd0 of=cdimage bs=1c count=`isosize  /dev/scd0`

   Cette commande est quivalente au rsultat de mkisofs, vous devez
   continuer tel que c'est dcrit  la section  ecrire_cd . Veuillez
   noter que cette mthode ne fonctionnera pas sur des CDs audio !

4.8 "Linux peut-il lire des CDs Joliet ?"

   Oui. Mais vous devez patcher le noyau et le recompiler. Pour plus de
   dtails, voyez

     http://www-plateau.cs.berkeley.edu/people/chaffee/joliet.html

4.9 "Comment puis-je lire/monter des CD-ROMs avec le graveur de CDs ?"

   Comme vous le feriez avec un lecteur de CD-ROM normal. Aucune astuce
   l-dessous. Notez que vous devez utiliser les priphriques scd
   (CD-ROM SCSI) pour monter les CDs en lecture. Voici un exemple pour
   /etc/fstab :

        /dev/scd0       /cdrom  iso9660 ro,user,noauto  0  0

5. Dpannage

5.1 a ne marche pas : sous Linux

   Veuillez d'abord vrifier que le graveur fonctionne avec un autre
   systme d'exploitation. Concrtement :

     * Est-ce que le contrleur reconnait le graveur comme un
       priphrique SCSI ?
     * Est-ce que le logiciel pilote reconnait le graveur ?
     * Est-il possible de fabriquer un CD avec les logiciels fournis ?

   Si "a ne fonctionne pas" mme sous d'autres systmes d'exploitation,
   vous avez un conflit matriel ou un matriel dfectueux.

5.2 a ne marche pas : sous DOS et assimils

   Essayez d'utiliser Linux. L'installation et la configuration des
   pilotes SCSI pour DOS est une horreur. Linux est trop compliqu ? Ha !

5.3 Erreurs SCSI pendant la phase de gravage

   Il est fort probable que ces erreurs soient dues  :

     * possibilit de dconnection/reconnection (scatter/gather)
       manquante sur le bus SCSI ;
     * matriel pas assez refroidi ;
     * matriel dfectueux (devrait tre dtect par marchepa ).

   Sous des circonstances varies, les priphriques SCSI se dconnectent
   et se reconnectent par eux-mmes (de manire lectronique) du bus
   SCSI. Si cette possibilit n'est pas disponible (vrifiez le
   contrleur et les paramtres du noyau), certains graveurs ont des
   problmes pendant le gravage ou le fixage du CD-R.

   En particulier, le pilote SCSI NCR 53c7,8xx a cette possibilit
   dsactive par dfaut, et vous devriez donc vrifier ceci en premier :

        NCR53c7,8xx SCSI support                  [N/y/m/?] y
           always negotiate synchronous transfers [N/y/?] (NEW) n
           allow FAST-SCSI [10MHz]                [N/y/?] (NEW) y
           allow DISCONNECT                       [N/y/?] (NEW) y

6. Remerciements

   _Andreas Erdmann <erdmann@zpr.uni-koeln.de>_
          a fourni l'exemple du graveur Yamaha ;

   _Art Stone <stone@math.ubc.ca>_
          a eu l'ide de mettre des systmes de fichiers non ISO 9660 sur
          un CD ;

   _Bartosz Maruszewski <B.Maruszewski@zsmeie.torun.pl>_
          a rapport des erreurs de prononciation ;

   _Bernhard Gubanka <beg@ipp-garching.mpg.de>_
          a remarqu le besoin d'une version rcente de mount pour
          utiliser le priphrique loopback ;

   _Brian H. Toby_
          a fignol l'orthographe ;

   _Bruce Perens <bruce@pixar.com>_
          a donn des informations sur la liste de distribution cdwrite ;

   _Dale Scheetz <dwarf@polaris.net>_
          a aid  amliorer la section sur la cration de l'image du CD
          ;

   _"Don H. Olive" <don@andromeda.campbellsvil.edu>_
          a donn l'URL de l'outil mkhybrid ;

   _Edwin H. Kribbs_
          a remarqu que '-K' ncessite de patcher mkisofs ;

   _Gerald C Snyder <gcsnyd@loop.com>_
          a test l'criture d'un CD-ROM ext2 (voir ext ) ;

   _Ingo Fischenisch <ingo@mi.uni-koeln.de>_
          a fourni l'exemple des deux contrleurs hbergeant deux
          priphriques ;

   _Janne Himanka <shem@oyt.oulu.fi>_
          pointeur vers le patch du noyau pour lire des CDs Joliet ;

   _Joerg Schilling <schilling@fokus.gmd.de>_
          informations sur cdrecord ;

   _Jos van Geffen <jos@tnj.phys.tue.nl>_
          a not le problme dans montercd ;

   _Markus Dickebohm <m.dickebohm@uni-koeln.de_

   _Pierre Pfister <pp@uplift.fr>_
          a aid  dvelopper la recette des copies exactes ;

   _Rick Cochran <rick@msc.cornell.edu>_
          indice sur dis-/reconnect dsactiv par dfaut dans le pilote
          NCR ;

   _Stephan Noy <stnoy@mi.uni-koeln.de>_
          des informations et son exprience sur l'criture de CDs audio
          ;

   _Stephen Harris <sweh@mpn.com>_
          a donn des indices sur l'criture des CDs audio ;

   _The Sheepy One <kero@escape.com>_
          a suggr l'utilisation des CD rats en dessous de bouteilles ;

   _Volker Kulhmann <kuhlmav@elec.canterbury.ac.nz>_
          a remarqu que le paquetage cdwrite ne contient pas mkisofs.

   Fin du HOWTO graveur de CDs sous Linux
