Page suivantePage précédenteTable des matières

2. Pré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équence, la version actuelle de ce HOWTO se concentre sur les périphériques SCSI.

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

2.1 Configurez le matériel

É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 sûr. Si vous êtes complètement dépassé, demandez à un expert.

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 :

(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 périphériques standards /dev/sda - /dev/sdh, ce qui est normal.

Au lieu d'utiliser ces périphériques, l'écriture des CDs se fait à travers les périphériques SCSI génériques qui permettent presque tout -- même l'écriture sur les CDs.

2.3 Créez les périphériques génériques

Le HOWTO SCSI Linux dit à propos des périphériques SCSI génériques :

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, lecteurs de bandes, CDROMs, mécanismes de changement de support, etc.

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 bloc à 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 pouvoir positionner le laser. Pour avoir une implémentation propre (et par conséquent rapide) de ces périphériques normaux, toutes ces actions exotiques doivent être réalisées à travers les périphériques SCSI génériques.

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 spécifique -- d'où le nom générique.

Déplacez-vous dans le répertoire /dev et vérifiez la présence des périphériques SCSI génériques ; 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 périphériques, créez-les en utilisant le script /dev/MAKEDEV :

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

Maintenant les fichiers de périphériques devraient se montrer.

2.4 Etablissez l'utilisation des périphériques SCSI générique et loopback

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 possède cette aptitude, elle devrait être listée 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-vérifiez après 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 suggérée est le HOWTO Noyau Linux. De plus, votre distribution Linux devrait contenir de la documentation sur ce problème.

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

2.6 Redé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ériphériques SCSI peut être réaffichée 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 détection des périphériques SCSI présents physiquement.

2.7 Création des périphériques loopback

Déplacez-vous dans le répertoire /dev et vérifiez la présence des 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 test ). Si vous les avez déjà, 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 périphériques, créez-les en utilisant le script /dev/MAKEDEV :

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

La dernière commande ne réussit 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 générer 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 modèle de votre graveur de CDs (voir supportes ), l'un des logiciels suivants est nécessaire 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 supérieure 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 antérieur à 2.0.31, vous aurez envie de patcher mkisofs pour contourner un bogue du code du système 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 nécessaire que si vous voulez monter l'image du CD à travers le périphérique loopback (voir test ).

Une interface utilisateur graphique (optionnelle)

X-CD-Roast est un programme de gravage de CDs fonctionnant entièrement sous X, et succède à cdwtools-0.93. Il est disponible sur

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

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


Page suivantePage précédenteTable des matières