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: 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: 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: Č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

HOME