<HTML> <HEAD> <TITLE>Préparez votre machine Linux pour graver des CD-ROMs</TITLE> </HEAD> <BODY> <H1>2. <A NAME="s2"></A>Préparez votre machine Linux pour graver des CD-ROMs</H1> <P> <A HREF="CD-Writing.html#toc2">Contenu de cette section</A></P> <P></P> <P></P> <H2>2.1 <A NAME="ss2.1"></A> Configurez le matériel</H2> <P></P> <P>Éteignez votre ordinateur, et branchez le graveur de CDs sur le bus SCSI. Veuillez noter que les graveurs de CDs nécessitent un contrôleur SCSI, l'interface standard EIDE de votre PC n'a pas la capacité de piloter ces graveurs.</P> <P>Assurez-vous que le bus SCSI est terminé proprement et choisissez une ID SCSI libre pour le graveur. Regardez le HOWTO SCSI si vous n'êtes pas sûr. Si vous êtes complètement dépassé, demandez à un expert.</P> <P>Remettez le courant et regardez les messages que le BIOS du contrôleur SCSI affiche immédiatement après l'allumage de l'ordinateur. S'il ne reconnaît pas votre graveur, revenez à l'étape précédente. Vous devriez voir un message comme celui-ci :</P> <P> <BLOCKQUOTE><CODE> <PRE> (Image manquante ; quelqu'un en a-t-il une copie d'ecran ?) </PRE> </CODE></BLOCKQUOTE> </P> <P></P> <H2>2.2 <A NAME="ss2.2"></A> Note sur le gravage de CDs sous Linux</H2> <P></P> <P>Au contraire d'autres rumeurs, le noyau Linux <EM>n'a pas</EM> besoin de patch pour écrire sur des CDs. Bien que le fichier <CODE>drivers/scsi/scsi.c</CODE> des sources du noyau contienne les lignes</P> <P> <BLOCKQUOTE><CODE> case TYPE_WORM: case TYPE_ROM: SDpnt->writeable = 0; </CODE></BLOCKQUOTE> </P> <P>ceci veut seulement dire que ces CDs et WORMs ne sont pas accessibles en écriture à travers les périphériques standards <CODE>/dev/sda</CODE> - <CODE>/dev/sdh</CODE> ce qui est normal.</P> <P>Au lieu d'utiliser ces périphériques, l'écriture de CDs est faite à travers les périphériques SCSI génériques qui permettent presque tout -- même l'écriture sur les CDs.</P> <P></P> <A NAME="perifgen"></A> <H2>2.3 <A NAME="ss2.3"></A> Créez les périphériques génériques</H2> <P></P> <P>Le HOWTO SCSI Linux dit à propos des périphériques SCSI génériques :</P> <P> <BLOCKQUOTE><CODE> Le pilote de périphérique SCSI générique fournit une interface pour envoyer des commandes SCSI à tous les périphériques SCSI -- disques, bandes, CDROMs, mécanismes de changement de support, etc. </CODE></BLOCKQUOTE> </P> <P>Parler des périphériques génériques en tant qu'interfaces veut dire qu'ils fournissent une manière différente d'accéder au matériel SCSI par rapport aux périphériques normaux. Cette manière détournée est obligatoire parce que les périphériques normaux sont faits pour lire des données à l'échelle du block à partir d'un disque, d'un lecteur de bandes ou d'un lecteur de CD-ROM. D'un autre côté, piloter un graveur de CD-ROM (ou un scanner) est plus exotique, par exemple on doit positionner le laser. Pour avoir des périphériques normaux ``propres'', toutes ces actions exotiques doivent (peuvent) être réalisées à travers les périphériques SCSI génériques.</P> <P>Puisque l'on peut tout faire au matériel SCSI à travers les périphériques génériques, ils ne sont pas limités à un usage -- d'où le nom ``générique''.</P> <P>(Note : s'il y avait une norme pour piloter les graveur de CDs, les développeurs du noyau auraient programmé un module du noyau pour écrire sur les CD-R et nous ne serions pas obligés d'utiliser les périphériques génériques. Mais comme chaque fabricant a besoin d'un pilote individuel pour son matériel (argh !), ce module du noyau deviendrait maladroit et plus gros que tout ce que vous voulez mettre dans votre noyau.)</P> <P>Déplacez-vous dans le répertoire <CODE>/dev</CODE> et vérifiez les périphériques SCSI génériques ; la commande <CODE>ls</CODE> devrait montrer <CODE>sga</CODE> - <CODE>sgh</CODE> :</P> <P> <BLOCKQUOTE><CODE> <PRE> 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 </PRE> </CODE></BLOCKQUOTE> </P> <P>Si vous n'avez pas ces fichiers de périphériques, créez-les en utilisant le script <CODE>/dev/MAKEDEV</CODE> :</P> <P></P> <P> <BLOCKQUOTE><CODE> <PRE> bash> cd /dev/ bash> ./MAKEDEV sg </PRE> </CODE></BLOCKQUOTE> </P> <P>Maintenant les fichiers de périphériques devraient être corrects.</P> <P></P> <A NAME="utilisation"></A> <H2>2.4 <A NAME="ss2.4"></A> Etablissez l'utilisation des périphériques ``SCSI générique'' et loopback</H2> <P></P> <P>Le noyau Linux nécessite un module qui lui donne la possibilité de gérer les périphériques SCSI génériques. Si votre noyau courant a cette aptitude, elle devrait être listée dans le pseudo-fichier <CODE>/proc/devices</CODE> :</P> <P> <BLOCKQUOTE><CODE> <PRE> 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" </PRE> </CODE></BLOCKQUOTE> </P> <P>Vous devrez peut-être taper la commande <CODE>insmod sg</CODE>, <CODE>insmod loop</CODE> ou <CODE>insmod sr_mod</CODE> pour charger le module dans le noyau. Re-vérifiez après avoir essayé ceci. </P> <P>Si l'une d'entre elle ne fonctionne pas, vous devez reconfigurer votre noyau et le compiler. </P> <P> <BLOCKQUOTE><CODE> <PRE> 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/?] * * 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 </PRE> </CODE></BLOCKQUOTE> </P> <P>Veuillez noter que j'ai omis les questions un peu moins importantes.</P> <P></P> <A NAME="noyau"></A> <H2>2.5 <A NAME="ss2.5"></A> Construire et installer le noyau</H2> <P></P> <P>Si vous avez des questions concernant ceci, la lecture suggérée est le HOWTO Noyau Linux. De plus, votre distribution Linux devrait contenir de la documentation sur ce problème.</P> <P>(Astuce : pendant la recompilation, vous pouvez continuer sur les étapes <A HREF="#createdev">createdev</A> et au-delà)</P> <P></P> <H2>2.6 <A NAME="ss2.6"></A> Redémarrer l'ordinateur pour amorcer le changement</H2> <P></P> <P>Ne paniquez pas si le noyau Linux affiche les messages plus rapidement que vous ne pouvez les lire, au moins l'initialisation des périphériques SCSI peut être réaffichée avec la commande <CODE>dmesg</CODE> :</P> <P> <BLOCKQUOTE><CODE> <PRE> 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 </PRE> </CODE></BLOCKQUOTE> </P> <P>On a montré ci-dessus uniquement la partie des messages d'initialisation qui rapportent la détection des périphériques SCSI présents physiquement.</P> <P></P> <A NAME="createdev"></A> <H2>2.7 <A NAME="ss2.7"></A> Création des périphériques loopback</H2> <P></P> <P>Déplacez-vous dans le répertoire <CODE>/dev</CODE> et vérifiez les périphériques loopback. Ce n'est pas grave si vous n'avez pas ces périphériques, mais c'est pratique si vous les avez (Voir la section <A HREF="CD-Writing-3.html#test">test</A> ). Si vous les avez déjà, la commande <CODE>ls</CODE> devrait montrer <CODE>loop0</CODE> - <CODE>loop7</CODE> :</P> <P> <BLOCKQUOTE><CODE> <PRE> 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 </PRE> </CODE></BLOCKQUOTE> </P> <P>Si vous n'avez pas ces fichiers de périphériques, créez-les en utilisant le script <CODE>/dev/MAKEDEV</CODE> :</P> <P> <BLOCKQUOTE><CODE> bash> cd /dev/ bash> ./MAKEDEV loop </CODE></BLOCKQUOTE> </P> <P>La dernière commande ne réussit que si vous avez le module <CODE>loop</CODE> dans votre noyau (voir la section <A HREF="#utilisation">utilisation</A> pour la manipulation des modules). Si <CODE>insmod loop</CODE> ne donne rien, vous devez attendre que le nouveau noyau soit correctement installé (voir <A HREF="#noyau">noyau</A> .</P> <P></P> <A NAME="logiciels"></A> <H2>2.8 <A NAME="ss2.8"></A> Obtenez le logiciel pour graver les CDs</H2> <P></P> <P></P> <H3>Utilitaires en ligne de commande</H3> <P></P> <P>Le paquetage suivant est obligatoire pour générer des maquettes de CD-R :</P> <P> <BLOCKQUOTE><CODE> <PRE> ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs/mkisofs-1.11.tar.gz </PRE> </CODE></BLOCKQUOTE> </P> <P>Selon le modèle de votre graveur de CDs (voir <A HREF="CD-Writing-1.html#supportes">supportes</A> ), l'un des logiciels suivants est nécessaire pour écrire les maquettes sur les CD-R :</P> <P> <BLOCKQUOTE><CODE> <PRE> ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/cdwrite-2.0.tar.gz ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/cdrecord.tar.gz </PRE> </CODE></BLOCKQUOTE> </P> <P>Veuillez utiliser les miroirs de ces serveurs FTP les plus proches ou chargez-les à partir d'un CD.</P> <P>Assurez-vous absolument que vous avez la version 2.0 ou supérieure de <CODE>cdwrite</CODE>. Aucune version plus ancienne et surtout aucune version beta ne fonctionneront ! Ne croyez pas les pages de manuel du (vieil) <CODE>mkisofs</CODE> qui indique que vous avez besoin de la version 1.5 de <CODE>cdwrite</CODE>.</P> <P>La distribution Debian est fournie avec un patch pour la version 1.05 de <CODE>mkisofs</CODE> qui lui ajoute l'option <CODE>-K</CODE> (voir <A HREF="CD-Writing-3.html#iso">iso</A> ) ; il est disponible sur</P> <P> <BLOCKQUOTE><CODE> <PRE> ftp://ftp.debian.org/pub/debian/rex/source/misc/mkisofs_1.05-3.diff.gz </PRE> </CODE></BLOCKQUOTE> </P> <P>Ce patch n'est nécessaire que si vous voulez monter l'image du CD à travers le périphérique loopback (voir <A HREF="CD-Writing-3.html#test">test</A> ).</P> <P>Une correction pour <CODE>scsi.c</CODE> (dans le noyau) a été écrite par Eric Youngdale pour rendre ce patch superflu et sera incluse dans la prochaine version stable du noyau Linux.</P> <P></P> <H3>Une interface utilisateur graphique (optionnelle)</H3> <P></P> <P><CODE>X-CD-Roast</CODE> est un programme de gravage de CDs fonctionnant entièrement sous X, et succède à <CODE>cdwtools-0.93</CODE>. Il est disponible sur</P> <P> <BLOCKQUOTE><CODE> <PRE> http://www.fh-muenchen.de/home/ze/rz/services/projects/xcdroast/e_overview.html </PRE> </CODE></BLOCKQUOTE> </P> <P>En ce moment <CODE>X-CD-Roast</CODE> est basé sur une version patchée de <CODE>cdwrite-2.0</CODE> et possède par conséquent les mêmes caractéristiques (voir <A HREF="CD-Writing-1.html#possibil">possibil</A> ). Les versions futures pourraient être basées sur le logiciel de remplacement<CODE>cdrecord</CODE>.</P> <P></P> <HR> <P> Chapitre <A HREF="CD-Writing-3.html">suivant</A>, Chapitre <A HREF="CD-Writing-1.html">Précédent</A> <P> Table des matières de <A HREF="CD-Writing.html#toc2">ce chapitre</A>, <A HREF="CD-Writing.html#toc">Table des matières</A> générale</P> <P> <A HREF="CD-Writing.html">Début</A> du document, <A HREF="#0"> Début de ce chapitre</A></P> </BODY> </HTML>