Specializarea Calculatoare ș i Tehnologia Informației [632163]
Universitatea din București
Facultatea de Matematică și I nformatică
Specializarea Calculatoare ș i Tehnologia Informației
LUCRARE DE LICENȚĂ
Managementul funcționalităților multimedia
pe platforma Raspberry Pi
COORDONATOR Ș TIINȚIFIC STUDENT: [anonimizat] 2017
Cuprins
1. Introducere ………………………….. ………………………….. ………………………….. ………………………… 3
1.1.Motivație ………………………….. ………………………….. ………………………….. …………………. 4
1.2.Plan de proiect ………………………….. ………………………….. ………………………….. ………….. 5
1.3.Public țintă ………………………….. ………………………….. ………………………….. ………………. 6
1.4.Analiza SWOT ………………………….. ………………………….. ………………………….. …………. 6
2. Platforma hardware ………………………….. ………………………….. ………………………….. …………… 8
2.1.Raspberry Pi ………………………….. ………………………….. ………………………….. …………….. 8
2.2.Testarea familiei de calculatoare Raspberry Pi ………………………….. …………………….. 9
2.3.Performanțele familiei de calculatoare Raspberry Pi în comparație cu alte
platforme ARM Linux ………………………….. ………………………….. …………………………. 13
2.4.Concluzie ………………………….. ………………………….. ………………………….. ……………….. 22
3. Sisteme de operare ………………………….. ………………………….. ………………………….. …………… 23
3.1.Partiționarea cardului SD, instalarea sistemului de operare și multi -booting …….. 23
3.1.1. Imagine standalone ………………………….. ………………………….. …………………… 23
3.1.2. NOOBS ………………………….. ………………………….. ………………………….. ………. 25
3.1.3. BerryBoot ………………………….. ………………………….. ………………………….. …… 31
3.2.Asigurarea funcționalităților ”work/office” ………………………….. ……………………….. 32
3.2.1. Raspbian ………………………….. ………………………….. ………………………….. ……. 32
3.2.2. Arch Linux ARM ………………………….. ………………………….. …………………….. 33
3.2.3. Pidora ………………………….. ………………………….. ………………………….. …………. 34
3.2.4. Windows 10 IoT Core ………………………….. ………………………….. ………………. 35
3.2.5. Android ………………………….. ………………………….. ………………………….. ………. 36
3.2.6. Debian ………………………….. ………………………….. ………………………….. ………… 36
3.2.7. Ubuntu MATE ………………………….. ………………………….. …………………………. 36
3.3.Asigurarea funcționalităților multimedia ………………………….. ………………………….. . 36
3.3.1. Managerul multimedia – XBMP, XBMC, Kodi ………………………….. ……… 36
3.3.2. OSMC ………………………….. ………………………….. ………………………….. ………… 38
3.3.3. XBian ………………………….. ………………………….. ………………………….. …………. 39
3.3.4. LibreELEC ………………………….. ………………………….. ………………………….. ….. 40
3.4.Asigurarea funcționalităților ludice ………………………….. ………………………….. ………. 41
3.4.1. RetroPie ………………………….. ………………………….. ………………………….. ……… 41
3.4.2. Recalbox ………………………….. ………………………….. ………………………….. …….. 42
3.4.3. Lakka ………………………….. ………………………….. ………………………….. ………….. 43
3.5.Concluzii ………………………….. ………………………….. ………………………….. ……………….. 44
4. Configurația sistemului ………………………….. ………………………….. ………………………….. ……. 45
4.1.NOOBS Lite ………………………….. ………………………….. ………………………….. …………… 45
4.2.Raspbian Lite ………………………….. ………………………….. ………………………….. …………. 47
4.3.LibreELEC și Kodi ………………………….. ………………………….. ………………………….. …. 53
4.4.Recalbox ………………………….. ………………………….. ………………………….. ………………… 55
5. Internet of Things și Cloud computing ………………………….. ………………………….. …………. 56
6. Bibliografie ………………………….. ………………………….. ………………………….. ………………………. 59
Capitolul 1 – Introducere
Impactul pe care tehnologia îl are asupra vieții și societății umane și strânsa legătură de
natură simbiotică dintre aceasta și om pot fi observate de -a lungul istoriei. Încă din vremuri antice
nevoia de a automatiza și simplifica operațiile aritmetice și logice au condus la implementarea
unor dispozitive rudimentare de calcul, precum abacul. Creșterea exponențială a tehnologiei și
influența ei asupra fiecărui aspect al vieții de zi cu zi au determinat răspândirea informațiilor ,
înlesnirea, eficientizarea și automatizarea multor procese, iar în consecință îmbunătățirea calității
vieții.
Creșterea exponențială a tehnologiei poate fi înregistrată în multe domenii, precum și în
rândul dispozitivelor electronice de calcul. Legea lui Moore (denumită după Gordon M oore,
fondator Intel și Fairchild Semiconductor) descrie dublarea numărului de tranzistoare într -un
circuit integrat dens la aproximativ fiecare doi ani. Legea lui Moore reprezintă o observație și o
predicție, determinată de noi descoperiri și invenții, a cărei precizie s -a dovedit a fi exactă pe
parcursul deceniilor de la formularea ei . Aceasta este folosită în multe domenii, precum și în
industria semiconductoarelor pentru a ghida planificarea pe termen lung, cercetarea, dezvoltarea
și este strâns legată de progresele din domeniul electronicii digitale, influențând aspecte precum
numărul pixelilor camerelor digitale, capacitatea memoriilor sau prețurile microprocesoarelor .
Fig. 1.1 – Graficul versiunii actualizate a legii lui Moore
3
Un alt rezultat al progresului tehnologic îl constituie creșterea puterii de procesare a
calculatoarelor în raport cu dolarul. Un studiu realizat de către William D. Nordhaus în anul 2 001
analizează costurile puterii de calcul al computerelor de pe parcurs ul ultimilor 150 de ani. Acesta
convertește seturile de date colectate la ”un milion de operații standard pe secundă” (MSOPS –
million standard operations per second) și estimează că pe rformanțele au crescut în medie, cu
aproximativ 55% pe an, din anii 1940 pană în 2010.
1) Motivație
Scăderea costului computerelor personale, ava ntajele versatilității lor și accesul la
informații oferit de către internet au dus la integrarea calculatoarelor în toate domeniile de lucru,
dar și pătrunderea lor în viața cotidiană. Acestea sunt necesare pentru a asigura o gamă largă de
nevoi și servicii specifice societăți i moderne, dispun de capacitatea de a automatiza și realiza
anumite sarcini mai eficient și mai rapid în contrast cu echivalentul lor realizat manual (de exemplu
realizarea de calcule sau editarea și formatarea textului ) și înglobează sau asigură o alterna tivă la
Fig. 1.2 – Costul puterii de calcul pentru diferite tehnologii
4
multe dintre funcțional itățile oferite de dispozitive electronice sau analogice (de exemplu
vizionarea online de programe de televiziune, accesul la ziare în format electronic sau accesul la
servicii de telefonie prin internet). Impactul pe care co mputerul personal îl are asupra vieții
cotidiene, precum și avantajele pe care le prezintă fac din acesta o necesitate.
2) Plan de proiect
Obiectivul este de a implementa o soluție hardware și software, eficientă din punctul de
vedere al costului și resursel or de procesare, care să acopere cât mai multe nevoi și să asigure toate
funcționalitățile de bază ale unui calculator personal .
Platforma hardware va fi constituită de către un single -board computer ( un calculator
complet construit și inclus pe o singură placă de circuit imprimat) , va avea la bază un sistem de
operare de tip Unix și va trebui să dispună de puterea de calcul necesară pentru a rula eficient și
cu o viteză rezonabilă programele software. Avantajele principale ale acestui tip de calculatoare
sunt costurile accesibile și portabilitatea.
Vor fi folosite 3 sisteme de operare , fiecare destinat unui anumit rol , pentru a asigura
eficiența și viteza sistemului în a îndeplini un număr cât mai divers de sarcini. Acestea vor constitui
baza următoarelor medi i de lucru :
1. Primul sistem de operare va asigura funcționalitățile de bază ale unui calculator
personal precum accesarea și navigarea internetului, editarea și realizarea de
documente sau redarea celor mai populare formate de fișiere (de exemplu .pdf sa u
.ppt pentru prezentări) , dar va fi capabil să îndeplinească și sarcini specializate
precum analize de rețea sau scrierea, compilarea și publicarea de cod pentru
dezvoltarea de aplicații.
2. Al doilea sistem va rula software pentru managementul și redarea conținut ului de
tip multimed ia. Acesta va permite citirea celor mai populare formate de fișiere
audio, video sau imagini , aflate în memoria locală, în rețeaua locală sau pe internet
și va dispune de funcționalități pentru organizarea lor în liste de redare.
3. Al treilea sistem va avea sarcina de a rula jocuri. Având în vedere resursele
hardware limitate, vor fi rulate jocuri retro, dezvoltate pentru sisteme și console de
jocuri video aparținând generațiilor de dispozitive anterioare. Pentru jocurile
moderne, v a fi utilizată o tehnologie ce va realiza o conexiune prin protocoale LAN
sau prin internet între sistem și un calculator personal. Calculatorul va rula jocuri le
moderne, iar utilizatorul sistemului va putea vedea imaginea transmisă de el și va
putea trimit e comenzi, având astfel acces de la distanță la jocuri disponibile pe
platforma PC (personal computer – calculator personal) .
Cele 3 sisteme de operare trebuie să dispună și să fie compatibile cu programe software
open -source sau gratuite, pentru a reduce costurile și pentru a asigura nivelul înalt de accesibilitate ,
precum și ușurința în distribuire .
5
3) Public țintă
Proiectul se adresează instituțiilor de învățământ și are ca obiectiv implementarea unei
soluții low-cost (cu costuri reduse ) de calculatoare personale , reducând semnificativ cheltuielile ,
care de altfel ar fi fost constituite de achiziționarea unor sisteme de tip desktop și a licențelor
software . Aceste sisteme pot fi folosite în scopuri educativ e și pot înlocui calculatoare le din
anumite labo ratoare, pentru a permite elevilor sau studenților, de exemplu, să studieze diferite
limbaje de programare. De asemenea, prin conectarea lor la un ecran sau proiector, pot fi folosite
la realizarea prezentărilor, înlocuind un calculator personal întreg, as igurând același grad de
funcționalitate în acest context , dar pentru o fracțiune din cost.
Proiectul se adresează de asemenea și utilizatorilor individuali ce doresc un sistem versatil,
portabil și foarte accesibil ca preț, capabil să îndeplinească funcțiile de bază ale unui calculator
obișnuit, precum accesarea adresei de email, naviga rea pe internet sau editarea documente lor.
Având în vedere software -ul disponibil, sistemul poate servi și la realizarea analizelor de rețea, la
programare sau poate c onstitui un server.
Prin conectarea la un televizor, sistemul va permite utilizatorului să vizioneze filme și
seriale în format HD, să redea toate formatele de fișiere multimedia populare, să vizioneze
programe de televiziune în direct prin internet, prec um și multe altele, înglobând astfel întreaga
gamă a funcționalităților unui HTPC ( un Home Theater PC este un calculator ce combină
funcționalitățile unui PC cu software pentru redarea de conținut multimedia ), a unui sistem de
home entertainment și a unui CD/DVD/Blu -ray pla yer.
Utilizatorii pasionați de jocuri video vor putea utiliza sistemul pentru a emula console retro
și pentru a accesa de la distanță librăria de jocuri disponibile pe PC.
4) Analiza SWOT
Reprezintă o metodă structurată de planificare care analizează cele 4 elemente ale unui proiect:
strengths – puncte tari, weaknesses – puncte slabe, opportunities – oportunități și threats –
amenințări. Aceasta oferă o imagine de ansamblu și evaluează factorii de influență interni și
externi, anticipând dificultățile cu care s -ar putea confrunta un proiect pe perioada de dezvoltare,
precum și poziția acestuia în raport cu condițiile de piaț ă actuale.
Analiza acestui proiect este următoarea:
a) Puncte tari (strengths):
costuri mici de implementare
oferă o gamă largă de funcționalități și aplicații
portabilitate
6
b) Puncte slabe (weaknesses) :
resurse hardware limitate
în contrast cu un calculator de tip desktop, nu dispune de aceeași putere de calcul sau
software pentru realizarea unor sarcini specializate
c) Oportunități (opportunities):
software -ul open -source și gratuit permite realizarea de copii și reduce costurile
software -ul disponibil este în continuare dezvoltat și actualizat
nu există alternative similare disponibile pe piață
d) Amenințări (threats):
apariția în viitorul apropiat a unor sisteme mai performante
creșterea cerințelor hardware necesare pentru software -ul disponibil
7
Capitolul 2 – Platforma hardware
Pentru a atinge obiectivele stabilite în primul capitol și pentru a asigura funcționalitățile
necesare, este nevoie de o platformă hardware care să ofere o putere de calcul și procesare
îndeajuns de mare pentru specificațiile program elor, dar și să garanteze viteze optime de operare.
La acestea se adaugă și nevoile de c ât mai mult software compatibil disponibil și un preț cât mai
accesibil. Pentru a evita costu rile licențelor pentru programe și pentru a permite efectuarea de copii
(ale sistemului de operarea împreună cu configurațiile, modificările aduse și software -ul instalat,
cu scopul distribuirii în instituții de învățământ pentru uz educativ sau altor utilizatori pentru uz
personal), va fi implementată o soluție open -source, care să ofere suport pentru rularea de sisteme
de operarea de tip Unix, precum ARM Linux.
1) Raspberry Pi
Raspberry Pi este o serie de calculatoare single -board, dezvoltate în Regatul Unit al Marii
Britanii de către Raspberry Pi Foundation, pentru a promova informatica și tehnologia
calculatoarelor în școli și în țările în curs de dezvoltare. Este o platformă populară și de succes, ce
a găsit utilizări în multe domenii, precum robotică, soluții de server la scară mică sau prin
conectarea la camere video în securitate, iar de la introducerea prim ului model în anul 2015 până
în noiembrie 2016, a u fost vândut e 11 milioane de unități.
Raspberry Pi 3 Model B reprezintă a treia
generație a familiei Raspberry Pi de single -board
computers și a fost lansat în februarie 2016. Acesta
dispune de un SoC ( system on a chip – sistem pe chip –
este un circuit integrat care conține toate componentele
unui PC, precum procesor, placă video, memorie,
controller USB etc.) Broadcom BCM2837 cu un
procesor ARM v8 Cortex -A53, quad -core (cu 4 nuclee),
pe 64 de biți, de 1. 2GHz, împreună cu o placă video
VideoCore IV 3D și o memorie cache L2 de 512KB. La
toate aceste se adaugă 1GB de RAM LPDDR2 de 900
MHz (Low Power DDR2 – DDR2 ce utilizează energie
puțină ), LAN wireless 2.4GHz 802.11n, Bluetooth 4.1
Classic , BLE ( Bluetooth Low Energy – bluetooth ce
utilizează puțină energie) , 4 porturi USB 2.0, port
Ethernet 10/100, port Full HDMI, 40 de pini GPIO,
interfață pentru cameră foto/video (CSI), interfață pentru
ecran (DSI), mufă audio de 3.5mm și pentru semnal
video compoz it, slot pent ru card micro SD și un preț de
vânzare de 35$.
Fig. 2.1 – Calculatorul Raspberry 3 Model B
8
Raspberry Pi 3 Model B acoperă toate necesitățile și reprezintă soluția ideală din rândul
familiei de calculatoare Raspberry Pi . Pentru a ajunge la această concluzie, au fost folosite o serie
de teste și bench mark -uri (programe care rulează teste pentru a evalua performanțele) care compară
acest model cu celelalte versiuni existente.
2) Testarea familiei de calculatoare Raspberry Pi
Specificații le familiei de calculatoare Raspberry Pi:
Raspberry Pi 3
Raspberry Pi 2
Raspberry Pi
Zero
Raspberry Pi A+
Raspberry Pi
model B
Data lansării 2016 Feb 29 2015 Feb 1 2015 Nov 30 2014 Nov 10 2012 Feb 15
Preț 35.00$ USD 35.00$ USD 5.00$ USD 20.00$ USD
Model SoC Broadcom
BCM2837 Broadcom
BCM2836 Broadcom
BCM2835 Broadcom
BCM2835 Broadcom
BCM2835
Model Procesor Cortex -A53 64 -bit Cortex -A7 ARM1176JZF -S ARM1176JZF -S ARM1176JZF -S
Număr de
nuclee 4 4 1 1 1
Placă video VideoCore IV VideoCore IV VideoCore IV VideoCore IV VideoCore IV
Frecvență
Procesor 1.2GHz 900MHz 1GHz 700MHz 700MHz
RAM 1GB 1GB 512MB 256MB 512MB (256 –
model A)
Porturi USB Da, 4 Da, 4 Da, micro +
micro OTG Da, 1 Da, 2
Port ethernet Da Da Nu Nu Da
Port HDMI Da Da Da, mini Da Da
Slot card
SD/MMC Da, microSD Da, microSD Da, microSD Da, microSD Da, SD
Wi-Fi Da, 802.11n Nu Nu Nu Nu
Bluetooth Da 4.1 Nu Nu Nu Nu
Înălțime 85.6 mm 85.6 mm 30 mm 65 mm 85.6 mm
Lungime 56.5 mm 56.5 mm 65 mm 56.5 mm 53.98 mm
Grosime 17 mm 5 mm 10 mm
Greutate 45 g 45 g 9 g 23 g 45 g
Putere electrică
necesară 800 mA 800 mA 160 mA 200 mA 700 mA
9
Pentru a vedea cât de rapid este Raspberry Pi 3 Model B în c omparație cu restul familiei
de calculatoare Raspberry Pi, au fost folosite următoarele benchmark -uri:
a) Sysbench CPU – oferă capabilități de benchmarking pentru Linux și permite testarea
procesorului, oferind suport pentru operații multi -threaded (pe mai multe fire de
execuție). Unitatea de măsură este reprezentată de secunde, care denotă timpul necesar
pentru terminarea testului.
Fig. 2.2 – Rezultatele testului Sysbench CPU
b) Python GPIO – pinii de tip GPIO ai Raspberry Pi -ului sunt cel mai frecvent utilizați
de programe scrise în limbajul Python, iar acest lucru duce la folosirea procesorului .
Acest test va utiliza un program simplu denumit RPi.GPIO care comută un pin cât mai
repede posibil , în timp ce un contor de frecven ță măsoară cât de repede acesta comută.
10
Fig. 2.3 – Rezultatele testului Python GPIO
c) Quake III Arena TimeDemo – clasicul joc de tip ”shooter” (”împușcături”) este strâns
legat de capabilitățile procesorului și poate fi folosit pentru a testa performanțele sale
(modelele testate dispun de aceeași placă video). Este utilizat standardul ”timedemo”
la rezoluția 1280×1024, folosind opțiunile: ”high geometric”, ”maximum texture
detail”, ”32 -bit texture quality”, ”trilinear filtering”. Unitățile de măsură reprezentate
sunt FPS ( frames per second – cadre pe secundă).
Fig. 2.4 – Rezultatele testului Quake III Arena TimeDemo
11
d) Whetstone – este un benchmark dezvoltat în anul 1972 pentru a măsura viteza de calcul
a computerelor și se concentrează asupra performanțelor în aritmetica virgulei mobile.
În ciuda vârstei, acesta oferă o bună privire de ansamblu asupra performanțelor unui
procesor. Unitatea de măsură reprezentată este MWIPS ( millions of whetstone
instructions per second – milioane de instrucțiuni whetstone pe secundă).
Fig. 2.5 – Rezultatele testului Whetstone
e) Dhrystone – dezvoltat în anul 1984, acesta măsoară viteza și performanțele unui
procesor în calcule cu numere întregi. La fel ca în cazul echivalentului său ce utilizează
aritmetica virgulei mobile, Dhrystone oferă un punct de referință util pentru compararea
diferitelor procesoare. Unitatea de măsură reprez entată este M IPS ( millions of
instructions per second – milioane de instrucțiuni pe secundă).
Fig. 2.6 – Rezultatele testului Dhrystone
12
3) Performanțele familiei de calculatoare Raspberry Pi în comparație cu
alte platforme ARM Linux
Pentru a oferi o privire de ansamblu asupra capabilităților modelului Raspberry Pi 3 s -a
utilizat o serie de benchmark -uri care să testeze performanțele acesteia în comparație cu unele
dintre cele mai populare alternative de platforme ARM Linux. Dispozitiv ele incluse în această
serie de test e sunt: Raspberry Pi 3 Model B, Raspberry Pi 2 Model B, Raspberry Pi Zero, Banana
Pi M2, ODROID C1+, Orange Pi PC, Orange Pi Plus, NVIDIA Jetson TK1 și NVIDIA Jetson
TX1.
Specificațiile calculatoarelor testate sunt:
Nume Data
apariție SoC Procesor Placă video RAM Wi-Fi USB Ports
Raspberry Pi 3
Model B Februarie
2016 Broadcom
BCM2837 Cortex -A53
Quad -Core
1.2GHz VideoCore IV 1GB
LPDDR2 Da, 802.11n 4xUSB 2.0
Raspberry Pi 2
Model B Februarie
2015 Broadcom
BCM2836 Cortex -A7
Quad -Core
900MHz VideoCore IV 1GB
LPDDR2 Nu 4xUSB 2.0
Raspberry Pi
Zero Noiembri
e 2015 Broadcom
BCM2835 ARM
1176JZF -S
1GHz VideoCore IV 512MB
LPDDR2 Nu 1xUSB 2.0
OTG
Banana Pi M2 Aprilie
2015 Allwinner
A31 Cortex -A7
Quad -Core
1GHz PowerVR
SGX54MP2 1GB
DDR3 Da,
802.11b/g/n 4xUSB 2.0
ODROID C1+ August
2015 Amlogic
S805 Cortex -A5
Quad -Core
1.5GHz Mali -450
MP2 1GB
DDR3 Nu 4×USB 2.0,
1×USB 2.0
OTG
Orange Pi PC Februarie
2015 Allwinner
H3 Cortex -A7
Quad -Core
1.536 GHz Mali -400
MP2 1GB
DDR3 Nu 3xUSB 2.0,
1xUSB 2.0
OTG
Orange Pi Plus Februarie
2015 Allwinner
H3 Cortex -A7
Quad -Core
1.6GHz ARM Mali –
400 MP2 1GB
DDR3 Da,
802.11b/g/n 4xUSB 2.0,
1xUSB 2.0
OTG
NVIDIA Jetson
TK1 Aprilie
2014 Tegra K1 4+1 nuclee
Cortex -A15
2.32GHz NVIDIA
Kepler cu 192
nuclee Cuda 2GB
DDR3L Nu 1xUSB 3.0,
1xUSB 2.0
micro
NVIDIA Jetson
TX1 al doilea
trimestru
al anului
2015 Tegra X1 Cortex -A57
Quad -Core
1.9GHz +
Cortex -A53
Quad -Core
1.3GHz NVIDIA
Maxwell cu
256 nuclee
Cuda 4GB
LPDDR4 Da, 802.11ac 1xUSB 3.0,
1xUSB 2.0
13
Pentru a vedea cât de rapid este Raspberry Pi 3 Model B în comparație cu alte platforme
ARM Linux , a fost folosit software -ul open -source pentru benchmark -uri Phoronix Test Suite.
Acesta reprezintă o alegere populară pentru generarea de teste pentru sistem ele de operare Linux,
Windows, Mac OS X, FreeBSD, OpenBSD, NetBSD, OpenSolaris și este susținut și promovat de
website -uri celebre precum Li nux.com, LinuxPlanet, Softpedia și Tom ’s Hardware . Au fost
folosite următoarele benchmark -uri pentru testarea performanțelor :
a) John The Ripper – este un software utilitar gratuit folosit pentru testarea securității
parole lor (passwords). Acesta poate fi folosit pentru măsurarea performanțelor unui sistem
prin analiza vitezei cu care acesta decriptează fiș ierul has h al parolei. În acest test a fost
utilizat algoritmul de criptare Blowfish, a fost folosit același fișier hash pentru toate
platformele, iar unitatea de măsură reprezentată este C/S ( combinations per second –
combinări pe secundă). Pe baza rezultatelor , a fost apoi generat un grafic ce măsoară
performanța în raport cu costul sistemelor.
Fig. 2.7 – Rezultatele testului John The Ripper (Blowfish)
14
Fig. 2.8 – Rezultatele testului John The Ripper (Performan ță/Cost)
15
b) C-Ray – este un test conceput pentru măsurarea performanțelor procesorului în aritmetica
virgulei mobile. Testul rulează 16 fire de execuție per nucleu pentru a genera o imagine de
rezoluție 1600×1200. Acesta măsoară timpul în secunde, necesar pentru obți nerea acestei
imagini .
Fig. 2.9 – Rezultatele testului C -Ray
16
c) Smallpt – este un program open -source de 99 de linii de cod, scris î n C++, pentru testarea
performanț elor cal culatoarelor la nivel de grafică. Acesta generează un spațiu și
implementează tehnici pent ru iluminarea globala a sa. Este măsurat timpul de execuție în
secunde.
Fig. 2.10 – Rezultatele testului Smallpt
17
d) Timed MAFFT Alignment – este un test științific ce efectuează asamblarea a 100 de
secvențe de piruvat decarboxilază (enzima care îndepărtează grupa carboxil de la piruvat).
Este măsurat timpul de execuție în secunde.
Figură 2.11 – Rezultatele testului Timed MAFFT Alignment
18
e) OpenSSL – este o librărie de software open -source ce implementează protocoalele SSL
(Secure Sockets Layer) și TLS (Transport Layer Security) pentru a cripta datele transmise
prin rețea. Testul măsoară performanțele sistemului în utilizarea toolkit -ului (set de
instrumente – suită de programe software uti litare) OpenSSL , folosind algoritmul
criptografic pentru criptare și semnături electronice RSA de 4096 de biți. Pe baza
rezultatelor, a fost apoi generat un grafic ce măsoară performanța în raport cu costul
sistemelor.
Fig. 1.12 – Rezultatele testului OpenSSL (Performan ță)
19
Fig. 2.13 – Rezultatele testului OpenSSL (Performan ță/Cost)
20
f) FLAC Audio Encoding – acest test măsoară timpul necesar unui calculator pentru a
realiza de 3 ori conversia unui fișier audio necomprimat de format WAV în format FLAC.
Este măsurat timpul de execuție în secunde.
Fig. 2.1 4 – Rezultatele testului FLAC Audio Encoding
21
g) Meta Performance Per Dollar – după terminarea execuției benchmark -urilor, pe baza
rezultatelor înregistrate, a fost generat un grafic ce măsoară performanța pe r dolar a
sistemelor utilizate în cadrul testelor.
Fig. 2.1 5 – Rezultatele testului Meta Perfor mance Per Dollar
4) Concluzie
Raspberry Pi 3 Model B reprezintă soluția ideală pentru implementarea acestui proiect,
reușind să obțină, în urma testării cu celelalte platforme, rezultate impresionante privind puterea
de calcul, dar și o performanță raportată la cost foarte bună. Cu toate aceste , o platformă hardware
este pe atât de bună pe cât există software disponibil, bine optimizat și care să asigure
funcționalitățile necesare utilizatorului, iar în acest domen iu Raspberry Pi excelează.
22
Capitolul 3 – Sisteme de operare
Pentru a atinge cu succes obiectivele stabilite în capitolele anteri oare, am realizat o
cercetare ș i o serie de teste asupra celor mai populare sisteme de operare (operating systems –
OS-uri) disponibile în momentul actual pentru Raspberry Pi . Scopul este identificarea celor mai
potrivite sisteme de operare din punctul de vedere al vitezei de boot -are (procesul de pornire a
calculatorului și de încărcare a sistemului de operare) , vitezei de reacție, aplicațiilor disponibile ,
compatibilității cu software -ul disponibil și ușurinței de folosire. Am luat de asemenea în calcul
și abundența resurselor tehnice oferite online, dar și dacă proiectul respectiv este în continuare
dezvoltat și primește update -uri. Testarea fo losind benchmark -uri (programe care rulează teste
pentru a evalua performanțele) în acest caz nu ar fi oferit rezultate precise, deoarece este folosit
același kernel (nucleu de sistem de operare) pentru a rula aceeași colecție de software -uri.
Următoarele patru secțiuni vor detalia care au fost motivele alegerii metodei de
partiționare /multi -boot și a sistemului de operare potrivit pentru funcționalitățile ”work – office ”,
multimedia și jocuri.
I. Partiționarea cardului SD , instalarea sistemului de operare
și multi -booting
1) Imagin e standalone
a) Partiționarea s tandalone
Un fișier de tip .img reprezintă o imagine byte-cu-byte completă a unui întreg card SD.
Acesta include MBR -ul (sectorul de date ce conține tabelul de partiționare), precum ș i
partiționările RAW (particularitate Unix , permite accesul direct la hard disk, fără a folosi cache –
ul si buffer -ele sistemului de operare) .
În momentul în care o imagine este scrisă pe un card SD (spre exemplu 2014 -06-20-
wheezy -raspbian.img), de obicei sunt create două parti ții:
1. O partiție mică boot , de format FAT ce conține firmware -ul Raspberry Pi, un
kernel de Linux compilat și niște fișiere de configurație. (Aceasta este singura
partiție pe care sistemul Windows o poate vedea.)
2. O partiție mare root, de format ext4 ce conț ine toate fișierele folosite în mod
direct de către sistemul Linux, împreună cu toate aplicațiile, precum și directorul
home al utilizatorului implicit.
23
Pentru că tabelul de partiționare (și partițiile RAW ) sunt copiate direct de pe fișierul .img
pe cardul SD, partiția root va fi de exact dimensiunea specificată în fișierul .img, astfel în cazul
în care cardul SD este de dimensiuni mai mari față de fișierul .img, va exista un spațiu de stocare
ce va fi irosit. Pentru a folosi acest spațiu se poate utiliza o unealtă software precum raspi -config,
care va redimensiona partiția root la cea mai mare dimensiune posibilă.
Pe Raspberry Pi întregul card SD este denumit (de către Linux) /dev/mmcblk0 , prima
partiție (boot) este denumită /dev/mmcblk0p1 , iar a doua partiție (root) este /dev/mmcblk0p2 .
(Similar, dacă cardul este accesat de către un Linux PC folosind un cititor USB de carduri SD,
întregul card ar putea fi numit /dev/sdb , cu prima partiție /dev/sdb1 și a doua /dev/sdb2 . În cazul
în care la PC sunt conec tate mai multe drive -uri, aceste nume se pot schimba în /dev/sdc ,
/dev/sdc1 și /dev/sdc2 .)
b) Boot -are Standalone
În contrast cu un PC normal, Raspberry Pi nu folosește codul bootstrap stocat in MBR, în
schimb, atunci când este pornit, acesta realizează următoarele:
1. Încarcă și rulează fișierul bootcode.bin de pe prima partiție ( /dev/mmcblk0p1 ) a
cardului SD, cu condiția ca partiția sa fie formatată FAT .
2. bootcode.bin la rândul său încarcă și rulează start.elf (și fixup.dat ), aflate de
asemenea pe prima partiție .
3. start.elf apoi citește config.txt și stabilește configurația plăcii video .
4. start.elf apoi citește cmdline.txt , încarcă și rulează kernel.img (kernel -ul pentru
Linux) sau kernel7.img (pentru Raspberry Pi 2 / Raspberry Pi 3), transmițând
întreaga linie de comandă citită din cmdline.txt . (Pe majoritatea imaginilor
Raspberry Pi de tip standalone, sistemul de fișiere root se află pe a doua partiție,
astfel în cmdlin e.txt va apărea opțiunea root=/dev/mmcblk0p2 .)
5. kernel -ul de Linux încărcat parsează linia de comandă pe care a primit -o pentru a
determina unde se află sistemul de fișiere root ( /dev/mmcblk0p2 în majoritatea
cazurilor) .
6. kernel -ul de Linux încarcă apoi partiția /dev/mmcblk0p2 ca sistem de fișiere root
( / ) și continuă procesul de boot .
7. În majoritatea cazurilor fișierul /etc/fstab (tabelul sistemului de fișiere) aflat în
root va conține o linie de comandă ce va cere ca partiția /dev/mmcblk0p1 să fie
încărcată la /boot . Acest lucru permite modificarea fișierelor de pe prima partiție
(/dev/mmcblk0p1 ) direct din Linux. De exemplu, se poate edita /boot/config.txt și
modificările făcute fișierului config.txt vor fi apoi citite de către start.elf la
următoarea repornire a Raspberry Pi -ului.
24
2) NOOBS
a) Partiționarea folosind NOOBS
NOOBS ( New Out Of Box Software) este un manager simplu și uș or de folosit, de
instalare a sistemului de operare pentru Raspberry Pi. După descărcarea arhivei NOOBS de tip
.zip, conținutul acesteia trebuie extras pe un card SD de cel puțin 8GB, formatat î n sistem FAT.
La prima pornire, partiția FAT denumită ”Recovery” va fi automat redimensionată la valorile
minime, iar o listă cu siste mele de operare disponibile va fi afișată. Există două varian te
disponibile: NOOBS și NOOBS L ite. Diferența dintre acestea e ste că NOOBS L ite nu include
nicio imagine de recuperare (recovery image ) a sistemelor de operare.
Din motive istorice (doar 4 ”spaț ii” în tabelul de partiționare), hard -drive -urile și
cardurile SD pot avea maxim 4 partiții primare. Pentru a depăși această limitare, una dintre
partițiile primare poate fi opțional o partiție extinsă . O partiție extinsă poate conține un număr
nelimitat de partiții logice în interiorul ei. În Linux, partițiile primare sunt întotdeauna
numerotate între 1 -4 (precum am văzut mai sus /dev/mmcblk0p1 – /dev/mmcblk0p4 pe Raspberry
Pi) și orice partiție logică este mereu numerota tă de la 5 în sus (de exemplu /dev/mmcblk0p5 și
așa mai departe pe Raspberry Pi).
Când NOOBS este prima oară copiat pe un card SD formatat FAT, există o singură
partiție care ocupă tot spațiul pe card (în această partiție sunt scrise toate fișierele NOOBS din
arhiva .zip descărcată). Sub forma unui tabel, aceasta arată astfel:
Partiți e
primara Partiție
logică Tip Nume Conținut
1
FAT
New Volume
Fișiere de boot -are NOOBS și
initramfs ( initial RAM file system –
un bloc de RAM al cărei memorie
este tratată de către software -ul
computerului ca un disk drive),
imaginea sistemului de operare
b) Boot -are NOOBS (low-level)
Atunci când Raspberry Pi -ul este pornit și conține un card pe care este scris NOOBS,
următoarele lucruri se întâmplă:
1. Este încărcat și rulat bootcode.bin de pe partiția formatată FAT /dev/mmcblk0p1 ,
exact ca în cazul imaginii standalone. (Acest comportament este scris direct în
firmware -ul intern al chipului BCM2835 pe toate Pi -urile și nu poate fi schimbat.)
25
2. bootcode.bin observă apoi că start.elf lipsește, așa că încarcă și rulează
recovery.elf în schimb .
3. Prin rularea recovery.elf , modul de firmware trece în ”NOOBS mode” – este
folosit recovery.img în locul kernel.img , recovery.cmdline în locul cmdline.txt ,
iar recovery.rfs este setat ca sistem de fișiere root.
4. recovery.elf citește apoi recovery.cmdline , încarcă și rulează recovery.img
(kernel -ul de Linux), transmițându -i întreaga linie de comandă citită din
recovery.cmdline și spunându -i să încarce recovery.rfs ca sistem de fișiere root
(un initramfs ce conține diverse script -uri și interfața grafică NOOBS).
5. Ce urmează depinde de ”modul” în care se află NOOBS.
c) Boot -are NOOBS (modul setup)
Dacă argumentul runinstaller este prezent în linia de comandă a kernel -ului, atunci
înseamnă că este prima oară când NOOBS boot -ează, iar acesta trece în ”modul setup” (”setup
mode” – ”modul de instalare” ). Următoarele lucruri au loc:
1. Micșorează în mod aut omat (singura) p artiția /dev/mmcblk0p1 , aducând -o la o
mărime exact îndeaj uns de mare cât să conțină fișierele necesare și o denumește
”RECOVERY”.
2. Creează o nouă partiție extinsă, goală, denumită /dev/mmcblk0p2, folosind
majoritatea spațiului rămas de pe c ard.
3. Creează o partiție mică (32MB) de tipul ext4 /dev/mmcblk0p3 la sfârșitul cardului
și o denumește ”SETTINGS”. Aceasta este folosită pentru a conține fișierele ce îi
spun lui NOOBS ce sisteme de operare sunt instalate (și pe ce partiții sunt
instalate), ce sistem de operare trebuie încărcat în mod implicit, limba și tipul de
tastatură folosite etc.
4. Șterge runinstaller din recovery.cmdline pentru a preveni ca acest proces să
ruleze din nou .
Aceste setări sunt păstrate pe o partiție auxiliară mică, nu pe aceeași partiție
/dev/mmcblk0p1 precum celelalte fișiere NOOBS. A cest lucru este datorat ”primei directive”
NOOBS – ”NOOBS nu scrie niciodată pe prima partiție FAT”. În acest mod prima partiție nu va
fi niciodată coruptă, iar ”modul recovery” va fi mereu accesibil (și va permite sistemelor de
operare să fie reinstalate) , indiferent de ce se întâmplă cu restul cardului SD.
26
Tabelul partițiilor se schimbă astfel:
Partiție
primara Partiție
logică Tip Nume Conținut
1
FAT
RECOVERY
Fișiere de boot -are NOOBS și
initramfs, imaginile sistemelor de
operare
2
extinsă
Orice partiție logică
3
ext4
SETTINGS
Setările NOOBS
d) Boot -are NOOBS (modul recovery)
Dacă NOOBS detectează că niciun sistem de operare nu a fost încă instalat, sau dacă
utilizatorul apasă tasta ”Shift”, se inițializează ”modul recovery” (” recovery mode” – ”modul de
recuperare”). Acest lucru afișează meniul pentru instalarea sistemului de operare, oferindu -i
utilizatorului posibilitatea să aleagă ce OS dorește să instaleze.
Fig. 3.1 – Programul NOOBS în modul recovery
27
Fig. 3.2 – Conținutul fișierului partitions.json Spațiul disponibil af ișat în imagine (”Available space” ) este mărimea partiției extinse
/dev/mmcblk0p2 , locație unde sistemele de operare sunt instalate.
e) Fișiere de date NOOBS
În contrast cu instalarea unei imagini standalone (care conține partiții RAW), NOOBS
folosește în schimb tarballs (tar este un software utilitar care comprimă datele în arhive de tip
.tar denumite tarball ) împreună cu fișiere de setări. NOOBS este responsabil pentru crearea
partițiilor pe cardul SD, astf el acestea au de la început dimensiunile ”corecte” și nu este nevoie
să fie redimensionate. O altă diferență este că tarballs nu stochează blocuri de disk neutilizate.
f) Instalarea siste melor de operare folosind NOOBS
Să presupunem că un utilizator dorește să
instaleze doar Raspbian. Fișierul partitions.json
(reprezentat în imaginea din dreapta) specifică ce
partiții trebuie create, mărimea lor și ce sistem de
fișiere să folosească. În acest exemplu va fi
creată o partiție de tip FAT de 60MB
(/dev/mmcblk0p5 ), va fi formatată, iar în
interiorul ei va fi extras conținutul arhivei
boot.tar.xz . Deoarece pentru partiția root codul
specifică want_maximised: true , este creată o
partiție ext4 care va ocupa tot restul spațiului
liber, va fi formatată, iar apoi în ea va fi extras
conținutul arhivei root.tar.xz . Este rul at apoi
scriptul partition_setup.sh , care va încărca
aceste noi partiții, iar apoi vor fi editate fișiere
(de obicei doar cmdline.txt de pe partiția boot și
/etc/fstab de pe partiția root) pentru a -i spune sistemului Raspbian unde a fost instalat. Astfel
Raspbian se ajustează faptului că a fost instalat pe /dev/mmcblk0p5 și /dev/mmcblk0p6 în loc de
/dev/mmcblk0p1 și /dev/mmcblk0p2 . La final este actualizată partiția ”SETTINGS” cu noile
detalii privind OS -ul instalat. Tabelul partițiilor ar arăta astfel :
28
Partiție
primara Partiție
logică Tip Nume Conținut
1
FAT
RECOVERY
Fișiere de boot -are NOOBS și
initramfs, imaginile sistemelor de
operare
2
extinsă
Orice partiție logică
5
FAT
boot
Fișiere boot Raspbian
6
ext4
root
Sistemul de fișiere root Raspbian
3
ext4
SETTINGS
Setările NOOBS
Dacă utilizatorul dorește în schimb să instaleze Raspbian și ArchLinux, atunci vom sfârși
cu partiția de boot a ArchLinux -ului /dev/mmcblk0p5 , partiția de root a ArchLinux -ului
/dev/mmcblk0p6 , partiția de boot a Raspbian -ului /dev/mmcblk0p7 și cea de root a Raspbian -ului
/dev/mmcblk0p8 . Din moment ce ambele fișiere partitions.json ale Raspbian -ului și ArchLinux –
ului specifică că una dintre partiții să fie maximizată ( want_maximised: true), atunci vom
obține două partiții mici boot și două partiții cât se poate de mari root. NOOBS nu ”irosește”
niciun spațiu de pe cardul SD. Tabelul partițiilor ar arăta astfel:
Partiție
primara Partiție
logică Tip Nume Conținut
1
FAT
RECOVERY Fișiere de boot -are NOOBS și
initramfs, imaginile sistemelor de
operare
2 extinsă Orice partiție logică
5 FAT boot Fișiere boot ArchLinux
6 ext4 root Sistemul de fișiere root ArchLinux
7 FAT boot Fișiere boot Raspbian
8 ext4 root Sistemul de fișiere root Raspbian
3 ext4 SETTINGS Setările NOOBS
29
Pentru a acomoda sistemul Win10IoT (Windows 10 Internet of Things ), schema
partițiilor va fi ușor schimbată de la versiunea de NOOBS v1.5 încolo. În loc ca partiția
”SETTINGS” să fie a treia partiție primară, aceasta se află acum în prima partiție logică, în
interiorul partiției extinse. Schema s-ar schimba astfel:
Partiție
primara Partiție
logică Tip Nume Conținut
1
FAT
RECOVERY Fișiere de boot -are NOOBS și
initramfs, imaginile sistemelor de
operare
2 extinsă Orice partiție logică
5 ext4 SETTINGS Setările NOOBS
6 FAT boot Fișiere boot ArchLinux
7 ext4 root Sistemul de fișiere root ArchLinux
8 FAT boot Fișiere boot Raspbian
9 ext4 root Sistemul de fișiere root Raspbian
g) Boot -are NOOBS (modul boot)
Dacă utilizatorul nu apasă tasta ”Shift” și
(folosind informațiile stocate pe partiția
”SETTING”) NOOBS detectează că un singur
sistem a fost instalat, acesta va porni automat în
acel sistem. Acest lucru este realizat prin citirea
partiției ”SETTINGS” pentru a determina care
este partiția pe care este instala t OS -ul, iar apoi
firmware -ul este instruit să repornească folosind
partiția de boot a acelui OS. La repornire,
firmware -ul încarcă start.elf de pe partiția
specificată (de obicei /dev/mmcblk0p5 dacă doar
un OS este instalat) și continuă procesul de boot
precum a fost descris mai sus pentru boot -area
standalone. Dacă în schimb mai multe sisteme de
operare sunt instalate, NOOBS afișează un meniu
ce permite utilizatorului să aleagă sistemul de
operare în care dorește să boot -eze, iar procesul continuă precum a fost descris mai sus. Fig. 3.3 – Programul NOOBS în modul boot
30
Fig. 3.5 – Meniul BerryBoot pentru încărcarea
sistemului de operare
Fig. 3.4 – Meniul BerryBoot pentru descărcarea și instalarea
sistemului de operare 3) BerryBoot
BerryBoot este un program de instalare universal de sisteme de operare care permite
utilizatorului descărcarea mai multor aplicații și sisteme de operare pe un dispozitiv de stocare
local atașat la Raspberry Pi. Sistemele de operare sunt prezentate într -un meniu la pornire și OS –
ul selectat de utilizator este lansat și rămâne activ până când sistemul este repornit. BerryBoot
oferă funcționalități similare cu NOOBS însă există câteva diferențe.
Sistemele de o perare sunt convertite în formatul SquashFS pentru a rula în BerryBoot.
Există câteva dezavantaje/limitări din această privință :
1. Actualizările (update -urile) pentru sistemele de operare nu pot fi efectuate automatic
sau folosind meniul din sistem (ele sunt descărcate, dar nu sunt instalate). Lista cu
sisteme de operare pentru descărcat oferită de BerryBoot s -ar putea să conțină
versiuni mai vechi. Pentru a folosi OS -uri noi sau ultimele revizii, trebuie obținută o
imagine a sistemului de operare dorit, iar aceasta convertită în formatul SquashFS.
2. Schimbul de fișiere între sistemele de operare poate necesita setarea manuală a
permisiunilor fișierelor.
3. Deoarece SquashFS este un sistem de fișiere comprimat , performanța și timpul de
reacție al sistemelor de ope rare instalate poate fi afectat.
31
II. Asigurarea funcționalităților ”work/office”
1) Raspbian
Este u n sistem de operare optimizat și dezvoltat special pentru Raspberry Pi , bazat pe
Debian și care pune la dispoziție utilizatorului peste 35.000 de pachete de aplicații și
software . Este oferit în mod oficial și dezvoltat de către Raspberry Pi Foundation (or ganizație
de caritate fondată în 2009 pentru a promova informatica și tehnologia calculatoarelor în
școli și responsabilă pentru dezvoltarea platformei Raspberry Pi) ca sistem de operare
principal pentru familia de computere Raspberry Pi.
Raspbian folosește PIXEL ( Pi Improved Xwindows Environment, Lightweight) ca
mediu principal de lucru pentru desktop (desktop environment – seria de programe care
alcătuiesc interfața grafică). Este format din LXDE (un desktop environment open -source
care consumă p uține resurse) și managerul de ferestre (st acking window manager) Openbox,
la care au fost aduse îmbunătățiri și o temă nouă .
Raspbia n reprezintă o alegere populară, d eoarece este ușor de folosit, instalat și întreținut ,
este în continuare susținut și dezvoltat, iar sursele online de informații sunt numeroase.
Multitudinea de aplicații software disponibile este sigură sa acopere orice nevoie sau să ofere
o alternativă la programele folosite pe un PC obișnui t. Un alt avantaj față de alte distribuții
Linux sunt programele soft ware educative oferite cu OS -ul Raspbian, precum Scratch și Fig. 3.6 – Interfață Raspbian
32
Sonic Pi care predau fundamentele codării . Există suport pentru overclocking, camera și
senzorii oficiali Raspberry Pi, precum și orice alte viitoare add -on-uri (expansiuni) hardware.
Această distribuție Linux este r apidă, consumă puține resurse, este bine optimizată și
oferă accelerare hardware pentru redarea de conținut video și audio (folosind programul
integrat OXM Player) . Browser -ul web a fost de curând actualizat la o versiune de Chrome
specială pentru Raspberry Pi (Chromium 51) , aducând cu sine creșterea performanțelor la
navigarea pe internet.
Pentru Raspberry Pi, Raspbian este în esență distribuția implicită de Linux, ofe rind
flexibilitate și avantaje din toate punctele de vedere față de celelalte alternative.
2) Arch Linux ARM
Este un port (software al cărui cod a fost schimbat și adaptat pentru a permite rularea sa pe o
arhitectură de procesor diferită, un alt sistem de operare etc.) al OS-ului Arch Linux pentru
procesoare ARM, al cărui obiectiv este să ofere utilizatorului control complet asupra propriului
sistem . Este un sistem Unix minimal , dificil pentru începători, deoarece pentru a fi configurat
sunt necesare multe cunoștințe și o experiență vastă în operarea pe Linux.
Arch Linux ARM oferă cea mai bună performanță și viteză , deoarece totul este construit și
configurat de către utilizator (de la interfața grafică, până la suita de software folosit și programe
utilitare), astfel eliminându -se servicii ale sistemului ce nu sunt folosite și bloatware -ul
(programe care consumă re surse, dar ale căror funcționalități utilizatorul sistemului nu le dorește
sau nu are nevoie de ele).
Fig. 3.7 – Interfață ArchLinux ARM
33
Arch Linux ARM suportă camera, senzorii și celelalte add -on-uri hardware oferite pentru
Raspberry Pi, precum și folosirea pinilor GPIO, însă accesul și folosirea lor se realizează mai
greu decât în Raspbian, unde sunt asigurate în mod direct de către software -ul utilitar raspi –
config. Pot de asemenea sa apară probleme de compatibilitate, lipsa unor programe driver, dar și
erori care au la bază lipsa de experiență a utilizatorului.
3) Pidora
Este o distribuție Linux dezvoltată de către p roiectul Fedora, susținută de către comunitatea
utilizatorilor de Linux și sponsorizată de firma americană Red Hat. Fedora are ca obiectiv
principal includerea în sistemul de operare și a suitei de software distribuit cele mai noi
tehnologii și programe open -source.
Pidora este un port pentru arhitectura ARM specifică platformei Raspberry Pi, al sistemului
de operare Fedora. Pidora oferă avantajele distribuției Fedora, precum un pachet preinstalat de
programe mai noi, dar și îmbunătățiri ce îi permit sa ruleze la viteze acceptabile pe Raspberry Pi.
Spre deosebire de Raspbian și Arch Linux ARM, programele mai noi distribuite îm preună cu
Pidora, precum și mediul de lucru al desktop -ului bazat pe XFCE consumă mai multe resurse,
afectând în mod negativ viteza sistemului. Lipsa suportului pentru accesoriile hardware
disponibile p entru Raspberry Pi, probleme și erori dacă NOOBS este folosit, precum și o librărie
redusă de software, fac din acest sistem o alegere neatractivă în comparație cu Raspbian.
Fig. 3.8 – Interfață Pidora
34
4) Windows 10 IoT Core
Windows 10 Internet of Things Core este o versiune specială de Windows dezvoltată pentru
Raspberry Pi. Sistemul nu este o versiune întreagă a Windows -ului, în schimb este menit să
funcționeze ca o platforma de dezvoltare pentru programatori, pentru a realiza prototipuri de
dispozitive conectate prin internet și care comunică între ele , folosind Raspberry Pi și Windows
10.
Windwos 10 IoT este compatibil doar cu Windows 10. La pornire, este afișat ecranul din
imaginea de mai jos, iar pentru a putea folosi acest sistem este necesar un cal culator care să aibă
instalate Windows 10 și programul Visual Studio. Un utilizator poate să programeze și să
controleze Raspberry Pi -ul folosind Visual Studio și să declanșeze anumite funcționalități, să
controleze motorașe sau butoane atașate, să control eze led -uri conectate la Raspberry Pi, precum
și multe altele.
Fig. 3. 9 – Interfață Windows 10 IoT Core
35
5) Android
Android este un sistem de operare pentru dispozitive mobile, dezvoltat de Google și bazat pe
kernel -ul Linux. Implem entarea sa pe Raspberry Pi se numește Razdroid și este un proiect în
derulare, ce nu are nicio afiliație cu firma Raspberry Pi Foundation sau distribuitorii săi și la care
lucrează o comunitate de entuziaști voluntari.
În momentul de față acest proiect este de parte de a fi finalizat, iar versiunea actuală este
înceată, conține erori și nu dispune de accelerare hardware.
6) Debian
Debian este un sistem de operare de tip Unix compus în mod complet din software open –
source și reprezintă o distribuție Linux populară și stabilă. În momentul actual nu există o
versiune stabilă pentru Raspberry Pi, ci doar o imagine preview (de testare/previzualizare) .
7) Ubuntu MATE
Ubuntu MATE este un sistem de operare ușor de folosit și config urat, stabil, bazat pe Linux.
Ubuntu Mate dispune de o versiune optimizată special pentru Raspberry Pi care oferă suport
pentru majoritatea funcționalităților, precum și accelerare hardware pentru redarea conținutului
video și audio, însă nu este la fel de rapid ca Raspbian sau Arch Linux ARM. Acest lucru poate
fi observat din specificațiile recomandate: 2GB de RAM în timp ce Raspberry Pi 3 dispune doar
de un 1GB.
III. Asigurarea funcționalităților multimedia
1) Managerul multimedia – XBMP, XBMC, Kodi
Pentru a asigura redarea conținutului multimedia se va utiliza un sistem de operare care va
consuma cât mai puține resurse, care va rula un program pentru management și redare de fișiere
audio și video.
XBMP ( Xbox Media Player) era un media player (program de redar e a conținutului media)
open -source ce permitea utilizatorilor care dețineau o consolă Xbox modificată să vizioneze
imagini, dar și să redea conținut video și audio de pe hard disk -ul sau DVD -ROM -ul consolei, de
pe LAN (folosind protocolul SMB) sau de pe Internet. În 2004, după multe contribuții și
36
îmbunătățiri aduse de către comunitate, acesta s -a dezvoltat într -un manager de librării
multimedia denumit XBMC ( Xbox Media Center). Acesta permitea folosirea de cod Python
pentru a genera elemen te ale interfeței grafice și rularea de script -uri scrise de comunitate,
aducea îmbunătățiri și noi funcționalități player -elor multimedia, suport pentru funcționalități
iTunes, oferea suport pentru un număr mai mare de formate video și audio, precum și mu lte
altele. Utilitatea și versatilitatea acestui program au dus la port -area lui pe mai multe sisteme și
schimbarea numelui în Kodi .
Kodi este un media center (manager și player de fișiere multimedia) open -source , câștigător a
numeroase premii, capabil să redea conținut video, audio, imagini, emisiuni radio de pe hard
drive -uri, disk -uri optice, prin LAN (folosind diferite protocoale precum SMB, FTP, UPnP etc.)
și internet. Din 2003 de la crearea sa (inițial XBMP) până în ziua de azi peste 500 de developări
au contribuit la el, a fost tradus în peste 72 de limbi și este disponibil pe platformele Android,
Linux, Mac OS X, iOS și Windows.
Kodi suportă aproape toate formatele populare de fișiere audio și video existente și a fost
proiectat pentru network playback (redarea conținutului prin rețea ), fiind capabil să transmită
stream -ul multimedia (transmiterea în direct și redarea conținutului de tip multimedia sub formă
comprimată prin internet) de oriunde din casă sau direct de pe internet folosind oricare dintre
protoco alele disponibile . De asemenea, acesta poate să redea conținutul direct de pe disk -uri
optice sau imaginile lor, precum și din toate formatele populare de arhive.
Kodi scanează toate fișierele media , le organizează într -o listă de redare și creează o librărie
personalizată, adăugând descrieri, imagini și metadata (date care descriu sa u oferă detalii despre
un fișier) . De asemenea pot fi instalate add -on-uri (pachete software care aduc funcționalități noi
programului de bază), dezvoltate de membrii oficiali ai proiectului Kodi sau de comunitate, ce
oferă acces la conținut online (de exemplu pentru YouTube, Hulu, stream -uri live NASA ), ce
Fig. 3.10 – Interfață Kodi
37
descarcă automat subtitrări, ce adaugă teme noi sau modifică interfața grafică, precum și multe
alte funcții.
Kodi a fost proiectat încă de la început nu numai să folosească puține resurse, dar acestea să
fie folosite în mod eficient și folosind plac a video a dispozitivului, acesta poate beneficia de
accelerare hardware și poate reda aproape orice fișier video, chiar dacă este instalat pe un sistem
cu performanțe reduse.
2) OSMC
OSMC (Open Source Media Center) este o distribuție Linux minimală bazată pe Debian ,
disponibilă pentru platformele Raspberry Pi, Apple TV și Vero. OSMC folosește Kodi pentru
front -end (sistemul este construit special pentru a rula programul Kodi, a cărei interfețe grafice o
folosește, iar aceasta oferă acces la anumite f uncționalități ale sistemului) , se instalează ușor și se
actualizează automat , are o comunitate numeroasă , compatibilitate cu toate add -on-urile Kodi și
oferă posibilitatea de a descărca și instala pachete software pentru Debian .
OSMC modifică tema de baza Kodi, punând la dispoziție o interfață simplă și neaglomerată,
iar pentru că în spatele acestui program rulează o versiune completă de Debian, un utilizato r
avansat are posibilitatea să extindă funcționalitățile oferit e sau să ad ăuge altele noi.
Fig. 3.11 – Interfață OSMC
38
3) XBian
Este o distribuție media center rapidă, de dimensiuni mici și care consumă puține resurse,
bazată pe un Debian minimal, dar capabil de aceeași flexibilitate oferită de un sistem întreg.
Acesta poate fi instalat pe Raspberry Pi, CuBox -i și Hummingboard, iar principalul obiectiv al
proiectului XBian este să găsească un echilibru între un consum redus de resurse pent ru a oferi
un sistem capabil sa ruleze cu viteză Kodi și integrarea celor mai noi tehnologii, funcționalități ,
dar și posibilitatea de a configura sistemul după preferințe.
XBian vine preinstalat cu un set de pachete software adiționale ce oferă anumite
funcționalități suplimentare precum: descărcarea filmelor și a muzicii deținute pe platforme
online sub forma de arhive sau descărcarea de fișiere folosind protocolul BitTorrent .
XBian este actualizat în mod automat și frecvent, acest lucru fiind bazat pe conceptul de
continous delivery (livrarea continuă de pachete pentru actualizarea software -ului, în contrast
cu implementarea unei versiuni noi a aceluiași software ce trebuie reinstal ată peste cel vechi) și
încorporează un meniu pentru configurarea facilă a sistemului direct în programul Kodi.
Un alt avantaj este folosirea sistemului de fișiere BTRFS, care permite crearea de
snapshots (stări fixe și stabile ale sistemului de operare, ce au aceeași funcționalitate ca punctele
de restaurare din Windows, însă folosesc mult mai puțin spațiu, acestea înregistrând doar
modificările sistemului de la ultimul snapshot făcut). O altă caracteristică a sistemului BTRFS
este abilitatea sa de a dete cta corupția la nivel de fișier. Acest lucru este realizat prin stocarea
unui checksum (sumă de c ontrol) pentru fiecare fișier, iar în cazul în care este detectat că un
checksum nu se potrivește cu cel al propriului fișier, sistemul de fișiere va trece în mod forțat în
starea read -only (nu este permisă decât citirea datelor), pentru a preveni coruperi de date
ulterioare.
Fig. 3.12 – Interfață XBian
39
4) LibreELEC
LibreELEC ( Libre Embedded Linux Entertainment Center) este o distribuție open -source de
tip Unix, bazată pe sistemul de operare OpenELEC și concepută după ce majoritatea
dezvoltatorilor activi ai echipei OpenELEC au hotărât în 2016 să își înființeze propriul proiect în
urma ”diferențelor creative” și a direcției în care OpenELEC se îndrepta. LibreELEC este un
sistem de operare care consumă foarte puține resurse, este stabil și frecvent actualizat și suportă
ultimele versiuni ale programului Kodi.
LibreELEC poa te fi instalat pe calculatoare pe baza arhitecturii Intel care utilizează soluții de
redare a graficii Nvidia, AMD sau Intel, dar și pe majoritatea HTPC -urilor (un Home Theater
PC este un calculator ce combină funcționalitățile unui PC cu software pentru redarea de
conținut multimedia) precum Raspberry Pi 0/1/2/3 , Wetek, Odroid C2, iMX6 sau alte
calculatoare single -board (un cal culator complet construit și inclus pe o singură placă de circuit
imprimat) sau dispozitive media player. Este de asemenea optimizat pentru a fi instalat pe drive –
uri pe baza de memorie flash, precum carduri SD, stick -uri USB sau SSD -uri.
LibreELEC oferă o suită completă de software media și add -on-uri pentru configurarea sa,
managementul resurselor hardware și actualizarea automată OTA ( over-the-air este un mod
wireless/fără fir de distribuire a actualizărilor de software).
LibreELEC (precum și OSMC și XBian) este bazat pe conceptul JeOS ( Just Enough
Operating System), fiind un sistem de operare personalizat și construit special să conțină doar
software -ul necesar pentru a rula Kodi ca front -end. LibreEL EC reprezintă cea mai minimal ă
soluție comparativ cu OSMC și XBian și sacrifică versatilitatea și flexibilitatea unui sistem de
operare complet pentru a oferi cea mai bună viteză și stabilitate.
Fig. 3.13 – Interfață LibreELEC
40
IV. Asigurarea funcționalităților ludice
1) RetroPie
RetroPie transformă Raspberry Pi -ul într-o consolă de jocuri retro și este construit pe baza
mai multor software -uri și proiecte precum Raspbian, EmulationStation, RetroArch și multe
altele . RetroPie poate fi instalat direct pe Raspbian sau separat, iar utilizatorii avansați pot accesa
o mare varietate de instrumente de configurare pentru a personaliza sistemul exact cum doresc.
Pentru redarea jocurilor, RetroPie folosește emulatoare. Un emulator este un software care îi
permite unui calculator să se comporte precum un altul, iar în cazul RetroPie, precum o consolă
de jocuri video (de exemplu Super Nintendo). Fișierele ROM ( read-only memory) sunt copii ale
datelor de pe un chip cu memorie read -only și reprezintă o versiune digitală a casetelor cu jocuri.
Încărcarea unui fișier ROM într -un emulator este echivalentul cu inserarea unei casete într -o
consolă de jocuri video.
RetroPie oferă suport pentru emularea a peste 50 de console, dar și instalarea unor programe
pentru emularea de motoare grafice, astfel fiind capabilă redarea unor jocuri celebre precum
Warcraft 2 și Starcraft (folosind Stratagus), Baldur's Gate și Planescape: Torment (folosind
GemRB) sau Commander Kee n (folosind Commander Genius) . Sunt de asemenea disponibile și
jocuri open -source precum Micropolis, freeware precum Cave Story sau Giana's Return și
shareware precum Doom, Quake III Arena sau Duke Nukem 3D. Jocurile pot fi transferate pe
sistem folosind un stick USB, prin SSH folosind protocolul SFTP sau folosind software -ul
Samba.
Fig. 3.14 – Interfață RetroPie
41
RetroPie folosește în mod oficial EmulationStation ca front -end grafic. Acesta nu este un
emulator, ci mai degrabă o interfață grafică ce simplifică încărcarea emulatoarelor și jocurilor.
De asemenea, EmulationStation include multe teme și opțiuni pentru personalizare, suport pentru
tastatură/ gamepad (dispozitiv hardware pentru introducerea comenzilor în jocuri) și un tip de
software denumit scraper, care descarcă automat metadata pentru fișierele ROM, astfel adăugând
descrieri, imagini și alte informații jocurilor din librăria virtual ă a utilizatorului.
2) Recalbox
Recalbox este o platformă de emulare a jocurilor retro pentru Raspberry Pi, bazată pe
sistemul de operare Linux , precum și multe alte proiecte open -source ca Libretro, Kodi sau
EmulationStation. Aceasta dispune de suport pentru emularea a peste 40 de console și sisteme,
suportă pană la 4 jucători activi și oferă încă de la instalare configurații și programe driver pentru
cele mai populare tipuri de gamepad . Pentru front -end este folosit EmulationStation, iar
funcționalitățile disponibile sunt similare cu cele oferite de RetroPie.
Recalbox sacrifică o parte din flexibilitate și puterea de personalizare, caracteristici ale
proiectului RetroPie și oferă în schimb un sistem de operare și o serie de emulatoare stabile,
optimizate și configurate special pentru Raspberry Pi, astfel obținând din s tart, fără a fi nevoie de
intervenția utilizatorului, performanțe mai bune. Recalbox este de asemenea ușor de configurat,
permite actualizarea ușoară a sistemului și emulatoarelor direct din front -end, conține un
program scraper performant, iar transferul de jocuri se face conectând sistemul la aceeași rețea
cu a calculatorul ui pe care se află fișierele, folosind un cablu pentru internet sau modulul Wi -Fi
al Raspberry Pi -ului.
Fig. 3.15 – Interfață Recalbox
42
Recalbox dispune de un mod simplu de a accesa și juca jocurile de pe PC folosin d programul
Moonlight, o versiune open -source a tehnologiei NVidia Gamestream. Prin conectarea Raspberry
Pi-ului la aceeași rețea cu calculatorul și rularea scriptului Moonlight.sh este realizată și
configurată în mod automat o conexiune între cele două, astfel un calculator dotat cu o placă
video NVidia care suportă tehnologia NVidia Gamestream poate transmite semnalul video (jocul
rulează pe calculator, doar imaginea este transmisă) și poate primi comenzile intr oduse de pe
gamepad -ul atașat sistemului Recalbox. În mod alternativ, conexiunea poate fi realizată și
manual prin introducere ip -ului calculatorului ce rulează jocurile în fișierele Moonlight.sh și
moonlight.conf și poate permite accesul calculatorului de la distanță, prin internet, indiferent
dacă Raspberry Pi -ul cu sistemul Recalbox se află în aceeași rețea sau nu.
3) Lakka
Lakka este o distribuție Linux ce consumă puține resurse , bazată pe LibreELEC, ce are ca
nucleu API -ul Libretro, iar ca front -end este folosit RetroArch. Este inspirată de către proiectul
RetroPie, iar conceptul de bază este combinarea unui sistem dedicat Linux cu un software front –
end pentru emularea jocurilor, toate acestea rulând pe o platformă hardware cu resurse și putere
de calcul limitate.
Interfața grafică este codată direct în RetroArch, asigurând avantaje precum o configurație
consistentă și unică pentru toate emulatoarele, o funcționalitate de configurare automată a
gamepad -urilor și o integrare mai bună cu front -end-ul. Având la bază sistemul de operare
LibreELEC, Lakka se bucură de o stabilitate mărită și de o ușurință în actualizarea emulatoarelor
și a sistemului.
Fig. 3.16 – Interfață Lakka
43
Concluzii
În urma explorării și testării variantelor disponibile am luat deci zia să utilizez în
implementarea proiectului următoarele:
1. NOOBS – Reprezintă cel mai ușor mod de instalare a sistemelor de operare și de
management a spațiului de stocare de pe cardul SD, realizând automat și în mod
optim partiționarea. Programul oferă suport pentru instalarea de sisteme de operare
multiple și acces ușor la fișierele de configurații, fără dezavantajele și scăderea de
performanțe ale alternativelor. De asemenea, acesta este dezvoltat de către firma
oficială care produce Raspberry Pi -ul și în continuare susținut și actualizat.
2. Raspbian Lite – Este sistemul de operare dezvoltat și optimizat pentru dispozitivele
Raspberry Pi de către firma oficială a sa, Raspberry Pi Foundation. Pri n folosirea
variantei Raspbian L ite, o versiune minima lă fără interfață grafică și bloatware , care
conține doar software -ul și driver -ele necesare sistemului, pot fi combinate viteza
unui sistem Arch Linux ARM cu stabilitatea, versatilitatea și nivelul înalt de
compatibilitate ale OS -ului Raspbian. Mediul de lucru va fi construit pe baza
programelor pentru interfață grafică ce consumă cele mai puține resurse, iar software –
ul utilitar va fi constituit din programe open -source, optimizate să folosească cât mai
puține resurse.
3. LibreELEC și Kodi – Pentru implementarea soluției de management multimedia
Kodi, LibreELEC reprezintă s istemul cel mai apropiat paradigmei JeOS și oferă cele
mai înalte grade de sta bilitate, viteză a sistemului și fluiditate a interfeței grafice, fără
sa sacrifice în schimb niciuna dintre funcționalitățile de care dispune Kodi. Un alt
avantaj este frecvența ridicată a actualizărilor și faptul că LibreELEC suportă cea mai
recentă versiune a programului Kodi.
4. Recalbox – Acesta oferă același număr ridicat de funcționalități, precum și suport
pentru emularea celor mai populare console de jocuri video , dar în contrast cu
alternativele, Recalbox este un sistem ușor de accesat și configurat, fiind din prima
optimizat pentru a oferi performanțele maxime de care este capabil Raspberry Pi -ul.
Acesta dispune de o temă atractivă, suportă cele mai populare gamepad -uri, conține
cel mai eficient și precis software de tip scraper.
44
Capitolul 4 – Configurația sistemului
În implementarea acestui proiect a fost folosit un Raspberry Pi 3 Model B împreună cu un
card micro SD de 32GB cu clasa de viteză 10, pentru a asigura memoria, spațiul de stocare și o
viteză mai bună de încărcare a sistemului . Pentru instalarea programului NOOBS și a celor 3
sisteme poate fi folosit un card micro SD de minimum 8GB, însă în acest caz utilizatorul va avea
la dispoziție un spațiu limitat pentru stocarea de fișiere și date și pentru instalarea de alte p rograme
software.
1) NOOBS Lite
A fost descărcată arhiva de format .zip a programului NOOBS Lite (este identic în
funcționalitate cu versiunea de bază NOOBS, însă ocupă mai puțin spațiu pe cardul micro SD ,
deoarece nu conține sisteme de operare descărcate) de pe website -ul oficial al firmei Raspberry Pi
Foundation ( https://www.raspberrypi.org/downloads/noobs/ ). Cardul micro SD a fost apoi
formatat în sistemul de fișiere FAT, iar conținuturile arhivei au fost extrase și copiate pe acesta.
La prima pornire , partiția FAT care conține NOOBS Lite a fost în mod automat redimensionată la
valorile minime și denumită ”RECOVERY”, apoi o listă cu sistemele de operare disponibile pentru
descărcat și instalat a fost afișată.
Următoarele 3 OS -uri au fost alese: Raspbian Lite, LibreElec ( acesta conține de asemenea
programul Kodi) și RecalboxOS. Lista de descărcare conține în mod automat ultimele versiuni ale
sistemelor de operare compatibile cu tipul/generația calculatorului Raspberry Pi pe care urmează
să fie instalate, în cazul acesta cu Raspberry Pi 3. Sistemele au fost descărcate folosind modul ul
wireless al Raspberry Pi 3 conecta t la rețeaua locală Wi -Fi, apoi au fost instalate. A cest lucru
împreună cu partiționarea optimă au fost asigurate de către software -ul NOOBS Li te. După
instalare, prin apăsarea butonului etichetat ”Edit config (e)”, au fost accesate și aduse următoarele
modificări fișierelor de configurare config.txt ale sistemelor:
a) Configurări generale pentru cele 3 sisteme:
disable_overscan=1 – Dezactivează modul overscan. Acest mod este folosit pentru a
micșora imaginea în cazul în care aspect -ratio-ul (rata de aspect) este incorect, iar marginile
nu sunt afișate. Este dezactivat, deoarece scade calitatea imaginii.
hdmi_group=1 – Setează tipu l HDMI (CEA este folosit pentru televizoare, DMT este
folosit pentru monitoare ). În cazul nostru acesta este setat la modul CEA, deoarece pe post
de ecran este utilizat un televizor .
hdmi_mode=16 – Setează rezoluția în funcție de tipul HDMI, în acest caz 1 080p
(1920×1080) și rata de reîmprospătare (refresh rate) la 60Hz .
hdmi_drive=2 – Permite selecția între modul HDMI (cu sunet) și DVI (fără sunet). Î n acest
caz a fost utilizat modul HDMI .
45
hdmi_force_hotplug=1 – Este forțat modul de transmisie l a HDMI (pen tru a evita detecția
automată greșită) .
force_turbo=0 – Permite ajustarea dinamică a frecvenței și a voltajului procesorului, a
plăcii grafice și a SDRAM -ului.
boot_delay=1 – Reprezintă timpul de așteptare în secunde înainte de încărcarea kernel –
ului (impl icit este 1) .
disable_splash=1 – Permite evitarea testului de culoare pentru placa grafică (procesul de
boot este mai rapid) .
b) Parametrii specifici sistemelor Raspbian Lite și LibreELEC:
gpu_mem=256 – Setează memoria în MB folosită de către placa grafică (memoria RAM
este împărțită pentru folosire între procesor și placa grafică) . Pentru redarea conținutului
video fără probleme și întreruperi, aceasta a fost setată la 256MB.
c) Parametrii specifici sistemelor LibreELEC și RecalboxOS :
gpu_mem_256=64 (128 pentru RecalboxOS) – Setează memoria în MB folosită de către
placa grafică, doar pentru platformele Raspberry Pi cu o memorie RAM de 256MB.
Această setare suprascrie valoarea folosită în parametrul gpu_mem .
gpu_mem_512=128 (256 pentru R ecalboxOS) – Setează memoria în MB folosită de
către placa grafică, doar pentru platformele Raspberry Pi cu o memorie RAM de 512MB.
Această setare suprascrie valoarea folosită în parametrul gpu_mem .
gpu_mem_1024=256 (512 pentru RecalboxOS) – Setează memoria în MB folosită de
către placa grafică, doar pentru platformele Raspberry Pi cu o memorie RAM de 1024MB.
Această setare suprascrie valoarea folosită în parametrul gpu_mem .
d) Parametrii specifici sistemului Raspbian Lite:
dtparam=audio=on – Activează sunetul .
dtparam=i2c_arm=off – Dezactivează pinii GPIO ( aceștia nu vor fi folosiți) .
dtparam=spi=off – Dezactivează interfața serială SPI ( aceasta nu va fi folosită) .
start_x=0 – Dezactivează modulul pentru camera foto/video (acesta nu va fi folo sit).
enable_uart=0 – Dezactivează modul UART (unul dintre efectele acestuia este de a seta
frecvența procesorului la valoarea minimă, pentru a asigura stabilitate) .
e) Parametrii specifici sistemului LibreELEC
hdmi_ignore_cec_init=1 – Evită ieșirea din modul stand -by (repaus) și schimbarea
canalelor TV la pornire ( doar pentru dispozitivele care au funcționalitate a CEC).
46
f) Parametrii specifici sistemului RecalboxOS
config_hdmi_boost=0 – Amplifică semnalul video pentru a evita interferențe le sau
pierderea de semnal (pot fi cauzate de cabluri HDMI lungi). A fost setat la 0, deoarece
cablul utilizat este de lungime mică.
avoid_safe_mode=1 – Permite evitarea pornirii în modul safe_mode (modul de siguranță).
kernel=zimage – Setează kernel -ul folosit de către OS.
Overclocking – reprezintă configurarea componentelor calculatorului prin creșterea frecvenței
de operare și a tensiunii de alimentare , pentru a funcționa la viteze mai mari decât a celor din
fabricație. Deși producătorul nu oferă sup ort pentru overclocking -ul platformei Raspberry Pi 3,
există posibilitatea acestui lucru, prin introducerea manuală a parametrilor de operare în fișierul
config.txt . Pentru a evita supraîncălzirea componentelor și instabilitatea sistemelor, s -a ales să nu
se implementeze acest lucru.
2) Raspbian Lite
Raspbian Lite este un sistem de tip ”core ” (nucleu), deoarece acesta nu include decât
pachetele de software esențiale care îi permit hardware -ului să lucreze. Prin construirea interfeței
grafice și descărcarea doar a programelor necesare sunt evitate bloatware -ul și irosirea resurselor.
a) Construi rea interfeței grafice
Raspbian Lite folosește puțină memorie. După instalare, putem observa cum din 1GB de
RAM, o parte este rezervată plăcii grafice, iar din restul de 925MB rămași sistemului, doar 30MB
sunt folosiți.
Fig. 4.1 – Cantitatea de memorie RAM folosită de Raspbian Lite (f ără interfață grafică)
Pentru a alege interfața grafică ce consumă cele mai puține resurse, am realizat o
compara ție între cantitatea de memorie RAM folosită de către sistem ul Raspbian Lite împreună cu
unele dintre cele mai populare medii de lucru (desktop environments): PIXEL, LXDE, XFCE și
MATE.
47
Fig. 4.2 – Cantitatea de memorie RAM folosit ă de sistemul complet Raspbian în comparație
cu Raspbian Lite. Ambele folosesc interfa ța PIXEL.
Fig. 4.3 – Memorie RAM folosit ă de Raspbian Lite împreună cu interfețele LXDE, MATE, XFCE
După cum putem observa din imagini, sistemul complet Raspbian împreună cu interfața
PIXEL folosește 90MB, iar Raspbian Lite utilizează cu PIXEL 76MB, cu LXDE 97MB, cu MATE
101MB și cu XFCE 107MB. Deoarece consumă cea mai mică cantita te de memorie RAM, a fost
ales desktop environment -ul PIXEL.
48
Înainte de a construi interfața grafică au fost rulate următoarele comenzi în terminal:
sudo apt -get update – Descarcă și actualizează lista de pachete ( packages) din
arhive (repositories) cu informații privind noile versiuni ale pachetelor și ale
dependențelor lor .
sudo apt -get upgrade – Sunt descărcate noile versiuni ale pachete lor instalate dacă
utilitarul APT ( Advanced Package Tool) a aflat de aceste a în urma rulării comenzii
apt-get update .
sudo apt -get dist -upgrade – Are același rol pe care îl are comanda apt-get
upgrade , plus gestionează în mod inteligent dependențele, astfel încât poate
elimina anumite pachete ce nu mai sunt folosite sau poate adăuga altele noi.
sudo apt -get clean – Șterge pachetele descărcate în arhiva locală.
A fost accesat apoi utilitarul pentru configurări raspi -config (prin comanda sudo raspi -config )
și modificate opțiunile de localizare (Localisation Options) privind limb a și regiunea (en_US.UTF –
8 UTF -8), fusul orar (Europe – Bucharest), configurarea tastaturii ( Generic 105 -key (Intl) PC) și
țara în care este folosit modulul Wi -Fi (RO Romania). A fost apoi restartat sistemul folosind
comanda sudo reboot .
Pentru a construi interfața grafică este nevoie de următoarele:
1. Display Server (server pentru afișaj) – Este un program a cărui sarcină principală este de
a coordona input -ul (intrarea datelor) și output -ul (ieșirea datelor) clienților (hardware sau
software care accesează serviciile făcute disponibile de către server) de la și către s istemul
de operare, hardware sau alți clienți. Se va folosi popularul Xorg (X.Org Server – o
implementare open -source a display server -ului X Window System).
2. Desktop Environment (mediu de lucru pentru desktop) – Reprezintă interfața grafică a
sistemului de operare. Se va utiliza PIXEL (Pi Improved Xwindows Environment,
Lightweight ).
3. Window Manager (manager de ferestre) – Este un softwar e de sistem care controlează
poziționarea și aspectul ferestrelor dintr -o interfață grafică. Se va utiliza Openbox , un
manager pentru ferestre ce consumă puține resurse.
4. Login Manager (manager pentru autentificare) – Este interfața grafică afi șată după
încărcarea sistemului în locul interpretorului de comenzi implicit (default shell). Se va
folosi LightDM , un disp lay manager ce oferă performanțe ridicate și un consum redus de
resurse.
Interfața grafică va fi construită folosind următoarele comenzi:
sudo apt-get install –no-install -recommends xserver -xorg – Instalează display server –
ul Xorg .
49
sudo apt -get install –no-install -recommends xinit – Instalează programul xinit al cărui
scop este inițializarea automată a display server -ului la pornirea sistemulu i.
sudo apt -get install raspberrypi -ui-mods – Instalează desktop environment -ul PIXEL ,
împreună cu window manager -ul Openbox și login manager -ul LightDM .
b) Setări de sistem
A fost accesat utilitarul raspi -config pentru a configura următoarele:
Schimbarea parolei și dezactivarea accesului prin SSH ( Secure Shell), VNC
(Virtual Network Computing – permite accesul și controlul de la distanță a
calculatorului) și controlul de la distanță a pinilor GPIO pentru întărirea securității.
Dezactivarea interfețelor ce nu sunt folosite (modulul pentru camera foto/video,
SPI, I2C, Serial și 1 -Wire).
În meniul Boot Options a fost selectata pornirea sistemului direct în mediul de lucru
și dezactivată așteptarea conectării la rețea la pornirea si stemului.
Pentru a evita testul de culoare a plăcii video la pornirea Raspberry Pi -ului, a fost copiat fișierul
config.txt (ce include parametrul disable_splash =1) în partiția programului NOOBS. Au fost
folosite următoarele comenzi:
cd /boot
sudo mkdir /m edia/recovery
sudo mount /dev/mmcblk0p1 /media/recovery/
sudo cp config.txt /media/recovery/
Prin investigarea log -urilor folosind comenzile dmesg și sudo journalctl au fost detectate și
rezolvate o serie de erori:
systemd -modules -load[88]: Failed to find module 'lp'
systemd -modules -load[88]: Failed to find module 'ppdev'
systemd -modules -load[88]: Failed to find module 'parport_pc'
systemd[1] : systemd -modules -load.service: main process exited, code=exited,
status=1/FAILURE
systemd[1]: Failed to start Load Kernel Modules.
systemd[1]: Unit systemd -modules -load.service entered failed state.
Aceste erori sunt cauzate de către programul CUPS (software open -source ce folosește
protocolul IPP – Internet Printing Protocol – pentru a oferi suport pentru tipărirea de fișiere
folosind imprimante conectate direct sau prin rețeaua locală) ce încearcă să încarce driver -ele
asociate unor porturi paralele specifice unui PC, pe care Raspberry Pi nu le are. Pentru a rezolva
50
acest l ucru a fost accesat fișierul cu locația /etc/modules -load.d/cups -filter.conf și au fost
comentate modulele ” lp”, ”ppdev ” și ” parport_pc ”.
raspberrypi bluetoothd[370]: Sap driver initialization failed.
raspberrypi bluetoothd[370]: sap -server: Operatio n not permitted (1)
Aceste erori sunt cauzate de către daemon -ul (program ce rulează procese în fundal) pentru
Bluetooth care încearcă să încarce driver -ul pentru profilul SAP ( SIM Access Profile – permite
dispozitivelor cu transmițătoare GSM să se conecte ze la un telefon cu funcție Bluetooth și să
efectueze apeluri folosind cartela SIM a acestuia ). Sunt eliminate prin accesare fișierului cu locația
/etc/systemd/system/bluetooth.target.wants/bluetooth.service , și modificarea liniei
”ExecStart=/usr/lib/ bluetooth/bluetoothd ” în ” ExecStart=/usr/lib/bluetooth/bluetoothd –
noplugin=sap ”.
c) Software
Pentru a asigura funcționalitățile propuse în cadrul obiectivelor, s -a implementat software
open -source sau gratuit, care să aibă nevoie de cât mai puține dependen țe și să consume cât mai
puține resurse :
GPicView (sudo apt -get install gpicview ) – Program open -source rapid și lightweight
(proiectat optim și pentru a utiliza puține resurse) , folosit pentru vizionarea de imagini.
Xarchiver (sudo apt -get install xarchiver ) – Front-end open -source pentru diversele
utilitare de arhivare lansate din linia de comandă a sistemului Linux.
MuPDF (sudo apt -get install mupdf ) – Program lightweight și open -source pentru
vizionarea fișierelor PDF, XPS și E-book.
galculator (sudo apt -get install galculator ) – Aplicație open -source pentru realizarea de
calcule matematice.
Leafpad (sudo apt -get install leafpad ) – Editor de text open -source și lightweight ce pune
accent pe simplitate.
Vim (sudo apt -get install vim ) – Editor de text simplu și open -source pentru interfața liniei
de comandă.
VNC Viewer (sudo apt -get install realvnc -vnc-viewer) – Aplicație client gratuită pentru
uz non -comercial, ce permite controlul calculatorului de la distanță prin intermediul
protocolu lui VNC.
LibreOffice (sudo apt -get install libreoffice ) – Suită de programe open -source pentru
procesarea de text, crearea și editarea de foi de calcul, diagrame și desene, lucrul cu baze
de date și compunerea de formule matematice.
Synaptic (sudo apt -get install synaptic ) – Front -end open -source pentru managerul de
pachete APT.
rpi-update (sudo apt -get install rpi -update ) – Utilitar open -source pentru actualizarea
kernel -ului și firmware -ului.
51
bluez (sudo apt -get install bluetooth bluez ) – Set de utilitare, diverse programe daemon și
plugin -uri (componente software care adaugă diverse funcționalități unui program) pentru
Bluetooth.
Chromium (sudo apt -get install chromium -browser ) – Web Browser (navigator web)
open -source ce oferă suport pentru o multitudine de plugin -uri. Dispune de o variantă
special optimizată pentru Raspberry Pi (Chromium 51) și este instalat împreună cu 2
extensii: h264ify (plugin pentru conversia stream -ului video de pe website -ul YouTube de
la formatul VP8/VP9 la fo rmatul H.264, acesta fiind accelerat hardware și permițând o
redare mai bună, fără întreruperi) și uBlock Origin (plugin lightweight pentru blocarea și
filtrarea reclamelor afișate pe website -uri).
OMXP layer (sudo apt -get install omxplayer ) – Program open -source ce dispune de
accelerare hardware pentru redarea fișierelor audio și video. Este accesat folosind linia de
comandă și nu dispune de interfață grafică.
Geany (sudo apt -get install geany ) – Este un IDE (Integrated Development Environment
– mediu integ rat de dezvoltare) lightweight, rapid și de dimensiuni mici . Pentru a permite
compilarea codului scris în limbajul Java și rularea de aplicații Java, au fost instalate Open
Java Development Kit ( OpenJDK – sudo apt -get install openjdk -8-jdk) și Open Java
Runtime Environment ( OpenJRE – sudo apt -get install openjdk -8-jre).
Geany oferă suport pentru următoarele tipuri de fișiere:
Abaqus COBOL FreeBasic Make Ruby
Abc Conf Genie Markdown Rust
ActionScript CSS GLSL Matlab Scala
Ada CUDA Go NSIS Sh
Asciidoc Cython Graphviz Objective -C SQL
ASM D Haskell Pascal Tcl
Batch Diff Haxe Perl Txt2tags
C Docbook HTML PHP Vala
C# Erlang Java Po Verilog
C++ F77 Javascript PowerShell VHDL
CAML Ferite LaTeX Python XML
Clojure Forth Lisp R YAML
CMake Fortran Lua reStructuredText
52
d) Implementare a interfeței grafice pentru OMXP layer
Pentru a dispune de o interfață grafică la redarea fișierelor audio și video, au fost folosite
mai multe proiecte, a căror d escărcare s -a realizat utilizând programul Git (sudo apt -get install git
– software open -source folosit pentru managementul codului sursă și a controlului de versiune).
Interfața grafică pentru redarea conținutului video a fost implementată folosind programele
următoare:
python -dbus (sudo apt -get install python -dbus) – Permite comunicarea între aplicații
folosind cod Python.
Python OMXPlayer wrapper – permite controlul aplicației OMXP layer folosind Python .
o descărcare: git clone https://github.com/willprice/python -omxplayer -wrapper
o instalare: python setup.py install
gomx – Front -end pentru Omxplayer, acesta oferă funcționalități precum redimensionarea
ferestrei de afișaj și butoane pentru controlul redării.
o descărcare: git clone https://github.com/vladcc/gomx
o instalare : chmod +x gomx_setup.sh && sudo ./gomx_setup.sh
În implementarea interfeței grafice pentru fișierele audio a fost utilizat programul
tboplayer , deoarece pe lângă funcționalitățile oferite de gomx , acesta dispune în plus și de o listă
de redare și management a conținutului. Instalarea p rogramului împreună cu dependențele sale a
fost realizată folosind comanda:
o cd ~ && wget https://github.com/KenT2/tboplayer/tarball/master -O – | tar xz &&
cd KenT2 -tboplayer -* && chmod +x setup.sh && ./setup.sh
3) LibreELEC și Kodi
Pentru a îmbunătății calitatea redării conținutului audio și video au fost implementate
următoarele:
a) În secțiunea ”Player settings ”, meniul ” Videos ” au fost activate următoarele opțiuni :
Allow hardware acceleration – OMXPlayer (este folosit OMXPlayer la
decodarea fișierelor video)
Sync playback to display (conținutul video și audio este sincronizat cu rata de
reîmprospătare a televizorului/monitorului)
b) În secțiunea ”System ”, meniul ” Audio ” au fost făcute modificările :
Output configuration – optimized (proprietățile de output sunt setate la începutul
redării conținutului și nu se modifică decât dacă se schimbă și sursa)
53
Resample quality – GPU accelerated (permite accelerarea hardware pentru
modelarea ratei de redare a semnalului audio, folosind placa g rafică )
c) Pentru o redare mai fluentă și fără întreruperi a conținutului video disponibil în
memoria locală sau pe internet, a fost realizată o conexiune prin SSH cu sistemul
LibreELEC utilizând programul PuTTY (software open -source și gratuit pentru
accesu l de la distanță a terminalului și pentru transferul de date folosind o rețea locală)
și modificat fișierul advancedsettings.xml . Au fost ajustați parametrii memorysize
(cantitatea de cache, în bytes, stocat ă în memoria RAM) , buffermode (prin schimbarea
acestui parametru la valoarea 1 este asigurată folosirea memoriei cache pentru fișiere
video locale și de pe internet) și readfactor (reprezintă viteza maximă de încărcare a
conținutului video online) astfel:
<advancedsettings>
<cache>
<memorysize>41943040</ memorysize>
<buffermode>1</buffermode>
<readfactor>8.0</readfactor>
</cache>
</advancedsettings>
Pentru a întări securitatea și pentru a mări viteza de sistem au fost dezactivate serviciile ce nu
sunt folosite :
d) În secțiunea ”Services ” au fost oprite următ oarele opțiuni:
Announce services to other systems (permite aplicațiilor să descopere servicii în rețeaua
locală folosind tehnologia Zeroconf)
Allow remote control via HTTP (permite controlul aplicației folosind un web server)
Share my libraries (permite stream -ul de media din librarii către un client UPnP)
Enable AirP lay support (primirea de conținut prin setul de protocoale AirPlay)
Service for weather information – None (serviciul pentru informații meteo a fost
dezactivat)
e) În secțiunea ”LibreELEC ”, meniul ” Services ” au fost dezactivate următoarele
servicii:
SSH
Avahi (Zeroconf)
Cron
Bluetooth
54
Pentru a mări viteza sistemului la pornire s-au implementat următoarele :
f) În secțiunea ”Media settings” au fost dezactivate:
Extract thumbnail and video information (extragerea de imagini și informații din
fișierele video )
Download actor thumbnails when adding to library (descă rcarea de imagini ale
actorilor la adăugarea fișierului video în librăria media )
4) Recalbox
Pentru a adăuga jocuri și pentru a modifica fișierele ce conțin opțiuni avansate de
configurare, s -a realizat o conexiune la rețeaua locală între PC și Recalbox folosind modulul Wi –
Fi.
Deoarece gamepad -ul folosit este un ”Microsoft Xbox 360 Wireless Contro ller”, pentru a
evita erori de compatibilitate a fost activat driver -ul xboxdrv . De asemenea, din motive de
securitate a fost dezactivat accesul prin SSH. Pentru acestea au fost modificați următorii parametrii
ai fișierului cu locația share \system \recalbox .conf :
o system.ssh.enabled=0
o controllers.ps3.enabled=0
o controllers.xboxdrv.enabled=1
o controllers.xboxdrv.nbcontrols=2
Folosirea programului Moonlight pentru stream -ul de jocuri video de pe PC a necesitat
instalarea pe acesta a programului NVIDIA GeForce Experience (versiunea maximă suportată
este 2.11). Pentru a asigura o conexiune stabilă și fără întreruperi a fost accesat fișierul cu locația
\share \system \configs \moonlight \moonlight.conf și au fost modificați parametrii care specifică
rezoluția și număr ul de cadre pe secundă (FPS) la care se realizează transmisia video:
o width = 1280
o height = 720
o fps = 30
55
Capitolul 5 – Internet of Things și Cloud computing
Internet of Things (IoT – Internetul Obiectelor) reprezintă conceptul unei rețele formate
din dispozitive, software și sisteme automate , identificabile în mod unic, conectate prin internet și
capabile să comunice și să interacționeze între ele și în cadrul infrastructurii de internet existente .
Aplicațiile principale ale acestei tehnologii sunt constituite de automatizarea de procese și de
colectarea de date .
Cloud computing (computerizarea în nori) constituie ansamblul distribuit prin internet de
servicii de calcul, de stocare de date și de acces la aplicații și informații. Este un model care permite
de oriunde, la cerere , utilizarea unui set de resurse hardware sau software configurabile.
Internet of Things și Cloud -ul reprezintă două concepte de tehnologii strâns legate și care
se află într -o relație complementară. În timp ce IoT generează o cantitate masivă de date, Cloud –
ul reprezintă o soluție pentru ca aceste date să ajungă la destinație, dar și un mediu de stocare și o
platformă ce permite analizare a acestora .
În explorarea acestor 2 concepte, am implementat o soluție Cloud pentru stocarea de date
folosind platforma Raspberry Pi. A fost utilizat un Raspberry Pi 3 Model B împreună cu un card
micro SD de 16GB, pe care s -au instalat programele NOOBS Lite și Raspbian Li te. După instalare,
au fost efectuate actualizar ea pachetelor și a sistemului, iar apoi folosind utilitarul raspi -config, au
fost dezactivate serviciile ce nu sunt folosite, a fost micșo rată memoria folosită de placa video la
16MB și au fost configurate setările de localizare.
OwnCloud este un serviciu online open -source și gratuit pentru stocarea și sincronizarea
de date. Următoarele comenzi au elevat nive lul de permisiuni la root, au adăugat cheia de
autentificare a aplicație i și arhiva (repository -ul) programului în lista de pachete , iar apoi a u pornit
instalarea acestuia împreună cu dependențele sale precum Apache sau OpenSSL.
o sudo -i
o wget -nv
https://download.owncloud.org/download/repositories/stable/Debian_8.0/Release.key -O
Release.key
o apt-key add – < Release.key
o sh -c "echo 'deb http://download.owncloud.org/download/repositories/stable/Debian_8.0/
/' > /etc/apt/sources.list.d/owncloud.list"
o apt-get update
o apt-get install owncloud
Dataplicity este un serviciu online gratuit ce permite accesul la Raspberry Pi de la distanță ,
prin internet, folosind browser -ul web. Prin rularea script -ului Python denumit dataplicity -agent
(curl https://www.dat aplicity.com/mqrukqhm.py | sudo python ) este realizată o conexiune ce
permite folosirea de la distanță a terminalului sistemului de operare de pe Raspberry Pi. Un
utilizator poate oricând să acceseze platforma Raspberry Pi, dacă aceasta este conectată la i nternet,
prin autentificarea pe website -ul Dataplicity și accesarea sec țiunii dispozitivelor conectate.
56
În urma activării opțiunii Dataplicity Wormhole , a fost generat un link unic (în acest caz
https://unprofess ed-flamingo -4988.dataplicity.io ), ce permite accesarea website -ului găzduit pe
Raspberry Pi de oriunde în lume . Link -ul duce către pagina web generată de fișierul cu locația
/var/www/html/index.html . Pentru a redirecționa către serviciul OwnCloud , conținutul acestui
fișier a fost înlocu it cu:
<!DOCTYPE html>
<html lang="en -US">
<head>
<meta charset="UTF -8">
<meta content="1;url=https://unprofessed -flamingo -4988.dataplicity.io/owncloud" http –
equiv="refresh">
<script type="text/javascript">
window.location.href = "https://unprofessed -flamingo -4988.dataplicity.io/owncloud"
</script>
<title>Page Redirection</title>
</head>
<body>
If you are not redirected automatically, follow this <a href='https://unprofessed -flamingo –
4988.dataplicity.io/owncloud'>link to cont inue</a>
</body>
</html>
Spațiul de stocare a datelor este asigurat în acest caz de un hard disk extern de 320GB, în
sistemul de fișiere NTFS și conectat prin USB la Raspberry Pi. A fost creat un director de date
pentru a servi ca punct de încărcare a dri ve-ului ( sudo mkdir /mnt/clouddrive ), iar apoi a fost
identificat UUID -ul (Universally Unique Identifier – identificator universal unic) hard disk -ului
folosit ( sudo blkid ). A urmat demontarea drive -urilor ( sudo umount -a), pentru a permite încărcarea
drive-ului folosit pentru cloud în locația corectă ( sudo mount /dev/sda1 /mnt/clouddrive ). Pentru a
asigura încărcarea la pornire a drive -ului utilizat și montarea acestuia mereu în același punct
(indiferent dacă sunt atașate și alte drive -uri), a fost modific at fișierul cu locația /etc/fstab prin
adăugarea următoarei linii ce conține UUID -ul acestuia, după partițiile sistemului:
UUID=0464BDDA64BDCF24 /mnt/clouddrive ntfs defaults,uid=33,grid=33,umask=007,nofail
Înainte de a configura serviciul OwnCloud , pentru a întări securitatea, au fost setate
permisiuni pentru directorul ce servește ca punct de încărcare a drive -ului pentru stocarea și accesul
datelor în cloud ( sudo chown www -data:www -data /mnt/clouddrive ) și pentru directorul de
instalare a aplicaț iei OwnCloud (pentru acesta a fost utilizat un script disponibil în documentația
oficială https://doc.owncloud.org/server/9.0/admin_manual/installation/installation_wizard.html ).
Toate aceste au necesitat permisiuni elevate de root ( sudo -i).
57
Configurarea OwnCloud a fost realizată automat după : crearea unui cont admin, setarea
locației pentru stocare datelor și a bazei de date ( /mnt/clouddrive ) și selectarea tipului de bază de
date ( SQLite ).
Pentru a îmbunătăți viteza software -ului scris în limbajul PHP a fost instalat un accelerator
PHP ( sudo apt -get install php -apc). A fost instalat și configurat programul hdparm (sudo apt -get
install hdparm ) pentru a opri în mod automat rotația platanelor după 2 minute de inactivitate , astfel
mărind durata de viață a har d disk -ului extern . De pe platforma OwnCloud , din secțiunea ”Apps”,
au fost dezactivate plugin -urile și serviciile ce nu sunt folosite, apoi activat suportul pentru
dispozitive de stocare a datelor externe ( External storage support ).
58
Bibliografie
Capitolul 1
[1]: Computer
https://en.wikipedia.org/wiki/Computer
[2]: Legea lui Moore
https://en.wikipedia.org/wiki/Moore%27s_law
[3]: Trends in the cost of computing
http://aiimpacts.org/trends -in-the-cost-of-computing/
[4]: William D. Nordhaus : The Progress of Computing , August 30, 2001
http://www.econ.yale.edu/~nordhaus/homepage/prog_083001a.pdf
[5]: Analiza SWOT
https://en.wikipedia.org/wiki/SWOT_analysis
https://ro.wikipedia.org/wiki/Analiza_SWOT
[6]: Data point
https://en.wikipedi a.org/wiki/Data_point
[7]: Constant Dollar
http://www.investopedia.com/terms/c/constantdollar.asp
Capitolul 2
[8]: Raspberry Pi
https://en.wikipedia.org/wiki/Raspberry_Pi
[9]: System on a chip
https://en.wikipedia.org/wiki/System_on_a_chip
[10]: SOC vs CPU
https://www.extremetech.com/computing/126235 -soc-vs-cpu-the-battle -for-the-future -of-
computing
[11]: LPDDR2
https://en.wikipedia.org/wiki/Mobile_DDR
59
[12]: Raspberry Pi 3 Model B
https://www.raspberrypi.org/products/raspberry -pi-3-model -b/
[13]: Raspberry Pi 3 specifications, benchmarks
https://www.raspberrypi.org/magpi/raspberry -pi-3-specs -benchmarks/
[14]: Raspberry Pi models comparison
http://socialcompare.com/en/comparison/raspberrypi -models -comparison
[15]: Raspberry Pi 3 Benchmarks vs. Eig ht Other ARM Linux Boards
http://www.phoronix.com/scan.php?page=article&item=raspberry -pi-3&num=1
[16]: Sysbench
https://wiki.gentoo.org/wiki/Sysbench
[17]: Multithreading
https://ro.wikipedia.org/wiki/Multithreading
[18]: Virgulă mobilă
https://ro.wikipedia.org/wiki/Virgul%C4%83_mobil%C4%83
[19]: Whetstone
https://en.wikipedia.org/wiki/Whetstone_(benchmark)
[20]: Dhrystone
https://en.wikipedia.org/wiki/Dhrystone
[21]: Banana Pi M2
https://en.wikipedia.org/wiki/Banana_Pi#Banana_Pi_M2
[22]: Comparison of single -board computers
https://en.wikipedia.org/wiki/Comparison_of_single -board_computers
[23]: ODROID
https://en.wikipedia.org/wiki/ODROID
[24]: Jetson TK1
http://elinux.org/Jetson_TK1
[25]: Jetson TX1
http://elinux.org/Jetson_TX1
60
[26]: Tegra
https://en.wikipedia.org/wiki/Tegra#Tegra_K1
[27]: John the Ripper
http://www.admin -magazine.com/Articles/John -the-Ripper
https://en.wikipedia.org/wiki/John_the_Ripper
[28]: MAFFT
http://openbenchmarking.org/test/pts/mafft -1.4.0
[29]: Nomenc latura enzimelor
https://ro.wikipedia.org/wiki/Enzim%C4%83
[30]: Smallpt
http://www.kevinbeason.com/smallpt/
[31]: Performance per Dollar
http://www.phoronix.com/scan.php?page=news_item&px=Performance -Per-Dollar
[32]: FLAC audio encoding
https://openben chmarking.org/test/pts/encode -flac
[33]: WAV
https://en.wikipedia.org/wiki/WAV
[34]: C-Ray
https://openbenchmarking.org/test/pts/c -ray-1.1.0
[35]: Timp real
https://despretot.info/ce -inseamna -in-timp-real/
[36]: Phoronix Test Suite
https://en.wikipedia.org/wiki/Phoronix_Test_Suite
[37]: OpenSSL
https://openbenchmarking.org/test/pts/openssl
https://en.wikipedia.org/wiki/OpenSSL
[38]: RSA
https://ro.wikipedia.org/wiki/RSA
61
Capitolul 3
[39]: Standalone partitioning (and booting) explained
https://github.com/raspberrypi/noobs/wiki/Standalone -partitioning -explained
[40]: NOOBS imagine
https://www.raspberrypi.org/documentation/installation/noobs.md
[41]: NOOBS partitioning explained
https://github.com/raspberrypi/noobs/wiki/NOOBS -partitioning -explained
[42]: OS Speed Comparison
https://www.raspberrypi.org/forums/viewtopic.php?f=91&t=91638
[43]: partitions.json
http://downloads.raspberrypi.org/raspbian/partitions.json
[44]: Frequently Asked Questions (FAQ) about BerryBoot
http://support.wdc.com/knowledgebase/answer.aspx?ID=13863
[45]: BerryBoot v2.0 – bootloader / universal operating system installer
http://www.berryterminal.com/doku.php/berryboot
[46]: Top 4 Raspberry Pi OS
https://www.gadgetdaily.xyz/top -4-raspberry -pi-os/
[47]: Imagine Raspbian
http://www.raspberrypi -spy.co.uk/wp -content/uploads/2016/09/raspbian_desktop_sep_2016.jpg
[48]: Imagine Arch Linux ARM
http://www.bilder -hochladen.net/files/big/hv1k -1.png
[49]: The Best Operating Systems for Your Raspberry Pi Projects
http://lifehacker.com/the -best-operating -systems -for-your-raspberry -pi-projec -1774669829
[50]: 11 Raspberry Pi OS for Everyday Computing – Best of
http://www.hongkiat.com/blog/pi -operating -systems/
[51]: Android
http://androidpi.wikia.com/wiki/Android_Pi_Wiki
https://ro.wikipedia.org/wiki/Android_(sistem_de_operare)
62
[52]: Debian
https://wiki.debian.org/RaspberryPi3
https://en.wikipedia.org/wiki/Debian
[53]: Ubuntu
https://ubuntu -mate.org/about/
https://ubuntu -mate.org/raspberry -pi/
[54]: History of Kodi
http://kodi.wiki/view/History_of_Kodi
[55]: Kodi
http://kodi.wiki/view/Kodi
https://en.wikipedia.org/wiki/Kodi_(software)
[56]: Imagine OSMC
https://blog -cdn.osmc.tv/assets/img/home/video -poster.png
[57]: Imagine LibreELEC
http://blog.helmutkarger.de/wp -content/uploads/kodi17.jpg
[58]: OSMC
http://kodi.wiki/view/OSMC
https://osmc.tv/about/
https://osmc.tv/wiki/general/supported -devices/
[59]: Imagine XBian
https://i.snag.gy/ym61P.jpg
[60]: XBian
http://www.xbian.org/what -is-xbian/
http://kodi.wiki/view/XBian
[61]: LibreELEC
http://kodi.wiki/view/LibreELEC
https://wiki.libreelec.tv/index.php?title=Main_Page
https://en.wikipedia.org/wiki/Libr eELEC
[62]: The Best Operating Systems for Your Raspberry Pi Projects
http://lifehacker.com/the -best-operating -systems -for-your-raspberry -pi-projec -1774669829
[63]: JeOS
http://kodi.wiki/view/JeOS_implementations_for_Kodi
63
[64]: RetroPie
https://github.co m/retropie/retropie -setup/wiki
https://github.com/retropie/retropie -setup/wiki/First -Installation
[65]: Imagine RetroPie
https://cdn.instructables.com/F1I/RXSQ/I88LQHNJ/F1IRXSQI88LQHNJ.MEDIUM.jpg
[66]: EmulationStation
https://github.com/RetroPie/RetroPi e-Setup/wiki/EmulationStation
[67]: Scraper
https://github.com/retropie/retropie -setup/wiki/scraper
[68]: Recalbox
https://www.recalbox.com/
https://github.com/recalbox/recalbox -os/wiki/Manual -%28EN%29
http://lifehacker.com/recalbox -is-a-dead -simple -game -emulator -operating -syste -1780158824
[69]: Moonlight
https://github.com/moonlight -stream/moonlight -docs/wiki/Setup -Guide
[70]: Retropie vs R ecalbox v s Lakka
https://www.hiscorebob.lu/2017/02/retropie -vs-recalbox -vs-lakka/
[71]: RetroPie vs Recalbox
http://lifehacker.com/diy -retro -game -system -showdown -retropie -vs-recalbox -1787542021
[72]: Imagine Recalbox
https://i.ytimg.com/vi/l4gqWNno87E/maxresdefault.jpg
[73]: Lakka
http://www.lakka.tv/
http://www.lakka.tv/doc/Home/
http://www.lakka.tv/doc/Why -Lakka/
[74]: Libretro
[75]: Benchmark
https://en.wikipedia.org/wiki/Benchmark_(computing)
[76]: Kernel
https://ro.wikipedia.org/wiki/Nucleu_(sistem_de_operare)
64
[77]: Samba
https://en.wikipedia.org/wiki/Samba_(software)
[78]: ROM
https://en.wikipedia.org/wiki/ROM_image
[79]: OTA
https://en.wikipedia.org/wiki/Over -the-air_programming
[80]: Package manager
https://en.wikipedia.org/wiki/Package_manager
[81]: Fedora
https://en.wikipedia.org/wiki/Fedora_(operating_system)
https://en.wikipedia.org/wiki/Fedora_Project
[82]: Driver
https://ro.wikipedia.org/wiki/Driver
[83]: Software bloat
https://en.wikipedia.org/wiki/Software_bloat
[84]: Arch Linux ARM
https://en.wikipedia.org/wiki/Arch_Linux_ARM
[85]: Linux distribution
https://en.wikipedia.org/wiki/Linux_distribution
[86]: Openbox
https://en.wikipedia.org/wiki/Openbox
[87]: Raspbian
https://en.wikipedia.org/wiki/Raspbian
[88]: Stacking window manager
https://en.wikipedia.org/wiki/Stacking_window_manager
[89]: Window manger
https://en.wikipedia.org/wiki/Window_manager
[90]: LXDE
https://en.wikipedia.org/wiki/LXDE
65
[91]: Open -source
https://en.wikipedia.org/wiki/Free_and_open -source_software
[92]: Desktop environment
https://en.wikipedia.org/wiki/Desktop_environment
[93]: Raspberry Pi Foundation
https://en.wikipedia.org/wiki/Raspberry_Pi_Foundation
[94]: Tar
https://en.wikipedia.org/wiki/Tar_(computing)
[95] Raw
https://en.wikipedia.org/wiki/Raw_device
[96]: Initramfs
https://en.wikipedia.org/wiki/Initramfs
[97]: Sistem de fișiere
https://ro.wikipedia.org/wiki/Sistem_de_fi%C8%99iere
https://en.wikipedia.org /wiki/File_system
[98]: MBR
https://en.wikipedia.org/wiki/Master_boot_record
[99]: Single -board computer
https://en.wikipedia.org/wiki/Single -board_computer
Capitolul 4
[100] : RPiconfig
http://elinux.org/RPiconfig
[101] : NOOBS download
https://www.raspberrypi.org/downloads/noobs/
[102] : UART
https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=141195
[103] : Overscan
https://en.wikipedia.org/wiki/Overscan
66
[104] : R-Pi Troubleshooting
http://elinux.org/R -Pi_Troubleshooting
[105] : Overclocking
https://ro.wikipedia.org/wiki/Overclocking
[106] : Apt -get commands
https://askubuntu.com/questions/222348/what -does-sudo -apt-get-update -do
[107] : Display server
https://en.wikipedia.org/wiki/Display_server
[108] : Client
https://en.wikipedia .org/wiki/Client_(computing)
[109] : Desktop environment
https://wiki.archlinux.org/index.php/desktop_environment
[110] : Window manager
https://wiki.archlinux.org/index.php/window_manager
[111] : Display manager
https://wiki.archlinux.org/index.php/Display_manager
[112] : Xorg
https://wiki.archlinux.org/index.php/Xorg
[113] : Openbox
https://wiki.archlinux.org/index.php/openbox
[114] : LightDM
https://wiki.archlinux.org/index.php/LightDM
[115] : Xinit
https://wiki .archlinux.org/index.php/Xinit
[116] : Raspbian Lite with PIXEL/LXDE/XFCE/MATE/i3 GUI
https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=133691
[117] : VNC
https://en.wikipedia.org/wiki/Virtual_Network_Computing
67
[118] : CUPS
https://www.cups.org/
https://discourse.osmc.tv/t/failed -to-start-load-kernel -modules/3163/18
[119] : Daemon
https://en.wikipedia.org/wiki/Daemon_(computing)
[120] : SAP
https://raspberrypi.stackexchange.com/questions/40839/sap -error -on-bluetooth -service -status
https://en.wikipedia.org/wiki/List_of_Bluetooth_profiles#SIM_Access_Profile_.28SAP.2C_SIM
.2C_rSAP.29
[121] : GPicView
http://lxde.sourceforge.net/gpicview/
[122] : Xarchiver
https://en.wikipedia.org/wiki/Xarchiver
[123] : MuPDF
https://mupdf.com/
[124] : Galculator
http://galculator.mnim.org/
[125] : Leafpad
http://tarot.freeshell.org/leafpad/
[126] : Vim
https://en.wikipedia.org/wiki/Vim_(text_editor)
[127] : RealVNC
https://en.wikipedia.org/wiki/RealVNC
[128] : LibreOffice
https://en.wikipedia.org/wiki/LibreOffice
[129] : Synaptic
http://www.nongnu.org/synaptic/
https://help.ubuntu.com/community/SynapticHowto
[130] : Rpi -update
https://github.com/Hexxeh/rpi -update
68
[131] : APT
https://en.wikipedia.org/wiki/Advanced_Packaging_Tool
[132]: Geany
http://www.geany.org/Main/About
http://www.geany.org/Main/AllFiletypes
[133]: Plugin
https://en.wikipedia.org/wiki/Plug -in_(computing)
[134]: Bluez
https://packages.debian.org/jessie/adm in/bluez
[135]: Bluetooth
https://packages.debian.org/jessie/admin/bluetooth
[136]: Chromium
https://en.wikipedia.org/wiki/Chromium_(web_browser)
https://www.raspberrypi.org/forums/viewtopic.php?t=121195
[137]: OMXPlayer
http://elinux.org/Omxplayer
[138]: IDE
https://ro.wikipedia.org/wiki/Mediu_de_dezvoltare
[139]: OpenJDK
https://en.wikipedia.org/wiki/OpenJDK
http://openjdk.java.net/install/
[140]: Git
https://en.wikipedia.org/wiki/Git
[141]: dbus-python tutorial
https://dbus.freedesktop.org/doc/dbus -python/doc/tutorial.html
[142]: Python OMXPlayer wrapper
https://github.com/willprice/python -omxplayer -wrapper
[143]: gomx
https://github.com/vladcc/gomx
69
[144]: tboplayer
https://github.com/KenT2/tboplayer
[145]: PuTTY
https://en.wikipedia.org/wiki/PuTTY
[146]: Modify the video cache
http://kodi.wiki/view/HOW -TO:Modify_the_video_cache
Capitolul 5
[147]: OwnCloud 9 on Raspberry Pi
http://www.instructables.com/id/OwnCloud -9-on-Raspberry -Pi-DIY-Dropbox/
[148]: Internet of things
https://en.wikipedia.org/wiki/Internet_of_things
https://cloud.google.com/solutions/iot -overview
[149]: Cloud computing
https://en.wikipedia.org/wiki/Cloud_computing
[150]: The roles of cloud computing and fog computing in the Internet of Things revolution
http://www.businessinsider.com/internet -of-things -cloud -computing -2016 -10
[151]: OwnCloud
https://owncloud.org/
https://download.owncloud.org/download/repositories/stable/owncloud/
https://doc.owncloud.org/server/9.0/admin_manual/instal lation/installation_wizard.html
[152]: Dataplicity
https://github.com/wildfoundry/dataplicity -agent/blob/master/README.md
https://www.dataplicity.com/
https://docs.dataplicity.com/
http://docs.dataplicity.com/docs/host -a-website -from -your-pi
[153]: UUID
https://en.wikipedia.org/wiki/Universally_unique_identifier
[154]: PHP accelerator
https://en.wikipedia.org/wiki/PHP_accelerator
[155]: Spin Down and Manage Hard Drive Power on Raspberry Pi
https://www.htpcguides.com/spin -down -and-manage -hard-drive -power -on-raspberry -pi/
70
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Specializarea Calculatoare ș i Tehnologia Informației [632163] (ID: 632163)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
