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
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<LINK REL="stylesheet" TYPE="text/css" HREF="../default.css">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">
</HEAD>
<BODY>
<P><B><A NAME=drives>4.1. CD-ROM meghajtók</A></B></P>
<P>A Linux dokumentációjából:</P>
<P>Néhány CDROM meghajtó képes szabályozni az olvasás sebességét. Jónéhány okunk
lehet arra, hogy ezt kihasználjuk:</P>
<UL>
<LI>Magas sebességen előfordulhatnak olvasási hibák, főleg hibásan
készített CD lemezek esetén.</LI>
<LI>Nem elhanyagolható a sebességgel arányos zajszint sem.</LI>
</UL>
<P>Ajánlott a 'hdparm' vagy a 'setcd' nevű programot használni.</P>
<P> <CODE>hdparm -E [sebesség] [meghajtó]</CODE></P>
<P> <CODE>setcd -x [sebesség] [meghajtó]</CODE></P>
<P>A következő parancs is hasznos lehet:</P>
<P> <CODE>echo file_readahead:2000000 >/proc/ide/[meghajtó]/settings</CODE></P>
<P>Ez 2Mb-ot olvas előre olvasáskor (karcos CDROM-oknál hasznos).
Ha túl magasra állítod, a folytonosan fel-, és lepörgő meghajtó drámai
teljesítménycsökkenést fog okozni.
Ajánlott továbbá a 'hdparm' program használata:</P>
<P> <CODE>hdparm -d1 -a8 -u1 (meghajtó)</CODE></P>
<P>Ez bekapcsolja a DMA hozzáférést, előreolvasást, IRQ unmaskingot.
(ha ezeket nem érted, *olvasd el a hdparm man-ját*)</P>
<P>Kísérletezz a <CODE>/proc/ide/[meghajtó]/settings</CODE> file-lal további tuning céljából.</P>
<P>Az SCSI meghajtóknak nincs ilyen egységes felülete ezen paraméterek
állításához. <A HREF="http://das.ist.org/~georg/">Plextor SCSI
meghajtókhoz</A> viszont rendelkezésre áll egy program.</P>
<P>FreeBSD:</P>
<P> Speed: <CODE>cdcontrol [-f meghajtó] speed [sebesség]</CODE></P>
<P> DMA: <CODE>sysctl hw.ata.atapi_dma=1</CODE></P>
<P><B><A NAME=dvd>4.2. DVD lejátszás</A></B></P>
<P>A rendelkezésre álló opciók teljes listája a man page-ben tekinthető
meg. Egy szabványos DVD lemez lejátszása a következőképpen történik:</P>
<P><CODE>mplayer dvd://<sáv> [-dvd-device <egység>]</CODE></P>
<P>Például: <CODE>mplayer dvd://1 -dvd-device /dev/hdc</CODE></P>
<P>Az alapértelmezett DVD egység a <CODE>/dev/dvd</CODE>. Ha a rendszered ettől
különbözik, egy megfelelő symlink-kel, vagy a <CODE>-dvd-device</CODE>
opció használatával megoldhatod a problémát.</P>
<H4>Új DVD támogatás (mpdvdkit2)</H4>
<P>Az <B>MPlayer</B> a <CODE>libdvdread</CODE> és <CODE>libdvdcss</CODE>
néven ismert könyvtárakat használja a DVD dekódolásához és lejátszásához.
Ez a két program a <CODE>libmpdvdkit2/</CODE> alkönyvtárban található, így
külön installálásuk szükségtelen és felesleges. Azért használjuk ezt a
módszert mert így lehetőségünk nyílt kijavítani egy <CODE>libdvdread</CODE>
bugot, és megpatchelni a <CODE>libdvdcss-t</CODE> olyan módon hogy a
feltört CSS kulcsokat mentse el a <CODE>$HOME/.mplayer/DVDKeys</CODE>
könyvtárba, így a következő lejátszásnál nem lesz szükség ezek újabb
feltörésére.</P>
<P>Az <B>MPlayer</B> képes a rendszerben már jelenlevő libdvdread és libdvdcss
könyvtárakat is használni, de ez a megoldás <B>nem</B> ajánlott,
hibákat eredményezhet, könyvtár-inkompatibilitást, és alacsonyabb
sebességet.</P>
<H4>DVD navigáció (dvdnav)</H4>
<P>A <CODE>libdvdnav</CODE> támogatásának készítése folyamatban volt, de
soha nem készült el. Jelenleg nem használható.</P>
<H4>A DVD-k struktúrája</H4>
<P>A DVD lemezek 2048 b/s szektorokat használnak ecc/crc-vel. Általában
egy UDF filerendszert tartalmaznak egyetlen sávon, ami több file-t
tartalmaz (kis .IFO és .BUK, és nagy (1GB) .VOB). Ezek valódi file-ok és
másolhatóak/lejátszhatóak egy mountolt, nem titkosított DVD-ről.</P>
<P>Az .IFO file-ok tartalmazzák a navigációs információkat (fejezet/sáv/szög/nyelv, stb),
amelyek nélkülözhetetlenek a .VOB-ok értelmezéséhez. A .BUK file-ok ezek
másolatai. Ezek a file-ok <B>szektorokban</B> számolnak, így a DVD
navigáció helyes implementálásához ezt át kell számítani. Szükséges
továbbá a file-ok titkosításának megszüntetése.</P>
<P>Az imént felsorolt okok miatt a DVD támogatás szektor szintű hozzáférést
igényel az egységhez. Linux alatt ehhez sajnos root jogokkal kell
rendelkezni. Ennek megoldásaképp az UDF filerendszert userspace-ben kell
implementálni. A libdvdread 0.9.x és a libmpdvdkit ezt csinálja. A kernel UDF
meghajtójára nincs szükség. A DVD-t sem kell mountolni, mivel csak a szektor
alapú hozzáférés lesz érvényben.</LI>
</UL>
<P>Néha a /dev/dvd felhasználók számára nem hozzáférhető, így a libdvdread
fejlesztők készítettek egy emulációs réteget, amely a szektorcímeket
filenév+offset-re alakítja, ezáltal emulálva a "nyers" hozzáférést akár
egy mountolt filerendszeren, vagy merevlemezen.</P>
<P>A libdvdread még mountolási pontot is elfogad meghajtó helyett, és a
<CODE>/proc/mounts</CODE> alapján szerzi meg a meghajtó nevét. Ez a
módszer Solaris-ra készült, ahol ezen nevek allokálása dinamikusan
történik.</P>
<P>Az alapértelmezett DVD egység a <CODE>/dev/dvd</CODE>. Ha a te
rendszered ettől eltér, hozz létre egy symlink-et, vagy add meg a
helyes nevet a parancssorban. Erre a <CODE>-dvd-device</CODE> opció
szolgál.</P>
<H4>DVD authentikáció</H4>
<P>Ez, és a titkosítás feltörése egy patchelt libdvdcss-sel történik (lásd
fent). A módszerek között a <CODE>DVDCSS_METHOD</CODE> környezeti változó
állításával lehet választani. A lehetséges értékek: <CODE>key</CODE>,
<CODE>disk</CODE>, vagy <CODE>title</CODE>.</P>
<P>Ha semmi nincs megadva, a következő módszerek közül választ (alapban:
key, title request):</P>
<OL>
<LI><B>bus key:</B> ez a kulcs az authentikáció után készül el, és
ezzel történik a titkosítása a kulcsoknak mielőtt a buszra kerülnének
(a hallgatózást elkerülendő).</LI>
<LI><B>cached key:</B> az MPlayer keres egy már feltört, megfelelő
kulcsot az <CODE>~/.mplayer/DVDKeys</CODE> könyvtárban (gyors).</LI>
<LI><B>key:</B> ha nincs cache-elt kulcs, az MPlayer megpróbálja a
rendelkezésre álló kulcsokkal feltörni a lemezt.</LI>
<LI><B>disk:</B> ha a key módszer nem jár sikerrel, az MPlayer
megpróbálhatja egy brute force algoritmussal feltörni a lemezt.
Ez a folyamat erősen igényli a CPU-t, és 64Mb memóriát is átmeneti
adattárolásra. Ez a metódus mindig működik (lassú).</LI>
<LI><B>title request:</B> a lemez kulccsal az MPlayer feltöri a title
kulcsot, amik <I>rejtett szektorokban</I> tárolódnak. Az RPC-2
meghajtók régióellenőrzése is ilyenkor történik, ezért az ilyen
meghajtókon hibát jelezhet. Ha sikerült, a title kulcs feltörése
következik a bus és disk kulcsokkal.</LI>
<LI><B>title:</B> ez a módszer lesz kipróbálva, ha a title request
sikertelen volt. Itt nincs szükség kulccserére a DVD meghajtóval.
Ismétlődő minták alapján megpróbálja kitalálni a title kulcsot.
Ritka esetekben sikertelen lehet, például ha nincs elég titkosított
adat, vagy a title közepén megváltozik a kulcs. Mindenesetre ez az
egyetlen módszer egy merevlemezen tárolt DVD feltörésére, vagy egy
helytelen régióval rendelkező RPC2 meghajtón (lassú).</LI>
</OL>
<P>Az RPC-1-es DVD meghajtók a régióbeállításokat csak a szoftveres
DVD lejátszókkal tudják korlátozni, az RPC-2 meghajtók hardveresen
vannak limitálva 5 változtatásra. Ajánlott lehet a firmware-t RPC-1-re
upgradelni, ha RPC-2-es meghajtód van. Ezek az upgrade-k
<A HREF="http://www.firmware-flash.com">itt</A>
találhatóak. Ha nincs firmware upgrade a meghajtódhoz, használd a
<A HREF="http://www.linuxtv.org/download/dvd/dvd_disc_20000215.tar.gz">regionset</A>
parancsot hogy Linux alatt is át tudd állítani a meghajtód régiókódját.
<B>Vigyázz:</B> csak 5 lehetőséged van rá.</P>
<P><B><A NAME="vcd">4.3. VCD lejátszás</A></B></P>
<P>A rendelkezésre álló opciók teljes listája a man page-ben tekinthető
meg.</P>
<H4>VCD struktúra</H4>
<P>A VCD lemezek 2 vagy több sávból állnak:</P>
<UL>
<LI>Az első sáv egy pár MB-os 2048 byte/szektor méretű adatsáv, egy
iso9660 filerendszerrel. Ez általában win32-es VCD lejátszót, vagy
más információkat tartalmaz (jpeg, szöveg, stb).</LI>
<LI>
<LI>A második (és a többi) sáv nyers 2324 byte/szektor méretű MPEG
sáv, amely nem filerendszert hanem nyers MPEG-PS adatot tartalmaz,
egy csomagot szektoronként. Ezeket a sávokat <B>nem lehet mountolni</B>!</LI>
<LI>Léteznek VCD lemezek amelyeken nincs is első sáv (abszolut
filerendszer nélkül). Ezek is lejátszhatóak, de nem mountolhatóak.</LI>
</UL>
<P>A .DAT file-okról:</P>
<P>Azok a ~600Mb-os file-ok amik a mountolt VCD-k elso sávján vannak,
nem igazi file-ok! Ez egy úgynevezett ISO átjáró, amivel a Windows
programok hozzáférhetnek az ilyen file-okhoz (mivel vinnyózon a programok
nem tudnak hozzáférni közvetlenül az eszközhöz). Linux alatt nem tudod
másolni vagy lejátszani az ilyen file-okat, mert szemetet tartalmaznak.
Windows alatt azért lehetséges, mert az iso9660 meghajtója ezeken a
file-okon keresztül emulálja a közvetlen lemezhozzáférést.</P>
<P>Az alapértelmezett VCD egység a <CODE>/dev/cdrom</CODE>. Ha a beállításod
ettől eltér, készíts egy symlink-et, vagy add meg paraméterként
a <CODE>-cdrom-device</CODE> opcióval.</P>
<P><B>Megjegyzés:</B> legalábbis a Plextor és Toshiba SCSI CD-ROM meghajtókról
ismert hogy nagyon lassan játszanak le VCD-ket. Ennek oka, hogy a
CDROMREADRAW ioctl nincs teljesen implementálva ezeken a meghajtókon. Ha
értesz az SCSI programozásához, <A HREF="../tech/patches.txt">segíts</A>
a VCD-k SCSI-n történő támogatásában.</P>
<P>Addigis VCD-ről az adatot a
<A HREF="http://140.132.1.204/OS/Linux/packages/X/viewers/readvcd/">readvcd</A>
programmal lehet leszedni, az így keletkező file-t pedig az MPlayer is
lejátsza.</P>
<H4>A VCD-k struktúrája</H4>
<UL>
<LI>Az első sáv egy 2048 byte/sector méretú szabvány sáv iso9660
filerendszerrel, általában Windows-os VCD lejátszó programot tartalmaz,
néha egyéb információ (képek, szöveg, stb).</LI>
<LI>A második, és utána következő sávok nyers 2324 byte/sector méretű
MPEG (film) sávog, mindegyik egy-egy MPEG-PS adat/sector-t tartalmaz
filerendszer helyett. Hasonlóan az audio CD sávokhoz, ezeket a sávokat
<B>sem lehet mountolni</B> (Mountoltál már valaha audio CD-t hogy
lejátszd?). Mivel a legtöbb film ebben a sávban van, a <CODE>vcd://2</CODE>
opciót kell használnod.</LI>
<LI>Léteznek VCD lemezek amelyeken nincs rajta az első sáv (tehát csak
egyetlen sávot tartalmaznak, filerendszer nélkül). Ezek is lejátszhatóak,
de nem mountolhatóak.</LI>
</UL>
<H4>A .DAT file-okról:</H4>
<P>A ~600Mb-os fileok amik a mountolt Video CD-k első sávján találhatóak
nem igazi file-ok! Ez az úgynevezett ISO gateway, amiknek a célja hogy
Windows-os applikációk is hozzá tudjanak férni az MPEG sávokhoz (mivel
a Windows egyáltalán nem engedi a nyers hozzáférést applikációk számára).
Linux alatt ezek a file-ok nem megtekinhetők, sem pedig lejátszhatók.
Windows alatt azért lehetséges mert az iso9660 meghajtója emulálja a nyers
olvasást ezekre a fileokra. A .DAT file-ok lejátszására kernel patch-re
van szükséged, melyet a PowerDVD Linux-os verziója tartalmaz. Ez egy
módosított iso9660 filerendszer meghajtót tartalmaz
(<CODE>vcdfs/isofs-2.4.X.o</CODE>), mely szintén képes ilyen emulációra.
Ha ezzel a meghajtóval mountolod a lemezt, képes leszel az ilyen file-ok
másolására, lejátszására. De a standard kernel meghajtójával <B>nem</B>.
Egyébkéntis használd a <CODE>-vcd</CODE> opciót inkább. A VCD-k másolására
egyéb alternatíva az új
<A HREF="http://www.elis.rug.ac.be/~ronsse/cdfs/">cdfs</A> kernel meghajtó
(nem része a hivatalos kernelnek), amely a CD <I>session-okat</I> image
file-ként mutatja, valamint a
<A HREF="http://cdrdao.sourceforge.net/">cdrdao</A>, egy bitről-bitre
grabbelő CD másoló alkalmazás.</P>
</BODY>
</HTML>
|