Arkisto

Archive for the ‘Raspberry Pi’ 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

Loppuraportti: LFS-käyttöjärjestelmän rakentaminen Raspberry Pille

Ryhmän jäsenet

Ilkka Jylhä ja Tom Himanen.

Tavoitteet

Tavoitteena oli rakentaa Raspberry Pille Linux tyhjästä ja testata järjestelmän toimivuus Quake3:lla.

Onnistuminen

Olimme aluksi varovaisen optimistisia asennusprojektin suhteen, joka kuitenkin osoittautui tiettyjen osa-alueiden osalta työläämmäksi ja hitaammaksi kuin kuvittelimme. Samaan hengenvetoon on kuitenkin todettava, että jotkut asiat olivat merkittävästi helpompia kuin kuvittelimme.

Järjestelmän kopioiminen ja pienentäminen dd-työkalulla osoittautui äärimmäisen paljon tuskallisemmaksi operaatioksi kuin osasimme kuvitella. Sen sijaan esimerkiksi käynnistysskriptien asennus oli niin helppoa, että siitä tuli suorastaan huono omatunto.

Lopputulos oli onnistunut. Testasimme järjestelmän toimivuuden ja suorituskyvyn asentamalla Quake3:n. Peli toimi sulavasti ottaen huomioon käytetyn laitteiston.

Loppusanat

LFS:n asentaminen oli oppimiskokemuksena erittäin hyvä ja valaiseva, mutta ainakaan omiin tarpeisiimme LFS:stä ei ole. Siirrymme itse kukin luultavasti käyttämään Raspbiania Raspberry Pi:llä, mutta LFS:n asennus ei ollut ajanhukkaa – päin vastoin.

Palaute

Kurssi oli erittäin nautinnollinen. Itsenäinen työskentely itselleen kiinnostavan projektin parissa sai ajantajun katoamaan, ja kurssin myötä ymmärrämme GNU/Linux -järjestelmiä entistä syvemmin. Aikaa oli vähän, joten keskityimme ensisijaisesti järjestelmän kasaamiseen.

Omalta osaltamme raportointi voi olla hiukan huolittelematonta, mutta pidämme tasoa resursseihin nähden riittävänä, sillä projektissamme olisi laajuudesta johtuen ollut ääretön määrä raportoitavaa. Raportointivelvollisuutta sinänsä emme missään määrin kritisoi, sillä on täysin perusteltua edellyttää todistusaineistoa itsenäisestä työskentelystä. Emme siis muuttaisi kurssissa mitään.

Kategoriat:Raspberry Pi

Emojärjestelmän poistaminen oman järjestelmän rinnalta + jakeluversion luominen

Kun Raspberry Pille oli saatu asennettua uusi järjestelmä, se käynnistyi moitteettomasti.

Seuraava vaihe oli poistaa emojärjestelmä, josta käsin uusi järjestelmä oli asennettu. /etc/fstabista poistettiin emojärjestelmän juuriosio (/dev/mmcblk0p2) ja emojärjestelmän swappiosio (/dev/mmcblk0p4).

Lisäksi pienensimme osion /dev/mmcblk0p3, mitä ei ilmeisesti ole (dokumentoidusti) tehty aiemmin LFS:n asennuksessa Raspille. Poistimme alkuperäisen osion, loimme uuden pienemmän ja kirjoitimme muutokset osiotauluun.

Tämän jälkeen järjestelmä ei kuitenkaan bootannut, ja järjestelmä itki seuraavaa:

* Mounting root file system in read-only mode… mount: / is busy [FAIL]
*****
Cannot check root filesystem because it could not be mounted in read-only mode.
After you press Enter, t system will be halted and powered off.
******
Press Enter to continue…[60.063950] mmc0: card 1234 removed
mmcblk0: error -110 sending status command, retrying
mmcblk0: error -110 sending status command, retrying
mmcblk0: error -110 sending status command, retrying
end_request: I/0 error, dev mmcblk0, sector 26501112
EXT4-fs error (device mmcblk0p3): ext4_find_entry:935: inode #765537: comm udevd: reading directory lkblock 0
EXT4-fs error (device mmcblk0p3): ext4_find_entry:935: inode #765537: comm udevd: reading directory lkblock 0

PiLFS:n rakentanut, IRC-tunnusta “mogwai” käyttävä henkilö arveli, että ongelmana voisi olla osioiden relatiivinen nimeäminen, jolloin juuriosio muuttuisi /dev/mmcblk0p3 -> /dev/mmcblk0p2 sen jälkeen, kun olemme poistaneet emojärjestelmän juuriosion (/dev/mmcblk0p). Tämä koituu kohtaloksi, kun /etc/fstabissa ja bootloaderissa järjestelmän juuriosioksi on määritelty /dev/mmcblk0p3.

Lähdimme testaamaan hypoteesia poistamalla osioita yksi kerrallaan; näin voimme abduktiivisesti todeta ongelman aiheuttajan. Aloitimme poistamalla uuden järjestelmän swapin (/dev/mmcblk0p4). Käynnistimme uudelleen, ja järjestelmä käynnistyi ihan hyvin, mutta valitti, ettei saa mountattua osiota /dev/mmcblk0p4. Näin ollen päätimme päivittää /etc/fstabin ajan tasalle kommentoimalla swappiosion rivi pois.

#/dev/mmcblk0p4 swap swap pri=1 0 0

Lisäsimme samalla /boot-osion /etc/fstabiin.

/dev/mmcblk0p1 /boot vfat defaults 0 0

Tämän jälkeen käynnistimme järjestelmän uudelleen. Käynnistyminen ei tuottanut yhtään virheilmoitusta. Seuraavaksi päätimme poistaa osion 2, arpoa oikeat asetukset bootloaderiin ja kokeilla, käynnistyykö järjestelmä. Viimeksi bootloaderissa ja fstabissa juurijärjestelmäksi oli määritelty osio kolme, joten vaihdoimme molemmissa tiedostoissa juuriosioksi osion 2.

Tämä oli huono lottorivi, sillä bootin tuloksena oli seuraavanlainen virheilmoitus.

PANIC: VFS: Unable to mount root fs on unknown-block(179,2)
Entering kbd (current=0xce82ac80, pid 1) due to Keyboard Entry

Määritimme cmdline.txt:ssä juuriosioksi osion 3:

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p3 rootfstype=ext3 elevator=deadline rootwait

Myös /etc/fstab-tiedostossa muutimme juuriosioksi osion 3. Käytännössä palasimme yrittämään samaa ratkaisua, joka oli jo kerran pissinyt.

# Begin /etc/fstab

# file system  mount-point  type     options             dump  fsck
#                                                              order

/dev/mmcblk0p3 /            ext3     defaults            1     1
/dev/mmcblk0p1 /boot    vfat     defaults 0     0
#/dev/mmcblk0p4 swap         swap     pri=1               0     0
proc           /proc        proc     nosuid,noexec,nodev 0     0
sysfs          /sys         sysfs    nosuid,noexec,nodev 0     0
devpts         /dev/pts     devpts   gid=5,mode=620      0     0
tmpfs          /run         tmpfs    defaults            0     0
devtmpfs       /dev         devtmpfs mode=0755,nosuid    0     0

# End /etc/fstab

Jostain ihmeen syystä järjestelmä käynnistyi ongelmitta ja epäselväksi jäi, mikä meni ensimmäisellä kerralla vikaan yrittäessämme käynnistää järjestelmää käyttäen juuriosiona /dev/mmcblk0p3-osiota. Joka tapauksessa tästä voitiin päätellä, että käynnistyslatain ja fstab eivät kumpikaan numeroi osioita dynaamisesti. Ongelma kuitenkin liittyi todennäköisesti osion pienentämiseen.

Alun perin mukailimme ohjetta osion suurentamisesta, joka toimi niin että poistetaan osio, luodaan osio uudestaan koko levyn kokoisena, kirjoitetaan muutokset luodulle osiolle, bootataan ja bootin jälkeen komennetaan resize2fs.

Pienennettäessä osiota poistimme alkup. osion, loimme siihen kohdalle uuden pienemmän, kirjoitimme muutokset osiotauluun ja boottasimme

Osion pienentäminen kuitenkin hajotti juuriosion jonka johdosta emme kykeneet enää käynnistämään järjestelmää.

Osion pienentäminen tulee tehdä käänteisessä järjestyksessä, ensiksi resize2fs.
esim resize2fs -M
“”resize2fs -M     Shrink the filesystem to the minimum size.”

sen jälkeen muokataan osiota vastaamaan uutta kokoa. Ongelmana tässä on se että ainoastaan unmountatun osion kokoa voidaan pienentää. Niinpä osion pienentäminen on tehtävä järjestelmästä käsin, joka ladataan toiselta osiolta.

Tämän jälkeen teimme swappitiedoston, mutta minimoidaksemme muuttujia emme aktivoineet sitä ainakaan vielä.

dd if=/dev/zero of=/dev/swapfile bs=1M count=512

Päätimme kokeilla tässä vaiheessa osion pienentämistä uudelleen. Koska olimme jo poistaneet emojärjestelmän, jouduimme suorittamaan pienennysoperaation miniläppäriä käyttäen, johon liitimme Raspin ensisijaisena mediana käytetyn muistikortin.

Ensiksi poistimme muistikortilla olevan “tyhjän” tilan osioiden mmcblk0p1 ja mmcblk0p3 välistä, joka syntyi, kun emojärjestelmän sisältänyt mmcblk0p2 poistettiin. Tyhjä tila poistettiin siirtämällä mmcblk0p3 osio heti /boot osion jälkeen.
Operaation jälkeen tarkistimme, että tiedostojärjestelmä on kunnossa, ennen kuin aloimme käpälöidä tiedostojärjestelmää.

sudo fsck -n /dev/mmcblk0p3

Tämän jälkeen muunsimme tiedostojärjestelmän ext3-muodosta ext2-muotoon.

sudo tune2fs -O ^has_journal /dev/mmcblk0p3

Tarkistimme, että tämänkin jälkeen kaikki on tiedostojärjestelmässä OK.

sudo e2fsck -f /dev/mmcblk0p3

Ajoimme resize2fs-komennon pienentääksemme osion koon 3500 mibitavuun.

sudo resize2fs /dev/mmcblk0p3 3500M
resize2fs 1.42 (29-Nov-2011)
Resizing the filesystem on /dev/mmcblk0p3 to 896000 (4k) blocks.
The filesystem on /dev/mmcblk0p3 is now 896000 blocks long.

sudo fdisk /dev/mmcblk0
d
3
n
p
3
98304
+3700M
w
sudo fsck -n /dev/mmcblk0p3
sudo tune2fs -j /dev/mmcblk0p3
sudo sync

Kaikkien järkytykseksi totesimme homman toimivan.

OpenSSH:n asennus LFS:ään

Otimme ohjenuoraksemme CBLFS:n ohjeet OpenSSH:n asennukseen (http://cblfs.cross-lfs.org/index.php/OpenSSH). OpenSSH on riippuvainen paketista OpenSSL, joten aloitimme asentamalla sen.

Latasimme OpenSSL:n lähdekoodit (http://www.openssl.org/source/openssl-1.0.1c.tar.gz), purimme ne, käänsimme ja asensimme.

./config –openssldir=/etc/ssl –prefix=/usr shared && make MANDIR=/usr/share/man && make MANDIR=/usr/share/man install && ln -sv ../../etc/ssl /usr/share &&
cp -v -r certs /etc/ssl

OpenSSL asentui ongelmitta ja aloitimme OpenSSH:n asennuksen.

./configure –prefix=/usr –sysconfdir=/etc/ssh –libexecdir=/usr/sbin –with-md5-passwords –with-privsep-path=/var/lib/sshd –with-default-path=”/bin:/usr/bin”  –with-superuser-path=”/sbin:/bin:/usr/sbin:/usr/bin” && make

OpenSSH kääntyi ongelmitta, mutta asennuksen jälkeen SSH-demoni (= palvelu) piti saada käynnistymään järjestelmän käynnistyksen yhteydessä. Tähän tarvittiin Beyond Linux From Scratchin käynnistysskriptejä (http://www.linuxfromscratch.org/blfs/downloads/6.3/blfs-bootscripts-20080816.tar.bz2), joiden asennus- ja käyttöohjeet löytyvät täältä: http://www.linuxfromscratch.org/blfs/view/6.3/introduction/bootscripts.html. SSH-demonin käynnistysskriptien lisääminen kaikille ajotasoille oli ubuntumaisen helppo tehtävä ja se tapahtui seuraavasti.

tar blfs-bootscripts-20080816.tar.bz2
cd blfs-bootscripts-20080816
make install-sshd

Tämän jälkeen käynnistimme Raspberry Pin uudelleen ja sshd nousi ylös ongelmitta. Testasimme myös SSH-yhteyden ottamista Raspberry Pihin ja saimme yhteyden muodostettua.

Wgetin asennus

Wgetin asennus oli melko suoraviivainen toimenpide.

./configure –prefix=/usr –sysconfdir=/etc && make && make install

Kaikki ei kuitenkaan mennyt oletetusti, ja ./configure skripti itki seuraavaa:

configure: error: — with-ssl was given, but GNUTLS is not available

Configure-skripti siis olettaa löytävänsä järjestelmästä GNUTLS:n, mutta sitä ei ole. Sen sijaan OpenSSH:n vuoksi järjestelmässä on joka tapauksessa OpenSSL, joten neuvoimme wgetin configure-skriptiä hyödyntämään OpenSSL:ää salattujen yhteyksien käsittelyyn. Komento näyttä tämän jälkeen seuraavanlaiselta.

./configure –prefix=/usr –sysconfdir=/etc –with-ssl=openssl && make && make install

Fonttiongelman ratkaisu

Bashin promptin määrittävää $PS1-muuttujaa muotoillessamme huomasimme, että erikoismerkit eivät tulostu oikein. Aloimme testata ongelmaa ja jätimme Bashin promptin viilaamisen tuonnemmaksi.

Huomasimme, että ongelma muistutti sitä, kun ottaa SSH-yhteyden ISO-8859-koodausta käyttävältä koneelta UTF-8 -koodausta käyttävään koneeseen tai toisin päin. Näin ollen osasimme arvella ongelman johtuvan koodauksesta. Emme kuitenkaan sulkeneet näppäimistökarttaongelmiakaan pois.

Kokeilimme asettaa tiedostossa /etc/sysconfig/console asettaa $KEYMAP-muuttujaan arvot fi-latin9 ja fi-latin1. Kokeilimme myös asettaa muuttujalle $FONT arvoiksi lat1-16 ja lat0-16. Tämäkään ei tuntunut vaikuttavan asiaan. Jokaisen muutoksen jälkeen sourcetimme (source /etc/sysconfig/console) konffit ja käynnistimme koneen uudelleen.

Kun ratkaisua ei tuntunut löytyvän, kysyimme mogwailta neuvoa IRC:ssä. Koska hän on ruotsalainen, hän oli törmännyt samoihin ongelmiin kuin mekin, joten hänellä oli antaa meille valmis ja toimiva konffi, joka näyttää seuraavanlaiselta:

/etc/sysconfig/console:

UNICODE=”1″
KEYMAP=”fi-latin1″
KEYMAP_CORRECTIONS=”euro2″
LEGACY_CHARSET=”iso-8859-1″
FONT=”LatArCyrHeb-16 -m 8859-1″

Bashin promptin viilaus

Saatuamme erikoismerkit ja ääkköset pelaamaan terminaaliemulaattorissamme otimme Bashin promptin uudelleen työn alle. Prompti on terminaaliemulaattorissa se merkkijono, jonka perään komennot kirjoitetaan, ja joka sisältää usein tiedon sisään kirjautuneesta käyttäjästä, senhetkisestä sijainnista järjestelmän hakemistopuussa sekä sen järjestelmän nimen, johon on kirjauduttu.

Halusimme promptin, joka (1) erottuu muusta tulosteesta sekä (2) kertoo kirjautuneen käyttäjän, kirjautumisen kohteen sekä nykyisen sijainnin. Päätimme erottaa promptin muusta tulosteesta värin avulla. Näin ollen rootin ~/.bashrc näytti loppujen lopuksi seuraavanlaiselta:

#!/bin/bash
export PS1=”[\e[0;31m\u\e[m@\e[0;32m\h\e[m:\w]\e[0;31m\$\e[m ”

Tämän jälkeen meidän kuitenkin tarvitsi tehdä ~/.bash_profile, joka kutsuu ~/.bashrc:tä.

if [ -f ~/.bashrc ]; then source ~/.bashrc ; fi

[root@pilfs:~]#

LFS-käyttäjän luominen

Loimme perus käyttöä varten Raspberry Pille uuden käyttäjän.

useradd -m -s /bin/bash lfs
Kopioimme lfs-käyttäjälle ~/.bashrc:n ja ~/.bash_profilen root-käyttäjältä roottina.

cp ~/.bashrc ~lfs/.bashrc && cp ~/.bash_profile ~lfs/.bash_profile && chown lfs:lfs ~lfs/.bash*

Varmuuskopion ottaminen

Koska järjestelmämme oli runnottu Raspberry Pin alussa olevaan tilaan siten, että se mahtuu alle neljään gigaan, halusimme siitä vain neljään gigaan mahtuvan varmuuskopion. Dd:llä varmuuskopioitaessa dd kopioi ihan onnessaan levyä bitti bitiltä riippumatta mm. siitä, onko levyn viimeinen osio loppunut jo ajat sitten.

Tästä syystä meidän tarvitsi antaa dd:lle lupa lopettaa kopiointi ensimmäisen neljän gigan jälkeen. Näin voitiin tehdä count-attribuutilla, joka määrittää, miten monta blokkia kopioituaan dd saa lopettaa projektinsa. Varmuuskopiota ottaessamme määritimme blokin yhden megatavun kokoiseksi, jottemme sekoaisi laskuissamme.

dd if=/dev/mmcblk0 of=hiawatha_0.1.img bs=1M count=3700

Kun varmuuskopio siirrettiin neljän gigan muistikortille, se toimi yllätykseksemme mainiosti ja järjestelmä buuttasi. Törmäsimme ongelmiin vasta, kun meidän tarvitsi seuraavaksi mountata kortti lähimpään tietokoneeseen.

Tämä ei kuitenkaan onnistunut, koska muistikortin kolmannen osion tiedostojärjestelmä koki olevansa rikki. Ongelma kuitenkin korjautui helposti fsck:lla.

sudo fsck /dev/mmcblk0p3

Dhcpcd:n asennus

Dhcpcd:n asennus oli helppo toimenpide. Se onnistui ongelmitta noudattaen BLFS:n ohjeita (http://www.linuxfromscratch.org/blfs/view/svn/basicnet/dhcpcd.html). Järjestelmä buuttasi seuraavanlaisella konffilla:

[root@pilfs:~]$ cat /etc/sysconfig/ifconfig.eth0
##########################
# Config with dhcpcd
##########################

ONBOOT=”yes”
IFACE=”eth0″
SERVICE=”dhcpcd”
DHCP_START=””
DHCP_STOP=”-k”

###########################
# Old config with static IP
###########################

#ONBOOT=yes
#IFACE=eth0
#SERVICE=ipv4-static
#IP=10.42.0.2
#GATEWAY=10.42.0.1
#PREFIX=24
#BROADCAST=10.42.0.255

DHCP:n toimivuus testattiin ottamalla SSH-yhteys Raspberry Pihin ja tulostamalla yllä oleva konffi terminaaliin ja kopipeistaamalla se raporttiin.

Irssin asennus

Irssi on riippuvainen paketista Glib, joka puolestaanon riippuvainen paketista pkg-config. Niinpä aloitin irssin asennuksen kääntämällä paketin pkg-config.

wget http://pkgconfig.freedesktop.org/releases/pkg-config-0.27.1.tar.gz &&
tar xzvf pkg-config-0.27.1.tar.gz && cd pkg-config-0.27.1 &&
./configure –prefix=/usr \
–docdir=/usr/share/doc/pkg-config-0.27.1 \
–with-internal-glib &&
make && make install

Tämän jälkeen asensin Glibin, josta valitsin version 2.

wget http://ftp.gnome.org/pub/GNOME/sources/glib/2.27/glib-2.27.4.tar.bz2 && tar xjvf glib-2.27.4.tar.bz2 && cd glib-2.27.4 && ./configure –prefix=/usr && make && make install

Loppujen lopuksi pääsin asentamaan itse irssin.

wget http://www.irssi.org/files/irssi-0.8.10a.tar.bz2 && wget http://svn.cross-lfs.org/svn/repos/patches/irssi/irssi-0.8.10a-gslice-1.patch && tar xjvf irssi-0.8.10a.tar.bz2 && cd irssi-0.8.10a && patch -Np1 -i ../irssi-0.8.10a-gslice-1.patch &&
./configure –prefix=/usr –sysconfdir=/etc && make && make install

Irssiä kuuluu käyttää screenissä, joten sekin piti vielä kääntää.

wget http://ftp.gnu.org/gnu/screen/screen-4.0.3.tar.gz && tar xzvf screen-4.0.3.tar.gz && cd screen-4.0.3 && ./configure –prefix=/usr –with-socket-dir=/var/run/screen \
–with-sys-screenrc=/etc/screenrc && sed -i ”s%/usr/local/etc/screenrc%/etc/screenrc%” {etc,doc}/* && make && make install

Nanon kääntäminen

./configure –prefix=/usr –enable-all

Screen (http://www.linuxfromscratch.org/blfs/view/svn/general/screen.html) ja links (http://www.linuxfromscratch.org/blfs/view/svn/basicnet/links.html) asennetiin BLFS-ohjeiden mukaan.

Quake3:n asennus

Quake3 asennettiin pilfs-ohjeiden (http://www.intestinate.com/pilfs/#quake3) mukaisesti ongelmitta. Ainoastaan Alsan kuolleet linkit aiheuttivat päänsärkyä. Asia korjautui asentamalla uudet, SVN-käynnistysskriptit SVN-BLFS -ohjeiden mukaisesti.

Kategoriat:Raspberry Pi

Asennuksen aloittaminen

Onnistuimme rakentamaan oman Linux-kernelin päälle rakennetun käyttöjärjestelmämme Raspberry Pin päälle, ja tässä postauksessa kerromme, mitä kannattaa tehdä ja mitä ei.

Linux-ytimen päälle Linux from Scratch -kirjan ohjeita mukaillen itse rakennettua käyttöjärjestelmää kutsutaan yleensä ”Linux from Scratchiksi” (suom. ”Linux tyhjästä”), ja näin mekin teemme. Lopputuotteemme erisnimi on kuitenkin Hiawatha. ”Linux from Scratch” -käsitteeseen viittaamme usein vakiintuneen käytännön mukaisesti lyhenteellä LFS.

Käytimme ohjenuoranamme PiLFS-ohjekirjaa, joka käytännössä neuvoo noudattamaan LFS-ohjekirjaa kertoen muun muassa, missä kohtaa alkuperäisestä ohjeistuksesta kannattaa poiketa, tai mitä erityistä kannattaa huomioida.

Aluksi on syytä todeta, että Raspberry Pi (myöh. RasPi) eroaa normaalista tietokoneesta esimerkiksi BIOS:in osalta, jota RasPissa ei ole. RasPissa on asetustiedostoja, joita muokkaamalla muutetaan asetuksia, joita normaalisti muutettaisiin BIOS:in asetuksissa.

Jokaisen RasPille Linux from Scratchia asentavan on syytä huomioida se tosiasia, että 25 dollarin arvoisessa luottokortin kokoisessa yhden piirilevyn tietokoneessa on todennäköisesti hitaampi prosessori kuin kännykässäsi. Asentaminen on vieläpä aikamoista prosessorin huudatusta, sillä ohjelmat asennetaan kääntämällä ne lähdekoodeista, mikä tehdään pääasiallisesti prosessorilla.

Tästä syystä yritimme aluksi emuloida RasPia qemulla PiLFS-ohjekirjan mukaisesti. Aikeenamme oli rakentaa ja kääntää ohjelmistot emulaattorilla, tehdä aikaansaannoksestamme image ja siirtää se RasPille. Emulaattori ei kuitenkaan muutaman tunnin taistelun seurauksena alkanut toimia, joten lopetimme ajan haaskauksen ja aloimme rakentaa järjestelmää suoraan RasPilla.

Seurasimme PiLFS-sivuston (IRC-tunnuksen mogwai ylläpitämä) ja LFS-kirjan ohjeita. Koska em. kirjojen kirjoittaminen uudestaan ei ole mielekästä, eikä siihen ole resursseja, keskitymme lähinnä kirjoja seuratessamme kohtaamiimme ongelmiin ja yllätyksiin.

LFS:n RasPille asentavan on syytä tietää, että ohjelmien kääntämiseen käytettävät, mogwain tekemät skriptit rouskuttavat 60–70 tuntia putkeen.

Kategoriat:Raspberry Pi

Nyt se toimii

Hiawatha 0.1 käynnisti itsensä onnistuneesti 20.11.
Raspberry Pi:lle rakennettu LFS-järjestelmä saatiin käynnistymään omin voimin. Lähipäivinä aiomme kertoa muistiinpanojemme pohjalta, millaisia haasteita kohtasimme. Stay tuned!

Kategoriat:Raspberry Pi

OMXPlayerin asentaminen

Johdanto

Ennen kuin varsinaista OMXPlayeriä voidaan asentaa,täytyy jo aikaisemmin mainitut paketit asentaa. Tässä artikkelissa on käsitelty näiden pakettien asentamisessa huomioitavia asioita, ja itse OMXPlayerin asentaminen. Artikkelin komennot on tehty ssh-yhteyden välityksellä,enkä ole laittanut näkyviin yhteydenmuodostamisen komentoa. Komento olisi ssh root@ip-osoite ,jos tulee tilanne, että se unohtuu. Tämän lisäksi käytän tiedostojen lataussijaintina /root/OMXPlayer/packages, mutta tietoturvallisempi paikka olisi käyttäjän oma kotihakemisto.

Tässä artikkelissa on käytetty samaa kokoonpanoa kuin aikaisemmin.

Alsa-lib -paketin asentaminen käytiin läpi jo edellisessä artikkelissa, joten seuraavana on vuorossa alsa-ultils.

Alsa-utils:n asennus

Alsa-utils -paketin asennuksessa täytyy huomioida, että se vaatii alsa-lib -paketin olevan asennettuna.

Alsa-utils-1.0.26- paketin lataus onnistui täältä (17.11.2012)

Aloitin latauksen komennolla

wget http://alsa.cybermirror.org/utils/alsa-utils-1.0.26.tar.bz2

Purin paketin komennolla

tar xvjf alsa-utils-1.0.26.tar.bz2

Latasin valinnaisen patch-tiedoston, jotta ei tarvitse asentaa xmlto-0.0.25 -pakettia.

wget http://www.linuxfromscratch.org/patches/blfs/svn/alsa-utils-1.0.26-no_xmlto-1.patch

Tämän jälkeen menin ensimmäisenä purettuun kansioon ja ajoin configure-skriptin.

cd alsa-utils-1.0.26/
alsa-utils-1.0.26] patch -Np1 -i ../alsa-utils-1.0.26-no_xmlto-1.patch
alsa-utils-1.0.26] ./configure --prefix=/usr/ --without-systemdsystemunitdir

Tämän jälkeen käänsin ohjelman

make

Ja asensin lopuksi ohjelman:

make install

FFmpeg-0.11.2 asennus

Tässä ohjeessa siis asennetaan vanhempi versio FFmpegistä sen takia, koska OMXPlayer vaatii sen toimiakseen. Sen jälkeen kun OMXPlayer päivitetään 1.0-versioon voi asentaa myös uudemman version FFmpeg:stä.

FFmpeg ei vaadi muita paketteja asennettaviksi, mutta minä halusin asentaa tuen esimerkiksi xvid:lle niin jouduin sitten asentamaan muitakin. Tässä on vielä lista mitä asensin:

Xvid-1.3.2
Xorg Libraries
Fontconfig-2.10.1

*FreeType-2.4.10
*expat-2.1.0 tai libxml2-2.9.0

Xorg Protocol Headers

*util-macros-1.17

-libXdmcp-1.1.

-libxcb-1.8.1

*libXau-1.0.7
*libXdmcp-1.1.1
*libpthread-stubs-0.3
*libxslt-1.1.27
*xcb-proto-1.7.1

Näiden lisäpakettien takia, FFmpegin asennukseen meni kauemmin aikaa,noin pari tuntia loppujen lopuksi.

Eli seuraavia paketteja ei ole pakko asentaa, jos ei halua.

Xvid-1.3.2

Paketin haku onnistui täältä,eikä asentaminen poikennut paketin sivujen ohjeista. Aluksi wget-komenolla paketti, tar xzvf paketin_nimi-komennolla purkaminen, cd-komennolla  purettuun kansion ja sitten sivujen ohjeiden mukaisesti.

Xorg Libraries

Jotta Xorg Libraries -paketin asentaminen onnistuu täytyy ensin asentaan sen vaatimukset. Eli ensin alla olevat Fontconfig-2.10.1, Xorg Protocol Headers, libXdmcp-1.1.1, ja libxcb-1.8.1.

Asentaminen (vasta riippuvuuksien asentamisen jälkeen)

Asentaminen onnistui sivun ohjeiden mukaan paitsi kolme asiaa täytyi muuttaa:

1.
Komento bash -e ,oli turha. Se ei minulla tehnyt uutta komentopäätettä, joten sen voi joko komentaa tai jättää komentamatta.

2.
Koska asensin nämä jo valmiiksi root-käyttäjä, ei komennossa tarvitse olla erikseen komentoa mikä käskee tekemään asennuksen  pääkäyttäjäoikeuksin. Alla olevassa koodissa on lihavoituna ja kursivoituna komentopätkän minkä poistin asennettaessa tätä.

for package in $(grep -v '^#' ../lib-7.7.md5 | awk '{print $2}')
do
  packagedir=${package%.tar.bz2}
  tar -xf $package
  pushd $packagedir
  case $packagedir in
    libXfont-[0-9]* )
      ./configure $XORG_CONFIG --disable-devel-docs
    ;;
    libXt-[0-9]* )
      ./configure $XORG_CONFIG \
        --with-appdefaultdir=/etc/X11/app-defaults
    ;;
    * )
      ./configure $XORG_CONFIG
    ;;
  esac
  make
  as_root make install
  popd
  rm -r $packagedir
  as_root /sbin/ldconfig
done

3.
Ja koska bash -e -komento ei tehnyt mtn konkreettista, ei minun myöskään tarvinnut käyttää exit –komentoa. Kokeilin ensimmäisellä kerralla ja tämä vain sulki ssh-yhteyden.

Fontconfig-2.10.1

Jotta Fontconfig-paketin pystyi asentamaan täytyi ensin asentaa  FreeType-2.4.10 ja joko expat-2.1.0 tai libxml2-2.9.0. Minä asensin libxml2-2-.9.0 -paketin.

FreeType-2.4.10

Asentaminen onnistui ohjeiden mukaan, ja sivulla oleva latauslinkki toimi.

expat-2.1.0 tai libxml2-2.9.0

Asensin siis libxml-paketin sivujen ohjeiden mukaan, eikä asennuksessa ollut ohjeista eroavia kohtia.

Xorg Protocol Headers

Ennen kuin itse Xorg Protocol Headers -pakettia pystyi asentamaan piti asentaa sen vaatima paketti util-macros-1.17.

Asennus

Asentaminen onnistui ohjeiden mukaan, mutta tässäki ohjeessa käytetyt bash -e ja exit –komento olivat turhia. Tämän lisäksi poistin tästäkin asennuskomennoista as_root-kohdan sen tarpeettomuuden takia. Varmuuden vuoksi kopsaan vielä komentoni millä asensin.

for package in $(grep -v '^#' ../proto-7.7.md5 | awk '{print $2}')
do
  packagedir=${package%.tar.bz2}
  tar -xf $package
  pushd $packagedir
  ./configure $XORG_CONFIG
  make install
  popd
  rm -r $packagedir
done

util-macros-1.17

Asennus oli nopea ja meni muuten ohjeiden mukaan paitsi lisäsin ./configure $XORG_CONFIG -komentoon –prefix=/usr/ , jotta kaikki paketit tulisi asennettua samaan paikkaan. Eli komentoni oli:

$ ./configure $XORG_CONFIG --prefix=/usr/ && make

libXdmcp-1.1

Asennus tapahtui ohjeiden mukaan ja taas lisäsin –prefix=/usr/  -komennon ./configure -komentoon niin kuin edellisessäkin.
Eli komento oli:

$ ./configure $XORG_CONFIG --prefix=/usr/ && make

libxcb-1.8.1

Jotta tämän paketin sai asennetuksi, piti taas asentaa muutama paketti ensin. Eli paketit: libXau-1.0.7, libXdmcp-1.1.1, libpthread-stubs-0.3, libxslt-1.1.27 ja xcb-proto-1.7.1. Ja näistä paketeista libXdmcp-paketti onkin jo asennettu.

Asennus (vaatimuksien asentamisen jälkeen)

Asennus tapahtui ohjeiden mukaan ja taas lisäsin –prefix=/usr/  -komennon ./configure -komentoon niin kuin edellisessäkin.
Eli komento oli:

./configure $XORG_CONFIG --prefix=/usr/ --docdir='${datadir}'/doc/libxcb-1.8.1 && make

libXau-1.0.7

Paketin asennus sui näppärästi ohjeiden mukana, paitsi –prefix=/usr/  -komennon lisääminen.

./configure $XORG_CONFIG --prefix=/usr/ && make

libXdmcp-1.1.1 (asennettu jo)

libpthread-stubs-0.3

Asennus onnistui suoraan sivujen ohjeiden mukaan.

libxslt-1.1.27

Asennus vaatii libxml2-2.9.0 -paketin asentamista,mutta sen asensin jo aikaisemmin tässä artikkelissa.

Libxslt -paketin asennus sujui ohjeiden mukaan näppärästi ilman ongelmia.

xcb-proto-1.7.1

Paketin vaatimuksena on Python-2.7.3 -paketin, mutta LFS Base sisältää jo valmiiksi Python:n.

Paketin asentaminen onnistui ohjeiden mukaan, paitsi että lisäsin taas –prefix=/usr/ –komennon.

./configure $XORG_CONFIG --prefix=/usr/

ALSA-plugins

Rapoa

Boost

Asentaminen onnistui ohjeiden mukaan ilman mitään lisäyksiä.

PCRE

Paketin asennus sujui myös täysin ohjeiden mukaan.

FreeType

Ja tämä paketti olikin jo asennettu aikaisemmin tässä artikkelissa.

OMXPlayerin paketin asentaminen

Ensimmäisenä latasin uusimman OMXPlayerin-paketin ohjeiden mukaan:

wget https://github.com/huceke/omxplayer/archive/master.tar.gz -O huceke-omxplayer-git.tar.gz

Tämän jälkeen purin paketin ja siirryin kansioon:

tar xvzf huceke-omxplayer-git.tar.gz
cd omxplayer-master/

Tämän jälkeen muokkasin kääntämistiedostoa

sed -i '/include Makefile.include/d' Makefile 
sed -i 's:INCLUDES+=*:&-I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/usr/include/freetype2 :' Makefile
sed -i 's:LDFLAGS+=*:&-L/opt/vc/lib :' Makefile

Ja aloitin kääntämisen:

make

Kääntämisen jälkeen kopion binääritiedoston /usr/bin/-kansioon, jotta OMXPlayerin käyttäminen onnistuisi paremmin. Tämä on siis sama juttu kuin normaalisti ./configure-komennon yhteydessä olen laittanu komennon –prefix=/usr/.

cp -v omxplayer.bin /usr/bin/omxplayer

OMXPlayerin käyttäminen

OMXPlayer saadaan käytiin komentamalla seuraavasti:

omxplayer -p -o hdmi video_tiedosto #-p= tarkoittaa audio passthrough; -o hdmi=tarkoittaa, että ääni menee hdmi-johdon mukana. Vaihtoehtona hdmi/local.

Tekstitystiedoston lisätään vaikka videotiedoston perään,esimerkiksi näin:

omxplayer -p -o hdmi video_tiedosto -t tekstiystiedosto.srt
1 Nopeuttaminen
2 Hidastaminen
j Edellinen ääniraita
k Seuraava ääniraita
i Edellinen kappale
o Seuraava kappale
n Edellinen tekstitysraita
m Seuraava tekstitysraita
s Tekstitykset on/off
q Sulkeminen
Välilyönti tai p Tauko
Äänen hiljentäminen
+ Äänen voimistaminen
Vasen nuoli Kelaus -30
Oikea nuoli Kelaus +30
Alas Kelaus -600
Ylös Kelaus +600

Tekstitykset toimimaan OMXPlayer:ssä

Sain näillä ohjeilla tekstitykset näkymään ainoastaan kerran. Videotiedostoni oli -mp4-formaatissa ja tekstitystiedosto .srt-muodossa. Raspberry Pi foorumeilla on paljon keskustelua aiheesta, mutta selvää vikaa tähän ei ole selvillä. Pääsyyksi epäillään erilaisia tekstitystiedostojen tekotyylejä eli joku tekstitystiedosto toimii, toinen ei.

Latasin torarin-omxplayer -paketin:

wget https://github.com/torarin/omxplayer/archive/experimental.tar.gz -O torarin-omxplayer-git.tar.gz

Ja tämän jälkeen purkiin tiedoston ja siirryin kansioon:

tar xvzf torarin-omxplayer-git-tar.gz
cd omxplayer-experimental/

Ja seuraavaksi taas makefile-tiedoston muokkausta ja make-komennolla kääntämistä:

sed -i '/include Makefile.include/d' Makefile
sed -i 's:INCLUDES+=*:&-I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/usr/include/freetype2 :' Makefile
sed -i 's:LDFLAGS+=*:&-L/opt/vc/lib :' Makefile
make

Seuraavaksi komensin ohjeiden mukaan seuraavanlaisen komennon, jonka avulla tekstityksissä käytetään freefont:teja.

mkdir -p /usr/share/fonts/truetype/freefont && cp -v fonts/FreeSans.ttf /usr/share/fonts/truetype/freefont

Lähteet

Tero Karvinen, Linux-projekti -kurssi

PiLFS – Linux From Scratch on the Raspberry Pi

-Jokela Antti-Ville

Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html