\documentclass{article}
\usepackage{linuxdoc-sgml}
\usepackage{qwertz}
\usepackage[latin1]{inputenc}
\usepackage{epsfig}
\usepackage{null}
\title{HOWTO Graveur de CDs}
\author{Winfried Truemper, {\ttfamily {\(<\)}winni@xpilot.org{\(>\)}}, traduit par
Olivier Tharan, {\ttfamily {\(<\)}tharan@int-evry.fr{\(>\)}}}
\date{Version 2.4.1, 16 d\'{e}cembre 1997}
\abstract{Ce document parle du processus de gravage de CDs sous Linux.}


\begin{document}
\maketitle
\tableofcontents

\section{Introduction}



Ma premi\`{e}re exp\'{e}rience avec des graveurs de CDs a \'{e}t\'{e} guid\'{e}e par le
"Linux CD Writer mini-HOWTO" de Matt Cutts
{\(<\)}cutts@cs.unc.edu{\(>\)}. Merci Matt !

Bien que mon intention n'\'{e}tait que de mettre ce document \`{a} jour, je l'ai
r\'{e}\'{e}crit \`{a} partir du d\'{e}but apr\`{e}s avoir r\'{e}alis\'{e} combien tout avait chang\'{e}
depuis 1994. 




\subsection{Avertissement}

{\bfseries Je (Winfried Truemper) rejette toute garantie concernant ce
document, incluant toutes les garanties implicites de mise sur le march\'{e}
et d'utilit\'{e} pour un certain usage ; en aucun cas on ne pourra me tenir
compte de dommages sp\'{e}ciaux, indirects ou cons\'{e}cutifs \`{a}, ni d'aucun
dommage quelqu'il soit r\'{e}sultant de la perte d'utilisation, de donn\'{e}es ou
de profits, que ce soit dans une action contractuelle, de n\'{e}gligence ou
autre action, d\'{e}coulant de ou en relation avec l'utilisation de ce
document.}
En gros, lisez et utilisez \`{a} vos propres risques.




\subsection{Lectures sugg\'{e}r\'{e}es}



La FAQ sur les CD-R \`{a} \url{http://www.cd-info.com/CDIC/Technology/CD-R/FAQ.html}{} est une
FAQ g\'{e}n\'{e}rale portant sur les disques compacts enregistrables (CD-R).

Le {\itshape HOWTO CD-ROM Linux\/} explique tout ce qu'on devrait savoir
sur les lecteurs de CD-ROMs sous Linux. En suppl\'{e}ment, vous pourrez
jeter un coup d'oeil sur le {\itshape HOWTO SCSI Linux\/} et le {\itshape HOWTO
noyau Linux\/}.




\subsection{Terminologie... Lasers au maximum... Feu !}



{\itshape CD-ROM\/} veut dire {\itshape Disque compact \`{a} m\'{e}moire 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 argent\'{e}e vient d'une couche
aluminis\'{e}e qui est le support.) Les trous repr\'{e}sentent 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 {\itshape CD-R\/} est une forme abr\'{e}g\'{e}e de {\itshape CD-ROM
enregistrable\/} (Recordable) et se rapporte au CD qui n'a pas ces
"trous microscopiques" sur sa surface... Il est donc vide.

\`{A} la place de la couche aluminis\'{e}e (argent\'{e}e) un CD-R poss\`{e}de un film
sp\'{e}cial (color\'{e}) dans lequel des "trous microscopiques" peuvent y
\^{e}tre br\^{u}l\'{e}s. Ceci est r\'{e}alis\'{e} en donnant au laser, qui normalement ne
fait que palper les trous, un peu plus de puissance pour qu'il br\^{u}le
les trous. Cette action ne peut se faire {\bfseries qu'une seule fois}
sur un CD-R.

Vous pouvez toutefois laisser certaines parties vides pour une
\'{e}criture ult\'{e}rieure, cr\'{e}ant ce qu'on appelle un CD multi-sessions.

Ce HOWTO parle de la t\^{a}che d'\'{e}crire un CD-R. Bienvenue \`{a} bord,
Capitaine.




\subsection{Graveurs de CD-ROM support\'{e}s\label{supportes}}



La liste d\'{e}taill\'{e}e des mod\`{e}les qu'on a vu fonctionner correctement (ou
pas) est disponible \`{a}

\begin{quotation}
\url{http://www.shop.de/cgi-bin/winni/lsc.pl}{}
\end{quotation}


La liste sera incluse dans les versions futures de ce HOWTO. La
plupart des graveurs de CD-ROM SCSI sont support\'{e}s et la toute
nouvelle version de cdrecord supporte m\^{e}me les graveurs de CD-ROM
ATAPI.

Si votre mat\'{e}riel n'est pas support\'{e}, vous pouvez toujours utiliser
Linux pour cr\'{e}er une image du CD ult\'{e}rieur, mais vous devrez alors
utiliser un logiciel sous DOS pour \'{e}crire l'image sur le CD-R. (Vous
aurez envie de faire ceci parce que la plupart des logiciels DOS ne
peuvent pas g\'{e}rer les noms de fichiers longs disponibles avec Linux.)

Dans ce cas, vous pouvez passer toutes les sections relatives au
mat\'{e}riel (celles sur les {\itshape p\'{e}riph\'{e}riques SCSI g\'{e}n\'{e}riques\/} et
{\ttfamily cdwrite/cdrecord}).




\subsection{"Possibilit\'{e}s" support\'{e}es\label{possibil}}



En ce moment les logiciels pour graver des CDs sous Linux supportent les
caract\'{e}ristiques principales suivantes :

\begin{tscreen}
\begin{verbatim}
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)
\end{verbatim}
\end{tscreen}


{\itshape RockRidge\/} est un extension qui autorise des noms de fichiers
plus longs et une arborescence de r\'{e}pertoires plus profonde. {\itshape El
Torito\/} peut permettre de produire des CDs bootables. Veuillez
consulter la documentation jointe pour plus de d\'{e}tails sur ces
possibilit\'{e}s sp\'{e}ciales. {\itshape HFS\/} permet \`{a} un Macintosh de lire le
CD-ROM comme si c'\'{e}tait un volume HFS. {\itshape Joliet\/} apporte les
noms longs (entre autres choses) \`{a} certaines variantes de Windows (95,
NT).

La section \ref{logiciels} liste la disponibilit\'{e} des logiciels
mentionn\'{e}s.




\subsection{Listes de distribution}



Si vous voulez rejoindre l'\'{e}quipe de d\'{e}veloppement (avec l'intention
de les {\itshape aider\/} activement), envoyez un courrier \'{e}lectronique \`{a}

\begin{quotation}
cdwrite-request@pixar.com
\end{quotation}


et mettez la commande {\ttfamily subscribe} dans le corps du message.




\subsection{Disponibilit\'{e}}



La toute derni\`{e}re version de ce document est toujours disponible \`{a}
partir de

\begin{quotation}
\url{http://www.shop.de/~winni/linux/}{}
\end{quotation}


(NdT : en France, c'est \`{a} \url{http://www.freenix.fr/linux/}{},
mais la version peut ne pas \^{e}tre la derni\`{e}re en date.)




\section{Pr\'{e}parez 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 cons\'{e}quence, la version actuelle de ce
HOWTO se concentre sur les p\'{e}riph\'{e}riques SCSI.

La bonne nouvelle est que manipuler des p\'{e}riph\'{e}riques ATAPI est bien
plus facile et vous pouvez quand m\^{e}me utiliser ce HOWTO si vous
oubliez le terme "p\'{e}riph\'{e}rique SCSI g\'{e}n\'{e}rique". Pour trouver comment
dialoguer avec des p\'{e}riph\'{e}riques ATAPI vous pouvez lancer la commande
{\ttfamily cdrecord -scanbus}.




\subsection{Configurez le mat\'{e}riel}



\'{E}teignez votre ordinateur, et branchez le graveur de CDs sur le bus
SCSI.

Assurez-vous que le bus SCSI est termin\'{e} proprement et choisissez une
ID SCSI libre pour le graveur. Regardez le HOWTO SCSI Linux si vous
n'\^{e}tes pas s\^{u}r. Si vous \^{e}tes compl\`{e}tement d\'{e}pass\'{e}, demandez \`{a} un
expert.

Remettez le courant et regardez les messages que le BIOS du contr\^{o}leur
SCSI affiche imm\'{e}diatement apr\`{e}s l'allumage de l'ordinateur.  S'il ne
reconna\^{\i}t pas votre graveur, revenez \`{a} l'\'{e}tape pr\'{e}c\'{e}dente.  Vous
devriez voir un message comme celui-ci :

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




\subsection{Note sur le gravage de CDs sous Linux}



Au contraire d'autres rumeurs, le noyau Linux {\itshape n'a pas\/} besoin de
patch pour \'{e}crire sur des CDs. Bien que le fichier
{\ttfamily drivers/scsi/scsi.c} des sources du noyau contienne les lignes

\begin{tscreen}
\begin{verbatim}
                  case TYPE_WORM:
                  case TYPE_ROM:
                    SDpnt->writeable = 0;
\end{verbatim}
\end{tscreen}


ceci veut seulement dire que ces CDs et WORMs ne sont pas accessibles
en \'{e}criture \`{a} travers les p\'{e}riph\'{e}riques standards {\ttfamily /dev/sda} -
{\ttfamily /dev/sdh}, ce qui est normal.

Au lieu d'utiliser ces p\'{e}riph\'{e}riques, l'\'{e}criture des CDs se fait \`{a}
travers les {\itshape p\'{e}riph\'{e}riques SCSI g\'{e}n\'{e}riques\/} qui permettent
presque tout -- m\^{e}me l'\'{e}criture sur les CDs.




\subsection{Cr\'{e}ez les p\'{e}riph\'{e}riques g\'{e}n\'{e}riques\label{perifgen}}



Le {\itshape HOWTO SCSI Linux\/} dit \`{a} propos des p\'{e}riph\'{e}riques SCSI
g\'{e}n\'{e}riques :

\begin{quotation}
Le pilote de p\'{e}riph\'{e}rique SCSI g\'{e}n\'{e}rique fournit une interface pour
envoyer des commandes SCSI \`{a} tous les p\'{e}riph\'{e}riques SCSI -- disques,
lecteurs de bandes, CDROMs, m\'{e}canismes de changement de support, etc.
\end{quotation}


Parler des p\'{e}riph\'{e}riques g\'{e}n\'{e}riques en tant qu'{\itshape interfaces\/}
veut dire qu'ils fournissent une mani\`{e}re diff\'{e}rente d'acc\'{e}der au
mat\'{e}riel SCSI par rapport aux p\'{e}riph\'{e}riques normaux.

Cette mani\`{e}re d\'{e}tourn\'{e}e est obligatoire parce que les p\'{e}riph\'{e}riques
normaux sont faits pour lire des donn\'{e}es \`{a} l'\'{e}chelle du bloc \`{a} partir
d'un disque, d'un lecteur de bandes ou d'un lecteur de CD-ROM. D'un
autre c\^{o}t\'{e}, piloter un graveur de CD-ROM (ou un scanner) est plus
exotique, par exemple on doit pouvoir positionner le laser. Pour avoir
une impl\'{e}mentation propre (et par cons\'{e}quent rapide) de ces
p\'{e}riph\'{e}riques normaux, toutes ces actions exotiques doivent \^{e}tre
r\'{e}alis\'{e}es \`{a} travers les p\'{e}riph\'{e}riques SCSI g\'{e}n\'{e}riques.

Puisque l'on peut tout faire au mat\'{e}riel SCSI \`{a} travers les
p\'{e}riph\'{e}riques g\'{e}n\'{e}riques, ils ne sont pas limit\'{e}s \`{a} un usage
sp\'{e}cifique -- d'o\`{u} le nom {\itshape g\'{e}n\'{e}rique\/}.

D\'{e}placez-vous dans le r\'{e}pertoire {\ttfamily /dev} et v\'{e}rifiez la pr\'{e}sence
des p\'{e}riph\'{e}riques SCSI g\'{e}n\'{e}riques ; la commande {\ttfamily ls} devrait
montrer {\ttfamily sga} - {\ttfamily sgh} :

\begin{tscreen}
\begin{verbatim}
                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
\end{verbatim}
\end{tscreen}


Si vous n'avez pas ces fichiers de p\'{e}riph\'{e}riques, cr\'{e}ez-les en utilisant
le script {\ttfamily /dev/MAKEDEV} :



\begin{tscreen}
\begin{verbatim}
                bash> cd /dev/
                bash> ./MAKEDEV sg
\end{verbatim}
\end{tscreen}


Maintenant les fichiers de p\'{e}riph\'{e}riques devraient se montrer.




\subsection{Etablissez l'utilisation des p\'{e}riph\'{e}riques {\itshape SCSI g\'{e}n\'{e}rique\/} et {\itshape loopback\/}\label{utilisation}}



Le noyau Linux n\'{e}cessite un module qui lui donne la possibilit\'{e} de
g\'{e}rer les p\'{e}riph\'{e}riques SCSI g\'{e}n\'{e}riques. Si votre noyau courant
poss\`{e}de cette aptitude, elle devrait \^{e}tre list\'{e}e dans le
pseudo-fichier {\ttfamily /proc/devices} :

\begin{tscreen}
\begin{verbatim}
                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"
\end{verbatim}
\end{tscreen}


Vous devrez peut-\^{e}tre taper la commande {\ttfamily insmod sg}, {\ttfamily insmod
loop} ou {\ttfamily insmod sr\_mod} pour charger le module dans le
noyau.  Re-v\'{e}rifiez apr\`{e}s avoir essay\'{e} ceci.

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

\begin{tscreen}
\begin{verbatim}
                 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
\end{verbatim}
\end{tscreen}


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




\subsection{Construire et installer le noyau\label{noyau}}



Si vous avez des questions concernant ceci, la lecture sugg\'{e}r\'{e}e est le
HOWTO Noyau Linux. De plus, votre distribution Linux devrait contenir de
la documentation sur ce probl\`{e}me.

(Astuce : pendant la recompilation, vous pouvez continuer sur les \'{e}tapes 
\ref{createdev}
et au-del\`{a})




\subsection{Red\'{e}marrer 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 p\'{e}riph\'{e}riques SCSI
peut \^{e}tre r\'{e}affich\'{e}e avec la commande {\ttfamily dmesg} :

\begin{tscreen}
\begin{verbatim}
        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
\end{verbatim}
\end{tscreen}


On a montr\'{e} ci-dessus uniquement la partie des messages
d'initialisation qui rapportent la d\'{e}tection des p\'{e}riph\'{e}riques SCSI
pr\'{e}sents physiquement.




\subsection{Cr\'{e}ation des {\itshape p\'{e}riph\'{e}riques loopback\/}\label{createdev}}



D\'{e}placez-vous dans le r\'{e}pertoire {\ttfamily /dev} et v\'{e}rifiez la pr\'{e}sence
des {\itshape p\'{e}riph\'{e}riques loopback\/}. Ce n'est pas grave si vous n'avez
pas ces p\'{e}riph\'{e}riques, mais c'est pratique si vous les avez (Voir la
section \ref{test}). Si vous les avez d\'{e}j\`{a}, la commande
{\ttfamily ls} devrait montrer {\ttfamily loop0} - {\ttfamily loop7} :

\begin{tscreen}
\begin{verbatim}
                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
\end{verbatim}
\end{tscreen}


Si vous n'avez pas ces fichiers de p\'{e}riph\'{e}riques, cr\'{e}ez-les en utilisant
le script {\ttfamily /dev/MAKEDEV} :

\begin{tscreen}
\begin{verbatim}
                bash> cd /dev/
                bash> ./MAKEDEV loop
\end{verbatim}
\end{tscreen}


La derni\`{e}re commande ne r\'{e}ussit que si vous avez le module
{\ttfamily loop} dans votre noyau (voir la section \ref{utilisation}
pour la manipulation des modules). Si {\ttfamily insmod loop} ne donne
rien, vous devez attendre que le nouveau noyau soit correctement
install\'{e} (voir \ref{noyau}.




\subsection{Obtenez le logiciel pour graver les CDs\label{logiciels}}






\subsubsection{Utilitaires en ligne de commande}



Le paquetage suivant est obligatoire pour g\'{e}n\'{e}rer des maquettes de CD-Rs :

\begin{quotation}
\url{ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs/}{}
(mkisofs)\url{ftp://ftp.ge.ucl.ac.uk/pub/mkhfs}{} (mkhybrid)

\end{quotation}


Selon le mod\`{e}le de votre graveur de CDs (voir \ref{supportes}),
l'un des logiciels suivants est n\'{e}cessaire pour \'{e}crire les maquettes
sur les CD-Rs :

\begin{quotation}
\url{ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/}{} (cdrecord)\url{ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/}{} (cdwrite)

\end{quotation}


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

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

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

\begin{quotation}
\url{http://lidar.ssec.wisc.edu/~forrest/}{}
\end{quotation}


Si vous utilisez un noyau ant\'{e}rieur \`{a} 2.0.31, vous aurez envie de
patcher {\ttfamily mkisofs} pour contourner un bogue du code du syst\`{e}me
de fichiers de Linux. La distribution Debian fournit un patch pour la
version 1.05 de {\ttfamily mkisofs} qui lui ajoute l'option {\ttfamily -K} (voir
\ref{iso}) ; il est disponible sur

\begin{quotation}
\url{ftp://ftp.debian.org/pub/debian/rex/source/misc/mkisofs\_1.11-1.diff.gz}{}
\end{quotation}


Ce patch n'est n\'{e}cessaire que si vous voulez monter l'image du CD \`{a}
travers le p\'{e}riph\'{e}rique loopback (voir \ref{test}).




\subsubsection{Une interface utilisateur graphique (optionnelle)}



X-CD-Roast est un programme de gravage de CDs fonctionnant enti\`{e}rement
sous X, et succ\`{e}de \`{a} {\ttfamily cdwtools-0.93}. Il est disponible sur

\begin{quotation}
\url{http://www.fh-muenchen.de/home/ze/rz/services/projects/xcdroast/e\_overview.html}{}
\end{quotation}


En ce moment X-CD-Roast est bas\'{e} sur une version patch\'{e}e de
cdwrite-2.0 et poss\`{e}de par cons\'{e}quent les m\^{e}mes caract\'{e}ristiques (voir
\ref{possibil}). Les versions futures pourraient \^{e}tre bas\'{e}es sur
le logiciel de remplacement cdrecord.




\section{\'{E}crire un CD\label{ecrire_cd}}



``Si en fum\'{e}e tu te transformes, je ne cesserai de jouer pendant que
tu te consumes.'' (L'empereur N\'{e}ron en \'{e}crivant ses propres CDs
classiques ; il n'avait rien compris)

En g\'{e}n\'{e}ral l'\'{e}criture d'un CD se fait en deux \'{e}tapes :

\begin{itemize}
\item r\'{e}colter les logiciels d\'{e}sir\'{e}s et les empaqueter en un grand
fichier avec {\ttfamily mkisofs/mkhybrid} ;
\item \'{e}crire le grand fichier sur le CD enregistrable avec
{\ttfamily cdwrite} ou {\ttfamily cdrecord}.
\end{itemize}


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




\subsection{D\'{e}terminez \`{a} quel p\'{e}riph\'{e}rique SCSI g\'{e}n\'{e}rique le graveur est attach\'{e}}



(Veuillez noter : la fa\c{c}on actuelle de nommage des p\'{e}riph\'{e}riques SCSI
sous Linux est compliqu\'{e}e \`{a} souhait et pas assez fiable. Le fait que
je la d\'{e}crive ici en maints d\'{e}tails ne devrait pas \^{e}tre mal interpr\'{e}t\'{e}
comme la confirmation de cette \'{e}tat de faits. Les personnes poss\'{e}dant
un graveur de CD-ROMs ATAPI peuvent essayer "cdrecord -scanbus" pour
d\'{e}tecter le bon p\'{e}riph\'{e}rique et sauter le reste de cette section.)

Apr\`{e}s avoir suivi toutes les \'{e}tapes du dernier chapitre, votre syst\`{e}me
devrait \^{e}tre capable de g\'{e}rer le gravage de CDs. Cette section peut \^{e}tre
utilis\'{e}e comme preuve que tout fonctionne comme pr\'{e}vu.

Lancez la commande {\ttfamily dmesg}. Elle devrait rapporter les messages
du noyau Linux, avec ceux imprim\'{e}s lors du d\'{e}marrage (limitation :
seulement les 200 derniers) et contient des informations sur le
graveur de CDs connect\'{e}s au bus SCSI.

Exemple simple :

\begin{tscreen}
\begin{verbatim}
              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
\end{verbatim}
\end{tscreen}


Cette machine poss\`{e}de quatre p\'{e}riph\'{e}riques SCSI connect\'{e}s (vous ne
pouvez pas le voir donc je vous le dis), avec les ID SCSI allant de 0
\`{a} 3. Le graveur est le quatri\`{e}me p\'{e}riph\'{e}rique SCSI physiquement
pr\'{e}sent et doit donc \^{e}tre connect\'{e} sur {\ttfamily /dev/sgd} (le quatri\`{e}me
p\'{e}riph\'{e}rique SCSI g\'{e}n\'{e}rique quand on compte \`{a} partir de la lettre
a). Dans ce cas, la commande

\begin{tscreen}
\begin{verbatim}
            cdwrite  --eject  --device /dev/sgd
\end{verbatim}
\end{tscreen}


ouvre le tiroir et est un test pour voir si tout fonctionne
correctement. Un exemple plus compliqu\'{e} :

\begin{tscreen}
\begin{verbatim}
            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.
\end{verbatim}
\end{tscreen}


Dans cet exemple deux contr\^{o}leurs SCSI h\'{e}bergent un p\'{e}riph\'{e}rique SCSI
chacun. Quel g\^{a}chis (ils sont capables d'h\'{e}berger jusqu'\`{a} sept
p\'{e}riph\'{e}riques chacun). Ce n'est pas ma configuration alors arr\^{e}tez de
demander si j'ai trop d'argent... Cependant dans le but d'\^{e}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
associ\'{e}e au premier p\'{e}riph\'{e}rique SCSI g\'{e}n\'{e}rique {\ttfamily /dev/sga} parce
que c'est le premier p\'{e}riph\'{e}rique SCSI physiquement pr\'{e}sent que Linux a
d\'{e}tect\'{e}. J'esp\`{e}re que ceci montre clairement que l'ID SCSI d'un
p\'{e}riph\'{e}rique n'a rien \`{a} voir avec le p\'{e}riph\'{e}rique g\'{e}n\'{e}rique associ\'{e}.

Deux questions restent en suspens : qu'arrive-t-il si vous prenez le
mauvais p\'{e}riph\'{e}rique ? Si vous ne sp\'{e}cifiez ni l'option
"--{\(<\)}MANUFACTURER{\(>\)}" ni n'\'{e}crivez de donn\'{e}es sur le p\'{e}riph\'{e}rique,
en g\'{e}n\'{e}ral un message d'avertissement est affich\'{e} et rien de plus :

\begin{tscreen}
\begin{verbatim}
                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
\end{verbatim}
\end{tscreen}


Dans ce cas le p\'{e}riph\'{e}rique {\ttfamily /dev/sbg} est un disque dur SCSI
(d'IBM).

Si vous \'{e}crivez des donn\'{e}es sur le mauvais p\'{e}riph\'{e}rique, vous en \'{e}crasez
le contenu d'origine et endommagerez votre syst\`{e}me de fa\c{c}on probablement
irr\'{e}m\'{e}diable. Faites attention, cela m'est d\'{e}j\`{a} arriv\'{e} par accident.




\subsection{Rassembler les logiciels}



En g\'{e}n\'{e}ral cela prend plus de temps qu'on ne le croit ; Rappelez-vous
que les fichiers manquants ne pourront pas \^{e}tre ajout\'{e}s une fois que
le CD sera \'{e}crit. :-)

Gardez aussi \`{a} l'esprit qu'un certain montant de l'espace libre d'un CD
est utilis\'{e} pour stocker les informations sur le syst\`{e}me de fichiers ISO
9660 (en g\'{e}n\'{e}ral quelques Mo).




\subsection{Stocker les donn\'{e}es sur un CD}



Le terme {\itshape ISO 9660\/} se rapporte au format dans lequel les
donn\'{e}es sont stock\'{e}es sur le CD Pour \^{e}tre plus pr\'{e}cis : c'est le
syst\`{e}me de fichiers sur le CD.

Bien s\^{u}r, l'apparence des fichiers stock\'{e}s dans ce format est unifi\'{e}e
par le noyau Linux comme pour tout autre syst\`{e}me de fichiers. Par
cons\'{e}quent, si vous montez un CD dans l'arborescence des r\'{e}pertoires,
vous ne pouvez pas distinguer son contenu des autres fichiers... \`{a}
part le fait qu'on ne peut \'{e}crire dessus... m\^{e}me pas pour root. :-)
(Le m\'{e}canisme utilis\'{e} pour unifier l'apparence des fichiers est appel\'{e}
{\itshape syst\`{e}me de fichiers virtuel\/}, en abr\'{e}g\'{e} {\itshape VFS\/}.

Les possibilit\'{e}s du syst\`{e}me de fichiers ISO 9660 ne sont pas si riches
compar\'{e}es \`{a} celles du syst\`{e}me de fichiers ext2 qui est normalement
utilis\'{e} sous Linux.  Par contre, le CD n'est inscriptible qu'une seule
fois et certaines possibilit\'{e}s n'ont m\^{e}me pas de sens. Les limitations
du syst\`{e}me de fichiers ISO 9660 sont :

\begin{itemize}
\item uniquement huit niveaux de sous-r\'{e}pertoires autoris\'{e}s (compt\'{e}s \`{a}
partir du r\'{e}pertoire racine du CD) (utilisez les extensions RockRidge
pour augmenter ce nombre) ;
\item longueur maximale des noms de fichiers : 32 caract\`{e}res ;
\item capacit\'{e} de 650 Mo.
\end{itemize}





\subsection{Cr\'{e}er un syst\`{e}me de fichiers ISO 9660\label{iso}}



Avant de pouvoir utiliser un support de stockage (par exemple une
disquette, un disque dur ou un CD), il doit avoir un syst\`{e}me de
fichiers (en langage DOS : \^{e}tre format\'{e}). Ce syst\`{e}me de fichiers est
responsable de l'organisation et de l'incorporation des fichiers qui
devraient \^{e}tre stock\'{e}s sur le support.

Bon, un CD inscriptible ne l'est qu'une fois et donc si nous y
\'{e}crivons un syst\`{e}me de fichiers vide, il serait format\'{e} -- mais
resterait pour l'\'{e}ternit\'{e} compl\`{e}tement vide. :-)

Nous avons donc besoin d'un outil qui cr\'{e}e le syst\`{e}me de fichiers en
m\^{e}me temps qu'il copie les fichiers sur le CD. Cet outil s'appelle
{\ttfamily mkisofs}. Une utilisation simple ressemble \`{a} ceci :

\begin{tscreen}
\begin{verbatim}
                 mkisofs  -r  -o cd_image   collection_privee/
                              `---------'   `----------------'
                                   |                |
                   ecrire la sortie vers    prendre repertoire comme entree
\end{verbatim}
\end{tscreen}


L'option '-r' positionne les permissions de tous les fichiers pour
\^{e}tre lisibles publiquement sur le CD et permet les extensions Rock
Ridge. C'est ce que l'on veut en g\'{e}n\'{e}ral et l'utilisation de cette
option est recommand\'{e}e jusqu'\`{a} ce que vous sachiez ce que vous
faites. (Astuce : sans le '-r', le point de montage prend les
permissions de {\ttfamily collection\_privee} !)

Si vous utilisez un noyau Linux ant\'{e}rieur \`{a} 2.0.31, vous devriez
ajouter l'option '-K' pour contourner un bogue du code du syst\`{e}me de
fichiers. Vous avez besoin de la version patch\'{e}e de mkisofs pour
cela. Cette option est \'{e}quivalente \`{a} l'option '-P' de
{\ttfamily cdwrite}. Veuillez regarder la page de manuel de
{\ttfamily mkisofs} pour plus de d\'{e}tails.

{\ttfamily mkisofs} essaiera de convertir tous les noms de fichiers au
format 8.3 utilis\'{e} par DOS pour assurer une compatibilit\'{e} maximale. En
cas de conflits de noms (des fichiers diff\'{e}rents qui auraient le m\^{e}me
nom 8.3), des num\'{e}ros sont utilis\'{e}s dans les noms de fichiers et les
informations sur le nom de fichier choisi sont imprim\'{e}es sur l'erreur
standard (en g\'{e}n\'{e}ral l'\'{e}cran).

{\bfseries Ne paniquez pas :}

\begin{quotation}
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.).
\end{quotation}


Maintenant vous pouvez vous demander pourquoi la sortie de
{\ttfamily mkisofs} n'est pas envoy\'{e}e directement au p\'{e}riph\'{e}rique de
gravage. Ceci est d\^{u} \`{a} deux raisons :

\begin{itemize}
\item {\ttfamily mkisofs} ne connait rien sur la mani\`{e}re de piloter les
graveurs de CD (voir la section \ref{perifgen}) ;
\item On ne peut pas compter sur cette m\'{e}thode (voir \ref{faq}).
\end{itemize}


La synchronisation d'un graveur de CD est un point tellement critique
que nous ne le remplissons pas directement avec {\ttfamily mkisofs}
(rappelez-vous que Linux n'est pas un syst\`{e}me d'exploitation en temps
r\'{e}el et que les t\^{a}ches peuvent \^{e}tre mal temporis\'{e}es). \`{A} la place, il
est recommand\'{e} de stocker la sortie de {\ttfamily mkisofs} dans un
fichier s\'{e}par\'{e} sur le disque dur. Ce fichier est alors une image
parfaite du CD \`{a} venir et est en fait \'{e}crite sur le CD avec l'outil
{\ttfamily cdwrite} dans un deuxi\`{e}me temps.

L'image parfaite est stock\'{e}e dans un fichier \'{e}norme, et vous avez donc
besoin de la m\^{e}me quantit\'{e} d'espace disque libre que ce que prennent
vos logiciels rassembl\'{e}s. C'est le probl\`{e}me.

On pourrait penser \`{a} cr\'{e}er une partition suppl\'{e}mentaire pour cela et
\'{e}crire l'image sur cette partition plut\^{o}t que dans un fichier. Je suis
contre cette strat\'{e}gie parce que si vous \'{e}crivez sur la mauvaise
partition (\`{a} cause d'une faute de frappe), vous pouvez perdre votre
syst\`{e}me Linux en entier. De plus, c'est du g\^{a}chis d'espace disque
parce que l'image du CD repr\'{e}sente des donn\'{e}es temporaires que l'on
pourra effacer apr\`{e}s avoir grav\'{e} le CD.




\subsection{Tester l'image CD\label{test}}



Linux a la possibilit\'{e} de monter des fichiers comme si c'\'{e}tait des
partitions de disques. Ceci est tr\`{e}s utile pour v\'{e}rifier si la
structure des r\'{e}pertoires de l'image du CD est bonne. Pour monter le
fichier {\ttfamily cd\_image} cr\'{e}\'{e} ci-dessus dans le r\'{e}pertoire
{\ttfamily /cdrom}, envoyez la commande

\begin{tscreen}
\begin{verbatim}
        mount -t iso9660 -o ro,loop=/dev/loop0 cd_image /cdrom
\end{verbatim}
\end{tscreen}


Vous pouvez maintenant inspecter les fichiers sous {\ttfamily /cdrom} --
ils apparaissent exactement comme ils le seraient sur un vrai CD. Pour
d\'{e}monter l'image CD, tapez simplement {\ttfamily umount
/cdrom}. Attention : si vous n'avez pas utilis\'{e} l'option '-K' avec
mkisofs, le dernier fichier sur {\ttfamily /cdrom} peut ne pas \^{e}tre
enti\`{e}rement lisible.

Note :

\begin{quotation}
certaines versions anciennes de {\ttfamily mount} ne savent pas manipuler
les p\'{e}riph\'{e}riques loopback. Si vous avez une version de {\ttfamily mount}
si vieille que \c{c}a, c'est une indication pour mettre votre syst\`{e}me
Linux \`{a} jour.
Plusieurs personnes m'ont d\'{e}j\`{a} sugg\'{e}r\'{e} de mettre des informations sur
la mani\`{e}re d'obtenir les derni\`{e}res versions de mount dans ce HOWTO.
Je refuse toujours de le faire. Si votre distribution Linux contient
un vieux {\ttfamily mount}, dites-leur que c'est une erreur. Si votre
distribution Linux se met \`{a} jour difficilement, dites-leur que c'est
une erreur.

Si je devais donner toutes les informations n\'{e}cessaires pour
contourner les erreurs des distributions Linux mal faites, ce HOWTO
serait beaucoup plus gros et dur \`{a} lire.

\end{quotation}





\subsection{Remarques sur les disques CD R\'{e}inscriptibles vierges}



Le magazine informatique allemand "c't" donne une liste de trucs
concernant les CD vierges dans leur num\'{e}ro de novembre 1996 :

\begin{itemize}
\item les disques "sans-noms" (noname) ne sont en g\'{e}n\'{e}ral pas de la
plus grande qualit\'{e} et il vaut mieux ne pas les utiliser ;
\item si un CD r\'{e}inscriptible est d\'{e}fectueux, il y a des chances que
\c{c}a soit la m\^{e}me chose pour le paquet entier (si vous en avez achet\'{e}
plus d'un \`{a} la fois) ; vous avez peut-\^{e}tre de la chance et pouvez au
moins utiliser les 500 premiers Mo de tels CDs...
\item ne touchez pas les CD sur leur face brillante avant l'\'{e}criture.
\end{itemize}





\subsection{\'{E}crivez l'image du CD sur un CD}



Plus grand chose \`{a} faire. Avant de vous montrer la derni\`{e}re commande,
laissez-moi vous avertir que les graveurs de CDs doivent \^{e}tre
aliment\'{e}s par un flot continu de donn\'{e}es parce qu'ils n'ont que de
petits caches de donn\'{e}es. Le processus d'\'{e}criture de l'image CD sur le
CD ne doit donc pas \^{e}tre interrompu ou bien le r\'{e}sultat est un CD
corrompu.

Pour \^{e}tre s\^{u}r que rien ne vient interrompre le processus, virez tous
les utilisateurs de votre syst\`{e}me et d\'{e}branchez le c\^{a}ble
Ethernet... Lisez le {\itshape Bastard Operator From Hell\/} pour en
apprendre sur la bonne attitude \`{a} adopter. ;-)

Si vous \^{e}tes pr\^{e}t mentalement, mettez une blouse noire, multipliez l'ID
SCSI du graveur de CD par son num\'{e}ro de version et allumez autant de
bougies, r\'{e}citez deux strophes de la FAQ ASR et finalement tapez :

\begin{tscreen}
\begin{verbatim}
        cdwrite --device /dev/sgd cd_image
\end{verbatim}
\end{tscreen}


ou bien

\begin{tscreen}
\begin{verbatim}
        cdrecord -v speed=2 dev=4,0 cd_image
\end{verbatim}
\end{tscreen}


selon le logiciel que vous voulez utiliser. Vous devez bien s\^{u}r
remplacer le p\'{e}riph\'{e}rique d'exemple par le p\'{e}riph\'{e}rique SCSI auquel
votre graveur de CD est connect\'{e}.

Veuillez noter qu'aucun graveur ne peut repositionner son laser et
continuer au point o\`{u} il a \'{e}t\'{e} d\'{e}rang\'{e}. Par cons\'{e}quent toute vibration
forte ou m\^{e}me un choc d\'{e}truira compl\`{e}tement le CD que vous \^{e}tes en
train de graver.




\subsection{Si quelque chose va mal...}



...rappelez-vous que vous pouvez toujours utiliser les CD rat\'{e}s comme
dessous de bouteilles. :-)




\section{Questions fr\'{e}quemment pos\'{e}es, avec les r\'{e}ponses\label{faq}}






\subsection{"\`{A} quel point le processus de br\^{u}lure est-il sensible ?"}



R\'{e}ponse : cela d\'{e}pend de votre graveur. Les graveurs modernes devraient
avoir un tampon de donn\'{e}es de 1 Mo \`{a} peu pr\`{e}s et peuvent tenir une \`{a} deux
secondes sans donn\'{e}es. Voyez les manuels ou demandez au fabricant si vous
voulez conna\^{\i}tre les d\'{e}tails. Ind\'{e}pendamment de la taille de ces tampons,
vous devez garantir un d\'{e}bit constant de 300 Ko/s ou 600 Ko/s sur une
longue p\'{e}riode.

Les processus qui utilisent beaucoup le disque, comme la mise \`{a} jour
de la base de donn\'{e}es {\itshape locate\/} diminuent le d\'{e}bit maximum et
abimeront certainement le CD ; vous feriez mieux de v\'{e}rifier que de
tels processus ne sont pas d\'{e}marr\'{e}s par {\ttfamily cron}, {\ttfamily at} ou
{\ttfamily anacron} pendant que vous gravez des CD-Rs.

Par contre, certaines personnes m'ont dit qu'elles avaient compil\'{e} un
noyau pendant le gravage d'un CD sans aucun probl\`{e}me. Vous aurez bien s\^{u}r
besoin d'une machine rapide pour de telles exp\'{e}riences.




\subsection{"La fragmentation a-t-elle des mauvais effets sur le flot ?"}



La fragmentation est en g\'{e}n\'{e}ral tellement basse qu'on ne remarque pas son
impact.

Si vous n'en \^{e}tes pas certain, regardez les messages imprim\'{e}s lors du
d\'{e}marrage, le pourcentage de fragmentation est indiqu\'{e} lors de la
v\'{e}rification du syst\`{e}me de fichiers. Vous pouvez v\'{e}rifier cette valeur
avec la commande tr\`{e}s dangereuse

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


Dans cet exemple, la fragmentation semble \^{e}tre tr\`{e}s grande -- mais il n'y
a que 73 fichiers tr\`{e}s petits sur ce syst\`{e}me de fichiers (utilis\'{e} sur
{\ttfamily /tmp})
et la valeur {\itshape n'est pas\/} alarmante.




\subsection{"Est-il possible de stocker l'image CD sur un syst\`{e}me de fichier UMSDOS~?"}



Oui. Le seul syst\`{e}me de fichiers ni assez fiable ni assez rapide pour
graver des CD est NFS ({\itshape Network FileSystem\/}, syst\`{e}me de
fichiers par le r\'{e}seau).

J'utilise moi-m\^{e}me UMSDOS pour partager l'espace disque entre Linux et
DOS/Win sur un PC (486/66) d\'{e}di\'{e} au gravage des CDs. 




\subsection{"Y a-t-il un moyen de passer outre les limitations de ISO 9660 ?"\label{ext}}



Oui. Vous pouvez mettre le syst\`{e}me de fichiers qui vous plait sur le CD.
Mais certains syst\`{e}mes d'exploitation ne pourront rien en faire.

Voici la recette :

\begin{itemize}
\item cr\'{e}ez un fichier vide d'une taille de 650 Mo :

\begin{tscreen}
\begin{verbatim}
                dd if=/dev/zero of="fic_vide" bs=1024k count=650
\end{verbatim}
\end{tscreen}

\item cr\'{e}ez un syst\`{e}me de fichiers ext2 sur ce fichier :

\begin{tscreen}
\begin{verbatim}
                bash$ /sbin/mke2fs fic_vide
                fic_vide is not a block special device.
                Proceed anyway? (y,n) y
\end{verbatim}
\end{tscreen}


(NdT : {\ttfamily mke2fs} demande confirmation de cr\'{e}er le syst\`{e}me de fichiers
sur un fichier normal.) ;
\item montez ce fichier vide \`{a} l'aide du p\'{e}riph\'{e}rique loopback :

\begin{tscreen}
\begin{verbatim}
                mount -t ext2 -o loop=/dev/loop1 fic_vide /mnt
\end{verbatim}
\end{tscreen}

\item copiez les fichiers vers {\ttfamily /mnt} et d\'{e}montez-le apr\`{e}s ;
\item utilisez {\ttfamily cdwrite} ou {\ttfamily cdrecord} sur fic\_vide (qui
n'est plus vide) comme si c'\'{e}tait une image ISO 9660.
\end{itemize}


Si vous voulez cr\'{e}er une entr\'{e}e dans {\ttfamily /etc/fstab} pour un tel CD,
d\'{e}sactivez sa v\'{e}rification, par exemple :

\begin{tscreen}
\begin{verbatim}
        /dev/cdrom      /cdrom  ext2    defaults,ro     0  0
\end{verbatim}
\end{tscreen}


Le premier 0 veut dire "ne me compte pas dans les dumps", la deuxi\`{e}me
(importante) veut dire "ne v\'{e}rifie pas les erreurs au d\'{e}marrage" (fsck
n'arrivera pas \`{a} v\'{e}rifier les erreurs \'{e}ventuelles sur le CD).




\subsection{"Comment lire et \'{e}crire des CDs audio ?"}



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

\begin{quotation}
\url{ftp://sunsite.unc.edu/pub/Linux/apps/sound/cds/cdda2wav0.71.src.tar.gz}{}
\url{ftp://sunsite.unc.edu/pub/Linux/apps/sound/convert/sox-11gamma-cb3.tar.gz}{}
\end{quotation}


{\ttfamily cdda2wav} vous permet de prendre un intervalle sp\'{e}cifique (ou
une plage enti\`{e}re) de votre CD audio et le convertit en un fichier
.wav.  {\ttfamily sox} convertit les fichiers wav dans le format cdda (CD
audio) pour qu'on puisse l'\'{e}crire sur le CD-R avec {\ttfamily cdwrite}.




\subsection{"Comment rechercher des p\'{e}riph\'{e}riques SCSI apr\`{e}s le d\'{e}marrage ?"}



Le fichier {\ttfamily drivers/scsi/scsi.c} contient les informations
suivantes (NdT : traduites en fran\c{c}ais) :

\begin{tscreen}
\begin{verbatim}
/*
 * 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.
 */
\end{verbatim}
\end{tscreen}





\subsection{"Est-il possible de faire une copie exacte d'un CD de donn\'{e}es ?"}



Oui. Mais vous devriez \^{e}tre conscient du fait que toute erreur faite
en lisant l'original (due \`{a} la poussi\`{e}re ou \`{a} des rayures) donnera une
copie d\'{e}fectueuse.

Premier cas : vous avez un graveur de CDs et un lecteur de CD-ROM
s\'{e}par\'{e}. En tapant la commande :

\begin{tscreen}
\begin{verbatim}
cdwrite -v -D /dev/sgc --pad -b  $(isosize  /dev/scd0) /dev/scd0
\end{verbatim}
\end{tscreen}


ou

\begin{tscreen}
\begin{verbatim}
cdrecord -v dev=3,0 speed=2 -isosize /dev/scd0
\end{verbatim}
\end{tscreen}


vous lisez le flot de donn\'{e}es du lecteur de CD-ROM attach\'{e} \`{a}
{\ttfamily /dev/scd0} et l'\'{e}crivez directement sur le graveur par
{\ttfamily /dev/sgc}.

Deuxi\`{e}me cas : vous n'avez pas de lecteur de CD-ROM s\'{e}par\'{e}. Vous devez
utiliser le graveur pour lire le CD-ROM comme ceci :

\begin{tscreen}
\begin{verbatim}
dd if=/dev/scd0 of=cdimage bs=1c count=`isosize  /dev/scd0`
\end{verbatim}
\end{tscreen}


Cette commande est \'{e}quivalente au r\'{e}sultat de {\ttfamily mkisofs}, vous
devez continuer tel que c'est d\'{e}crit \`{a} la section~\ref{ecrire_cd}. Veuillez noter que cette m\'{e}thode ne fonctionnera pas
sur des CDs audio !




\subsection{"Linux peut-il lire des CDs Joliet ?"}



Oui. Mais vous devez patcher le noyau et le recompiler. Pour plus de
d\'{e}tails, voyez

\begin{quotation}
\url{http://www-plateau.cs.berkeley.edu/people/chaffee/joliet.html}{}
\end{quotation}





\subsection{"Comment puis-je lire/monter des CD-ROMs avec le graveur de CDs ?"\label{montercd}}



Comme vous le feriez avec un lecteur de CD-ROM normal. Aucune astuce
l\`{a}-dessous. Notez que vous devez utiliser les p\'{e}riph\'{e}riques {\ttfamily scd}
(CD-ROM SCSI) pour monter les CDs en lecture. Voici un exemple pour
{\ttfamily /etc/fstab} :

\begin{tscreen}
\begin{verbatim}
        /dev/scd0       /cdrom  iso9660 ro,user,noauto  0  0
\end{verbatim}
\end{tscreen}





\section{D\'{e}pannage}






\subsection{\c{C}a ne marche pas : sous Linux\label{marchepa}}



Veuillez d'abord v\'{e}rifier que le graveur fonctionne avec un autre
syst\`{e}me d'exploitation. Concr\`{e}tement :

\begin{itemize}
\item Est-ce que le contr\^{o}leur reconnait le graveur comme un
p\'{e}riph\'{e}rique SCSI ?
\item Est-ce que le logiciel pilote reconnait le graveur ?
\item Est-il possible de fabriquer un CD avec les logiciels fournis ?
\end{itemize}


Si "\c{c}a ne fonctionne pas" m\^{e}me sous d'autres syst\`{e}mes d'exploitation,
vous avez un conflit mat\'{e}riel ou un mat\'{e}riel d\'{e}fectueux.




\subsection{\c{C}a ne marche pas : sous DOS et assimil\'{e}s}



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




\subsection{Erreurs SCSI pendant la phase de gravage}



Il est fort probable que ces erreurs soient dues \`{a} :

\begin{itemize}
\item possibilit\'{e} de d\'{e}connection/reconnection (scatter/gather)
manquante sur le bus SCSI ;
\item mat\'{e}riel pas assez refroidi ;
\item mat\'{e}riel d\'{e}fectueux (devrait \^{e}tre d\'{e}tect\'{e} par \ref{marchepa}).
\end{itemize}


Sous des circonstances vari\'{e}es, les p\'{e}riph\'{e}riques SCSI se d\'{e}connectent
et se reconnectent par eux-m\^{e}mes (de mani\`{e}re \'{e}lectronique) du bus
SCSI. Si cette possibilit\'{e} n'est pas disponible (v\'{e}rifiez le
contr\^{o}leur et les param\`{e}tres du noyau), certains graveurs ont des
probl\`{e}mes pendant le gravage ou le fixage du CD-R.

En particulier, le pilote SCSI NCR 53c7,8xx a cette possibilit\'{e}
d\'{e}sactiv\'{e}e par d\'{e}faut, et vous devriez donc v\'{e}rifier ceci en premier :

\begin{tscreen}
\begin{verbatim}
        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
\end{verbatim}
\end{tscreen}





\section{Remerciements}



\begin{description}


\item[Andreas Erdmann {\(<\)}erdmann@zpr.uni-koeln.de{\(>\)}] \mbox{}

a fourni
l'exemple du graveur Yamaha ;



\item[Art Stone {\(<\)}stone@math.ubc.ca{\(>\)}] \mbox{}

a eu l'id\'{e}e de mettre des
syst\`{e}mes de fichiers non ISO 9660 sur un CD ;



\item[Bartosz Maruszewski {\(<\)}B.Maruszewski@zsmeie.torun.pl{\(>\)}] \mbox{}

a
rapport\'{e} des erreurs de prononciation ;



\item[Bernhard Gubanka {\(<\)}beg@ipp-garching.mpg.de{\(>\)}] \mbox{}

a remarqu\'{e} le besoin
d'une version r\'{e}cente de mount pour utiliser le p\'{e}riph\'{e}rique loopback
;



\item[Brian H. Toby] \mbox{}

a fignol\'{e} l'orthographe ;



\item[Bruce Perens {\(<\)}bruce@pixar.com{\(>\)}] \mbox{}

a donn\'{e} des informations
sur la liste de distribution cdwrite ;



\item[Dale Scheetz {\(<\)}dwarf@polaris.net{\(>\)}] \mbox{}

a aid\'{e} \`{a} am\'{e}liorer la
section sur la cr\'{e}ation de l'image du CD ;



\item["Don H. Olive" {\(<\)}don@andromeda.campbellsvil.edu{\(>\)}] \mbox{}

a donn\'{e}
l'URL de l'outil mkhybrid ;



\item[Edwin H. Kribbs] \mbox{}

a remarqu\'{e} que '-K' n\'{e}cessite de patcher mkisofs
;



\item[Gerald C Snyder {\(<\)}gcsnyd@loop.com{\(>\)}] \mbox{}

a test\'{e} l'\'{e}criture d'un
CD-ROM ext2 (voir \ref{ext}) ;



\item[Ingo Fischenisch {\(<\)}ingo@mi.uni-koeln.de{\(>\)}] \mbox{}

a fourni l'exemple
des deux contr\^{o}leurs h\'{e}bergeant deux p\'{e}riph\'{e}riques ;



\item[Janne Himanka {\(<\)}shem@oyt.oulu.fi{\(>\)}] \mbox{}

pointeur vers le patch du
noyau pour lire des CDs Joliet ;



\item[Joerg Schilling {\(<\)}schilling@fokus.gmd.de{\(>\)}] \mbox{}

informations sur
cdrecord ;



\item[Jos van Geffen {\(<\)}jos@tnj.phys.tue.nl{\(>\)}] \mbox{}

a not\'{e} le probl\`{e}me
dans \ref{montercd} ;



\item[Markus Dickebohm {\(<\)}m.dickebohm@uni-koeln.de] \mbox{}



\item[Pierre Pfister {\(<\)}pp@uplift.fr{\(>\)}] \mbox{}

a aid\'{e} \`{a} d\'{e}velopper la
recette des copies exactes ;



\item[Rick Cochran {\(<\)}rick@msc.cornell.edu{\(>\)}] \mbox{}

indice sur dis-/reconnect
d\'{e}sactiv\'{e} par d\'{e}faut dans le pilote NCR ;



\item[Stephan Noy {\(<\)}stnoy@mi.uni-koeln.de{\(>\)}] \mbox{}

des informations et
son exp\'{e}rience sur l'\'{e}criture de CDs audio ;



\item[Stephen Harris {\(<\)}sweh@mpn.com{\(>\)}] \mbox{}

a donn\'{e} des indices sur
l'\'{e}criture des CDs audio ;



\item[The Sheepy One {\(<\)}kero@escape.com{\(>\)}] \mbox{}

a sugg\'{e}r\'{e} l'utilisation
des CD rat\'{e}s en dessous de bouteilles ;



\item[Volker Kulhmann {\(<\)}kuhlmav@elec.canterbury.ac.nz{\(>\)}] \mbox{}

a remarqu\'{e}
que le paquetage {\ttfamily cdwrite} ne contient pas {\ttfamily mkisofs}.



\end{description}


Fin du HOWTO graveur de CDs sous Linux



\end{document}
