Raspberry Pi - prvi dojmovi

Dejan Peretin bio photo By Dejan Peretin

Raspberry Pi (u daljnjem tekstu RPi) je stigao. Malo računalo u maloj kutiji.

Planirano je da RPi dolazi u dvije varijanete, Model A i Model B. Model A je jeftinija varijanta, zvanična cijena mu je 25 USD no zasad se proizvodi samo model B i to po cijeni od 35 USD. Koliki su stvarni troškovi dok dođe na kućna vrata, saznajte u nastavku.

Silvrback blog image

Silvrback blog image

Raspberry Pi model B pogoni Broadcom BCM2835 procesor koji kuca na 700 MHz. Model B također ima modul od 256 Mb radne memorije koja se dijeli između centralnog procesora i grafičkog procesora. Po defaultu centralnom procesoru ostaje 186 MB. Prisutna su dva USB 2.0 priključka, HDMI izlaz, 3.5mm audio i RCA kompozitni izlaz. Raspberry Pi se na mrežu može spojiti putem RJ45 ethernet porta koji dolazi isključivo u modelu B.

Na slici ispod vidimo RPi model B, spojen analogno na TV, spojeni miš, tipkovnica i eksterni disk:

Silvrback blog image

Ono što nećete dobiti uz RPi, a nužno je za njegov rad, je SD memorijska kartica.

SD kartica s predinstaliranim operativnim sustavom se može naručiti prilikom kupnje no u trenutku naručivanja ovog uređaja bile su rasprodane. Dakle, za pokretanje RPi-a potrebno je imati pri ruci jednu SD karticu kapaciteta barem 2 GB te se na nju mora nasnimiti ISO slika koja sadrži operacijski sustav. Na službenim download stranicama RPi-a dostupne su tri takve slike, od kojih se za početak preporučuje Debian Squeeze, pa sam odlučio svoje druženje s RPi-om započeti upravo s Debianom.

Instalacija slike

Prvo je potrebno skinuti ISO sliku koju planiramo staviti na SD karticu. U ovom slučaju to je debian6-19-04-2012.zip koja se nalazi na službenoj download stranici.

Zatim sliku treba otpakirati

$ unzip debian6-19-04-2012.zip

Time se dobije debian6-19-04-2012.img datoteka koja sadrži sliku.

Da bi na SD karticu stavili sliku, potrebno je imati neki čitač kartica i spojiti karticu na računalo. Zatim moramo utvrditi pod kojim imenom je kartica prepoznata: Naredbom df -h možemo vidjeti novo mountane diskove te prepoznati našu SD karticu. Ako izvršimo tu naredbu prije i poslije umetanja kartice možemo uočiti nove zapise i prepoznati karticu

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs           19G  7.5G   10G  43% /
devtmpfs        2.0G   36K  2.0G   1% /dev
tmpfs           2.0G  2.6M  2.0G   1% /dev/shm
tmpfs           2.0G  716K  2.0G   1% /run
/dev/sda6        19G  7.5G   10G  43% /
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
tmpfs           2.0G  716K  2.0G   1% /var/lock
tmpfs           2.0G  716K  2.0G   1% /var/run
tmpfs           2.0G     0  2.0G   0% /media
/dev/sda7       244G   30G  203G  13% /home
/dev/sda2       196G  127G   69G  65% /windows/C
/dev/sdd1        63M  6.0M   58M  10% /media/B757-8716
/dev/sdd3       7.2G  1.6G  5.2G  24% /media/14fa9af4-552a-4f53-88ad-3259f189fccf

Vidimo da je kartica prepoznata kao /dev/sdd

Prije nastavka potrebno je unmountati sve particije koje se nalaze na kartici, u ovom slučaju to su /dev/sdd1 i /dev/sdd3

$ umount /dev/sdd1
$ umount /dev/sdd3

Slika se sada snimi na karticu s naredbom

# dd bs=1M if=debian6-19-04-2012.img of=/dev/sdd

pa onda

# sync

Ovako pripremljena kartica je dovoljna da se RPi boota. Nema on/off gumba, stvar se ušteka i radi. RPi s ovom Debian slikom se boota u terminal i prvi boot traje oko 4.5 minute, a svaki sljedeći oko jedne minute.

Defaultni username za ovu sliku je pi i pripadni password je raspberry.

Prvo što upada u oči nakon boota je činjenica da ovakav način pripremanja kartice koristi samo onaj dio kartice koji je predviđen slikom, odnosno 2 GB. Iako je moja testna kartica kapaciteta 8 GB, RPi vidi i koristi samo 2 GB, što korisniku ostavlja na koristenje cijelih 298 MB. Neke druge slike kao primjerice raspbmc pobrinu se da je cijela kartica raspoloživa. Nakon prvog boota diskovna situacija izgleda ovako:

pi@raspberrypi:~$ df -h
Filesystem            Size  Used Avail Use% Mounted on
tmpfs                  94M     0   94M   0% /lib/init/rw
udev                   10M  152K  9.9M   2% /dev
tmpfs                  94M     0   94M   0% /dev/shm
rootfs                1.6G  1.2G  298M  80% /
/dev/mmcblk0p1         75M   28M   47M  37% /boot

Da bi doskočili ovom problemu potrebno je promijeniti veličinu root particije: (izvor).

Disk na kojem je particija kojoj želimo promijeniti veličinu je /dev/mmcblk0, sufiksi p1, p2 itd. su oznake particije.

Sve ovo radimo direktno na RPi-u:

# fdisk -uc /dev/mmcblk0

naredbom p izlistamo informacije o particijama.

Command (m for help): p

Disk /dev/mmcblk0: 7969 MB, 7969177600 bytes
4 heads, 32 sectors/track, 121600 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: 0x000ee283

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1            2048      155647       76800    c  FAT32 (LBA)
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux
/dev/mmcblk0p3         3416064     3807231      195584   82  Liswap / Solaris

Mijenjamo veličinu particiji /dev/mmcblk0p2. Prvo izbrišemo particiju komandom d i damo mu broj particije (2 i 3 u ovom slučaju)

Command (m for help): d
Partition number (1-4): 2

Command (m for help): d
Partition number (1-4): 3

Sada napravimo particiju (n p 2) i za početak sektora stavimo početak stare particije te za veličinu izaberemo defaultnu ponuđenu vrijednost, kako bi se particija proširila na ostatak diska:

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1            2048      155647       76800    c  W95 FAT32 (LBA)
/dev/mmcblk0p2          157696     3414015     1628160   83  Linux
/dev/mmcblk0p3         3416064     3807231      195584   82  Linux swap / Solaris

Command (m for help): d
Partition number (1-4): 2

Command (m for help): d
Partition number (1-4): 3

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): p
Partition number (1-4): 2
First sector (155648-15564799, default 155648): 157696

Naredbom w snimimo promjene. Također je potrebno ponovno pokrenutu RPi.

# reboot

Nakon ponovnog ulogiravanja napravimo resize

# resize2fs /dev/mmcblk0p2

Root particija je sada rastegnuta preko cijele kartice:

pi@raspberrypi:~$ df -h
Filesystem            Size  Used Avail Use% Mounted on
tmpfs                  94M     0   94M   0% /lib/init/rw
udev                   10M  148K  9.9M   2% /dev
tmpfs                  94M     0   94M   0% /dev/shm
rootfs                7.3G  1.2G  5.8G  17% /
/dev/mmcblk0p1         75M   28M   47M  37% /boot

U jednom od prethodnih koraka odabrali smo opciju da se root particija proširi na cijeli disk pa sada nema mjesta za swap particiju (budući da RPi ima svega 256 MB radne memorije, malo swapa neće škoditi). To ćemo riješiti ovako

# dd if=/dev/zero of=/var/swapfile bs=1M count=128
# mkswap /var/swapfile
# swapon /var/swapfile
# reboot

Editirati datoteku: /etc/fstab iz ovog:

proc            /proc           proc    defaults        0       0
/dev/mmcblk0p1  /boot           vfat    defaults        0       0
#/dev/mmcblk0p3  none            swap    sw              0       0

u ovo:

proc            /proc           proc    defaults                                0       0
/dev/mmcblk0p1  /boot           vfat    defaults                                0       0
/dev/mmcblk0p2  /               ext4    defaults,noatime,nodiratime             0       0
/var/swapfile   none            swap    sw                                      0       0

Debian radi uredno. Repozitoriji su dostupni i bez nekih problema sam uspio instalirati nekoliko paketa. Debian dolazi s LXDE-om, ali X server ne diže pri bootu. Dizanje X-a traje oko 20 sekundi, što i nije pretjerano dugo. Prvo dizanje Midorija nakon boota traje oko dvije i pol minute, ali svako sljedeće je puno brže, oko 8 sekundi. Ono što ne radi, odnosno ne radi dobro out of the box, je multimedija. Umjesto da pokušavam natjerati multimediju da se pristojno ponaša na Debianu, posegnuo sam za popularnom alternativom, Raspbmc-om.

Raspbmc

Raspbmc je napravljen s jednom svrhom, a to je multimedija. Napravljen je povrh Debiana te koristi XBMC za upravljanje sadržajem.

Slika Raspbmc se može skinuti s ove poveznice.

Smještanje slike na karticu se odvija isto kao kod Debiana. Za razliku od Debiana, tim postupkom se na karticu postavi instalacijski alat. Za dovršetak instalacije dovoljno je upaliti RPi i spojiti ga na mrežu. Instaler će sam odraditi ostatak posla.

Za razliku od Debiana, raspbmc će iskoristiti cijeli kapacitet SD kartice.

Multimedija radi iznenađujuće dobro. RPi je dovoljno snažan da glatko vrti filmove HD kvalitete. Mali bug primjećen je kod reprodukcije glazbe. Naime, ako pjesma ne odsvira do kraja već prebacimo na drugu, ona neće svirati.

XBMC povremeno u terminal zapiše neku poruku (najčešće opis neke greške zapiše na stderr). Ako se u tom trenutku reproducira neki film, koji je takvog formata da slika nije prikazana preko cijelog ekrana, onda se ta poruka vidi u crnom predjelu ispod i iznad slike.

Silvrback blog image

Korisna napomena; ako se RPi ne spaja na TV (ili monitor) preko HDMI-a, nego analogno, onda se obavezno u postavkama XBMC-a audio output mora staviti na analog, u suprotnom se pri pokretanju filma dobije ovo:

Silvrback blog image

Zgodna je činjenica da raspbmc po defalutu pokreće SSH server pa, ako se nekako može dokučiti IP adresa stroja, jedino što je potrebno da bi se na RPi-u nešto radilo je RJ45 kabel, dok su kod Debiana potrebni ekran i tipkovnica barem kod prvog boota.

Dojmovi

RPi se uredno spojio na mrežu (DHCP), tipkovnica i miš su također uredno prepoznati. RPi je bio spojen na stari TV i slika i zvuk su uredno preneseni. USB konektori su smješteni jako blizu jedan drugom, pa ako planirate imati spojen uređaj koji je malo deblji, kao npr. USB stick ili WiFi adapter, potrebno je imati nekakav produžni ili hub.

Debian radi poprilično dobro, rad u terminalu je malčice spor, ali je RPi za tu svrhu definitivno upotrebljiv. Rad u grafičkom sučelju je osjetno sporiji. Kao glavna uloga RPi-a ističe se ona edukacijska i to u svrhu učenja programiranja. Ovo zahtjeva mnogo posjeta tražilicama i najčešće otvoreno nekoliko (desetaka) tabova, pa bih učenje programiranja uz RPi predložio samo ljudima koji imaju puno strpljenja i kvalitetnu literaturu u tiskanom obliku.

Kao jedna od najpopularnijih primjena RPi-a se spominje ona gdje RPi glumi media centar. Softver koji ga nekako najbliže dovodi tom cilju, raspbmc, još ipak nije spreman. Iako se filmovi vrte glatko, samo sučelje XBMC-a malo zapinje. Nedostatak podrške za neke kodeke i sitni iritanti bugovi su dovoljni razlozi da zaključavanje svog HTPC-a na tavan odgodite na još barem neko vrijeme.

I koliko košta Pi od 35 dolara?

Raspberry Pi, punjač, dva kabela za spojiti na TV i dostava dođe oko 350 kuna. Carina je oko 250 kuna. RPi je neupotrebljiv bez SD kartice, koja se može dobiti za nekih 66 kuna (8 GB, class 10). Ukupno oko 666 kn.