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
|
<!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>Másik módszer :</P>
<P> <CODE>echo current_speed:4 >/proc/ide/[meghajtó]/settings</CODE></P>
<P>de ehhez rendszergazdai jogosultság szükséges. 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).
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>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.</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>
<P><B>Régi tipusú DVD támogatás - <I>OPCIONÁLIS</I></B></P>
<P>Ez akkor hasznos ha pl <B>merevlemezről</B> akarsz kódolt VOB-ot lejátszani.
Fordítsd le és installáld a <B>libcss</B> 0.0.1-et (és ne újabbat).
Ha az <B>MPlayer</B> nem találja, használd a <CODE>-csslib /útvonal/libcss.so</CODE>
opciót. Root jogokkal, vagy egy suid root binárissal kell rendelkezned a
használatához.</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 régi tipusú DVD támogatás egy mountolt
DVD filerendszert igényel, és szektor szintű hozzáférést az egységhez.
Linux alatt ehhez sajnos root jogokkal kell rendelkezni. Ennek
megoldására két lehetőség van:</P>
<UL>
<LI>Root jogok megadása, vagy egy suid root bináris használata.</LI>
<LI>Az UDF filerendszer implementálása userspace-ben. A libdvdread 0.9.x és
a libmpdvdkit ezt csinálja (Új típusú DVD támogatás). 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://perso.club-internet.fr/farzeno/firmware/">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>
</BODY>
</HTML>
|