Arkisto

Archive for the ‘xbmc’ Category

Loppuraportti: XBMC:n kääntäminen LFS-järjestelmän päälle

Tavoitteena

Olimme asettaneet alkuraportissa tavoitteeksi kääntää xbmc oman järjestelmämme päälle. Pysyin aikataulussa melko heikosti ja huomasin projektin loppusuoralla pakettien kääntämisen vievän selvästi enemmän aikaa raspberry pi:llä kuin mitä oletin.

Luistinkin omasta vaatimuksesta kääntää xbmc:n omalle järjestelmällemme joten päädyin siis kääntämään ohjelman ko. valmiin julkaisun päälle. Toivottavasti otan omasta aikataulutuksestani opinnon.

Omassa käytössäni olen pitänyt xbmc medialaitetta jo aikaisemmin ja aijonkin ottaa raspberry pi:n tähän käyttöön itselleni.

Palaute

Kurssiaiheenahan kurssi on eritäin mukava ja omavalintainen aihe on motivoiva. Toivoisin vastaavanlaisia kursseja enemmänkin.

–  Tuomas Latvanen

Kategoriat:Raspberry Pi, xbmc

Optimointi

Kellotus

Raspberry pi: tulee vakiona 700Mhz: kellotetuksella, mutta valmistaja antaa takuuta 1000Mhz asti ylikellotetulle laitteelle. Testasin eri kellotaajuuksien vakauksia. Kellotaajuus luetaan muistikortin tiedostosta ”/boot/config.txt”. Kyseisessä tiedostossa on myös näyttömuistin koko. Testasin nostaa kellotaajuutta 50Mhz korotuksilla.

  • 700 Mhz- Vakiokellotaajuus
  • 750 – 1000Mhz  – Laite vakaa
  • 1050 Mhz Sain xbmc:n kaatumaan videota toistaessa.

Näistä päätellenkin suosittelen tylsien ns. turbo asetuksien (1000Mhz) käyttöä. Tämä tapahtuu ottamalla turbon kommentointi pois. ennemmin mainitusta tekstitiedostosta.

# Turbo
arm_freq=1000
core_freq=500
sdram_freq=500
over_voltage=6

Näyttömuisti

Testasin laitteen näyttömuistin vaihtamista, ja huomasin selvää xbmc:n operaatioiden (esim. ruudun vaihtaminen) hidastumista kun olin asettanut suureemman kuin 256 megabitin näyttömuistin käyttöön. En huomannut parantunutta videontoistoa joten päädyin vaihtamaan muistin takaisin. Etsin googlella erityisiä ohjeita näyttömuistista ja huomasin joidenkin julkaisujen kuitenkin käyttävän 256MB näyttömuistia.

http://www.raspbmc.com/wiki/user/frequently-asked-questions/

Uudelleenosiointi

Dd komennolla kopioimalla kopioituu image levylle bitti bitiltä. Ylimääräistä tilaa ei voi siis jättää imageen, joten levyimagessa osiointi on mahdollisimman pieni. Minun täytyy siis suurentaa levyosiointi erikseen.

Jokela on kirjoittanut levyosioinnin laajentamisesta yksinkertaisen step-by-step ohjeen.

–  Tuomas Latvanen

Kategoriat:Raspberry Pi, xbmc

Pakettien kääntö

Aloitin pakettien käännön käyttämällä aikaisemmin luomaani ssh yhteyttä. Käytin ssh yhteyttä nopeuttaakseen prosessia sillä en halunnut kirjoittaa jokaikistä make komentoa.

Olin tehnyt listan vaadittavista paketeista tänne, ja ennen kääntämistä latasinkin jokaisen paketin.

wget http://curl.haxx.se/download/curl-7.28.0.tar.bz2 http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1 http://www.openssl.org/source/openssl-1.0.1c.tar.gz http://ftp.gnu.org/gnu/gnutls/gnutls-3.1.4.tar.xz http://downloads.sourceforge.net/expat/expat-2.1.0.tar.gz http://downloads.sourceforge.net/boost/boost_1_51_0.tar.bz2 http://downloads.sourceforge.net/freetype/freetype-2.4.10.tar.bz2 http://fontconfig.org/release/fontconfig-2.10.1.tar.bz2 http://fribidi.org/download/fribidi-0.19.4.tar.bz2 http://libmpeg2.sourceforge.net/files/libmpeg2-0.5.1.tar.gz http://downloads.sourceforge.net/mad/libmad-0.15.1b.tar.gz http://www.ijg.org/files/jpegsrc.v8d.tar.gz http://www.mega-nerd.com/SRC/libsamplerate-0.1.8.tar.gz http://downloads.xiph.org/releases/ogg/libogg-1.3.0.tar.xz http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.3.tar.xz http://downloads.sourceforge.net/flac/flac-1.2.1.tar.gz http://download.osgeo.org/libtiff/tiff-4.0.3.tar.gz http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz http://github.com/downloads/libarchive/libarchive/libarchive-3.0.4.tar.gz http://www.cmake.org/files/v2.8/cmake-2.8.10.tar.gz http://www.xs4all.nl/~carlo17/which/which-2.20.tar.gz http://downloads.sourceforge.net/infozip/zip30.tar.gz http://downloads.sourceforge.net/infozip/unzip60.tar.gz http://sqlite.org/sqlite-autoconf-3071401.tar.gz http://downloads.sourceforge.net/libpng/libpng-1.5.13.tar.xz http://downloads.sourceforge.net/pcre/pcre-8.31.tar.bz2 http://www.ece.uvic.ca/~mdadams/jasper/software/jasper-1.900.1.zip http://ffmpeg.org/releases/ffmpeg-1.0.tar.bz2 http://ftp.gnu.org/gnu/gperf/gperf-3.0.4.tar.gz http://git-core.googlecode.com/files/git-1.8.0.tar.gz http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tar.xz http://www.libsdl.org/release/SDL-1.2.15.tar.gz https://libass.googlecode.com/files/libass-0.10.1.tar.gz http://sourceforge.net/projects/modplug-xmms/files/libmodplug/0.8.8.4/libmodplug-0.8.8.4.tar.gz http://ftp.gnu.org/gnu/libcdio/libcdio-0.83.tar.bz2 https://github.com/downloads/taglib/taglib/taglib-1.8.tar.gz http://prdownloads.sourceforge.net/swig/swig-2.0.8.tar.gz

nimesin certdatan vielä certdata.txt:ksi.
mv certdata.txt?raw=1 certdata.txt

Pakettien asennus:

En käy läpi erikseen jokaista paketin kääntämistä, sillä pakettejahan on lähes puolisataa. Paketit toimitetaan yleensä pakattuina, ja pakkaamisen jälkeen paketit voivat vaatia myös configurointia. Tämänjälkeen paketit voidaan kääntää ja lopuksi asentaa. Tarkemmat ohjeet löyisin pääasiassa BLFS sivustolta.

Purkaminen

Paketit toimitetaan yleensä tar.gz tai tar.bz2 muodoissa. Poikkeuksena näistä mozillan certdata tiedosto(tekstitiedosto) sekä jasper joka toimitettiin .zip tiedostona. Eri muotojen purkamiskomento vaihtelee joten listaankin ne tässä

.tar.gz     ”tar -xvzf filename.tar.gz”
.tgz         ”tar -xvf filename.tgz”
.tar.Z        ”tar -xvf filename.tar.Z”
.tar.bz2    ”tar -xvjf filename.tar.bz2”

.zip        ”unzip filename.zip”

Configurointi

Pakettien configurointi onnistuu yleensä./configure komennolla, eli configure skriptin ajamalla. Kaikki paketit eivät edellytä tätä. Tyypillinen configuroitni on esim: ”./configure –prefix=/usr” Pakettien configurointi ja kääntöohjeet ovat katsottava jostain ja tyypillisesi löytäisinkin ne ”README” tai ”INSTALL” nimisistä tiedostoista paketin sisältä. Asensin paketit pääosin BLFS kirjan ohjeiden mukaisesti, turvautuen ohjeisiin ongelmatilanteissa.

Kääntö

Pakettien kääntäminen on prosessi jossa lähdekoodi muutetaan konekielelle. Kääntäminen vaatii mm. jo asennetut gcc (itse kääntäjä) ja make (ohjaa kääntämisprosessia). Työkaluna make lukee paketin mukana toimitettua tiedostoa ”makefile” joka sisältää tarkemmat kääntöohjeet.

Makefilestä ohjelman kääntö onnistuu siis komennolla
”make”

Huomiona pakettien kääntö voi viedä erittäin vaihtelevan määrän aikaa.

Asennus

Lopuksi paketti asennetaan käyttäen komentoa

”make install”

Make install kopio käännetyt binäärit lopulliseen sijaintiinsa.

–  Tuomas Latvanen

Kategoriat:Raspberry Pi, xbmc

Raspin käyttöönotto

Olen nyt kirjoittanut ko. netistä ladatun lfs julkaisun muistikortille, ja voin alkaa käyttää laitetta.

Huom: ennenkuin laitat laitetta verkkoon, sinun täytyy joko vaihtaa root käyttäjän salasana ”pilfs” toiseen taikka varmistaa että laite on semmoisessa verkossa jossa ulkopuolinen ei voi yhdistää porttiin 22. Muuten riskeeraat koko järjestelmän tietoturvan

DHCP clientin kytkeminen päälle

Halusin kääntää paketteja käyttäen ssh yhteyttä, joten minun täytyi laittaa verkkoyhteys toimimaan. Sitä ennen vaihdoinkuitenkin kirjainkartan käyttömukavuuden kannalta.

[root@tty1] [~] loadkeys fi

Intestines julkaisun verkkoasetukset sijaitsevat /etc/sysconfig/ kansiossa, jossa ”ifconfig.eth0” sisältää verkkoasetukset. Valmiit dhcp:tä käyttävät verkkoasetukset ovat ”ifconfig.dhcp” tiedostossa, joten muutaman tiedoston nimeämällä saadaan käyttöön dhcp.

[root@tty1] [~] cd /etc/sysconfig/
[root@tty1] [/etc/sysconfig/] mv ifconfig.eth0 ifconfig.eth0_old
[root@tty1] [/etc/sysconfig/] mv ifconfig.dhcp ifconfig.eth0

Vielä ssh yhteyden luomiseksi vaadittava ip osoite voidaan selvittää ”ip addr” komennolla.

Yhdistin nyt laitteeseen valitsemallasi salasanalla.
tuomas@morde:~/Downloads$ ssh root@192.168.1.151
root@192.168.1.151’s password:
Last login: Thu Jan  1 01:04:25 1970 from 192.168.1.101

–  Tuomas Latvanen

Kategoriat:Raspberry Pi, xbmc

XBMC – intestines xbmc:n kirjoitus levylle

Pakatun imagen lataaminen:
tuomas@morde:~$ cd Downloads/
tuomas@morde:~/Downloads$ wget http://circu.it/pilfs/pilfs-base-20121118.zip

–2012-12-09 08:11:01–  http://circu.it/pilfs/pilfs-base-20121118.zip
Resolving circu.it (circu.it)… 208.64.38.104
Connecting to circu.it (circu.it)|208.64.38.104|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 377822116 (360M) [application/zip]
Saving to: `pilfs-base-20121118.zip’

100%[======================================>] 377,822,116 9.01M/s   in 46s

2012-12-09 08:11:48 (7.82 MB/s) – `pilfs-base-20121118.zip’ saved [377822116/377822116]

100%[===================================================================================================>] 1,086,337,762 11.2M/s   in 92s

2012-12-09 04:37:24 (11.2 MB/s) – `hiawatha0.2_quake.img.zip’ saved [1086337762/1086337762]

zip paketin purku:
tuomas@morde:~/Downloads$ unzip pilfs-base-20121118.zip

Archive:  pilfs-base-20121118.zip
inflating: pilfs-base-20121118.img

Imagen kirjoittaminen muistikortille

Image kirjoitetaan muistikortille käyttäen dd ohjelmaa.
tuomas@morde:~/Downloads$ sudo dd bs=4M if=/home/tuomas/Downloads/pilfs-base-20121118.img of=/dev/sdb

[sudo] password for tuomas:
237+1 records in
237+1 records out
996147200 bytes (996 MB) copied, 87.4062 s, 11.4 MB/s

Synkronisoin vielä kirjoitusmuistin komennolla sync
tuomas@morde:~/Downloads$ sync

Muistitikulle on nyt kirjoitettu netistä ladattu raspilfs image

DHCP:n käyttöönotto

Halusin kääntää paketteja käyttäen ssh yhteyttä, joten minun täytyi laittaa verkkoyhteys toimimaan. Sitä ennen vaihdoinkuitenkin kirjainkartan käyttömukavuuden kannalta.

[root@tty1] [~] loadkeys fi

Intestines julkaisun verkkoasetukset sijaitsevat /etc/sysconfig/ kansiossa, jossa ”ifconfig.eth0” sisältää verkkoasetukset. Valmiit dhcp:tä käyttävät verkkoasetukset ovat ”ifconfig.dhcp” tiedostossa, joten muutaman tiedoston nimeämällä saadaan käyttöön dhcp.

[root@tty1] [~] cd /etc/sysconfig/
[root@tty1] [/etc/sysconfig/] mv ifconfig.eth0 ifconfig.eth0_old
[root@tty1] [/etc/sysconfig/] mv ifconfig.dhcp ifconfig.eth0

Vielä ssh yhteyden luomiseksi vaadittava ip osoite voidaan selvittää ”ip addr” komennolla.

Kategoriat:Raspberry Pi, xbmc

XBMC jatkokehittelyä

Lisää mahdollisesti kehiteltäviä asioita xbmc:n päälle

    • SCP- tuki
      • Ei testattu
    • Videoformaatit – Mkv, avi, mp4
      • Toimii
    • ”Full hd”
      • Toimii. Noin / Yli 40 Mbit/s videostreami pätkii
    • matroska äänet, useammat eri streamit
      • Toimii(?) useamman streamin äänet (5.1) kuuluivat joissain videopätkissä väärin. Virhe saattaa liittyä myös ääniä tukevan hdmi ruudun ja 3.5″ liitännän yhtäaikaiseen kiinnitykseen.
    • matroska tekstitykset
      • Toimii
    • Kellotuksen testaus & raportointi
      • Tehty
    • Näyttömuistin koon testaus & raportointi
      • Tehty
    • Android kaukosäädin
    • Netflix
      • Ainoastaan selaimelle

– Tuomas Latvanen

Kategoriat:Raspberry Pi, xbmc

XBMC

XBMC

XBMC (lyhenne xbox media center) on avoimen lähdekoodin mediasoitin, joka on alunperin tehty xbox- pelikonsolille ja sittemmin käännetty mm. linux, windows, mac, bsd android ja ios alustoille.

Jotta saan xbmc:n toimimaan julkaisullemme, minun täytyy kääntää seuraavat paketit ennen XBMC:tä‬. En listaa paketteja kahta kertaa, (esim erikseenvaadittu libVorbis vaatii libOgg:in). Sisennetyt kohdat ovat siis vaatimusten vaatimuksia

Paketit

Listaan tässä paketit formaatissa:

Projektin kotisivu, paketin latausosoite, lisäohjeita kokoamiseen

Lähteenä

http://wiki.xbmc.org/index.php?title=XBMC_FAQ#What_is_XBMC.3F
http://www.linuxfromscratch.org/blfs/view/svn/general/
– Tuomas Latvanen

Kategoriat:Raspberry Pi, xbmc