summaryrefslogtreecommitdiffstats
path: root/DOCS/xml/pl/cd-dvd.xml
blob: dc48ffbfdfce5a131b944eedb8d9b911d9a9adb1 (plain)
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
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
<?xml version="1.0" encoding="utf-8"?>
<!-- synced with r20401 -->
<!-- Opiekun: Emdej -->
<chapter id="cd-dvd">
<title>Używanie CD/DVD</title>

<sect1 id="drives">
<title>Napędy CD/DVD</title>

<para>
Nowoczesne napędy CD-ROM osiągają bardzo duże prędkości. Niektóre z nich są
dodatkowo zdolne do pracy przy zredukowanych prędkościach. Oto kilka powodów,
dla których powinniśmy zastanowić się czy nie należy zredukować prędkości
naszego napędu:
</para>

<itemizedlist>
<listitem><para>
Istnieją doniesienia o błędach odczytu przy dużych prędkościach, szczególnie
podczas używania uszkodzonych bądź wadliwie wytłoczonych/nagranych płyt CD.
Redukcja prędkości odczytu może uchronić nas przed utratą danych w takich
przypadkach.
</para></listitem>

<listitem><para>
Wiele napędów CD jest dokuczliwie głośnych. Redukcja prędkości może zmniejszyć
natężenie hałasu.
</para></listitem>
</itemizedlist>

<sect2 id="drives_linux">
<title>Linux</title>

<para>
Możesz zredukować prędkość napędu CD z interfejsem IDE korzystając
z <command>hdparm</command>, <command>setcd</command> lub
<command>cdctl</command>.
Działają one w następujący sposób:
<screen>hdparm -E <replaceable>[prędkość]</replaceable> <replaceable>[urządzenie cdrom]</replaceable></screen>
<screen>setcd -x <replaceable>[prędkość]</replaceable> <replaceable>[urządzenie cdrom]</replaceable></screen>
<screen>cdctl -bS <replaceable>[speed]</replaceable></screen>
</para>

<para>
Jeśli używasz emulacji SCSI, możesz musieć zastosować ustawienia do prawdziwego
urządzenia IDE a nie emulowanego SCSI.
</para>

<para>
Jeżeli masz uprawnienia roota, to pomóc może także następująca komenda:
<screen>echo file_readahead:2000000 &gt; /proc/ide/<replaceable>[urządzenie cdrom]</replaceable>/settings</screen>
</para>


<para>
Ustawiamy w ten sposób wielkość bufora odczytu na 2MB, co pomaga przy odczycie
porysowanych płyt. Jeżeli ustawimy zbyt dużą wielkość tego bufora, napęd będzie
stale rozkręcał się i zwalniał, co spowoduje bardzo znaczny spadek wydajności.
Zaleca się również dostrojenie napędu CD-ROM przy użyciu
<command>hdparm</command>:
<screen>hdparm -d1 -a8 -u1 <replaceable>[urządzenie cdrom]</replaceable></screen>
</para>

<para>
Włączamy w ten sposób dostęp DMA do dysku, czytanie z wyprzedzeniem i
odmaskowanie IRQ (IRQ unmasking) (więcej przeczytasz na stronach man do
<command>hdparm</command>)
</para>

<para>
Proszę sprawdzić &quot;<filename>/proc/ide/<replaceable>[urządzenie cdrom]</replaceable>/settings&quot;</filename>
dla dostrojenia swojego napędu CD-ROM.
</para>

<para>
Dla napędów SCSI nie istnieje jednolity sposób ustawiawiania tych parametrów
(jeżeli znasz jakiś to napisz nam o nim). Istnieje narzędzie które działa z
<ulink url="http://das.ist.org/~georg/">napędami SCSI Plextor</ulink>.
</para>
</sect2>

<sect2 id="drives_freebsd">
<title>FreeBSD</title>

<para>Prędkość:
<screen>
cdcontrol [-f <replaceable>urządzenie</replaceable>] speed <replaceable>[prędkość]</replaceable>
</screen>
</para>

<para>DMA:
<screen>
sysctl hw.ata.atapi_dma=1
</screen>
</para>
</sect2>

</sect1>



<sect1 id="dvd">
<title>Odtwarzanie DVD</title>
<para>
Aby poznać pełną listę dostępnych opcji, proszę przeczytać odpowiednie strony
man. Składnia do odtwarzania standardowego DVD jest następująca:
<screen>mplayer dvd://<replaceable>&lt;ścieżka&gt;</replaceable> [-dvd-device <replaceable>&lt;urządzenie&gt;</replaceable>]</screen>
</para>

<para>
Przykład:
<screen>mplayer dvd://1 -dvd-device /dev/hdc</screen>
</para>

<para>
Jeśli skompilowałeś <application>MPlayera</application> z obsługą dvdnav,
składnia jest taka sama, tylko musisz użyć dvdnav:// zamiast dvd://.
</para>

<para>
Domyślnym urządzeniem (device) DVD jest <filename>/dev/dvd</filename>. Jeżeli
Twoje ustawienia są inne, stwórz odpowiedni symlink lub ustaw odpowiednie
urządzenie (device) w linii polecenia korzystając z opcji
<option>-dvd-device</option>.
</para>

<para>
<application>MPlayer</application> używa <systemitem>libdvdread</systemitem>
oraz <systemitem>libdvdcss</systemitem> do odtwarzania i dekodowania DVD. Te
dwie biblioteki są zawarte w podkatalogu <filename class="directory">libmpdvdkit2</filename>
w głównym drzewie katalogów <application>MPlayera</application>, nie trzeba
instalować ich osobno.
Możesz też użyć systemowych wersji tych bibliotek, ale nie jest to zalecane,
ponieważ może spowodować błędy, niekompatybilności bibliotek oraz zmniejszenie
prędkości.
</para>

<note><para>
Jeśli występują problemy z dekodowaniem DVD, spróbuj wyłączyć supermount lub
inne tego typu usługi. Niektóre napędy RPC-2 mogą również wymagać ustawienia
kodu regionu DVD.
</para></note>

<formalpara>
<title>Struktura dysku DVD</title>
<para>
Dyski DVD mają po 2048 bajtów na sektor z ECC/CRC. Zwykle posiadają system
plików UDF na pojedynczej ścieżce zawierającej różnorakie pliki (małe pliki .IFO
i .BUK oraz duże (1GB) pliki .VOB).
Są one rzeczywistymi plikami i mogą być kopiowane/odtwarzane z podmontowanego
systemu plików niezakodowanego DVD.
</para>
</formalpara>

<para>
Pliki .IFO zawierają informacje nawigacyjne filmu (mapa
rozdziałów/tytułów/kątów kamery, tablica języków, itp) i są konieczne do
odczytu i interpretacji zawartości pliku .VOB (filmu).
Pliki .BUK są kopiami zapasowymi plików .IFO.
Używają <emphasis role="bold">sektorów</emphasis> wszędzie, więc aby
zaimplementować nawigację na DVD lub rozszyfrować zawartość, należy używać
adresowania sektorów dysku w trybie raw.
</para>

<para>
Z tego powodu obsługa DVD wymaga
dostępu do urządzenia w trybie raw bazującym na sektorach. Niestety wymagane
jest (pod Linuksem) posiadanie uprawnień roota aby móc korzystać z sektorowego
adresowania pliku.
Dlatego też nie w ogóle używamy sterownika systemu plików pochodzącego
z jądra, ale reimplementujemy to w przestrzeni użytkownika.
Zajmują się tym
biblioteki <systemitem>libdvdread</systemitem> 0.9.x i
<systemitem>libmpdvdkit</systemitem>. Sterownik
systemu plików UDF zawarty w jądrze nie jest wymagany ponieważ wspomniane
biblioteki zawierają własny, wbudowany sterownik systemu plików UDF. DVD nie
musi być podmontowany, bowiem używany jest jedynie dostęp w trybie raw.
</para>

<para>
Czasami <filename>/dev/dvd</filename> nie może być czytany przez użytkowników,
zatem autorzy <systemitem>libdvdread</systemitem> zaimplementowali warstwę
emulacji, która tłumaczy adresowanie sektorowe na nazwy plików i offsety, aby
emulować dostęp w trybie raw na podmontowanym systemie plików albo nawet na
twardym dysku.
</para>

<para>
<systemitem>libdvdread</systemitem> równie dobrze akceptuje miejsce
podmontowania (mountpoint) jak i nazwę urządzenia przy dostępie w trybie raw i
sprawdza <filename>/proc/mounts</filename> w celu odnalezienia odpowiedniej
nazwy urządzenia (device). Zostało to napisane z myślą o systemie Solaris, gdzie
nazwy urządzeń są przydzielane automatycznie.
</para>

<formalpara>
<title>Deszyfrowanie DVD</title>
<para>
Do deszyfrowania DVD jest używana biblioteka
<systemitem>libdvdcss</systemitem>. Metoda jej działania może być określona
poprzez zmienna środowiskową <envar>DVDCSS_METHOD</envar>, która może być
ustawiona na "key", "disk" albo "title".
</para>
</formalpara>

<para>
Jeżeli żadna wartość nie jest ustawiona, próbowane są następujące metody
(domyślnie: "key", "title request"):
</para>

<orderedlist>
<listitem><para>
<emphasis role="bold">bus key</emphasis>: Ten klucz jest ustalany podczas
autoryzacji (długa mieszanina ioctl'i i rozmaite wymiany kluczy, bajery
kryptograficzne) oraz jest używany do szyfrowania tytułu i kluczy dyskowych
przed wysłaniem ich nieszyfrowaną magistralą (by zapobiec podsłuchiwaniu).
Klucz magistrali (bus key) jest wymagany do pobrania i wstępnego
rozszyfrowania zaszyfrowanego klucza dysku (disk key).
</para></listitem>

<listitem><para>
<emphasis role="bold">cached key</emphasis>: <application>MPlayer</application>
wyszukuje już złamane klucze tytułów, które są przechowywane w katalogu
<filename class="directory">~/.dvdcss</filename> (szybkie).
</para></listitem>

<listitem><para>
<emphasis role="bold">key</emphasis>: Jeżeli żaden zbuforowany klucz nie jest
dostępny, <application>MPlayer</application> próbuje rozszyfrować klucz dysku
korzystając z garści kluczy zaszytych w odtwarzaczu.
</para></listitem>

<listitem><para>
<emphasis role="bold">disk</emphasis>: Jeżeli metoda "key" zawodzi (np. brak
kluczy zaszytych w odtwarzaczu), <application>MPlayer</application> złamie klucz
dysku używając algorytmu ataku brutalnego. Proces ten jest bardzo
procesorochłonny i wymaga 64 MB pamięci (16M 32-bitowych pól
tabeli hash) do przechowywania tymczasowych danych. Ta metoda powinna zadziałać
zawsze (powolne).
</para></listitem>

<listitem><para>
<emphasis role="bold">title request</emphasis>: Mając klucz dysku
<application>MPlayer</application> pobiera zaszyfrowane klucze tytułów (title
key), które są zawarte w <emphasis>ukrytych sektorach (hidden
sectors)</emphasis> używając <systemitem>ioctl()</systemitem>. Ochrona
regionalna w napędach RPC-2 jest realizowana w tym kroku i może się nie udać na
tych napędach. Jeśli jednak się uda, klucze tytułowe zostają rozszyfrowane przy
użyciu kluczy magistrali i dysku.
</para></listitem>

<listitem><para>
<emphasis role="bold">title</emphasis>: Ta metoda jest używana jeżeli zapytanie
o tytuł zakończyło się niepowodzeniem i nie polega na żadnej wymianie
kluczy z napędem DVD. Używa ona ataku kryptograficznego w celu odgadnięcia
klucza tytułowego (title key) wprost (poprzez szukanie powtarzającego się ciągu
znaków (wzoru) w rozszyfrowanej zawartości pliku VOB oraz poprzez zgadywanie, że
czysty tekst odpowiadający pierwszym zaszyfrowanym bajtom jest kontynuacją
wzoru). Metoda ta jest także znana jako &quot;znany czysto-tekstowy atak (known
plaintext attack)&quot; bądź &quot;DeCSSPlus&quot;. Rzadko zdarza się, ale się
zdarza, że metoda ta może zawieść ponieważ jest niewystarczająco dużo
zaszyfrowanych danych na dysku aby spełnić założenia statystycznego ataku lub
ponieważ klucz zmienia się w trakcie tytułu. Jest to jedyna metoda, aby
zdeszyfrować DVD przechowywane na twardym dysku lub DVD ze złym regionem na
napędzie RPC2 (powolne).
</para></listitem>
</orderedlist>

<para>
Napędy DVD RPC-1 zabezpieczają ustawienia regionu jedynie poprzez
oprogramowanie. Napędy RPC-2 mają sprzętowe zabezpieczenie, które pozwala na co
najwyżej 5 zmian. Jeżeli posiadamy napęd DVD RPC-2 wymagana/zalecana jest
aktualizacja firmware'u do RPC-1. 
Nowe wersje firmware'ów można znaleźć w internecie. 
Poszukiwania radzimy rozpocząć od 
<ulink url="http://forum.rpc-1.com/dl_all.php">forum firmware'ów</ulink>.
Jeżeli nie ma tam nowej wersji firmware'u dla naszego urządzenia, użyj
<ulink url="http://linvdr.org/projects/regionset/">regionset tool
(narzędzia do zmiany regionów)</ulink> aby ustawić kod regionu na swoim napędzie
DVD (pod Linuksem). <emphasis role="bold">Ostrzeżenie</emphasis>: Możesz
ustawić region tylko 5 razy.
</para>
</sect1>



<sect1 id="vcd">
<title>Odtwarzanie VCD</title>
<para>
Pełna lista dostępnych opcji znajduje się na stronie man. Składnia dla
standardowego Video CD (VCD) jest następująca:
<screen>mplayer vcd://<replaceable>&lt;ścieżka&gt;</replaceable> [-cdrom-device <replaceable>&lt;urządzenie&gt;</replaceable>]</screen>
Przykład:
<screen>mplayer vcd://2 -cdrom-device /dev/hdc</screen>
Domyślnym urządzeniem VCD jest <filename>/dev/cdrom</filename>. Jeśli
Twoje ustawienia są inne, utwórz dowiązanie symboliczne
lub podaj prawidłowe urządzenie w linii poleceń za pomocą opcji
<option>-cdrom-device</option>
</para>

<note><para>
Przynajmniej napędy CD-ROM SCSI firmy Plextor i niektóre modele Toshiby
mają beznadziejną wydajność przy odczycie VCD. Jest to spowodowane
niekompletną implementacją <systemitem>ioctl</systemitem>'a CDROMREADRAW dla
tych urządzeń. Jeśli masz jakieś pojęcie o programowaniu SCSI,
<ulink url="../../tech/patches.txt">pomóż nam</ulink> zaimplementować ogólną
obsługę SCSI dla VCD.
</para></note>

<para>
W międzyczasie możesz wyciągać dane z VCD za pomocą
<ulink url="http://ftp.ntut.edu.tw/ftp/OS/Linux/packages/X/viewers/readvcd/">readvcd</ulink>
i odtwarzać plik wynikowy za pomocą <application>MPlayera</application>
</para>

<formalpara>
<title>Struktura VCD</title>
<para>
Video CD (VCD) składa się z sektorów CD-ROM XA, tzn. ścieżek CD-ROM 
mode 2 form 1 i form 2:</para>
</formalpara>

<itemizedlist>
<listitem><para>
Pierwsza ścieżka jest w formacie mode 2 form 2, który oznacza użycie korekcji 
błędów L2. Ścieżka ta zawiera system plików ISO-9660 o gęstości 2048 bajtów/sektor.
Ten system plików z kolei zawiera metainformacje VCD, a także nieruchome klatki, często 
używane w menu. Segmenty MPEG dla menu mogą także być składowane w tejże pierwszej 
ścieżce, ale MPEGi muszą być podzielone na kawałki po 150 sektorów. System plików ISO-9660 
może zawierać inne pliki bądź programy, niekonieczne dla eksploatacji VCD.
</para></listitem>

<listitem><para>
Druga i pozostałe ścieżki są zwykle ścieżkami video MPEG typu raw o gęstości 
2324 bajtów/sektor, zawierającymi jeden pakiet danych MGEG PS na sektor.
Ścieżki te są w formacje mode 2 form 1, więc przechowują one więcej danych 
na sektor, w zamian za słabszą korekcję błędów. Możliwe są też ścieżki 
CD-DA na VCD poza pierwszą ścieżką.
Niektóre systemy operacyjne używają pewnych trików aby ścieżki nie zawierające 
systemu plików ISO-9660 były widoczne w systemie plików. W pozostałych systemach, 
jak na przykład w systemie GNU/Linux, nie ma takiej możliwości (jeszcze). W takim 
przypadku dane MPEG <emphasis role="bold">nie mogą być montowane</emphasis>. 
Jako że większość filmów znajduje się na tego typu ścieżce,
powinieneś spróbować na początek opcji <option>vcd://2</option>.
</para></listitem>

<listitem><para>
Istnieją również płyty VCD bez pierwszej ścieżki (pojedyncza ścieżka i
brak systemu plików w ogóle). Je również da się odtwarzać, ale nie da
się ich montować.
</para></listitem>

<listitem><para> Definicja standardu Video CD, nazywana "Białą Księgą"
Phillipsa, generalnie nie jest dostępna online, musi być zakupiona u Phillipsa. 
Bardziej szczegółowe informacje na temat Video CD można znaleźć na 
<ulink url="http://www.vcdimager.org/pub/vcdimager/manuals/0.7/vcdimager.html#SEC4">stronie 
dokumentacji vcdimagera</ulink>.
</para></listitem>

</itemizedlist>

<formalpara>
<title>O plikach .DAT</title>
<para>
Plik o rozmiarze ok. 600 MB widoczny na pierwszej ścieżce zamontowanego VCD
nie jest prawdziwym plikiem ! Jest on tzw. bramką ISO, utworzoną by
Windows mógł obsługiwać takie ścieżki (Windows w ogóle nie zezwala aplikacjom
na dostęp do urządzeń w trybie raw). Pod Linuksem nie możesz kopiować ani
odtwarzać tych plików (zawierają "śmieci"). Pod Windows jest to możliwe, gdyż
jego sterownik iso9660 symuluje odczyt ścieżek w trybie raw za pomocą tego
pliku. By móc odtwarzać pliki .DAT, musisz mieć sterownik do jądra, który
dostarczany jest z linuksową wersją PowerDVD. Posiada on zmodyfikowany sterownik
systemu plików iso9660 (<filename>vcdfs/isofs-2.4.X.o</filename>), który jest w
stanie symulować odczyt ścieżek w trybie raw za pomocą pliku .DAT. Jeśli
podmontujesz płytę używając ich sterownika, możesz kopiować, a nawet odtwarzać
pliki .DAT za pomocą <application>MPlayera</application>. Ale nie będzie to
działało za pomocą standardowego sterownika iso9660 dostarczonego z jądrem
Linuksa! Zamiast tego użyj opcji <option>vcd://</option>. Alternatywą dla
kopiowania VCD jest nowy sterownik:
<ulink url="http://www.elis.rug.ac.be/~ronsse/cdfs/">cdfs</ulink> (nie jest
częścią oficjalnego jądra), który wyświetla sesje CD jako pliki obrazów, oraz
<ulink url="http://cdrdao.sf.net/">cdrdao</ulink>, program do zgrywania
płyt CD bit po bicie.
</para>
</formalpara>
</sect1>
</chapter>