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

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

Ohjelmien kääntäminen LFS Base:lle

Johdanto

Jotta juuri asennetulla LFS Basella ja Raspberry Pi:lla voisi tehdä jotain hyödyllistä, niin siihen täytyy asentaa ohjelmia. Tässä raportissa käännämme, tai ainakin yritämme, kääntää OMXPlayer:n.  OMXPlayer:ä kääntäessä apunamme on Intestinate-sivuston ohje. Kaikki komennot on suoritettu kirjautumalla root-käyttäjällä sisään, koska en ole tehty muita käyttäjiä.

OMXPlayer:n asentaminen on vielä kesken.

Ohjelmien kääntäminen

Yleisesti ohjelmien kääntäminen tapahtuu seuraavassa järjestyksessä. Ja LFS Basessa ei tule oletuksena sudoa eikä apt-get -paketteja, joten komentoja ei voida käyttää.

1. Haetaan tarvittava paketti tai sen asentamisen kannalta tärkeät paketit.

wget paketin_latausosoite

2. Puretaan paketin sisältö

tar "purkamiskomento" paketin_nimi

Purkamiskomento riippuu paketin pakkaustavasta.

tar -xvzf paketin_nimi = .tar.gz - tiedostoille 
tar -xvjf paketin_nimi = .tar.bz2 (.tbz) -tiedostoille
tar -xvf paketin_nimi = .tar -tiedostoille 
tar -xvJf paketin_nimi = .tar.xz -tiedostoille

3. Mennään purettuun kansioon

cd paketin_nimi

4. Konfiguroidaan

./configure

Komennon perään voi laittaa lisäkäskyjä,polkuja jne. jos haluaa. Esimerkiksi komento ./configure –prefix=/usr/  siirtää ohjelmien binäärit /usr/bin/ -hakemistoon.

5. Käännetään

make

6. Ja asennetaan

make install

OMXPlayer

OMXPlayerin asentaminen vaatii ensiksi seuraavien pakettien asentamisen. Sisennettynä olevat paketit, joudutaan myös asentamaan,jos yllä olevan paketti asennetaan. Kenossa olevat paketit asensin sen takia, että saisin xvid-videot myös toimimaan ja xorg-librariesin. Näitä kahta pakettia ei ole pakko asentaa, ja nopeuttaa OMXPlayerin asentamista huomattavasti.

ALSA-lib
ALSA-utils
FFmpeg (versio 0.11.2 kunnes OMXPlayer päivitetään 1.0 versioon)

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

ALSA-plugins
Boost
PCRE
FreeType

Aloittaminen

Jotta ladattavat paketit pysyisivät paremmassa järjestyksessä tein paketeille omat tiedostosijainnit. Ja jotta projektin edetessä muiden ohjelmien paketit eivät menisi sekaisin.

Tiedostorakenne näytti tältä:

/root/OMXPlayer  #komennolla mkdir OMXPlayer

Menin OMXPlayer-kansioon cd OMXPlayer/

/packages   # komento mkdir packages,ja tämän jälkeen menin ko. kansioon komennolla cd packages

Packages-kansio on siis se kansio mihin lataan ja puran kaikki paketit.

Alsa-lib -paketin lataus ja asentaminen

Tämän paketin lataaminen ja asentaminen toimii esimerkkinä miten asensin jokaisen ylläolevan paketin. Jokaisen paketin oma sivu sisälsi toimivat ohjeet, poikkeuksena Alsa-projectin paketit joiden lähteet eivät aina toimineet. Ja koska en ole tehnyt uusia käyttäjiä enkä ole asentanu sudo-pakettia kaikki alla olevat komennot olen tehnyt root-tunnuksilla. Pahoittelen myös jotkin sana käännökset ovat vääriä.

Ensiksi muodostin ssh-yhteyden RasPiin:

$ ssh root@192.168.1.69
root@192.168.1.69's password: 
Last login: Sat Nov 10 17:01:53 2012 from koti

Tämän jälkeen menin packages-kansioon, jotta paketit ovat sitten myöhemmin helposti löydettävissä.

[root@0] [~] cd OMXPlayer/packages/
[root@0] [~/OMXPlayer/packages]

Koska siis alsa-lib:n -sivuilla oleva linkki ei toiminut, piti etsiä toinen linkki tiedoston lataamiseen. Menin aluksi Alsa-projektin omille sivuille ja sitä kautta ”download” kohtaan mistä löysin cybermirror.org, minkä kautta oli mahdollista ladata uusin alsa-lib -paketti. Tietenkin olisi ollut mahdollista ladata muista Download-sivuilta löytyvistä linkeistä, mutta cybermirror sijaitsi Euroopassa, joten valitsin sen.

Alsa-lib-1.0.26 -tiedosto löytyy tästä.

Latasin paketin komennolla:

[root@0] [~/OMXPlayer/packages] wget http://alsa.cybermirror.org/lib/alsa-lib-1.0.26.tar.bz2

Ja sen jälkeen ku lataus oli valmis purkiin tiedoston ja menin alsa-lib-1.0.26 -kansio

[root@0] [~/OMXPlayer/packages] tar -xvjf alsa-lib-1.0.26.tar.bz2
[root@0] [~/OMXPlayer/packages] cd alsa-lib-1.0.26/

Tämän jälkeen ajoin configure-skriptin ohjeiden mukaan lisäten –prefix=/usr/ ,jotta asennus tiedostot menisi /usr/bin eikä /usr/local/bin -sijaintiin.

[root@0] [~/OMXPlayer/packages/alsa-lib-1.0.26] ./configure --prefix=/usr/

Kun skripti oli ajettu loppuun muutaman minuutin päästä pääsin kääntämään ohjelman komennolla make.

[root@0] [~/OMXPlayer/packages/alsa-lib-1.0.26] make

Ja lopuksi asensin paketin seuraavasti:

[root@0] [~/OMXPlayer/packages/alsa-lib-1.0.26] make install

Asentamiseen meni noin 10 minuuttia, mutta muiden pakettien asentamisessa saattaa mennä hiukan kauemmin, joten kannattaa varata tarpeeksi aikaa.

Lähteet

PiLFS – Linux From Scratch on the Raspberry Pi

Tero Karvinen, Linux-projekti -kurssi

– 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

LFS Base:n asennus Raspberry Pi:lle

Kokoonpano

Tässä artikkelissa käytetty kokoonpano:

Raspberry Pi Model 2 rev 2.0

Kingston 8GB SD-muistikortti, jossa valmiina Rasbian ”Wheezy” -käyttöjärjestelmä

RJ-45 Ethernet kaapeli

Eli artikkelissa kaikki toiminta tapahtuu ssh-yhteyden avulla, joten erillistä näppäimistö,hiirtä tai näyttöä ei tarvita.

Asennuskuvan lataaminen ja asennus

Aloitin asennuksen lataamalla Linux From Scratch Base -imagen täältä.

Latauksen jälkeen purkiin tiedoston kotihakemistoon. Tämän jälkeen laitoin SD-muistikortin koneeseen kiinni ja sulkiin muistikortin ikkunan. Seuraavaksi aloin seurata ohjeita, miten kuvan polttaminen muistikortille onnistuu. Linkin kohdassa ”Copying an image to the SD Card in Linux (command line)”  on kerrottu vielä tarkemmin mitä jokaisessa kohdassa tehdään.

Päätteessä käytetään dd-ohjelmaa, minkä avulla voi poistaa epähuomiossa koko kiintolevyn, joten sen käyttöön kannattaa tutustua ennenkuin alkaa käyttämään sitä.

$ df -h  #tulosteessa näkyy kaikki kiintolevyt ja niiden osiot, mutta kopioin tulosteesta muistikortin 
         #rivit.Muistikortin sijainnin voi selvittää vertailemalla tulosteita kun muistikortti on 
         #koneessa kiinni ja kun ei. Oletuksena muistikortti on joko /dev/sdd tai /dev/mmcblk0.

/dev/mmcblk0p2              7.3G  1.4G  5.9G  19% /media/antti-ville/PiLFS
/dev/mmcblk0p1               47M   17M   30M  36% /media/antti-ville/PiLFS-Boot

$ umount /dev/mmcblk0p2 #irroitin muistikortin 2. osio
$ umount /dev/mmcblk0p1 #irroitin muistikortin 1. osio. Jos näiden jälkeen komentaisi df -h ei tulosteessa
                        #pitäisi näkyä muistikortin osioita.

Tämän jälkeen alkaa asentaminen missä pitää olla erityisen varovainen.

Komennossa dd viittaa ohjelmaan, bs on (block size), if argumentin jälkeen polku .img -tiedostoon ja 
of argumentin jälkeen kohteen sijainti. Sijainnissa pitää olla koko laite, ei missään nimessä osio.

$ sudo dd bs=4M if=/home/antti-ville/Downloads/pilfs-base-20121015.img of=/dev/mmcblik0

Komennon jälkeen menee aikaa eikä minkäänlaista infoa tule mitä tapahtuu, joten kärsivällisyyttä piti olla. Linuxissa näyttää pätevän se, että kun mitään ei näytä tapahtuvan kaikki sujuu onnistuneesti. Jos kuitenkin herää kysymys mitä tapahtuu voi asian tarkistaa avaamalla toisen päätteen ja komentaa sudo pkill -USR1 -n -x dd, jolloin ensimmäiseen päätteeseen tulee tilannepäivitys.

Toisessa päätteessä:
$ sudo pkill -USR1 -n -x dd
Ensimmäiseen päätteeseen tuli tilanne:
400+0 records in
400+0 records out
1677721600 bytes (1.7 GB) copied, 158.629 s, 10.6 MB/s

Kun polttaminen loppui onnistuneesti ennen muistikortin poistamista komensin vielä sudo sync, joka tyhjentää välimuistin jotta muistikortti voidaan poistaa turvallisesti.

Ensimmäinen kirjautuminen ssh-yhteydellä

Ensimmäinen kirjautuminen vaati verkkoyhteyksien muuttamista manuaalisesti. Tämä siis siksi kun minulla ei ole käytössä näppäimistöä. Raspberry Pi:n oletusverkkoasetuksissa ip-osoite on 192.168.2.2 ja verkkomaski 255.255.255.0 oletusreititin 192.168.2.1.

Eli avasin verkkoyhteyskuvakkeen näytön oikeasta yläkulmasta päivämäärän vierestä ja klikkasin ”muokkaa”. Avautuvasta ikkunasta valitsin ”langallinen” -välilehden ja klikkasin ”muokkaa”. Tämän jälkeen avautuvasta ikkunasta valitsin välilehden ”IPv4 asetukset” ja tavaksi ”manuaalinen”. Jotta oma kannettavani olisi samassa verkossa Raspiberry Pi:n kanssa laittoin omaksi ip-osoitteekseni 192.168.2.4 ,verkkomaskiksi 255.255.255.0 ja oletusreitittimeksi 192.168.2.1 niille varattuihin kohtiin ja painoin ”tallenna”. Ainoa tärkeä asia edellisissä tiedoissa on, että koneen oma ip-osoite ei ole sama kuin RasPi:n. Ja suosittelen tarkistamaan  kahteen kertaan että verkkomaskin ja reitittimen osoitteet on kirjoitettu oikein.

Tämän jälkeen yhdistin Raspberry Pi ethernet-johdolla tietokoneeseeni ja klikkasin yhteystavaksi vielä langallisen internetin näytön oikeasta yläreunasta. Langaton netti katkesi ja kohta tuli tieto, että langallinen nettiyhteys toimii. Toisin sanoen RasPi oli piuhan toisessa päässä. Avasin komentopäätteen ja otin ssh-yhteyden RasPiin.

Oletuksen LFS Base:ssa käyttäjätunnus on root ja salasana pilfs.

$ ssh root@192.168.2.2
The authenticity of host '192.168.2.2 (192.168.2.2)' can't be established.
ECDSA key fingerprint is 6c:d5:38:f1:fd:32:e4:8d:fa:4b:88:ff:57:10:f2:d3.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.2.2' (ECDSA) to the list of known hosts.
root@192.168.2.2's password:

Kirjautuminen onnistui, joten seuraavaksi muutin muistikortin osiointia, jotta koko muistikortin tila saataisiin käyttöön.

Muistikortin uudelleen osioiminen

Muistinkortin uudelleen osioimisessa käyttiin tämän sivuston ohjetta.

Eli jatkoin ssh-yhteyttä päätteessä ja komensin df -h. 

root@0] [~] df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/mmcblk0p2  1.8G  1.4G  460M  75% /
tmpfs            61M  168K   60M   1% /run
devtmpfs         60M     0   60M   0% /dev
/dev/mmcblk0p1   47M   37M   11M  79% /boot

[root@0] [~] fdisk /dev/mmcblk0
Welcome to fdisk (util-linux 2.21.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): p  #p=partition ,eli näyttää osiot mitä on olemassa.
Disk /dev/mmcblk0: 7969 MB, 7969177600 bytes
64 heads, 32 sectors/track, 7600 cylinders, total 15564800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000714e9

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1            2048       98303       48128    c  W95 FAT32 (LBA)
/dev/mmcblk0p2           98304     3905535     1903616   83  Linux #poistettavan osion alkukohta "Start" on tärkeää tietoa.
Command (m for help): d #d=delete, eli poistetaan olemassa oleva osio
Partition number (1-4): 2 #valitaan poistettavaksi osioksi osio "2"
Partition 2 is deleted

Command (m for help): n #n=new, eli tehdään uusi osio
Partition type:
   p   primary (1 primary, 0 extended, 3 free) #kerrotaan vaihtoehdot mitä voi valita
   e   extended
Select (default p): p #valitaan primary-osio
Partition number (1-4, default 2): 2 #osion numeroksi laitetaan 2
First sector (98304-15564799, default 98304): 98304 #laitetaan alussa olevan partion 2 start lukema,(tai enter koska "default" arvo on jo oikein)
Last sector, +sectors or +size{K,M,G} (98304-15564799, default 15564799): #painetaan suoraan enter:ä koska oletusarvo "default" on sopiva.
Using default value 15564799
Partition 2 of type Linux and of size 7.4 GiB is set

Command (m for help): w #w=write, eli tällä komennolla vasta kirjoitetaan. Alla oleva teksti ilmoittaa että muutokset tulevat voimaan
The partition table has been altered! #uudelleen käynnistämisen jälkeen.

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resourc$
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@0] [~] reboot #käynnistetään RasPi uudestaan etänä.

$ ssh root@192.168.2.2 #kirjaudutaan sisään
root@192.168.2.2's password:

[root@0] [~] resize2fs /dev/mmcblk0p2 #tehdään muutoksista pysyvät 
resize2fs 1.42.5 (29-Jul-2012)
Filesystem at /dev/mmcblk0p2 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/mmcblk0p2 to 1933312 (4k) blocks.
The filesystem on /dev/mmcblk0p2 is now 1933312 blocks long.

[root@0] [~] df -h #ja tarkistetaan että tuloste näyttää osioiden koot oikein.
Filesystem      Size  Used Avail Use% Mounted on
/dev/mmcblk0p2  7.3G  1.4G  5.9G  19% /
tmpfs            61M  168K   60M   1% /run
devtmpfs         60M     0   60M   0% /dev
/dev/mmcblk0p1   47M   37M   11M  79% /boot

Ja lopussa olevan komennon tulosteesta näkeekin, että osioiminen onnistui ja nyt koko muistikortin koko on käytössä.

Raspberry Pi:n verkkoasetuksien muuttaminen

Jotta RasPi:n käyttö olisi mukavempaa, pitää verkkoasetuksia muuttaa. Oletuksena käynnistyksen yhteydessä verkkoasetukset tulee /etc/sysconfig/ifconfig.eth0 -tiedostosta, jossa on määritelty oletuksen yllämainitut ip-osoite,verkkomaski ja reititin. Haluan kuitenkin muuttaa asetuksia siten, että verkkoasetukset tulee automaattisesti dhcp:n mukaan. Ohjeiden mukaan verkkoyhteyden muuttaminen tehtäisin alla olevalla komennolla, mutta siinä alkuperäinen ifconfig.eth0 -tiedosto katoaa kokonaan, jolloin sitä ei voi palauttaa takaisin käyttöön tarvittaessa. Tietenkin, jos ei tarvitse vanhaa tiedostoa voi komentoa käyttää, mutta koska nyt on kyse projektista halusin säilyttää alkuperäisetkin tiedostot.

$ mv -v /etc/sysconfig/dhcp.eth0 /etc/sysconfig/ifconfig.eth0     #mv=move,eli dhcp.eth0 tiedosto korvaisi ifconfig.eth0 -tiedoston. -v tarkoittaa, että tiedostojen siirryttyä, päätteeseen tulee tiedostojen nimet näkyviin.

Eli nimesin alkuperäisen tiedoston ifconfig.eth0_orig -tiedostoksi.

$ mv /etc/sysconfig/ifconfig.eth0 /etc/sysconfig/ifconfig.eth0_orig  # normaalisti komento pitäisi tehdä pääkäyttäjänä, mutta koska en ole vielä tehnyt muita käyttäjiä, olen automaattisesti kirjautuneena root-käyttäjänä, jolla on pääkäyttäjä oikeudet nimensä mukaan.

Seuraavaksi nimeän dhcp.eth0 -tiedoston ifconfig.eth0 -tiedostoksi, jotta verkkoyhteydet toimivat.

$ mv /etc/sysconfig/dhcp.eth0 /etc/sysconfig/ifconfig.eth0
$ reboot  #käynnistin Raspberry Pi:n uudestaan ja kokeilin asetuksien toimivuutta.

Raspberry Pi yhdistäminen ssh-yhteydellä dhcp:tä käyttäen

Yhdistin Raspberry Pi:n reitittimeen ja yhdistin kannettavan langattomaan verkkoon.

Seuraavaksi jnetmap -ohjelman avulla skannasin kotiverkkoni, jotta sain selville Raspberry Pi:n ip-osoitteen. Jnetmap täytyy ajaa pääkäyttäjäoikeuksin eli komennolla sudo jnetmap, jotta ohjelma käynnistyy. Ikkunasta valitaan aluksi ”create new networkmap”,”Tools”->”network scanner” ja lopuksi ”Scan”. Lopputuloksena ohjelma näyttää samassa verkossa olevat laitteet. Verkkokartassa Raspberry Pi oli merkitty ”pilfs.lan”:ksi.
Tämän jälkeen yhdistin ssh-yhteyden avulla Raspiin:

$ ssh root@192.168.1.70
root@192.168.1.70’s password:
Last login: Wed Oct 31 11:46:23 2012 from 192.4.0.1
[root@0] [~]

Lähteet

PiLFS – Linux From Scratch on the Raspberry Pi

Projekti kuuluu Tero Karvisen Linux-projekti -kurssiin.

– 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

Muokattu 11.11.2012: lisätty lähteet ja GNU-lisenssi. -A-V Jokela

Kategoriat:Uncategorized

Projektisuunnitelma

Tausta

Projektin niinsanottuna isänä toimi Tom Himanen, joka oli haaveillut LFS:n tekemisestä jo jonkin aikaa ja toikin tämän esille kuukausia ennen kurssin alkua. Ideasta innostuttiin heti ja aloimme jo hyvissä ajoin etsimään kurssia, jonka puitteissa voisimme totetuttaa ideamme.

Aluksi projekti oli ajateltu tehtäväksi käyttäen x86-arkkitehtuuria ja mahdollisesti ajallisten resurssien salliessa myös ARM:ia, mutta tämä tarkentui kurssin ensimmäisellä lähiopetuskerralla koskemaan vain ARM:ia.

Projektin lopulliseksi sisällöksi määrittyi Linux From Scratchin ja joidenkin laajempien ohjelmistojen asentaminen Raspberry Pi -laitteelle. LFS:n päälle on määrä asentaa lähdekoodista kääntäen  OMXPlayer, Xbmc ja Quake 3. Ohjelmisto valikoimaa laajennetaan resurssien salliessa.

Projektiryhmä

  • Friman Santeri
  • Himanen Tom
  • Jokela Antti-Ville
  • Jylhä Ilkka
  • Latvanen Tuomas

Vastuuopettaja: Tero Karvinen

Tavoite ja lopputulos

Projektissa on tarkoitus tehdä Linux-julkaisu käyttäen apuna kirjaa, joka opastaa Linux From Scratchin (LFS) asentamisessa ARM-arkkitehtuuria käyttävälle piirilevylle.

Lopputuloksena esitellään Raspberry Pi, mihin on asennettu ryhmän alusta alkaen tekemä käyttöjärjestelmä joka sisältää vähintään kolme aikaisemmin mainittua ohjelmaa.

Projektissa käytämme Raspberry Pi Model B -tietokonetta. Projekti on jaettu kahteen eri osaan:

  • Perusjärjestelmän (käytön kannalta tärkeimmät ohjelmat, ydin ja ytimen moduulit) tekemiseen
  • Hyötyohjelmien kääntämiseen

Projektin eri osa-alueilla on vastuuhenkilöt, jotka huolehtivat osa-alueen tekemisestä. Himanen ja Jylhä ottaa vastuun varsinaisen LFS:n teosta, kun taas Friman, Jokela ja Latvanen keskittyvät ohjelmien kääntämiseen.

Ensimmäisenä prioriteettina on saada LFS, Xbmc, OMXPlayer ja Quake 3 toimimaan Raspberry Pi:lla. Jos ohjelmien kääntämisessä ei tule suuria ongelmia vastaan ja kääntäminen onnistuu etuajassa, ohjelmien määrää kasvatetaan.

Projektin tavoitteena ei ole tuottaa minkään näköistä kaupallista lisäarvoa. Tavoitteena on ensisijaisesti kasvattaa ymmärrystämme siitä, miten Linux rakentuu ja toimii, miten ohjelmia käännetään.

Rajaus

Projekti rajataan koskemaan vain ARM-arkkitehtuuria ja toimimaan Raspberry Pi:llä.

Budjetti

Projekti käyttää avointa lähdekoodia mikä mahdollistaa lähes nollabudjetin, mutta Raspberry Pi model B maksaa Suomessa noin 45 euroa. Tämän lisäksi täytyy olla muistikortti, virtalähde, näppäimistö, hiiri, näyttö ja näytölle menevä kaapeli, joten jos mitään edellä olevista ei omista ennestään ja haluaa projektin tehdä, joutuu varautumaan vähintään noin sadan euron kuluihin ilman näyttöä.

Investointeja on suoritettu seuraavasti:

  • Raspberry Pi model B   3 kpl
  • SD muistikortti 8Gt         2 kpl
  • Virtalähde microusb        2 kpl
  • Hdmi -kapeli            1 kpl

Aikataulu

Projekti alkoi 24.10.2012 vahvistamalla osallistumisen kurssille ja projektin aiheen. Projektisuunnitelman tuli olla palautettuna kurssin vastuuopettajalle seuraavan viikon keskiviikkona.

  • w43 Projektin jako osiin, , blogin teko, raspberry pi:n hankinta ja tutustuminen
  • w44 Projektisuunnitelma, itsenäistä työskentelyä josta raportointi blogiin.
  • w45 Itsenäistä työskentelyä, raportointi blogiin.
  • w46 Esitykset projektin tilasta, Väliraportti.
  • w47 Perusjärjestelmä ja osasuoritukset toimintakuntoon.
  • w48 Projektin osasuoritukset valmiina, eri osien yhdistäminen.
  • w49 Loppuraportti palautettu, projekti esittelyä vaille valmis.
  • w50 Projektin esittelyn valmistelu, päätökset demoista ja demojen valmistelu.

Työsuunnitelma

Projekti toteutetaan kaksijakoisesti. Tavoitteena oleva järjestelmä jaetaan minimaaliseen järjestelmään (base system) ja sen päälle rakennettavaan järjestelmään. Eri osille annetaan vastuujäsenet.

Koska projekti on jaettu osiin pääsevät kaikki projektin jäsenet tekemään heti omaa vastuualuetta.

  • Käyttöjärjestelmä = Himanen & Jylhä
  • Omxplayer = Friman & Jokela
  • XBMC = Latvanen
  • Quake 3 = Himanen & Jylhä

Muita mahdollisia osia

  • LXDE työpöytäympäristö
  • ssh-palvelin

Jos LFS:n teko alusta-alkaen muodostuu mahdottomaksi, on varasuunnitelmana käyttää jo olemassa olevaa lfs-julkaisua (http://www.intestinate.com/pilfs/) ja kääntää ohjelmat siihen. Muuten projekti pidetään samana. Tällöin keskitytään softan nopeuteen ja käytettävyyteen. Käännetään ja optimoidaan softaa itse ym ym.

Jos käyttöjärjestelmä saadaan hyvissä ajoin kasaan, siitä tehdään päähaara. Jokainen rakentaa päähaaran päälle ohjelmakokonaisuuksia tai ohjelmia, jolloin LFS-jakelun kehitys haarautuu. Kun ohjelmistot on todettu toimiviksi, ne hyväksytään päähaaraan.

Tavoitteena on siis kehittää itse tekemämme käyttöjärjestelmän päälle rakennettuja sivuhaaroja ja sulauttaa ne päähaaraan tarvittavan testauksen jälkeen.

Projektinhallinnolliset menettelytavat

Projektin tiedostot tallennetaan Google Drive -pilvipalveluun. Etäkonferenssit pidetään Google Hangouts -VOIP-ohjelmalla.  Pienemmät keskustelut käydään IRC:n välityksellä.

Yksilötyö raportoidaan viikottain yhteiseen blogiimme. Raportit kirjoitetaan suomeksi. Myöhemmin blogipostit kootaan myös erilliselle nettisivulle, jonka toteuttaa Tuomas. Nettisivun toteutus ei sisälly projektin aikabudjettiin.

Kategoriat:Uncategorized