Contents:
Kakkosboksi valmiiksi
Sain pari viikkoa sitten kyhättyä kakkosboksin valmiiksi ja tässä tarinat rakennuksen loppuvaiheilta:
Koteloksi valitsin AOpen S120:n. Tämä oli oikeastaan ainoa mahdollinen kotelovaihtoehto jonka löysin sillä lähes kaikissa Mini-ITX -koteloissa on turhaan varattu tilaa esim. kovalevylle tai dvd-asemalle. AOPen S120:a on mahdollista suurentaa laajennusosilla, mutta minulla on käytössä pelkkä perusrunko. Kotelon mukana tuli kaksi tuuletinta jotka poistin saman tien sillä lämpöä ei pääse syntymään liiaksi kun kone on suljettuna silloin kun sillä ei tv:tä katsella. Tilasin kotelon Saksalaisesta verkkokaupasta, Computer Universesta ja hintaa kotelolle tuli postikuluineen n. 80 e.
Aikaisemmin kirjoitin Compact Flash - IDE -adapterista jonka hommasin projektia varten. Suoraan IDE -väylään liitettävä malli osoittautui kuitenkin koteloon sopimattomaksi, koska CF -kortti jäi pilkottamaan kotelon reunan yli ja teki kotelon sulkemisen siis mahdottomaksi. Ratkaisuksi ongelmaan tilasin adapterin uros -liittimellä (jälleen ebaysta ja samaan hintaan kuin aiemmin tilaamani naarasmalli), tällöin adapteri liitetään ide -kaapeliin ja sen saa kotelossa muuhunkin kuin pystyasentoon.
Toiseksi ongelmaksi tuli mpeg2 -purkukortin sijoittaminen. Se kun ei oikein ottanut sopiakseen emolevyn päälle, enkä halunnut alkaa laajentamaan koteloa laajennusosilla. Ratkaisuna modasin hieman koteloa ja asensin emolevyn hieman alkuperäistä korkeammalle jolloin sain dxr3 -kortin menemään emolevyn alle ja lisäksi tilaa jäi viereen CF-IDE -adapterille. DXR3 -kortti on kiinni emolevyssä pci-riser -kaapelin avulla.

Kakkosboksin pohjakerros. DXR3 -kortti ja CF-IDE -adapteri.

Emolevy paikallaan pci -kortin ja compact flash - ide -adapterin päällä.

Kotelo suljettuna.

Kakkosboksi toiminnassa. Takana pilkottaa muuntaja.
Vdr-1.6.0 suomenkieliseksi
Vdr-1.4.7:n jäljiltä minulla oli käynnistyksen yhteydessä komento
export LANG="fi_FI.iso8859-1"
Tuolla pelkästään vdr-1.6.0 ei lähtenyt toimimaan suomenkielisenä. Ensimmäinen virhe johon törmäsin oli:
vdr: [30448] ERROR: ./locale: No such file or directory
Mikäli vdr:ää ei käynnistetä hakemistosta jossa locale/ -hakemisto sijaitsee, täytyy tuon hakemiston sijainti kertoa vdr:lle käynnistyksen yhteydessä tällä lisäyksellä:
--localedir=/usr/src/vdr-1.6.0/locale/
Seuraava virhe oli
vdr: [4222] found 0 locales in /usr/src/vdr-1.6.0/locale
Ratkaisu tuohon on muuttaa aikaisemmin mainittu rivi export LANG=”fi_FI.iso8859-1″ muotoon:
export LC_COLLATE="fi_FI.utf8"
LANG muuttujan muuttaminen riittäisi myös, mutta jättämällä siihen englannin kielen ja muuttamalla tuota LC_COLLATE :a niin lokiviestit pysyvät edelleen englanninkielisinä, mutta vdr-valikot saa toimimaan suomenkielisinä.
PicoPSU :n avulla äänetön virtalähde
Kakkosboksin hankinnat saivat jatkoa kun tilasin (jälleen eBay:stä) picoPSU:n, joka on pieni mötikkä jonka avulla emolevyyn saa virran pienemmällä jännitteellä muuntajan kautta. PicoPSU:ita löytyy erilaisia, jotkut tukevat vain 12 V:n jännitettä ja jotkut laajempaa esim 6-25 V tai 12-32V jännitettä. Oma kappaleeni tukee 6-25 V jännitettä ja siitä saa maksimissaan 120W tehot. Siinäkin on tehoja omiin tarpeisiini yllinkyllin, sillä laskin että kulutus olisi maksimissaan n. 30W luokkaa tällä laskurilla. Hintaa picoPSU:lle tuli postikuluineen n. 47 euroa.

PicoPSU:n jatkeeksi ostin Clas Ohlsson -liikkeestä kannettavan tietokoneen virtalähteen/muuntajan, joka maksoi 69 euroa.
VDR - server - client -viritys
Seuraavassa on selostettu miten saa aikaan järjestelmän, jossa yksi vdr-kone sisältää digitv-virittimet ja hoitaa tallennukset ja toinen kone saa live-tv-kuvaa tai tallennuksia toistettavaksi lähiverkon kautta. Ns. ykköskone on ollut jo jonkin aikaa olemassa ja sen asennusvaiheita on luettavissa vanhemmista jutuista. Tässä siis vain client -vdr:n osuus.
Mikäli ei käytä dxr3 -korttia kuvan siirtämisessä televisioon, niin hommaan on olemassa yksinkertaisempikin tapa: xineliboutput / vdr-sxfe ja täältä löytyy kuvaus sen käyttämisestä samaan tarkoitukseen. Mutta koska xineliboutputissa ei ole riittävän hyvää tukea dxr3 -kortin käytölle niin tässä toinen tapa:
VDR:
sudo apt-get install libjpeg-dev libcap-dev gettext libfontconfig-dev build-essential
sudo tar -xf vdr-1.6.0.tar.bz2
cd vdr-1.6.0/
sudo make
sudo make install
Lopuksi tulee virhe:
*** failed plugins: skincurses
Mutta vdr toimii silti.
Tämän jälkeen kopioidaan vdr -palvelinkoneesta channels.conf,keymacros.conf, sources.conf, commands.conf ja svdrphosts.conf -tiedostot vdr:n konfigurointitiedostojen kansioon client -koneessa.
DXR3:
sudo apt-get install libgtk2.0-dev
sudo tar -xf em8300-0.17.0.tar.gz
cd em8300-0.17.0/
sudo ./configure
sudo make
sudo make install
cd modules
sudo make
Tässä kohdassa sain virheen:
cc1: error: /lib/modules/2.6.24-16-generic/build/include/linux/version.h: No such file or directory
:1:40: error: missing binary operator before token "("
make -C /lib/modules/2.6.24-16-generic/build SUBDIRS=/usr/src/em8300-0.17.0/modules modules
make: *** /lib/modules/2.6.24-16-generic/build: No such file or directory. Stop.
make: *** [build] Error 2
ratkaisu:
sudo apt-get install linux-headers-`uname -r`
..ja homma jatkuu:
sudo make
sudo make install
sudo make devices
sudo cp /usr/src/em8300-0.17.0/em8300setup/em8300setup /usr/local/bin/
Lisätään /etc/modprobe.d/aliases -tiedostoon rivi:
alias char-major-121 em8300
sudo depmod -a
ja moduulit ladataan seuraavilla komennoilla:
insmod /usr/src/em8300-0.17.0/modules/adv717x.ko pixelport_16bit=0 pixelport_other_pal=1 pixeldata_adjust_pal=3
insmod /usr/src/em8300-0.17.0/modules/em8300.ko use_bt865=0 bt865_ucode_timeout=0 dicom_fix=1 dicom_control=1 dicom_other_pal=1 audio_driver=oss
LIRC:
http://www.ufonaama.com/htpcblog/?p=5
VDR-DXR3PLUGIN:
ffmpeg:
sudo apt-get install subversion
sudo svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
Pluginin Makefileen muokataan polut em8300 ja ffmpeg hakemistoihin kohdalleen.
sudo ./configure
sudo make
sudo make install
sudo nano /etc/ld.so.conf
ja lisättiin rivi
/usr/local/lib
jonka jälkeen
sudo ldconfig
————————————————————————-
STREAMDEV-SERVER/CLIENT:
Tuossa tuli perusasiat, joilla saa jo jotain tapahtumaan telkkarin ruudulle.
Kuvan siirtämisessä palvelinkoneelta clientille käytetään streamdev-server/clientia. Itse otin versionhallinnasta 0.5.0-pre version:
sudo apt-get install cvs
cvs -d:pserver:anoncvs@vdr-developer.org:/var/cvsroot login
sudo cvs -d:pserver:anoncvs@vdr-developer.org:/var/cvsroot co streamdev
jonka jälkeen normaali plugin asennus (sekä palvelin-, että client -koneeseen)
Tämän jälkeen palvelinkoneeseen luodaan tiedosto VDRCONF/plugins/streamdev/streamdevhosts.conf, jossa on listattu ip-osoitteet joista sallitaan yhteys. Eli sinne client -koneen ip.
VDR:n käynnistyttyä clientissa, muokataan streamdev-clientin asetuksia ja lisätään sinne ip-osoite jossa palvelin sijaitsee. Lisäksi kannattaa laittaa FilterStreamin -asetus päälle, jonka ansiosta myös YLE:n käyttämät dvb-tekstitykset tulevat näkyviin.
Maksukanavat:
Tähän löysin ratkaisun linuxtv.fi:n foorumilta. Palvelinkoneessa minulla on kortti+kortinlukija ja sc-plugin hoitamassa maksukanavien salauksenpurkua ja jotta maksukanavien kuva tulisi purettuna myös client -koneelle täytyy channels -confiin muuttaa viidenneksiviimeisen numeron tilalle (’0′ tai ‘B00′) laittaa ‘10′
CANAL+ FIRST;CANAL+:674000000:C23D23M64B8T8G8Y0:T:27500:514+128:670=fin:576:10:417:8438:12289:0
Tuo numero ‘10′ viittaa ilmeisesti streamdev laajennoksen järjestysnumeroon (eli tuo numero siis riippuu siitä missä järjestyksessä pluginit ladataan vdr:n käynnistyessä.)
PALVELINKONEEN TALLENNUKSET:
Jotta palvelinkoneelle tallennettuja ohjelmia voisi katsella myös client -koneella niin palvelimen /video -hakemisto jaetaan NFS:llä clientille.
Palvelinkoneella:
sudo apt-get install nfs-kernel-server
sudo nano /etc/exports
ja sinne lisätään rivi:
/video 10.0.0.0/24(rw,no_root_squash,async)
jonka jälkeen:
sudo /etc/init.d/nfs-kernel-server restart
Client -koneella:
sudo apt-get install nfs-common
sudo nano /etc/fstab
ja sinne rivi:
10.0.0.4:/video /video nfs rsize=8192 0 0
(tuossa siis 10.0.0.4 on palvelinkoneen ip-osoite)
Tämän jälkeen komento sudo mount -a toteuttaa tehdyt muutokset
TIMERSYNC:
Jotta client-koneella voidaan myös ajastaa tallennuksia, jotka tapahtuvat palvelinkoneella niin asensin lisäksi timersync -laajennoksen joka käyttää svdrpservice -laajennosta näillä eri koneilla olevien ajastusten synkronointiin. Jotta homma toimisi niin palvelinkoneen svdrphosts.conf -tiedostoon on lisättävä clientin ip.
VDR -clientin käynnistys tapahtuu komennolla:
sudo ./vdr -c /etc/vdr/ -E /tmp/epg.data -D 10 -Pdxr3 -Pstreamdev-client -Psvdrpservice -Ptimersync --no-kbd --lirc
ja vdr -serverillä käynnistyskomentoon lisätään -Pstreamdev-server
Kakkosboksin emolevy saapui + Ubuntu -asennus
Kakkosboksin rakentelu pääsi vihdoin vauhtiin kun ostin eBaysta VIA EPIA 5000 Mini-ITX emolevyn. Hintaa levylle tuli postikuluineen n. 50 euroa. Tarkoituksena on saada aikaan mahdollisimman pieni ja hiljainen kone ja tämä emolevy antaa siihen hyvät lähtökohdat: koko 17cm x 17cm, eikä lainkaan tuulettimia. Emolevyllä on 533 MHz suoritin, sekä tarvittavat laajennuspaikat: 1 PCI -väylä DXR3 -kortille, sarjaportti kaukosäätimen infrapunavastaanottimelle sekä verkkokortti. Kovalevyä koneeseen ei ole tulossa ollenkaan, vaan käyttöjärjestelmä asennetaan CompactFlash -kortille.

Hankkimatta on vielä mm. virtalähde ja kotelo.
Käyttöjärjestelmän jo asensin ja tällä kertaa valitsin Ubuntu 8.04 LTS Server Editionin, joka tuntuu sopivan tarkoitukseen hyvin. Asennus vie levyltä tilaa alle 500 megaa sillä mitään ylimääräistä (mm. työpöytää ja työpöytäsovelluksia) ei asenneta. Asennuksen loppuvaiheessa saa lisäksi valita kätevästi mitä palvelinominaisuuksia, kuten OpenSSH -palvelimen haluaa asentaa samalla kertaa.
Jotta CF -kortille ei tulisi turhaa kirjoittamista muokkasin joitain hakemistoja käyttämään tmpfs:ää, jolloin ne ja niiden sisältämät tiedostot kirjoitetaan keskusmuistiin (jätin myös asennusvaiheessa swap-osion luomatta). Ohjeita tmpfs:ään löysin mm. täältä, mutta suoraan nuo eivät toimineet vaan lisäsin /etc/init.d/mountkernfs -tiedostoon
“domount tmpfs "" /var/lock -omode=1777,nodev,noexec,nosuid” -rivin jälkeen seuraavaa:
domount tmpfs "" /var/lib/nfs -omode=0755
domount tmpfs "" /var/lib/dhcp3 -omode=0755
domount tmpfs "" /tmp -omode=1777
domount tmpfs "" /var/log -omode=1777
domount tmpfs "" /var/lib/urandom -omode=0755
#only needed if you are running nfs...
mkdir /var/lib/nfs/rpc_pipefs/
mkdir /var/lib/nfs/sm
mkdir /var/lib/nfs/sm.bak
Suuri päivitys
Viikonloppuna tuli päivitettyä Ubuntun lisäksi vdr sekä joukko laajennoksia.
Ubuntu 7.10 -> 8.04:
sudo aptitude update
sudo do-release-upgrade
dxr3 0.16.3 -> 0.17.0:
sudo tar -xf em8300-0.17.0.tar.gz
cd em8300-0.17.0/
sudo ./configure
sudo make
sudo make install
cd modules
sudo make
sudo make install
sudo make devices
sudo depmod -a
sudo cp /usr/src/em8300-0.17.0/em8300setup/em8300setup /usr/local/bin/
LIRC 0.8.2 -> 0.8.3
Asennus sujui samalla tavalla kuin edelliselläkin kerralla.
VDR 1.47 -> 1.60:
cd /usr/src/
sudo tar -xf vdr-1.6.0.tar.bz2
cd vdr-1.6.0/
sudo make
sudo make install
Asennuksen jälkeen sain herjan: *** failed plugins: skincurses
mutta virhe liittyy laajennokseen ja vdr toimii silti.
Kopioidaan osa vanhoista konffeista uuden vdr:n käyttöön:
sudo cp /etc/vdr/vdr-olohuone/channels.conf /etc/vdr/vdr-1.6.0/
sudo cp /usr/src/vdr-1.6.0/sources.conf /etc/vdr/vdr-1.6.0/
sudo cp /etc/vdr/vdr-olohuone/svdrphosts.conf /etc/vdr/vdr-1.6.0/
setup.conf:iin täytyy muokata seuraavaa, jotta kuva näkyisi dxr3-kortin kautta
AntiAlias = 0
VDR -laajennoksia:
dxr3plugin cvs-20071021 -> 0.2.8:
sudo tar -xf vdr-dxr3-0.2.8.tgz
sudo rm vdr-dxr3-0.2.8.tgz
sudo ln -s dxr3-0.2.8/ dxr3
cd ../..
sudo make plugins
Jotta tekstitykset näkyvät oikein dxr3-kortilla täytyy dxr3pluginin mukana tulevalla patchillä paikata vdr:ää.
Minun tapauksessani täytyy myös dxr3pluginia patchiä jotta saan vdr:n toimimaan MMS:n kanssa. Vdr:ää ei enää tarvitse MMS:ää varten patchiä, koska uuden version myötä vdr tukee kaukosäätimen vapauttamista SVDRP:llä.
vdr-sc 0.6.2 -> 0.9.0
SC-plugininkin kanssa elo on helpompaa vdr-1.6.0:n myötä, sillä vdr:ää ei tarvitse paikkailla.
epgsearch 0.9.23 -> 0.9.24
norlichtsepg + patch
patch vdr-1.6 varten löytyi täältä. Tosin jouduin enimmäkseen tekemään nuo muutokset käsin koodiin sillä en saanut tuota ajettua jostain syystä patch -komennolla.
osdteletext + patch
skinsoppalusikka 1.0.5 -> 1.6.0:
sudo cp PLUGINS/src/skinsoppalusikka/themes/*.theme /etc/vdr/vdr-1.6.0/themes/
vdr-admin am 3.6.0 -> 3.6.1:
Asennus meni samalla tavalla kuin edelliselläkin kerralla.
Compact Flash to IDE -adapteri
Suunnitelmissa on toisen vdr-purkin rakentaminen ja siitä olisi tarkoitus tehdä niin hiljainen kuin mahdollista. Koska “ykkösboksissa” on jo tallennusmahdollisuus ei sitä tässä toisessa tarvita joten kovalevyn voi jättää kokoonpanosta hurisemasta ja viemästä tilaa.
Löysin erinäisiltä sivuilta ja yhdestä Linux-aiheisesta lehdestä juttua käyttöjärjestelmän asentamisesta CompactFlash -kortille ja päätin kokeilla. Löysin Verkkokauppa.com:n sivuilta CompactFlash to IDE Adapterin n. 29e hintaan mutta ebaysta löytyi paras tarjous. Hong Kongista joku myi tällaisia 3kpl erän hintaan £0.99 ja postikulut suomeen olivat £3.99 eli kpl-hinnaksi tuli 2.10 euroa!
Ostin ebayn kautta myös Transcendin 8GB:n CompactFlash -kortin postikuluineen hintaan 39 euroa (vertailun vuoksi Verkkokauppa.com myy samaa korttia hintaan 65.90e).

Tänään asensin adapterin ja kortin työpöytäkoneeseeni ja kokeen vuoksi asensin siihen ongelmitta Ubuntu 8.04:n. Hieman tahmeammin Ubuntu toimi kuin kiintolevylle asennettuna, mutta lopullisessa käyttökohteessa eli vdr-boksissa ei graafista työpöytää tarvita eli todennäköisesti ratkaisu sopii hyvin siihen tarkoitukseen.
Varmuuskopiointi
Vaikka varmuuskopioserveri ei mikään varsinainen htpc-ominaisuus olekaan silti se sopii työaseman tiedostojen varmistamiseen hyvin. Rsync on ohjelma, jolla voi kätevästi ylläpitää kopioita kokonaisista kansioista kahden koneen välillä.
Komennolla rsync -avuz -e 'ssh -i /home/sauli/.ssh/rsync' /home/sauli/Pictures/ sauli@10.0.0.4:pictures/ rsync vertaa noiden kahden hakemiston sisällöt ja siirtää tarvittaessa työsasema koneella olevat uudet tiedostot etäkoneelle. Jotta homman saa sujumaan automaattisesti täytyy salasanan kyselystä päästä eroon, mutta kuitenkin niin ettei tietoturva hirveästi vaarantuisi. Tämä onnistuu luomalla rsa-avain koneelle jolta etäkoneelle kirjaudutaan:
ssh-keygen -t rsa -f ~/.ssh/rsync
komento luo kotihakemiston alle .ssh hakemistoon kaksi tiedostoa: rsync ja rsync.pub. Komennon jälkeen kysytään salasanaa, jolloin painetaan ainoastaan enteriä, koska salasanasta tässä nimenomaan yritetään päästä eroon. Tämän jälkeen rsync.pub -tiedostossa oleva rivi kopioidaan etäkoneelle tiedostoon /home/käyttäjä/.ssh/authorized_keys2 (koko rivin täytyy pysyä yhdellä rivillä). Nyt jos yrittää ajaa tuon edellä mainitun rsync -komennon työasemakoneella niin salasanaa ei kysytä ja kansioiden synkronointi alkaa.
Tässä vaiheessa ratkaisu ei vielä ole turvallisin mahdollinen koska jos joku sattuisi pääsemään työasemakoneeseen käsiksi niin sieltä olisi myös esteetön pääsy käyttäjän tiedostoihin toisessa koneessa. Tilannetta voi hieman parantaa rajaamalla sallitut komennot ainoastaan rsync:iin.
Luodaan tiedosto ~/validate-rsync.sh (ja annetaan lisää oikeuksia tiedostoon: chmod +x), joka tarkistaa komennon. Tiedoston sisältö on tämän näköinen:
#!/bin/sh
case “$SSH_ORIGINAL_COMMAND” in
*&*)
echo “Rejected”
;;
*;*)
echo “Rejected”
;;
rsync –server*)
$SSH_ORIGINAL_COMMAND
;;
*)
echo “Rejected”
;;
esac
Sitten lisätään authorized_keys2 -tiedostoon aiemmin lisätyn rivin eteen:
from="10.0.0.3",command="/home/sauli/validate-rsync.sh",no-port-forwarding,no-X11-forwarding,no-agent-forwarding
jolloin ensinnkäkin yhteys hyväksytään ainoastaan tuosta yhdestä ip-osoitteesta ja komento tarkistetaan tuolla /home/sauli/validate-rsync.sh -skriptillä.
Nyt on siis päästy salasanan kysymisestä eroon, mutta jotta tuo varmuuskopiointi toimisi automaattisesti niin komennetaan vielä työasemakoneessa
crontab -e
ja lisätään tiedostoon rivi:
30 * * * * rsync -avuz -e 'ssh -i /home/sauli/.ssh/rsync' /home/sauli/Pictures/ sauli@10.0.0.4:pictures/
ja nyt komento ajetaan automaattisesti joka tunnin 30. minuutilla.
Uusi kaukosäädin ja ir-vastaanotin
Tilasin DVDShop.net:stä uuden kaukosäätimen sekä sarjaporttiin kytkettävän infrapunavastaanottimen. Tällä kertaa en viitsinyt lähteä itse rakentelemaan vastaanotinta kun sellaisen sai DVBShopista reilulla viidellä eurolla ja vastaanotin näyttää myös huomattavasti paremmalta kuin itse räpeltämäni versio. Kaukosäädin (Technotrend Original Remotecontrol Unit) oli myös noin viiden euron hintainen ja ostin sen ihan sikasäkissäperiaatteella kun oli kerran noin edullinen. Ja kaukosäädin on paljastunut ihan toimivaksi. Kaukosäätimen lirc-asetukset löytyy valmiina täältä.
Entinen kaukosäädin toimii edelleen ja on käytössä. Nämä hankinnat tuli tehtyä vain sen takia, että suunnitelmissa on jo seuraavan digiboksin rakentaminen. Käytössä oleva vdr-boksi on osoittautunut niin loistavaksi, että on alkanut tehdä mieli korvata myös makuuhuoneen digiboksi vastaavanlaisella projektilla.

Technotrend -kaukosäädin.
CD -rippaus automaattiseksi
Virittelin cd -levyn muuttamisen mp3-tiedostoiksi tapahtumaan aika kätevästi. Kun cd -asemaan ilmestyy cd -levy, levyn kappaleet muutetaan mp3-tiedostoiksi automaattisesi, kopioidaan kansioon jossa muukin musiikki on ja kun homma on ohi niin sen merkiksi levykelkka avautuu. Lisäksi Abcde hakee levyn ja kappaleiden nimet tiedostoille automaattisesti cd -tietokannasta.
Järjestelmään tarvitaan:
Abcde (A Better CD Encoder).
asennus: sudo apt-get install abcde
CDDA Paranoia
asennus: sudo apt-get install cdparanoia
LAME MP3 Encoder
asennus: sudo apt-get install lame
Automaattiseen cd -rippaukseen tarvittavat skriptit löytyy asennuksen jälkeen /usr/share/doc/abcde/examples/ -kansiosta. Kansiosta kopioidaan abcde.init -tiedosto /etc/init.d/ -kansioon. Lisäksi abcded -tiedoston kopioin /usr/local/bin kansioon ja muutin omistajaksi rootin (
Home