tiistai 8. tammikuuta 2013

HTPC kokoonpano, osa 2

Lue myös HTPC kokoonpano, osa 1

PÄIVITYS 3.2.2013: Lisätty muutama konfiguraatio kohta ja nyt käytössä XBMCbuntu 12 lopullinen versio!


Nyt kun itse laite on käyttövalmiina, perehdytään hieman itse käyttöjärjestelmään ja softaan.

Edellinen HTPC:ni oli rakennettu Windows 7 ja Mediaportal softan päälle. Sinänsä ihan toimiva ratkaisu, mutta en halunnut enää kuluttaa arvokasta Windows lisenssiäni HTPC koneelle, enkä halunnut säätää Windowsin kodekkien kanssa. Windowsissahan on tietyt sisäänrakennetut kodekit, jota käytetään tietyissä tilanteissa vakiona. Ffdshow:ta olin käyttänyt aiemmin ja siitä ei ole kuin hyvää sanottavaa, kunhan ensin perehtyy ffdshon hienouksiin. En myöskään halunnut Windowsin melko raskasta verkkopinoa vaivoikseni.

Mediaportal on huikea HTPC softa, johon saa todella paljon erilaisia laajennukseja sekä hienoja skinejä. Kuitenkin itse hallinta on melko hankalaa eikä kaikkea voi tehdä itse softan sisältä vaan aika monelle laajennukselle on oma hallintasovelluksensa.

Pitkällisen tutkimisen jälkeen päädyin XBMC nimiseen softaan. XBMC juontaa juurensa vuosituhannen alkuun ja silloiseen XBOX pelikonsoliin, XBMC (XBoxMediaCenter) oli siis XBOX pelikonsolin medialaajennos ja vieläpä ilmainen sellainen! Tästä on kehitytty huimasti eteenpäin, niin laitteiden kuin itse softankin kanssa.


Muutama ominaisuus XBMC:stä:

  • Saatavilla versiot Windowsille, Apple OSX:lle, IOS:lle, Linuxille, Apple TV:lle sekä Rasperry Pi:lle
  • Toistaa lähestulkoon kaikken mahdollisen median, perus MP3-tiedostoista HD-tasoiseen videoon.
  • Sisältää laajan valikoiman erilaisia laajennuksia esim. CD-levyjen kannet, julisteet, elokuvien julisteet ja tiedot
  • Muodostaa eri medioista kirjastoja ja näihin kirjastoihin voidaan kytkeä eri laajennuksia toimimaan, esim. kierrättämään musiikkikirjastossa Internetistä haettuja julisteita taustakuvana yms.
  • Kielituki on erittäin laaja ja lisäkieliä saa osallistumalla kielikehitysporukkaan.
  • Laitteistokiihdytystuki löytyy yleisimmille näytönohjainvalmistajille jolla saadaan kuvanparannukset toteutettua näytönohjaimen GPU:lla.
  • PVR (Personal Video Recording) tuki Tvheadend, Mythtv, VDR, Mediaportal, DVBlink, ArgusTV, NextPVR
  • PVR palvelut on mahdollista toteuttaa toisella koneella ja striimata XBMC:lle

Oma kokoonpano

Omassa HTPC:ssä softa vaatimuksena seuraavat:

  • Toistettava kaikki video- ja audiomateriaali
  • Digi-TV tallennus ja ajansiirto
  • EPG tiedot verkosta
  • Medioiden tiedot verkosta
  • Medioiden toisto langattomasti lähiverkosta
  • Laitteistokiihdytys
  • HDMI:llä kuva jä monikanavaääni vahvistimelle
Päädyin monen testauksen jälkeen XBMCbuntu vaihtoehtoon. XBMCbuntu 12 perustuu erittäin kevyeeseen Lubuntu 12.10 32-bit jossa on  XBMC 12 versio viritetty valmiiksi toimintaan.

Käyttöönotto oli todella helppo, unetbooting softalla tehdään USB-asennustikku jossa siis XBMCbuntu 12, tikku kiinni koneeseen ja vain valitaan käynnistysvalikosta asennus. XBMCbuntua voi kokeilla myös ilman asentamista ns. Live versiolla joka löytyy erikseen käynnistysvalikosta.

Asennuksessa pari erikoista kohtaa, osiomäärittelyssä määritin juuren / SSD levylle ja normaalille kiintolevylle en määrittänyt liitoskohtaa, swap myös SSD levylle ja tietenkin Grub SSD levylle. Näinollen itse XBMCbuntu käynnistyy vikkelästi SSDlevyltä ja XBMC:n mediat tai PVR tallennukset ohjataan perinteiselle kiintolevylle. Kaikki osiot formatoin EXT4 tiedostojärjestelmälle.

Käyttäjätunnuksen ja koneen nimen antamisen jälkeen järjestelmä käynnistyy uudelleen ja käynnistyy suoraan XBMC softaan. Itse Lubuntu työpöydälle pääsee vain sammuttamalla XBMC:n jolloin ilmestyy normaali Lubuntu kirjautumisruutu. 

Hallinta tapahtuu tietenkin SSH yhteydellä ja tätä varten XBMCbuntu:ssa on jo valmiiksi Openssh-server paketti asennettuna. Langaton verkko määritettiin jo asennusvaiheessa joten SSH:lla hallinta oli jo valmiiksi konfiguroitu.

Yllätykseni oli suuri kun myös kaukosäädin toimi aivan suoraan ilman minkäänlaista säätöä, HD-tasoiset videot sekä musiikki toimivat heti niiden kirjastoon lisäämisen jälkeen. Kirjastojen päivittämistä varten löytyy laajennus, joka ajatetusti päivittää kirjastoja. Samoin löytyy laajennukset jotka hakevat julisteita ja tietoja eri medioista Internetistä. Osa laajennuksista on jo valmiiksi asennettu, ne vaan pitää konfiguroida ja ottaa käyttöön.

Ainoa laite joka ei toiminut suoraan oli DVB-T/T2 kortti, kortille on olemassa linux ajurit ja hyvät ohjeetkin löytyvät osoitteesta http://linuxtv.org/wiki/index.php/TBS6280. Ohjeiden mukaan kortti lähti toimimaan moitteettomasti.

Laitteistokiihdytys

Jotta laitteistokiihdytyksen saa toimimaan, pitää asentaa VAAPI:n tarvitsemat kirjastot ja ajurit. Ubuntu 12.10 mukana tulleet ajurit olivat hieman vanhentuneet ja intel on julkaissut korjauksia melkoisen läjän. Helpoiten ajuripäivityksestä selviää kun lataa ajurit nätisti ubuntu X-team PPA:sta  

Ajurit asennetaan seuraavasti kun käytetään SSH:ta hallintaan:

1. Lisätään Ubuntun X-team repository
sudo add-apt-repository ppa:ubuntu-x-swat/x-updates

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install vainfo libva1

2. Tarkistetaan että VAAPI on oikeasti poissa käytöstä:
export DISPLAY=:0
vainfo

   libva: VA-API version 0.33.0
   libva: va_getDriverName() returns 0
   libva: Trying to open /usr/lib/dri/i965_drv_video.so
   libva: va_openDriver() returns -1
   vaInitialize failed with error code -1 (unknown libva error),exit

3.Asennetaan itse ajuri ja käynnistetään kone uudelleen
sudo apt-get install intel-vaapi-driver
sudo reboot

4. Käynnistymisen jälkeen tarkistetaan VAAPI tilanne:
export DISPLAY=0
vainfo

   libva info: VA-API version 0.33.0
   libva info: va_getDriverName() returns 0
   libva info: Trying to open /usr/lib/i386-linux-gnu/dri/i965_drv_video.so
   libva info: Found init function __vaDriverInit_0_33
   libva info: va_openDriver() returns 0
   vainfo: VA-API version: 0.33 (libva 1.1.0)
   vainfo: Driver version: Intel i965 driver - 1.0.19
   vainfo: Supported profile and entrypoints
         VAProfileMPEG2Simple            : VAEntrypointVLD
         VAProfileMPEG2Main              : VAEntrypointVLD
         VAProfileH264Baseline           : VAEntrypointVLD
         VAProfileH264Baseline           : VAEntrypointEncSlice
         VAProfileH264Main               : VAEntrypointVLD
         VAProfileH264Main               : VAEntrypointEncSlice
         VAProfileH264High               : VAEntrypointVLD
         VAProfileH264High               : VAEntrypointEncSlice
         VAProfileVC1Simple              : VAEntrypointVLD
         VAProfileVC1Main                : VAEntrypointVLD
         VAProfileVC1Advanced            : VAEntrypointVLD
         VAProfileJPEGBaseline           : VAEntrypointVLD

Laitteistokiihdytyksen toiminna voi todeta kahdella tavalla, CPU kuorma vähenee merkittävästi sekä videon katselun aikana kun painaa kirjainta "o", saadaan videoinfo näkyville. Kunhan jossain kohtaa lukee vain "vaapi", on laitteistokiihdytys toiminnassa.

Itsellä vaapi ei toimi vielä kuten pitää, vaan kuvassa on todella rasittavaa värinää kun lomituksen poisto on toiminnassa. Päivitystä odotellessa...

DVB-T/T2 ja PVR

DVB käyttöönotto meni suoraan wikin mukaisesti: http://wiki.xbmc.org/index.php?title=PVR.

Muutama tarkennus:

PVR-Backend on itse sovellus joka on yhteydessä korttiin, virittää kanavat ja hakee ohjelmatiedot. PVR-backend voidaan asentaa mille tahansa laitteelle, jossa on vain DVB-viritin.

PVR-Frontend on sovellus joka ottaa yhteyden PVR-backend:n toistoa varten, tämä voi tapahtua vaikka verkon yli tai samassa koneessa olevaan PVR-backend:n.

Omassa kokoonpanossani samassa koneessa on PVR-backend ja frontend. PVR-backendiksi valitsin tvheadendin sen webbihallinnan takia. Frontend on tietenkin laajennus XBMC:ssä joka ottaa yhteyttä tvheadendiin.

Tvheadend palvelu käynnistetään käyttäjällä hts.

XMLTV on laajennus, joka hakee ohjelmatiedot (EPG) verkkosivuilta, esim. telkku.com. DVB-verkosta haettava EPG on omasta mielestäni vajaa, sillä usein ohjelmatiedoista puuttuu loppuosa!


Tallennuksia varten pyhitin perinteisen kiintolevyn (250Gb) tallennuksille ja liitin sen aivan omaan kansioon:

1. Tee kansio johon kiintolevy liitetään
sudo mkdir /media/levy

2. Liitä kiintolevy, omassa tapauksessa sda1 joka sisältää jo osion ja EXT4 tiedostojärjestelmän
sudo mount /dev/sda1 /media/levy

3. Muokkaa fstab vastaamaan mtabia
sudo cat /etc/mtab

Etsi rivi jossa mainittu /dev/sda1 ja kopio se

Liitä teksti viimeiselle riville fstab tiedostoon jotta bootin jälkeenkin kiintolevy on liitetty samaan pisteeseen
sudo pico /etc/fstab

4. Tee tallennuksia varten kansio ja anna tarvittava oikeus hts käyttäjälle
sudo mkdir /media/levy/recordings
sudo chown hts:hts /media/levy/recordings



Tvheadend ja XMLTV käyttöönotto:

1. Lisää tvheadend ppa repository
sudo add-apt-repository ppa:adamsutton/tvheadend

2. Asenna tvheadend
sudo apt-get update
sudo apt-get install tvheadend

Asennus pyytää tvheaden järkkärin tunnusta ja salasana, sekä kertoo lopuksi webbiliittymän osoitteen ja portin. Nämä on hyvä laittaa ylös!

3. Kirjaudu järkkärillä webbihallintaan selaimella (osoite http://localhost:9981 tai http://IP-OSOITE:9981)
Lisää uusi käyttäjä jotta XBMC voi ottaa yhteyttä tvheadend backendiin.
Vaihda tarvittaessa tallennussijainti.
Lisää kanavat käyttäen suomea.
Lisää kanavat palveluun.
Lisää kanaviin logot jostain Internetin logopalvelusta.

3. XBMC säädöt
Ota HTS tvheadend laajennus käyttöön
Määritä aiemmin luotu käyttäjätunnus ja salasana jolla oikeus käyttää tvheadendia



XMLTV käyttöönotto etenee suurinpiirtein näin:

XMLTV pitää konfiguroida, jotta tvheadend löytää oikean kanavan ja sille ohjelman. Konfigurointi pitää ajaa samalla käyttäjällä millä tvheadend on käynnistetty, XBMCbuntussa käyttäjä on hts.

1. Muuta hts tilin salasana haluamaksesi ja liitä hts tili ainakin video ryhmään
sudo passwd hts
sudo usermod -a -G video hts

2. Kirjaudu hts tilillä
sudo su hts

3. Aja konfiguraatio
tv_grab_fi --configure
Lisää kaikki kanavat tai valitse itse mitkä kanavat lisäät.

Voit hakea jo ohjelmatiedot jos haluat tai odottaa että tvheadend hoitaa asian puolestasi
tv_grab_fi

Odottele kunnes tiedot on haettu (n. 30min)

4. Käynnistä tvheadend palvelu uudelleen
sudo /etc/init.d/tvheadend restart

Tvheadend ei ihan heti tajua XMLTV:n olemassaoloa, aikaa saattaa kulua useampi tunti. Syytä siihen en tiedä, sillä ohjeiden mukaan palvelin uudelleenkäynnistyksen ja webbihallinnan päivittäminen pitäisi riittää. Omassa tapauksessä näin ei kuitenkaan ole.

6. Konfiguroi tvheadend
Kirjaudu tvheadend webbihallintaan selaimella
Kytke EIS EPG haku pois päältä
Määritä sisäinen XMLTV sekä aika kuinka usein ohjelmaopasta päivitetään
Liitä kanavaan oikea XMLTV:n ohjelma.

7. Päivitä XBMC tv-plugin vastaamaan asetuksia
Lisää käyttäjä ja salasana



Kaiken tämän jälkeen onkin hyvä perehtyä tvheadend wikiin: https://www.lonelycoder.com/redmine/projects/tvheadend/wiki


Wi-Fi

Sisäänrakennettu Wi-Fi kortti ei kykene täyteen 300Mbps nopeuteen, vaan vain puoleen siitä. Lisäksi yhteys on auttamattoman hidas siirtämään FullHD videota. Ajuri on ath9k_htc johon auttaa hieman komento:

sudo -s
echo "options ath9k_htc nohwcrypt=1" > /etc/modprobe.d/ath9k_htc.conf



Vielä tehtävää:

  1. DVB-T kuva on lomitettua, lomituksen poisto toimii mutta kuva värisee inhottavasti
  2. DVB-kortti ei vielä herää kun koneen herättää horroksesta
  3. Tvheadend ei vielä tue ajansiirtoa, joten päivitystä odotellessa.
  4. Bluetooth näppiksen konfigurointi

Loppusanat

Projektini on sinänsä onnistunut, vaikka ihan kaikki ei vielä toimikkaan. Laitteesta on moneksi ja ainakin nyt tuntuu että pienemmillä tehoillakin olisi pärjännyt. Eipä siinä, voinhan aina asentaa Windowsin ja hukata tehot siihen. Tulen todennäköisesti kirjoittamaan lilsää projektistani, kunhan ongelmat on saatu ratkaistua.

Lopuksi vielä esittelyvideo XBMC:n yhdestä suosituimmasta "teemasta":









Ei kommentteja:

Lähetä kommentti