1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
|
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- synced with 1.16 -->
<chapter id="cd-dvd">
<title>Utilisation des CD/DVD</title>
<sect1 id="drives">
<title>Lecteurs CD/DVD</title>
<para>
Les lecteurs modernes de CD-ROM peuvent atteindre de très hautes vitesses de lecture,
bien que certains soient capables de fonctionner à des vitesses réduites.
Il y a plusieurs raisons possibles pour vouloir changer cette vitesse:
</para>
<itemizedlist>
<listitem><para>
Il a été signalé que des lecteurs peuvent commettre des erreurs de lecture à
haute vitesse, surtout avec des CD-ROM mal pressés. Diminuer la vitesse peut alors
empêcher la perte de données dans ces circonstances.
</para></listitem>
<listitem><para>
Les lecteurs CD-ROM génèrent souvent un bruit assourdissant, qu'une vitesse réduite
peut contribuer à diminuer.
</para></listitem>
</itemizedlist>
<sect2 id="drives_linux">
<title>Linux</title>
<para>
Vous pouvez réduire la vitesse des lecteurs de CD-ROM IDE avec <command>hdparm</command>,
<command>setcd</command> ou <command>cdctl</command>. Ils fonctionnent comme suit:
<screen>hdparm -E <replaceable>[vitesse]</replaceable> <replaceable>[périph. cdrom]</replaceable></screen>
<screen>setcd -x <replaceable>[vitesse]</replaceable> <replaceable>[périph. cdrom]</replaceable></screen>
<screen>cdctl -bS <replaceable>[vitesse]</replaceable></screen>
</para>
<para>
Si vous utilisez l'émulation SCSI, vous pourriez avoir à appliquer les paramètres au
vrai périphérique IDE, et non au périphérique SCSI émulé.
</para>
<para>
Si vous avez les privilèges root, la commande suivante peut également aider:
<screen>echo file_readahead:2000000 > /proc/ide/<replaceable>[périph. cdrom]</replaceable>/settings</screen>
</para>
<para>
Ceci créé un cache de 2 Mo, ce qui est utile pour les CD-ROMs endommagés (rayés).
Si vous lui donnez une valeur trop haute, le lecteur ne va pas cesser de s'arrêter
et de repartir, ce qui va dramatiquement diminuer les performances. Il est
également recommandé d'optimiser votre lecteur de CD-ROM avec <command>hdparm</command>:
<screen>hdparm -d1 -a8 -u1 <replaceable>[périph. cdrom]</replaceable></screen>
</para>
<para>
Ceci permet l'accès DMA, le cache en lecture, et l'IRQ unmasking. (lisez la page de
man de <command>hdparm</command> pour plus d'explications).
</para>
<para>
Référez vous à "<filename>/proc/ide/<replaceable>[périph. cdrom]</replaceable>/settings</filename>"
pour optimiser précisémment votre lecteur CD-ROM.
</para>
<para>
Les lecteurs SCSI n'ont pas une manière uniforme de règler ces paramètres (Vous en
connaissez une ? Dites-la nous!) Il y a un outil qui fonctionne pour les
<ulink url="http://das.ist.org/~georg/">Lecteurs SCSI Plextor</ulink>.
</para>
</sect2>
<sect2 id="drives_freebsd">
<title>FreeBSD</title>
<para>Vitesse:
<screen>
cdcontrol [-f <replaceable>périphérique</replaceable>] speed <replaceable>[vitesse]</replaceable>
</screen>
</para>
<para>DMA:
<screen>
sysctl hw.ata.atapi_dma=1
</screen>
</para>
</sect2>
</sect1>
<sect1 id="dvd">
<title>Lecture de DVD</title>
<para>
Pour voir la liste complète des options disponibles, veuillez lire la page de man.
La syntaxe pour lire un Digital Versatile Disc (DVD) est la suivante:
<screen>mplayer dvd://<replaceable><piste></replaceable> [-dvd-device <replaceable><périphérique></replaceable>]</screen>
</para>
<para>
Exemple:
<screen>mplayer dvd://<replaceable>1</replaceable> -dvd-device <replaceable>/dev/hdc</replaceable></screen>
</para>
<para>
Le périphérique DVD par défaut est <filename>/dev/dvd</filename>. Si votre
installation diffère, faites un lien symbolique ou spécifiez le périphérique
correct en ligne de commande avec l'option <option>-dvd-device</option>.
</para>
<formalpara>
<title>Nouvelle méthode de lecture DVD (mpdvdkit2)</title>
<para>
<application>MPlayer</application> utilise <systemitem>libdvdread</systemitem> et
<systemitem>libdvdcss</systemitem> pour le décryptage et la lecture de DVD.
Ces deux bibliothèques sont contenues dans le sous-répertoire
<filename class="directory">libmpdvdkit2/</filename> du répertoire
source de <application>MPlayer</application>, vous n'avez donc pas besoin de les
installer séparément. Nous avons opté pour cette solution car nous devions corriger
un bug de <systemitem>libdvdread</systemitem>, et appliquer un patch qui ajoute
<emphasis role="bold">un cache pour les clés CSS cassées</emphasis> à
<systemitem>libdvdcss</systemitem>. Le résultat est bien plus rapide car les clés
n'ont pas à être cassées à chaque lecture.
</para>
</formalpara>
<para>
<application>MPlayer</application> peut également utiliser les bibliothèques
globales au système <systemitem>libdvdread</systemitem>
et <systemitem>libdvdcss</systemitem> mais cette solution n'est
<emphasis role="bold">pas</emphasis> recommandée, car elle peut provoquer des
bogues, des incompatibilités de librairies, et une vitesse moins importante.
</para>
<note><para>
En cas de problème de décodage de DVD, essayez de désactiver supermount, ou
tous les outils de ce genre. Certains lecteurs RPC-2 peuvent aussi avoir
besoin que leur code de région soit bien paramétré.
</para></note>
<formalpara>
<title>Structure d'un DVD</title>
<para>
Les disques DVD utilisent tous des secteurs de 2048 octets par seconde avec ECC/CRC. Ils ont
généralement un système de fichier UDF sur une seule piste, qui contient divers fichiers (des
petits fichiers .IFO et .BUK et de gros (1Go) fichiers .VOB). Ce sont de véritables fichiers et ils
peuvent être joués/copiés depuis le système de fichier monté d'un DVD non-crypté.
</para>
</formalpara>
<para>
Les fichiers .IFO contiennent les infos de navigation dans le film (carte des chapitres/titres/angles,
table des langues, etc) et sont requis pour lire et interpréter le contenu des .VOB (le film). Les
fichiers .BUK sont des backups de ces fichiers. Ils utilisent des <emphasis role="bold">secteurs</emphasis>
partout, donc vous avez besoin d'utiliser un adressage brut des secteurs sur le disque pour implémenter
la navigation DVD. C'est également requis pour décrypter le contenu.
</para>
<para>
Le support DVD nécessite un accès brut aux secteurs du périphérique. Malheureusement
vous devez (sous Linux) être root pour avoir accès aux adresses des secteurs d'un fichier. C'est
pourquoi nous n'utilisons pas du tout le pilote de système de fichier du noyau, à
la place nous l'avons réimplémenté en espace utilisateur. <systemitem>libdvdread</systemitem>
0.9.x et <systemitem>libmpdvdkit</systemitem> font cela. Le pilote pour le système
de fichier UDF du noyau n'est pas requis puisqu'ils ont déjà leur pilote UDF incorporé.
De plus le DVD n'a pas besoin d'être monté étant donné que seul l'accès brut aux secteurs est utilisé.
</para>
<para>
Parfois <filename>/dev/dvd</filename> ne peut être lu par les utilisateurs; les auteurs de
<systemitem>libdvdread</systemitem> ont donc implémenté une couche d'émulation qui transforme les
adresses des secteurs en noms de fichier+offsets, pour émuler l'accès brut par-dessus un système de fichier
monté ou même un disque dur.
</para>
<para>
<systemitem>libdvdread</systemitem> accepte même le point de montage au lieu du nom de périphérique
pour l'accès brut et regarde dans <filename>/proc/mounts</filename> pour obtenir le nom de périphérique.
Il a été développé pour Solaris, où les noms de périphériques sont alloués dynamiquement.
</para>
<para>
Le périphérique DVD par défaut est <filename>/dev/dvd</filename>. Si votre installation diffère, faites
un lien symbolique ou spécifiez le bon périphérique en ligne de commande avec l'option
<option>-dvd-device</option>.
</para>
<formalpara>
<title>Certification DVD</title>
<para>
La nouvelle méthode de certification et de décryptage est fait par l'utilisation d'un <systemitem>libdvdcss</systemitem>
patché (voir plus haut). La méthode peut être spécifiée au travers de la variable d'environnement <envar>DVDCSS_METHOD</envar>
qui peut être initialisée à key (clé), disk (disque) ou title (titre).
</para>
</formalpara>
<para>
Si rien n'est spécifié il essaie les méthodes suivantes (par défaut: clé, demande de titre):
</para>
<orderedlist>
<listitem><para>
<emphasis role="bold">clé bus</emphasis>: Cette clé est
négociée durant l'authentification (une longue suite
d'ioctls et d'échanges de diverses clefs cryptographiques) et elle est
utilisé pour crypter le titre et la clef du
disque avant de les envoyer sur un bus non protégé (pour
empêcher les écoutes). La clef bus est nécessaire
pour obtenir et pré-décrypter la clef disque cryptée.
</para></listitem>
<listitem><para>
<emphasis role="bold">clé mise en cache</emphasis>: <application>MPlayer</application>
cherche des titres de clé déjà cassée qui sont stockées dans le répertoire
<filename class="directory">~/.mplayer/DVDKeys</filename> (rapide ;).
</para></listitem>
<listitem><para>
<emphasis role="bold">clé</emphasis>: Si aucune clé n'est disponible dans le cache,
<application>MPlayer</application> essaye de décrypter la clé disque avec un ensemble de clés incluses.
</para></listitem>
<listitem><para>
<emphasis role="bold">disque</emphasis>: Si la méthode clé échoue (ex: pas de clés incluses),
<application>MPlayer</application> va casser la clé disque avec un algorithme brute force. Ce
processus est intensif pour le CPU et requiert 60 Mo de mémoire (table de hachage 32Bit de 16M) pour
stocker temporairement les données. Cette méthode devrait toujours fonctionner (lent).
</para></listitem>
<listitem><para>
<emphasis role="bold">demande de titre</emphasis>: Avec les clés disque <application>MPlayer</application>
demande les clés titre cryptées, qui sont à l'intérieur de <emphasis>secteurs cachés</emphasis>
en utilisant <systemitem>ioctl()</systemitem>. La protection de région des lecteurs RPC-2 devrait
opérer à cette étape et devrait échouer sur ces lecteurs. Si elle réussit, les clés titre seront
cryptées avec les clés bus et disque.
</para></listitem>
<listitem><para>
<emphasis role="bold">titre</emphasis>: Cette méthode est utilisée si la demande de titre a échoué et ne
repose sur aucun échange de clé avec le lecteur DVD. Il utilise une attaque crypto pour deviner la clé
titre directement (en trouvant un motif répété dans le contenu VOB décodé et en supposant que le texte
en clair correspondant aux premiers octets cryptés est une continuation de ce motif). Cette méthode est
également connue sous le nom de "known plaintext attack" ou "DeCSSPlus". Dans de
rares cas cela peut échouer car il n'y a pas assez de données cryptées sur le disque pour faire
une attaque statistique ou à cause des changements de clé au milieu du titre. C'est la seule façon de
décrypter un DVD stocké sur le disque dur ou un DVD avec une mauvaise zone sur un lecteur RPC2 (lent).
</para></listitem>
</orderedlist>
<para>
Les lecteurs DVD RPC-1 ne protègent les réglages de protection de zone que de façon logicielle. Les
lecteurs RPC-2 ont une protection matérielle qui ne permet que 5 changements. Il peut être
requis/recommandé de mettre à niveau le firmware en RPC-1 si vous avez un lecteur DVD RPC-2. Les mises à niveau
firmware peuvent être trouvées sur cette <ulink url="http://www.firmware-flash.com">page de firmware</ulink>.
Si il n'y a pas de mise à niveau de firmware disponible pour votre périphérique, utilisez l'
<ulink url="http://www.linuxtv.org/download/dvd/dvd_disc_20000215.tar.gz">outil de réglage de zone</ulink>
pour changer le code de zone de votre lecteur DVD (sous Linux).
<emphasis role="bold">Attention</emphasis>: Vous ne pouvez changer la zone que 5 fois.
</para>
</sect1>
<sect1 id="vcd">
<title>Lecture de VCDs</title>
<para>
Pour voir la liste complète des options disponibles, veuillez lire la page de man.
La syntaxe pour lire un Video CD standard (VCD) est la suivante:
<screen>mplayer vcd://<replaceable><piste></replaceable> [-cdrom-device <replaceable><périphérique></replaceable>]</screen>
Exemple:
<screen>mplayer vcd://<replaceable>2</replaceable> -cdrom-device <replaceable>/dev/hdc</replaceable></screen>
Le périphérique VCD par défaut est <filename>/dev/cdrom</filename>. Si votre installation diffère,
faites un lien symbolique ou spécifiez le bon périphérique en ligne de commande avec l'option
<option>-cdrom-device</option>.
</para>
<note><para>
Au moins les CD-ROM SCSI Plextor et certains Toshiba ont d'horribles performances durant la lecture
de VCDs. C'est parce que l'<systemitem>ioctl</systemitem> CDROMREADRAW n'est pas complètement
implémenté pour ces lecteurs. Si vous avez des connaissances dans la programmation SCSI, merci de
<ulink url="../../tech/patches.txt">nous aider</ulink> à implémenter un support SCSI générique pour
les VCDs.
</para></note>
<para>
À ce propos vous pouvez extraire des données d'un VCD avec
<ulink url="http://miketeo.net/links/readvcd-0.3.tgz">readvcd</ulink>
et lire le fichier obtenu avec <application>MPlayer</application>.
</para>
<formalpara>
<title>Structure d'un VCD</title>
<para>
Un CD Video (VCD) est constitué de secteurs CD-ROM XA, càd CD-ROM mode 2
forme 1 et 2 pistes:</para>
</formalpara>
<itemizedlist>
<listitem><para>
La première piste est en mode 2 forme 2 ce qui signifie qu'elle utilise une
correction d'erreur L2. La piste contient un système de fichiers ISO-9660 avec 2048
octets/secteur. Ce système de fichiers contient des informations VCD meta-donnée, aussi
bien que les frames fixes souvent utilisées dans les menus. Les segments MPEG pour les menus peuvent
aussi être stockés dans la première piste, mais les données MPEG doivent être cassées en séries de bouts de 150 secteurs.
Le système de fichiers ISO-9660 peut contenir d'autres fichiers ou programmes qui ne sont pas essentiels pour les
opérations VCD.
</para></listitem>
<listitem><para>
La seconde piste et les suivantes sont des pistes MPEG brutes (film) à 2324 octets/secteur, contenant
un paquet de données MPEG PS par secteur. Celles-ci sont formatées selon le mode 2 forme 1, donc elles stockent
plus de données par secteur au dépend de la perte de quelque correction d'erreur. Il est aussi permis d'avoir
des pistes CD-DA dans un VCD aussi bien après la première piste.
Sur certains systèmes opérant, il y a quelques astuces qui permettent de faire apparaître ces pistes non-ISO-9660
dans un système de fichiers. Sur d'autres systèmes opérant comme GNU/Linux cela n'est pas le cas (pas encore). Ici
les données MPEG <emphasis role="bold">ne peuvent être montées</emphasis>. Comme la plupart des films sont à l'intérieur
de ce genre de piste, vous devrez tout d'abord essayer <option>vcd://2</option>
</para></listitem>
<listitem><para>
Il existe également certains disques VCD sans la première piste (une seule piste et pas de système de
fichier du tout). Ils sont quand même lisibles, mais ne peuvent pas être montés.
</para></listitem>
<listitem><para> La définition d'un Video CD standard est appelée le
Philips "White Book" et n'est généralement disponible qu'en ligne étant donné
qu'il doit être acheter chez Philips. Plus information détailé sur le Video
CD peut être trouvé sur <ulink url="http://www.vcdimager.org/pub/vcdimager/manuals/0.7/vcdimager.html#SEC4">vcdimager documentation</ulink>.
</para></listitem>
</itemizedlist>
<formalpara>
<title>A propos des fichiers .DAT:</title>
<para>
Le fichier de ~600 Mo visible sur la première piste d'un VCD monté n'est pas un vrai fichier! C'est
ce qu'on appelle une passerelle iso, créée pour permettre à Windows de gérer de telles pistes (Windows
n'autorise pas l'accès brut au périphérique du tout). Sous linux, vous ne pouvez pas copier ou lire de
telles pistes (elle contiennent des ordures). Sous Windows c'est possible car son pilote iso9660 émule
la lecture brute des pistes dans ce fichier. Pour lire un fichier .DAT vous avez besoin un pilote noyau
qui peut être trouvé dans la version Linux de PowerDVD. Il possède un pilote de système de fichier
iso9660 modifié (<filename>vcdfs/isofs-2.4.X.o</filename>), qui est capable d'émuler les pistes brutes
au travers de ce fichier .DAT fantôme. Si vous montez le disque en utilisant leur pilote, vous pouvez
copier et même lire les fichiers .DAT avec mplayer. Mais cela ne <emphasis role="bold">fonctionnera pas</emphasis>
avec le pilote iso9660 standard du noyau! Il est recommandé d'utiliser l'option <option>vcd://</option>
à la place. D'autres possibilités pour la copie de VCD sont le nouveau pilote noyau
<ulink url="http://www.elis.rug.ac.be/~ronsse/cdfs/">cdfs</ulink> (qui ne fait pas partie du noyau
officiel) qui montre les sessions du CD en temps que fichier image et
<ulink url="http://cdrdao.sf.net/">cdrdao</ulink>, une application d'enregistrement/copie
bit-à-bit).
</para>
</formalpara>
</sect1>
</chapter>
|