DVBs kartice pod Linuxom
Pri nakupu satelitskega sprejemnika se običajno srečamo s težavno
odločitvijo kateri sprejemnik kupiti, da bo izpolnil vse naše zahteve.
Običajno se vseh pomankljivosti zavemo šele po nakupu, ko začnemo
sprejemnik uporabljati. Takim težavam se lahko izognemo z izgradnjo
lastnega satelitskega sprejemnika. Za tak projekt potrebujemo osebni
računalnik in DVBs kartico, vso potrebno programsko opremo (operacijski
sistem, gonilniki, aplikacijski programi, razvojna orodja) skupaj z
izvorno kodo pa dobimo brezplačno. Poleg osnovnih funkcij digitalnega
satelitskega sprejemnika pa lahko pri lastnem sprejemniku tudi
snemamo in predvajamo priljubljene oddaje, si ogledamo filme
iz DVDjev in video CDjev ter poslušamo priljubljene mp3
glasbene datoteke.
Splošna javna licenca in Linux
Večino programske opreme nastane s komercialnim razvojem v večjih družbah,
kjer običajno marketinške zahteve prevladajo pred tehničnimi zahtevami.
Rezultat je mnogokrat draga in neučinkovita programska oprema, katere
nimamo možnosti spreminjati in jo prilagoditi lastnim potrebam. "Freeware"
licenca se od komercialnih razlikuje le v tem, da dobimo brezplačno programe
z omejenimi funkcijami ali pa gre za starejšo programsko opremo.
V nasprotju z zgoraj navedenimi licencami nam Splošna javna licenca GPL
(General Public License) zagotovi možnost svobodnega spreminjanja in
razširjanja programske opreme. Pri tem modelu je koda dostopna vsem
uporabnikom, vsak jo lahko spreminja, dograjuje ali izboljšuje, vsako
spremembo pa mora sporočiti avtorju. GPL licenca omogoča, da širok krog
programerjev razvija in testira programsko opremo, uporabniki pa lahko
kontaktirajo direktno z avtorjem programa in mu zastavijo vprašanja ter
posredujejo želje in ideje. Ena največjih prednosti pa je, da programer
napiše program, ker ga potrebuje, zato ga tudi uporablja in izpopolnjuje,
medtem ko komercialni programer naredi program, kakršnega zahteva šef,
funkcionalnost pa ga ne zanima.
Najbolj znan projekt pod GPL licenco je operacijski sistem Linux. Jedro
Linuxa je pred desetimi leti napisal finski študent Linus Torvalds, od
takrat pa programerji iz celega sveta sodelujejo pri razvoju sistema,
sistemskih orodij, aplikacij in gonilnikov za strojno opremo. Tako je
podprte večino strojne opreme za osebni računalnik, izjema so le izdelki
za katero proizvajalci skrivajo specifikacije.
Danes Linux kraljuje v strežnikih, vse pogosteje pa ga srečamo tudi v
domačih osebnih računalnikih. Če ga želimo namestiti, lahko izbiramo
med mnogimi distribucijami. Vse distribucije izhajajo iz istega jedra,
razlikujejo pa se v dodatni programski opremi. Nekatere distribucije
so precej obsežne, tako da za namestitev potrebujemo več CD-jev,
najmanjše pa lahko poganjamo iz ene diskete.
Gonilniki
Zametek gonilnikov za DVBs kartico je bila diplomska naloga študenta na
Berlinski univerzi, z razvojem pa nadaljuje Ralph Metzler. Razvoj
gonilnikov so z dokumentacijo podprli samo pri
Siemensu, zato so prve verzije gonilnikov delovale samo na njihovi
kartici, kasnejše verzije pa delujejo na karticah z enakim elektronskim
vezjem kot je na siemensovi kartici, podprti pa sta tudi cenejši kartici
Technotrend-Budget in Hauppauge WinTV-Nova, ki nimata strojnega MPEG-2
dekoderja in TV izhoda. Od podprtih kartic sta najlažje dostopni
Technotrendova DVBsat PCI kartica in Hauppauge WinTV DVB-s kartica.
Koda gonilnika je prosto dostopna, firmware pa
lahko spreminja samo avtor gonilnika, ki pa se zelo hitro odzove na
želje programerjev in dogradi ali popravi funkcije. Tako so bile
dodane funkcije, ki so omogočile predvajanje linearnega PCM zvoka,
predvajanje mpeg1 in različnih oblik mpeg2 video zapisa, snemanje
v standardnem mpeg2 zapisu, prikaz bitmap na zaslonu med
predvajanjem posnetkov, insertiranje teleteksta v vertikalni zatemnitveni
del slike ter podpora za NTSC sistem.
V paketu z gonilniki dobimo tudi nekaj uporabniških programov.
Iskanju programov je namenjen stest, kateremu podamo frekvenčno
območje in simbolne hitrosti, po končanem iskanju pa dobimo konfiguracijsko
datoteko s podatki o programih, ki jih je stest našel.
Tuxzap uporabimo za preklapljanje med programi. Tuxzap uporablja
konfiguracijsko datoteko, ki jo naredi stest, s pomočjo te liste programov
pa si naredimo poljubno število priljubljenih list programov. Ko naredimo
priljubljene liste programov med njimi preprosto preklapljamo z radijskimi
gumbi, programe pa izbiramo direktno iz teh list ali pa z gumboma prejšnji
in naslednji. Če želimo gledati sliko na monitorju, poženemo tuxview. Tuxview
omogoča tudi spremljanje slike na računalnikih, ki so povezani v lokalno
omrežje, pogoj je le, da ima vsaj eden izmed računalnikov v omrežju vgrajeno
DVBs kartico. Če želimo posneti ali predvajati posnetek, uporabimo gVideo,
sliko lahko sprejemamo na monitorju ali televiziji. S programom gVideo
lahko tudi preklapljamo kanale, konfiguracijsko datoteko ima enako kot
tuxzap.

Daljinsko upravljanje
Ker DVBs kartice ne dobimo z daljinskim upravljalnikom si najprej oglejmo
postavitev daljinskega upravljalnika pod Linuxom s programskim paketom
LIRC (Linux Infrared Remote control).
LIRC omogoča sprejemanje infra-rdečih signalov iz daljinskega upravljalnika,
z njim pa lahko tudi pošiljamo infra-rdeče ukaze različnim napravam. Oddajanje
in sprejem poteka preko preprostega elektronskega vezja, ki ga priključimo
na serijski ali paralelni port osebnega računalnika, podprtih pa je tudi
več vrst drugačne strojne opreme, kot so npr. infrardeči sprejemniki
različnih TV tuner kartic. Skonfiguriramo lahko več daljinskih upravljalnikov.
LIRC klientom sporoča ime daljinskega upravljalnika in ime tipke,
ki je bila pritisnjena, ta podatek pa lahko uporabimo na več načinov.
Irexec požene poljuben program, irxevent pri grafičnih programih emuliramo
pritisk tipke na tipkovnici ali pa klik miške na točno določenem mestu.
Z uporabo programa lircmd lahko daljinski upravljalnik uporabimo namesto miške.
V nadaljevanju pa si bomo ogledali nekaj primerov uporabe, kjer programer
vključi kodo za sprejem ali oddajanje ukazov preko LIRCa v svoj program.
Namestitev DVBs kartice
Preden sem vgradil DVBs kartico v računalnik, sem imel postavljen
vrtljiv satelitski sistem pri katerem je bil pozicioner priključen na
analogni satelitski sprejemnik.
DVBs kartico sem začel uporabljati na operacijskem
sistemu Windows 98 z gonilniki in programsko opremo, ki sem jo dobil skupaj s
kartico. Po nekaj urah pregovarjanja z dinamično linkanimi knjižnicami mi je
uspelo namestiti gonilnike in program. Z avtomatskim iskanjem sem si naredil
konfiguracijkse datoteke za vse satelite. Nato sem hotel združiti vse datoteke
v eno, vendar mi to ni uspelo, ker so bile datoteke v neprepoznavnem binarnem
formatu. To mi je tudi onemogočilo ročni vnos podatkov za programe,
katerih z avtomatskim iskanjem nisem našel.
Pri preklapljanju programov sem gledal sliko v manjšem okvirju na
monitorju, za vsak preklop programa je bil potreben vsaj en klik
z miško. Pri zamenjavi satelita sem naložil novo programsko
listo, nato pa sem preklopil kanal na analognem satelitskem sprejemniku,
ki je posredoval pozicionerju ukaz za zasuk parabole. Kaj kmalu sem
ugotovil, da je tak način za pregled preko 300 programov na 15
satelitih povsem neuporaben in da se bo pregledovanje programov
na tak način končalo z bolečinami v zapestju in z glavobolom.
Takoj ko so bili dostopni prvi gonilniki, sem se lotil dela pod
Linuxom. Želel sem usposobiti daljinski
upravljalec in na preprost način pregledati vse programe. Po nekaj
popoldnevih dela so delovale vse funkcije, ki sem si jih zamislil.
Med njimi je bila tudi funkcija pregled programov, ki sem jo sprožil
s pritiskom na tipko "preview" na daljinskem upravljalniku. Funkcija
je vsake tri sekunde avtomatsko preklopila na naslednji program.
Če je bil program na drugem satelitu kot prejšnji, je funkcija preko LIRCa
posredovala ukaz za preklop programa analognemu sprejemniku, ta
pa je poslal pozicionerju ukaz za obračanje parabole. Tako je za pregled
preko 300 programov zadoščal samo en pritisk na tipko. Poleg zgoraj
opisane funkcije sem v program remote vgradil še preklop programa z
vnosom številke programa ali z gumboma prejšnji/naslednji, preklop
satelita ter snemanje in predvajanje posnetkov.
Video disk rekorder
Glavni namen projekta VDR (Video Disk Rekorder) je ponuditi
digitalni satelitski sprejemnik in digitalni videorekorder,
ki temelji na odprtih standardih in prosto dostopnemu gonilniku.
Avtor VDR-ja je Klaus Smidinger, pri programiranju, odpravljanju
napak in prevajanju v različne jezike pa mu pomaga okrog petnajst
programerjev. Prva verzija VDRja je bila predstavljen pred enim
letom, projekt pa se zelo hitro razvija in je že prerasel
komercialne naprave za podoben namen.
Od strojne opreme za VDR potrebujemo osnovno ploščo s procesorjem
in z RAM-om, čim večji trdi disk za snemanje priljubljenih
oddaj in vsaj eno DVBs kartico, možno pa je vgraditi do štiri kartice.
Če ne vgradimo grafične kartice, monitorja, miške in tipkovnice,
pa potrebujemo še enoto za daljinsko upravljanje ali ethernet kartico.
VDR lahko upravljamo na več načinov:
- avtor svetuje izgradnjo posebne enote za upravljanje RCU
(Remote Control Unit), ki sprejema signale iz daljinskega
upravljalca, na enoti pa je tudi štirimestni LED prikazovalnik,
na katerem vidimo trenutno nastavljeni kanal.
- preko daljinskega upravljalca z LIRC-em
- preko tipkovnice
- preko omrežne povezave. Pri tej možnosti se lahko preko
interneta povežemo z VDR in s pomočjo preprostega protokola
preklapljamo programe, pričnemo ali prekinemo snemanje,
uredimo timer za snemanje programov ali preverimo prostor
na disku. Tako lahko tudi takrat, kadar smo na dopustu,
preverimo in zagotovimo, da bodo naše priljubljene
oddaje posnete.
VDR ponuja preproste menije na zaslonu, ki so prevedeni v
več jezikov, med njimi je tudi slovenščina. V osnovnem
meniju lahko izberemo šest podmenijev:
- Urnik - tu si ogledamo celodnevni spored za posamezni program
ali pa si ogledamo listo trenutna in naslednja oddaja.

- Kanali - tu lahko odstranimo, uredimo, premaknemo ali vrinemo nov program.
- Termini - v tem meniju uredimo, odstranimo
ali naredimo nov termin za snemanje priljubljenih oddaj.

- Posnetki - preko tega menija predvajamo, odstranimo
ali preberemo vsebino izbranega posnetka.
Pri predvajanju posnetkov lahko sliko zamrznemo, vklopimo
počasno ali hitro gibanje naprej oziroma nazaj, preskočimo
minuto posnetka naprej ali nazaj ali pa se vrnemo na
začetek posnetka.
- Nastavitve - tu med drugim izberemo tudi
jezik, spodnjo in zgornjo frekvenco oscilatorja v
LNB-ju, sistemski čas, ter čas med EPG pregledi.
- Ukazi - v tem meniju lahko poganjamo sistemske
ukaze. To funkcijo lahko npr. uporabimo za prikaz
prostora na disku, preverimo če smo dobili e-mail
ali jo uporabimo za izklop računalnik.
Z glavnega menija tudi pričnemo ali prekinemo snemanje,
v naslednji verzij VDRja pa bo dodan še meni za urejanje in
predvajanje glasbenih mp3 datotek.
Programe preklapljamo direktno z izbiro številke kanala,
z gumboma prejšnji/naslednji ali iz podmenija kanali.
Pri vsakem preklopu programa se na zaslonu izpiše zaporedna
številka in ime programa ter trenutna in naslednja oddaja.

Konfiguracijska datoteka je v tekstovnem formatu in vsebuje za
vsak program njegovo ime, frekvenco, polarizacijo, Diseqc
številko, simbolno hitrost, video PID, audio PID, teletext
PID, številka kartice s CA modulom in identifikacijsko številko
programa. Konfiguracijsko datoteko lahko zgradimo na več načinov:
- z daljinskim upravljalnikom v meniju kanali
- z urejevalnikom teksta preko tipkovnice
- s pretvorbo urejenih programskih list v vdr format. Pri tej
možnosti so že napisani programi za pretvorbo v VDR format
iz gVideo formata, iz programskih list na spletnih straneh SatcoDX,
ter iz Nokia DVB 2000 formata, za katerega dobimo vsak dan
obnovljene liste tudi na spletnih straneh revije Telstar.
Če imamo vgrajeni dve DVBs kartici, VDR podpira še nekaj
dodatnih funkcij, kot so gledanje oddaje s časovnim zamikom,
snemanje dveh oddaj hkrati ali predvajanje posnetka med
snemanjem druge oddaje.
VDR je bil prvotno mišljen predvsem kot samostojna naprava,
pri kateri gledamo sliko na televiziji, upravljamo pa ga z
daljinskim upravljalcem. Z uporabo programa KVDR pa lahko
gledamo sliko na računalniškem monitorju, preko tipkovnice
pa se premikamo po menijih in preklapljamo programe.
DVD predvajalnik
Medtem ko so standardi za prenos digitalnega signala
večinoma prosto dostopni, so za DVD strogo varovana skrivnost in
praktično nedostopni za posameznika. Poleg tega pa je večina filmov na
DVD-jih kodiranih in z regijsko zaščito. Zaradi tega je nemogoče
legalno izdelati DVD predvajalnik z prosto dostopno kodo. Zaradi teh
vzrokov se je prvič pojavila možnost predvajanja DVDjev pod Linuxom
šele konec leta 1999, ko je 16 letni heker Jon Johanssen odkril
DeCSS algoritem za odkodiranje DVDjev. Z namenom da bi si lahko vsak
predvajal legalno kupljen DVD tudi na operacijskih sistemih, ki
temeljijo na odprti izvorni kodi, je DeCSS algoritem objavil na internetu.
Temu pa se je uprla večina večjih filmskih studijev, ker naj bi objava
DeCSS algoritma spodbujala piratstvo. Proti mlademu hekerju so vložili
tožbo in zahtevali odstranitev DeCSS kode z vseh strežnikov. Sodišče v
Združenih državah je odločilo, da izvršljive izvorne kode ne ščiti prvi
amandma o svobodi govora in izdalo prepoved objave DeCSS kode. Če je po
tej odločitvi prepovedano objaviti kodo, ki se direktno prevede in izvede,
se pojavi vprašanje, kaj pa tekstovni opis take kode? Je tudi ta prepovedan,
oziroma kje je meja? Dr. David S. Touretzky je na svoji spletni strani objavil
galerijo DeCSS algoritmov in se sprašuje ali je z objavo katerega izmed njih
prekršil zakon in če je, s katerim? V galeriji med drugim najdemo malenkost
spremenjeno kodo, za katero ta trenutek še ni prevajalnika, gif slike algoritma,
zvočne posnetke na katerih deklamirajo kodo, kodo pretvorjeno v midi datoteko,
film o DeCSS kodi in izrisan DVD logo z znaki DeCSS algoritma.
Drug problem, s katerim sem se srečal pri razvoju DVD predvajalnika, pa je bila
strojna oprema, saj DVBs kartica ni namenjena za predvajanje filmov iz DVD-jev.
Tako je bilo potrebno programsko obdelati video zapis, zvok je bilo možno
predvajati samo na zvočni kartici, gonilnik ni podpiral istočasnega
predvajanja video zapisa in podnapisov, predvajati je bilo možno samo
DVD-je v PAL video formatu.
Z vsako verzijo gonilnikov in DVD predvajalnika smo rešili kakšen problem,
tako da danes DVD predvajalnik vsebuje vse funkcije, potrebne za ogled filmov
iz DVDjev. Tako lahko z daljinskim upravljalnikom izbiramo vrsto in jezik
zvočnega zapisa, izbiramo lahko podnapise v različnih jezikih, sliko lahko
zamrznemo, jo pačasi ali hitro predvajamo in preskočimo naprej ali nazaj.
Zvočni zapis predvajamo preko zvočnega izhoda na DVBs kartici v dolby
surround sistemu, ali pa pošljemo zvočni kartici dolby digital zvočni zapis.
Če želimo predvajati NTSC DVDje na televizorju, ki podpira samo PAL standard,
moramo povezati DVBs kartico in televizor preko RGB povezave. RGB signali so
dostopni na DVBs kartici z notranje strani, zato moramo povezovalni kabel
izdelati sami. RGB povezava nam izboljša kvaliteto slike tudi pri
gledanju satelitskih programov in posnetkov.
Ostali programi
Napisanih je ogromno programov v povezavi z DVBs kartico, ki so jih
programerji napisali za svoje potrebe. Ker je nemogoče omeniti vse, bom
na kratko omenil samo še nekatere.
S program vcdrip lahko gledamo video CD-je preko DVBs kartice.
Program dvbd uporabimo za sprejem interneta preko satelita.
Dvbtext omogoča sprejemanje do osem različnih teletextov iz istega transponderja,
za ogled tako pridobljenih teletext strani pa potrebujemo applet JVtxView.
Program epg2html pretvori EPG podatke v html format, ki je primeren
za ogled preko interneta. Objavljenih pa je bilo tudi precej
funkcij, ki jih vključimo v programe kot so npr. za krmiljenje DiSEqC1.2
pozicionerja, filtriranje AC3 zvoka iz programa Pro 7 in poslušanje
radijskih programov.
Povezave do opisanih programov boste našli na moji spletni strani:
http://www2.arnes.si/~mthale1/dvb.html
Matjaž Thaler