Introducció A Linux Amb Raspberry Pi Version040920170149

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 69

CONTINGUT

En aquesta guia hi trobarem una petita introducció al


món de les Raspberry Pi i Linux, passant per la
descripció dels seus component, instal·lació i primers
passos, així com, algun exemple per començar a
programar els nostres projectes amb ella.

Christian Pizarro

INTRODUCCIÓ A
LINUX AMB
RASPBERRY PI
DIY
Christian Pizarro Introducció a Linux amb RPi

Índex
Què és una Raspberry Pi? ......................................................................................................................... 2
Components d’una Raspberry Pi ............................................................................................................... 5
Instal·lació del sistema operatiu ............................................................................................................... 8
Connectivitat a internet (via fàcil)........................................................................................................... 13
La Terminal i els primers passos ............................................................................................................. 16
Like a boss (comandes bash) .................................................................................................................. 22
Comandes d’ajuda ......................................................................................................................................... 22
Exercicis ...................................................................................................................................................... 22
Comandes d’arxius i directoris ....................................................................................................................... 23
Exercicis ...................................................................................................................................................... 26
Comandes d’usuaris ....................................................................................................................................... 30
Exercicis ...................................................................................................................................................... 31
Comandes bàsiques del sistema .................................................................................................................... 33
Exercicis ...................................................................................................................................................... 34
Comandes de xarxa ........................................................................................................................................ 37
Com connectar-se a una xarxa wifi per línia de comandes ........................................................................ 38
Comandes per a la gestió de software i unitats (discs).................................................................................. 39
Exercicis-..................................................................................................................................................... 40
Emulació de videoconsoles amb Retroarch ............................................................................................. 44
Time to play! .................................................................................................................................................. 44
Sonic Pi .................................................................................................................................................. 49
Primer cop d’ull .............................................................................................................................................. 49
CopyPaste ...................................................................................................................................................... 50
Primeres notes ............................................................................................................................................... 52
Seqüencies i bucles ..................................................................................................................................... 52
Condicionals i números aleatoris ............................................................................................................... 55
Estructures de dades, algoritmes i funcions............................................................................................... 57
Sintetitzadors , sobres, mostres i FX........................................................................................................... 62
Apèndix ................................................................................................................................................. 68
Webs d’interés: .............................................................................................................................................. 68

1
Christian Pizarro Introducció a Linux amb RPi

Introducció a Linux amb Raspberry Pi i Sonic6 Pi


Què és una Raspberry Pi?
Tots estem acostumats a veure l’ordinador com la torre aquella que tenim a l’habitació sota l’escriptori, o
com aquella andròmina plana que duu una pantalla que anomenem portàtil, però en realitat, els ordinadors
poden tenir multitud de mides, formes, característiques i capacitats diferents, des del petit microcontrolador
que controla les cicles de reg d’un cultiu, fins a les grans màquines que analitzen les múltiples variables de la
meteorologia o tendències a la borsa. Els ordinadors, són a tot arreu, fins i tot, hem acabat oblidant que
molts dels dispositius que emprem diàriament, són ordinadors.

Així doncs, la Raspberry Pi és un ordinador SBC barat (Single Board Computer), que consumeix poca
electricitat i que ens permet actuar sobre el món real mitjançant unes entrades i sortides digitals (i
analògiques). Aquest ordinador treballa sobre un sistema operatiu basat en Linux (Debian) que es diu
Raspbian (encara que pot córrer en altres SO que acceptin l’arquitectura ARM de la CPU de la Raspberry).

Existeixen diversos models de Raspberry, que van anar sortint al mercat des del seu llançament al febrer del
2012 (el model A) fins al Febrer d’aquest any 2016 on s’ha lliurat l’últim model 3, així que no està de més fer
un petit repàs de les seves característiques.

2
Christian Pizarro Introducció a Linux amb RPi

Raspberry Pi 1 Raspberry Pi 2

Raspberry Pi 1 model B+ Raspberry Pi 2 model B


Release date February 2012 Release date February 2015
US$25 (model A, B+[1]), Introductory
US$35
US$20 (model A+), price
Introductory
US$35 (RPi 1 model B, Same as for Raspberry Pi 1
price
RPi 2 model B, RPi 3), plus Windows 10 IoT
US$30 (CM) Operating system Core[4] and additional
Linux (e.g. Raspbian), distributions of Linux such
Operating RISC OS, FreeBSD, as Raspbian
system NetBSD, Plan 9, Inferno, 900 MHz quad-core ARM
AROS CPU
Cortex-A7
700 MHz single-core Memory 1 GB RAM
CPU ARM1176JZF-S (model
Storage MicroSDHC slot
A, A+, B, B+, CM)[2]
Graphics Broadcom VideoCore IV
256 MB[3] (model A, A+,
B rev 1) Power 4.0 W
Memory
512 MB (model B rev 2,
B+, CM)
SDHC slot (model A and
B), MicroSDHC slot
Storage (model A+ and B+), 4 GB
eMMC IC chip (model
CM)
Broadcom VideoCore
Graphics
IV[2]
1.5 W (model A), 1.0 W
(model A+), 3.5 W (model
Power
B), 3.0 W (model B+) or
0.8 W (model Zero)

3
Christian Pizarro Introducció a Linux amb RPi

Raspberry Pi 3 Raspberry Pi Zero

Raspberry Pi Zero
Release date November 2015
Raspberry Pi 3 model B Introductory price US$5
Release date 29 February 2016 Linux (Raspbian[5]) or the
Operating system same as for Raspberry Pi
Introductory price US$35 1
Raspbian 1000 MHz single-core
Ubuntu MATE CPU
ARM1176JZF-S
Snappy Ubuntu Core
Operating system Windows 10 IoT Core[4] Memory 512 MB RAM
RISC OS Storage MicroSDHC slot
Debian Power 0.8 W
Arch Linux ARM
1200 MHz quad-core ARM
CPU
Cortex-A53
Memory 1 GB RAM
Storage MicroSDHC slot
Broadcom VideoCore IV at
higher clock frequencies
Graphics
than previous that run at
250 MHz
Power 4.0 W

Després d’aquesta bromadora quantitat de detalls que poc a poc anirem entenent, primer anem a centrar-
nos en un model específic per fer més senzilla la nostra tasca d’explicar què és i com funciona una Raspberry
Pi. En aquest cas triem el model B doncs és dels més populars, encara que en degut al llançament del model
“Zero” i 3, això canviarà.

4
Christian Pizarro Introducció a Linux amb RPi

Components d’una Raspberry Pi


Com ja hem comentat anteriorment, una Raspeberry Pi (d’ara en endavant RPi) es tracta d’un ordinador
monoplaca de mida reduïda que conté tots els elements indispensables per a funcionar en una mateixa PCB
(Printet Circiut Board).

Ara doncs farem un ullada ràpida a tots els seus components principals:

1. Slot per a la targeta SD (Disc dur).


a. Aqui és on està instal·lat el sistema operatiu i els nostre programes.
2. Entrada d’alimentació (micro USB 5V 2.5A).
a. És el connector per el qual donarem energia a la Raspberry, hem de tenir en compte que el
seu consum pot variar: tot i que pot funcionar amb un carregador de menys potència, però
per sota dels 10W del carregador, no està assegurat el funcionament correcte, doncs hem de
tenir en compte que molts perifèrics també s’alimenten amb aquesta entrada.
3. Regulador de voltatge 3.3V.
a. Proporciona el voltatge de 3.3V necessari a les GPIO
4. Processador lògic i gràfic (CPU/GPU).
a. És el cervell de la RPi, Aquí s’executen els programes i es fan tots els càlculs, en aquest cas,
també fa de memòria RAM.
5. Xip controlador USB i Tarja LAN.
a. Xip encarregat de “traduir” la informació que es transmet de la CPU a USB i EThernet i
viceversa.

5
Christian Pizarro Introducció a Linux amb RPi

6. Port Ethernet 10/Mbps.


a. Connector Ethernet, per la connexió LAN i/o internet.
7. 2x Port USB 2.0
a. Port Sèrie Universal per a ús ordinari, perifèrics, webcam, disc durs externs, etc. S’ha de tenir
en compte de no sobrepassar la corrent màxima, de 500mAh. Així doncs si connectem un
HUB d’expansió, és preferible que aquest dugui una alimentació externa, recordem que
aquest port treu la energia de la entrada general.
8. Sortida analògica de vídeo (RCA).
a. Sortida de vídeo analògica per a displays i monitors vells o per al posterior tractament de
senyal.
9. Sortida digital àudio/vídeo (HDMI).
a. Sortida A/V digital estàndard per a la majoria de displays i monitors.
10. Sortida analogia àudio ES (Jack).
a. Sortida d’àudio, cal recordar que per connectar uns bons altaveus o auriculars caldrà
amplificar aquesta sortida, doncs la RPi és una mica limitada en quant a potència d’àudio.
11. Pilots LED de control.
a. Pilots LED que en permetran veure de manera ràpida i visual l’estat de la RPi, si s’està
comunicant, si té energia, o si està processant dades a la tarja SD.
12. Entrades/Sortides de propòsit general (GPIO).
a. Potser la part més interessant de la RPi doncs és la que ens permet comunicar-nos amb
altres xips directament (fent ús de llibreries de comunicació), o llegir i actuar directament
sobre la nostra circuiteria electrònica. És per aquest port que la RPi és tan popular, doncs
dóna molta llibertat als projectes DIY (Do It Yourself). Aquest també proporciona voltatges
per alimentar petits circuits que no consumeixin gaire.
13. Sortida digital DSI per a pantalles.
a. Càmera Serial Interface, és un connector sèrie per la comunicació amb càmeres, té uns
valors de voltatge baix per a no generar grans interferències electromagnètiques i ens
permet deixar lliures els GPIO.
14. Entrada digital CSI per a càmeres.
a. Display Serial Interface, d’igual manera que amb la càmera CSI però amb displays, és un
protocol típic de pantalles de Smartphone, el fet de fer servir aquest connector per a
displays de mida reduïda ens deixa lliures els GPIO que altres displays fan servir.
15. Regulador de voltatge 1.8V.
a. Proporciona 1,8V per a la CPU i GPU.
16. Port de Debug JTAG (Join Test Action Group).
a. Port emprat per la comprovació de senyals i escriptures a memòria, útil per comprendre el
funcionament dels programes a nivell electrònic.

6
Christian Pizarro Introducció a Linux amb RPi

Molts ja us haureu adonat, que la RPi no disposa dels components perifèrics per a la interacció humana
(teclat, ratolí, pantalla), així com, la font d’energia que ha de ser un carregador USB 5V 2500mAh, també si
volem comunicació via wi-fi haurem de proporcionar-li també un mòdul wi-fi USB.

Pel que fa a la pantalla emprarem una que es comuniqui per HDMI o RCA, hi ha multitud de display que
utilitzen altres ports de comunicació però aquests els deixarem per quan parlem de projectes que
requereixin un Touchpad o hagin de ser portàtils. Qualsevol ratolí i teclat usb ens servirà per comunicar-nos
amb la RPi però és preferible que aquest sigui tipus combo, perquè així teclat i ratolí comparteixin usb de
comunicació i no emprar massa energia i ports USB.

7
Christian Pizarro Introducció a Linux amb RPi

Instal·lació del sistema operatiu


Recordem que per disc dur la RPi fa servir una tarja SD. Aquesta pot ser qualsevol tarja de memòria que
mitjançant un adaptador SD encaixi al sòcol reservat per aquesta. Preferiblement i per millorar el rendiment
buscarem una SD d’alta velocitat.

Tot ordinador necessita d’un Sistema Operatiu. Aquest és un programa que s’encarrega de gestionar altres
programes i de fer-nos de interfície entre nosaltres (usuari o programes) i la màquina (hardware), hi ha
diferents sistemes operatius depenent bàsicament del tipus de nucli emprat o d’entorn gràfic que ens
propociona. Els 3 grans noms que t’han de sonar són Linux, Windows i iOS.

La Raspberry Pi en un principi funciona amb una versió de Linux per a processador tipus ARM, però Microsoft
va implementar els drivers necessaris per poder instal·lar Windows 10 en RPi, però aquest no és el cas que
tractarem en aquesta guia.

La versió de Linux per a RPi es diu Raspbian. Es tracta d’una distribució de Linux basada en Debian que és la
distro mare més emprada (Ubuntu és una versió de Debian) i hi ha diferents versions de Raspbian. L’actual és
la JESSIE i però nosaltres treballarem amb un de diferent, Ubuntu MATE, però que això no us sembli estrany
ja que per internet podeu trobar altres versions més antigues o especifiques com Wheezy, RetroPi, MAMEPi
o OctoPi.

Nosaltres ens hem decidit per aquest per la facilitat que ofereix treballar amb ubuntu i els seus repositoris.

https://ubuntu-mate.org/

8
Christian Pizarro Introducció a Linux amb RPi

Anem a la pàgina web de Ubuntu MATE mitjançant el link anteriorment esmentat o buscant a google Ubuntu
mate i la primera opció que en s’apareixerà ja ens enviarà a la pagina web oficial. Després fem clic a la
pestanya de “Downloads”, cliquem a l’opció 14.04LTS i després a la opció de Raspberry Pi 2 i 3.

Si baixem avall de la pàgina podem trobar les opcions de descàrrega, via Torrent o via descàrrega directa.
Elegiu la que cregueu més convenient (el Torrent sol funcionar força bé).

No cal fer una donació, però si es vol que la comunitat creixi doncs no estaria malament que algun cop quan
es descarrega software lliure fer una petita aportació.

9
Christian Pizarro Introducció a Linux amb RPi

Ara necessitem un programa per formatar la tarja SD(esborrar les dades i restaurar el sistema de fitxers), per
això farem servir una eina gratuïta pensada per als tipus de sistema de fitxers de les targes SD, no és
recomanable fer servir les eines que venen amb els sistemes operatius habituals.

L’aplicació en concret la podem trobar a www.sdcard.org Un cop allí a la pestanya de “Downloads” cliquem
on posa SD formater for Windows (en cas que sigui aquest el nostre sistema operatiu), llavors apareixeran
els termes i condicions d’ús, els quals acceptarem i la descarrega procedirà automàticament.

Ara tindrem un arxiu .zip on a dins hi ha un setup.exe on farem doble clic per executar-lo. Ens preguntarà si li
donem privilegis per fer canvis al nostre ordinador i diem que si. Un cop s’han descomprimits els arxius
d’instal·lació aquesta procedirà automàticament.

10
Christian Pizarro Introducció a Linux amb RPi

Podem canviar la ruta de destí si volem.

I cliquem a “install”.

11
Christian Pizarro Introducció a Linux amb RPi

Ara procedim a introduir la nostra tarja SD (es recomana una d’uns 8Gb) al port per a targetes de memòria i
executem el “SD formatter”, ens sortirà una finestra com la següent:

On posa Drive, seleccionarem la tarja SD que hem introduït (a no ser que en tingueu més d’una, el programa
normalment seleccionarà directament la SD), després premem al botó “format”.

Clic a “Aceptar”.

Ens apareixerà un missatge dient que el format s’ha completat i ja podrem sortir del programa.

Ara ja podem procedir a grabar la imatge de Ubuntu que hem descarregat anteriorment i amb l’ajuda d’un
programa “Win32DiskImager” que trobarem a la següent URL:
https://sourceforge.net/projects/win32diskimager/

12
Christian Pizarro Introducció a Linux amb RPi

Per acabar cliquem a la icona blava amb forma de carpeta per poder especificar on hem descarregat la
imatge. Recordeu que si esta comprimida en “.rar” cal descomprimir-la primer i quedar-nos amb el arxiu
“.iso”. Un cop seleccionat el arxius procedim a seleccionar el medi on gravarem la imatge, en el nostre cas la
targeta SD que hem formatat fa una estona. I per acabar cliquem a “write”. Un cop finalitzat aquest procés,
ja estarà instal·lat el nostre sistema operatiu.

Amb això ja iniciarà el sistema un cop col·loquem la tarja a la Raspberry Pi li proporcionem energia.

Connectivitat a internet (via fàcil).


Com ja hem vist hi ha molt models de Raspberry, els últims porten
incorporat un mòdul wifi que ens facilita el fet de connectar-la a internet
(necessari per a seguir aquesta guia), però els més antics o la RPi no duen
incorporada la wifi per aquests casos tenim varies alternatives per atorgar
connectivitat:

1. Connexió directa al router via Ethernet.


a. Per connectar-lo al router és tan senzill com connectar amb
un cable Ethernet als port corresponents del router (els que posa ADSL) i al port Ethernet de
la RPi.
2. Connectar-la a traves de connexió compartida per Ethernet. (necessari un altre ordinador amb
connexió a internet).
a. Aquest pas és una mica més llarg però és molt
còmode degut a que ens lliura un USB de la
RPi ,en cas de que aquesta no tingui wifi
integrada(igual que el mètode del router), i en
baixa el consum, millora el rendiment i la
velocitat de connexió.
Primer de tot hem de configurar el nostre
portàtil per compartir la nostra connexió a
internet. En el cas de Windows, hem d’anar a
“centro de redes i recursos compartidos”, el
qual és fàcil d’accedir prement la tecla
“Windows” i escrivint “centro de redes”, això
farà que el sistema busqui aquesta opció de

13
Christian Pizarro Introducció a Linux amb RPi

configuració.

14
Christian Pizarro Introducció a Linux amb RPi

Busquem la secció de “Cambiar configuración


del adaptador”, després cal buscar l’adaptador
que fa servir el nostre ordinador per connectar-
se a Internet via wifi i a sobre cliquem amb el
botó dret per obrir el menú contextual i hem
de clicar a l’opció de propietats.

S’obrirà una finestra, busquem la pestanya “Uso compartido” i seleccionem l’opció de


“Permitir que los usuarios de otras redes se conecten a través de la conexión de este
equipo”.

3. Connectar-li un mòdul wifi USB.


a. La versió Ubuntu MATE, inicia en mode gràfic, i en principi autodetecta la xarxa wifi, si hi
hagués cap problema, es recomana connectar la RPi per cable en una de les dues formes
abans comentades i executar la actualització de software (via terminal) amb la tarja wifi
connectada.
Comanda a executar:
sudo apt-get-y update && sudo apt-get –y ugrade && sudo apt-get –fy install
Després cal seguir la guia del capítol de “comandes de xarxa”

15
Christian Pizarro Introducció a Linux amb RPi

La Terminal i els primers passos


Ara ja tenim instal·lat el nostre SO a la RPi, nosaltres hem elegit la opció per defecte, però recordem que hi
ha una gran varietat de sistemes alternatius. Un cop ha carregat l’escriptori, en cas de què tinguem connexió
via wifi, haurem de connectar-nos a internet per la icona que hi ha a la part superior dreta de la pantalla,
després hem de procedir a acabar de configurar el nostre sistema, per a això el que necessitem és accedir a
una terminal i executar la comanda “raspi-config”.

La terminal o també coneguda com a consola, és un programa que ens serveix per a parlar amb el nostre
sistema operatiu en forma de comandes escrites, molt útil a l’hora d’administrar el sistema de forma
avançada, executar comandes i scripts propis, accedir i tractar la informació de forma ràpida i eficient.

Bé, per a accedir a la terminal a Linux ho podem fer des del menú > eines del sistema > LXTerminal o
prement “crtl+alt+T”.

Bé, ja tenim oberta una Terminal, caldrà instal·lar el programa per configurar la raspberry pi (només per a
models anteriors a RPi3). Per a fer-ho farem servir la comanda que escrivim a continuació:

sudo apt-get install raspiconfig

Aquí és on treballarem la majoria del temps durant aquest curs. Ara procedirem a acabar de configurar la
nostra RPi, per a això escriurem el següent:

I premem enter, depenent de la versió del SO que tinguem, ja estarem activats com a sudoers
(administrador del sistema) sinó haurem d’escriure el següent per a iniciar el programa com a
administradors.

Acte seguit ens preguntarà la paraula de pas, la introduïm tenint en compte que a diferencia del altres
capses de contrasenya ens mostren en asteriscs la quantitat de caràcters que hem escrit, a la terminal de
Linux no mostra res, la escrivim i premem intro.

16
Christian Pizarro Introducció a Linux amb RPi

Ara apareix el menú següent:

Fem un petit repàs a les opcions principals:

1. Expand filesystem.
a. Expandeix el sistema de fitxers per a ocupar tota la tarja SD.
2. Change User Password.
a. Canvia la paraula de pas del usuari.
3. Enable Boot to Desktop.
a. Canvia entre iniciar en mode consola o mode escriptori.
4. Internationalization.
a. Canvia el llenguatge del sistema i la distribució del teclat.
5. Enable Camera.
a. Habilita el port CSI per a la càmera web.
6. Add to Rastrack.
a. Inclou la nostra RPi en una base de dades internacional o hi ha un recull de les RPi pel món.
7. Overclock.
a. Gestiona la freqüència de treball de la CPU i GPU, cal tenir en compte que pot provocar
sobreescalfament si no adoptem les mesures de refrigeració necessàries.
8. Advanced options.
a. Accés al menu d’opcions avançades (SSH, Audio Out, Memory Split...)
9. About raspi-config.
a. Informació sobre la utilitat i l’ús de la aplicació.

Primer començarem expandint el sistema de fitxers amb l’opció 1. La seleccionem movent-nos amb les
fletxes i premem enter. Ens demanarà confirmació diem que si i això farà que la RPi pugui accedir a tota la
tarja SD. I es que per a poder gestionar la informació (fotos, música, jocs, dades...) i poder-la desar de forma
que la puguem torna a llegir, els sistema operatiu necessita organitzar el disc (tarja SD) perquè en un futur
pugui trobar el que ha desat.

17
Christian Pizarro Introducció a Linux amb RPi

Hi ha diversos sistemes de fitxers (FAT32, NTFS, EXT3, EXT4...), podríem dir que quan parlem de diferents
sistemes de fitxers és com si parléssim de diferents maneres d’endreçar una habitació.

Tot seguit un cop hem tornat al menú inicial, anirem a l’opció 4, perquè ens reconegui correctament la
distribució de teclat.

1. Change Locale.
a. Canvia l’idioma del sistema, requerirà connexió a internet.
2. Change Timezone.
a. Canviar la zona horària.
3. Change Keyboard Layout.
a. Canviar la distribució del teclat.

Activem l’opció 1 i ens sortirà un menú com el següent:

Amb les fletxes d’amunt i avall buscar la distribució en català (com la que surt a la imatge). La seleccionem
amb la tecla espai i amb el tabulador ens desplacem fins l’OK i premem enter.

18
Christian Pizarro Introducció a Linux amb RPi

Ara , en tenir més d’un llenguatge al sistema ens preguntarà quin volem que sigui el que ha de ser el
predeterminat pel sistema.

Nosaltres seleccionarem català i premem enter.

Ara un cop finalitzat tornarà al menú principal. Ara tornem a seleccionar l’opció 4 i al submenú l’opció 2.
Aquest cop ens demanarà en quina regió estem. Li direm Europa i després de prémer enter seleccionem
Madrid i tornem a prémer enter.

Altre cop ens tornarà a la pantalla inicial, tornarem a escollir l’opció 4 i ara ja optarem per l’última opció.
Primer ens preguntarà quin model de teclat tenim, sinó estem segurs, deixem el genèric, si sabem de quin es
tracta i és a la llista, llavors nomes hem de prémer enter un cop el tinguem seleccionat, nosaltres elegirem el
per defecte “genèric 105-key (intl) PC”.

19
Christian Pizarro Introducció a Linux amb RPi

Ara ja acabem d’especificar la distribució tal i com indiquem a la imatge i després premem enter per
confirmar.

Després ens demanarà configurar la tecla per a accedir a caràcters especials (el “@” o el “€” són caràcters
especials), en el nostre cas escollirem mateixa distribució del teclat, en un cas que tinguem problemes
especificaríem “Right Alt (altGr)”.

I per últim ens demana quina tecla volem fer servir per als caràcters compostos. Aquest són caràcters
especials del codi ASCII (taula de conversió binari-decimal-hexadecimal-caràcter). Per als nostres propòsits
no ens caldrà, així que li donarem a l’opció “No compose key”.

Per últim en demanarà de configurar la combinació ctrl+alt+supr perquè aquest finalitzi l’entorn gràfic i ens
mostri la consola de Linux.

20
Christian Pizarro Introducció a Linux amb RPi

En el cal de les RPi3, no ens permetrà emprar l’opció “d’overclocking”, llavors haurem d’especificar al arxiu
de configuració de quin hardware disposa la nostra RPi.

El arxiu de configuració es troba a:

/boot/config.txt

I per editar-lo ho farem mitajançant:

sudo cp /boot/config.txt /boot/config_copia.txt && sudo nano /boot/config.txt

Aquesta comanda ens crearà una copia del arxiu (per seguretat) i ens el obrirà. És tracta d’un arxiu on hi ha
escrites les diferents opcions, com em duria molta estona especificar que es cada opció, afegeixo un link
oficial on s’especifica cada element:

https://www.raspberrypi.org/documentation/configuration/config-txt.md

Per a l’interés d’aquesta guia ens centrarem en dues opcions, “memory Split” i “turbo mode”, cal advertir
que s’aconsella col·locar un dissipador tèrmic a la RPi abans de habilkitar el mode turbo.

 Busquem l’opció “gpu_mem” que per defecte estarà a 64 depenent de quina memòria ram disposi la
nostra RPi posarem un valor o un altre, cal dir que per a la secció de emulació cal otorgar-li el màxim
de memòria a la GPU, ens el cas de RPi 3, el valor serà de 944.
 Després busquem l’opció “turbo mode” que per defecte es 0 i el posem a 1.

Ara per ara ja hem finalitzat la configuració, en un altre capítol farem un petit repàs sobre les opcions de
configuració més habituals per a usuaris bàsics. Així doncs seleccionem “Finish” amb el tabulador i premem
enter.

21
Christian Pizarro Introducció a Linux amb RPi

Like a boss (comandes bash)


Linux (Raspbian en el nostre cas) ens proporciona un bonic entorn d’escriptori, aquest que veiem a la nostra
RPi n’és un de molts i n’hi ha de força espectaculars a més de funcionals, Linux a orientat molt bé els seus
entorns gràfics a gestionar diversos escriptoris i àrees de treball, una altra forma de dir entorn gràfic es la de
GUI (Graphical User Interface). Però tot entorn gràfic té certes limitacions de control, ja sigui per simplificar
menús o per voler crear eines d’ús simple, això ens limita i en contra del que molta gent creu, ens fa anar
més lent!

En el capítol anterior ens hem familiaritzat amb la Terminal de Linux, hem après perquè servia però no hem
après les seves comandes bàsiques, per això recorrerem les comandes per grups. Primer farem un petit
repàs a la temàtica de cada grup, veurem les seves comandes i realitzarem uns petits exercicis per començar
a memoritzar les més habitual i importants ja que és força difícil aprendre-les totes, però si cal tenir una
noció i uns protocols de procediment a l’hora de modificar arxius de configuració.

Comandes d’ajuda
Com ja hem comentat és impossible saber-se de memòria totes les comandes disponibles i encara menys els
seus paràmetres, per tant per sobre de tot, és important recordar les comandes d’ajuda, doncs ens
proporcionaran informació sobre com fer servir les altres comandes.

COMANDA EXEMPLE D’US DESCRIPCIÓ


Mostra el manual de la comanda
man man ls
especificada.
--help ls --help Dóna ajuda sobre les comandes.
Mostra una descripció de la
whatis whatis ls
comanda.
Mostra on està la comanda (el
whereis whereis ls
codi que executa).

Exercicis
1. “man” és la comanda d’ajuda per excel·lència, però, “—help” se l’hi assembla força, executa
aquestes comandes per esbrinar per a que serveix “cp” i explica quines diferències has trobat entre
la informació que proporciona cadascuna d’elles.

2. “whatis” sembla una comanda interessant, prova d’executar “whatis” amb teles les comandes de la
taula anterior.

3. “whereis” és una comanda útil però a vegades oblidada, ens mostra les ubicacions de les comandes,
prova de buscar on estan les comandes de la taula, què creus que significa el que et mostra a la
pantalla?

22
Christian Pizarro Introducció a Linux amb RPi

Comandes d’arxius i directoris


No us heu preguntat mai on es desen exactament els programes, què són les carpetes o què vol dir ruta de
directori? En aquest capítol aprendrem les comandes necessàries per gestionar la informació al nostre disc,
però primer de tot, com organitzem aquesta informació?

Per a simplificar l’explicació suposarem que només disposem d’un sol disc i d’una sola partició ja que un
ordinador pot tenir més d’un disc i un disc pot tenir més d’un espai separat o particions. En realitat gairebé
mai és així, però si que a la pràctica quan treballem dins d’una partició serà exactament igual a explorar un
disc d’una sola partició.

Una bona analogia per descriure l’organització de la informació dins d’un disc és la d’un arbre, amb un tronc
que es ramifica en arrels o branques (cadascú tria el que més li agrada ) on hi ha directoris (carpetes) que
són filles d’altres de més grans, així des de la carpeta més allunyada del directori arrel (tronc) fins altres discs
durs (imagina un bosc).

En Linux, el canvi de directori, és a dir, el pas entre pare-fill, es representa amb una barra “/”, (l’adreça del
propi directori arrel és una barra).

Així doncs un exemple d’una ruta de directori, que ens mostra des del directori arrel fins a la branca
específica de carpeta objectiu, seria una cosa així:

Als usuaris més espavilats ja us deu sonar que a Windows existeix quelcom semblant.

Bé, com alguns ja haureu deduït, és important saber on estem ubicats dins del sistema de fitxers a l’hora de
treballar o fer canvis. Per norma general en Linux, quan obrim una Terminal, el directori per defecte on ens
situarà és el home (com els meus documents a Windows), per confirmar-ho escriure’m a la terminal “pwd” i
ens hauria de mostrar el següent:

Com podem observar estem dins de la carpeta personal de l’usuari, però com puc veure el que hi ha a dins?
Bé, fem un petit repàs primer a les comandes de gestió de arxius i directoris! ^^

COMANDA EXEMPLE D’US DESCRIPCIÓ


Llista arxius que hi ha a la ruta
ls ls –h
actual o a la ruta especificada.
Crea un directori a la ruta
mkdir mkdir /home/pi/carpeta_nova
especificada.
Elimina el directori a la ruta
rmdir rmdir /home/pi/carpeta_nova
especificada.
Canvia de directori a la ruta
cd cd /home/pi/carpeta_qualsevol
especificada.

23
Christian Pizarro Introducció a Linux amb RPi

COMANDA EXEMPLE D’US DESCRIPCIÓ

Copia l’arxiu de la ruta original a la


cp cp /ruta_origen /ruta_destí
ruta de destí.

Crea un arxiu amb el nom


touch touch nom_arxiu
especificat.

rm rm /home/pi/arxiu_qualsevol Elimina l’arxiu especificat.

Mou l’arxiu especificat de la ruta


d’origen a la ruta especificada,
mv mv /home/pi/arxiu /home/josep/arxiu
també serveix per canviar el nom
d’un arxiu o directori.

find find el_meu_arxiu Busca l’arxiu i mostra la ruta.

file file el_meu_arxiu Ens diu quin tipus d’arxiu és.

stat stat el_meu_arxiu Mostra l’estat de l’arxiu.

Crea un enllaç a carpetes o arxius


ln -s /ruta_original/el_meu_arxiu
ln (semblant al accessos directes de
/ruta/destí/el_meu_link
Windows).

Mostra el contingut d’un arxiu per


more more arxiu_de_text.txt
pantalla.

Mostra el contingut de l’arxiu en


less less arxiu_de_text.txt mode document (prémer “q” per a
sortir).

Mostra el contingut d’un arxiu o


cat cat el_meu_arxiu
uneix varis arxius.

24
Christian Pizarro Introducció a Linux amb RPi

split split el_meu_arxiu Divideix un arxiu.

Fa un recompte de les paraules en


wc wc arxiu_de_text.txt
un arxiu.

Buscar una cadena (text) dins d’un


grep grep paraula arxiu_de_text
arxiu.

Creua la informació de dos arxius i


join join /home/pi/arxiu1 /home/pi/arxiu2
et mostra les coincidències.

Mostra les diferències entre dos


diff diff /home/pi/arxiu1 /home/pi/arxiu2
arxius.

Mostra quin usuari té bloquejat o


fuser fuser /home/pi/document_privat.txt permès l’accés a cert arxiu o
recurs.

Canvia els permisos a arxius i


chmod chmod 777 /home/pi/document_privat.txt
directoris.

Canvia el propietari o el grup al


chown chown usuari /home/pi/document_privat.txt
que pertany un arxiu o directori.

chgrp administradors Canvia el grup propietari de l’arxiu


chgrp
/home/pi/carpeta_qualsevol o directori.

Després d’aquesta allau d’informació és normal que et sentis confús, Hi ha moltes comandes, amb molts
paràmetres cadascuna, per això és important la pràctica i fer ús de les comandes d’ajuda, doncs ens donaran
molta informació útil.

25
Christian Pizarro Introducció a Linux amb RPi

Si l’Anglès és un problema, recomano la traducció de les pagines de “man” abans de procedir amb els
exercicis. Per a aquesta tasca necessitarem introduir les següents comandes:

Li respondrem que si (s) a tot.

I per últim:

Si dóna cap problema, hauríem d’executar una altra comanda primer:

després tornar a executar les comandes anteriors en el mateix ordre.

Molt bé!, ara ja tenim els manuals en castellà .

Exercicis
1. “ls”, “pwd” i “cd” són les comandes que ens ajudaran a moure’ns entre directoris (carpetes), prova
primer d’esbrinar en quin directori et trobes, després navega fins arribar a la carpeta de
descarregues i fes un llistat dels arxius que hi ha allí. Després des d’allí fes un llistat dels arxius del
directori /home/pi.
a. Recorda per a saber on som fem servir la comanda “pwd”.
b. Per canviar de directori fem servir la comanda “cd” més la ruta a la que volem arribar.
c. Per fer un llistat dels arxius d’una ruta en concret, fem servir la comanda “ls” més la ruta
objectiu que volem llistar.

PISTA: Si ja ets a dins d‘una carpeta, per anar a una carpeta filla, no cal que escriguis tota la ruta,
només la necessària per anar des d’on ets tu fins a la filla objectiu. (exemple: per anar de
/home/pi/ a /home/pi/carpeta/, només cal escriure “cd carpeta/”). Si volem anar un directori
enrere hem de escriure “cd..”.

2. “mkdir”, “rmdir” ens serviran per crear i eliminar directoris, ara tornarem a la ruta /home/pi i allí
crearem 3 carpetes, poseu el nom que vulgueu, després torneu a fer un llistat del directori actual per
veure que realment s’han creat els directoris, després entra en un d’ells i crea un directori dins seu.
Quan hagis acabat torna a la ruta anterior. Ara prova d’eliminar una de les carpetes noves buides i
torna a fer un “ls”, prova ara d’eliminar la carpeta on a dins heu creat una altra carpeta, has pogut?
Com que la carpeta no estava buida no ens ha permès eliminar el directori (recordem que es una
comanda per eliminar directoris buits).

3. “rm”, “touch” són comandes per eliminar i crear arxius respectivament, prova d’executar la
comanda “rm –r” amb la ruta de la carpeta que havíem creat amb una altra carpeta dins (rm –r
/home/pi/capeta_pare). Ara ens queda una de les 3 carpetes que havíem creat anteriorment, per a
més seguretat durant aquest tutorial treballarem dins d’aquesta, tranquils! Després ja li canviarem el

26
Christian Pizarro Introducció a Linux amb RPi

nom per un de més xulo ^^. Amb la comanda “cd” entra dins de la carpeta, allí amb “mkdir” crea
dues carpetes més (pikachu i codelearn), després, crea dos arxius (minecraft i zelda) amb la
comanda “touch”, i per últim crea des del mateix directori actual tres arxius (anais, christian, krillin)
directament a la carpeta codelearn (sense entrar a aquesta carpeta) i 3 més (pokeball, carameloraro,
gameboy) a la carpeta pikachu (també sense entrar a aquesta). Després revisa el contingut
d’aquestes amb la comanda “ls”.

PISTA: mentre estiguis a la terminal pots tornar a escriure la ultima comanda que hagis escrit
prement fletxa amunt, així pots modificar-la per crear el arxius més ràpidament!

4. Ara farem servir un programa d’edició de text anomena “nano” per a modificar els arxius que hem
creat a l’exercici anterior, agafarem els arxius anais, christian i krillin i els modificarem afegint un
petit text que sigui una petita descripció d’una noia (anais), un noi (christian) i el del personatge del
manga bola de drac (krillin), per fer-lo servir hem de escriure per a cada arxiu.

i ens apareixerà aquesta pantalla, que és el contingut del nostre arxiu (res en aquest cas).

Un cop hem modificat l’arxiu hem de prémer “ctrl+o” per desar el canvis i “ctrl+x” per tancar l’arxiu.
En desar ens preguntarà si volem conservar el nom dels arxius o modificar-lo. En el nostre cas ho
deixarem tal qual.
També obrirem els arxius “minecraft” i “zelda” i els modificarem perquè continguin una petita
descripció de la temàtica d’aquests jocs (si no coneixeu algun dels jocs, pregunteu als companys).

5. “more”, “less”, “cat”, tenen la funció de mostrar-nos per pantalla els contingut d’arxius, primer
proveu d’emprar la comanda “more” i “less” amb un mateix arxiu per veure les diferències a l’hora
de mostrar la informació (recorda que per sortir del document cal prémer “q”), prova de mostrar per
la pantalla els continguts de tots els arxius que hem creat sense moure’t de la carpeta on estàs
(pensa que has d’especificar la ruta complerta en aquest cas). Per acabar amb la comanda “cat”
mostra el contingut de dos arxius alhora (per exemple “minecraft” i “zelda”).

PISTA: Saps que no cal que escriguis la paraula complerta? Linux t’ajuda a l’hora d’escriure amb la
tecla “(Tab ↹)”, per exemple: escrivim /h i després premem (Tab ↹) i automàticament ens escriurà

27
Christian Pizarro Introducció a Linux amb RPi

/home/, en el cas de que hagués més d’una opció, cal prémer (Tab ↹) dos cops i ens mostrarà un
llistat de les possibles opcions, en cas de què foren moltes ens preguntaria si les volem mostrar totes.

Per comprovar de manera ràpida si ens ha sortit tot bé, tornarem a l’escriptori (fora de la Terminal) i
obrirem el navegador de fitxers i buscarem la carpeta pare que hem creat, i hauria de lluir així:

28
Christian Pizarro Introducció a Linux amb RPi

6. “cp”, “mv”, Per acabar aquesta secció d’introducció a la gestió d’arxius i directoris, aprendrem a
moure i copiar directoris des de la Terminal, un cop haguem tornat a la terminal, primer crearem una
carpeta dins de “pikachu”, que es digui “pokemon” (recordes quina comanda era?), després amb la
comanda “mv” moure’m tots els arxius relacionats amb el món de pokemon a dins d’aquesta
carpeta que hem creat. Ara amb la mateixa comanda renombrarem la carpeta “pikachu” a
“videojocs” amb la comanda “mv”, per això la ruta de destí serà la mateixa però canviant l’últim
directori amb el nom de la carpeta d’origen pel nom desitjat, també pots canviar el nom de la
carpeta mare com en l’exemple.

EXTRA: Per fer el llistat d’aquesta forma he fet servir dos paràmetres, series capaç d’esbrinar per a
que serveix la “l” i la “h”? fes servir la comanda “man” per ajudar-te. La informació que se’ns mostra
està dividida de la següent manera:


Tipus i permisos Data de
elements Propietari Grup Mida Nom
(UGO). creació
a dins
Expressa el tipus Elements Indica quin Al igual que en La mida de Data en Nom de
mitjançant “d” o o links usuari n’és la columna l’arxiu en format l’arxiu o
“-“ i després que conté el anterior es pot bytes a no ser mes/dia/hora directori
mostra els l’arxiu o propietari, modificar però que llistat.
permisos segons directori usualment indica s’especifiqui
read, write, (i-nodes). el creador, normalment el que sigui
execution (rwx) però es pot grup al que “human
per a modificar pertanyia el readable”
U(propietari), creador
G(Grup),
O(Altres).

29
Christian Pizarro Introducció a Linux amb RPi

Comandes d’usuaris
Al igual que en altres sistemes operatius és usual que l’ordinador el faci servir més d’un usuari, de fet, el
sistema ja disposa de més d’un usuari, “root” i “pi” en el nostre cas, també alhora el usuaris formen part de
grups, això serveix per a donar permisos sobre arxius a membres d’un grup en concret, sense necessitat que
aquests siguin propietaris dels arxius en qüestió, molt important en matèria de seguretat!

En aquesta secció revisarem les comandes més importants per a gestió d’usuaris i permisos com: creació i
eliminació d’usuaris i grups, edició de permisos i propietaris, comprensió de la codificació de les etiquetes de
permisos que ja hem introduït al final de capítol anterior.

A Linux, cada arxiu o directori (i-node per als experts) té un propietari que pot modificar els permisos
d’aquest. Els permisos es divideixen en 3 categories d’usuaris:

1. U: Propietari, és l’únic que pot modificar els permisos sobre aquest arxiu.
2. G: Grup, els permisos donats a un grup en concret afecten a tots els integrants d’aquest grup.
3. O: Tots els altres usuaris no especificats enlloc.

Els permisos al seu temps es poden diferenciar en 3 tipus:

A. r: Permís de lectura (read).


B. w: Permís d’escriptura (write).
C. x: Permís d’execució (execution).

Per exemple, en un arxiu on només l’usuari propietari té permisos d’escriptura i execució i la resta té
permisos de lectura tindria un aspecte així si fem un “ls –l”.

drwxr--r-- / nº i-nodes / propietari / grup / mida / data modificació / nom

La primera lletra de davant de tot especifica si es tracta d’un directori “d”, un arxiu “-“ o un enllaç “l”.

COMANDA EXEMPLE D’US DESCRIPCIÓ


Afegeix l’usuari especificat en el
adduser sudo adduser pere casa
grup especificat.
Crea el grup amb el nom
groupadd sudo groupadd superherois
especificat.
userdel sudo userdel pere Elimina l’usuari especificat.
Canvia la contrassenya d’un
passwd passwd pere
usuari.
Canvia d’usuari l’usuari
su su laura
especificat.
whoami whoami Mostra el nom d’usuari actual.
Mostra les dades d’identificació
id id pere
de l’usuari.
finger finger pere Mostra la informació de l’usuari.
Informació dels últims usuaris
last last
que ha emprat el sistema.

30
Christian Pizarro Introducció a Linux amb RPi

Envia missatges a la terminal i


write write pere tty1
usuari especificats.
Activa o desactiva el poder rebre
mesg mesg y
missatges.
Activa la missatgeria a tots els
wall wall
usuaris.
Obre el sistema de chat entre dos
talk talk pere
usuaris.

Exercicis
1. “whoami”, “id”, Ara que ja entenem una mica de què va això dels permisos potser seria hora de
mirar-nos al mirall i veure quina informació dóna el nostre usuari, primer hem d’esbrinar quin usuari
som, per a això farem servir la comanda “whoami”, la pantalla ens hauria de mostrar el nostre nom,
de sessió actual (usuari), ara prova d'executar la comanda “id” amb el teu nom d’usuari com a
paràmetre. Que hi veus?

Si et fixes en la imatge és un llistat dels diferents identificadors associats l’usuari, tant el seu personal
com els dels grups als que pertany.

2. “passwd” Estem parlant de seguretat i privacitat, però de moment, encara tenim la contrassenya per
defecte! Això és un gran risc! Ara amb la comanda “passwd” intenta canviar la teva contrassenya,
tingues en compte de no oblidar-la! Durant aquest capítol crearem més usuaris amb les seves
respectives contrassenyes, et recomano que facis servir la mateixa per a tots o que ho tinguis
apuntat en un paper.

3. “adduser” ,”userdel” ,”su” ,És hora d’animar el cotarro, anem a crear usuaris! ^^ per a aquest
exercici crearem 3 usuaris nous amb la comanda “adduser”, per a crear un usuari el sistema ens
demanarà permisos d’administrador, per a fer això escriurem “sudo” davant de la comanda
desitjada.

Ens demanarà d’introduir una contrassenya, tingues en compte que no mostrarà els caràcters que
hagis escrit, ni tan sols amb asteriscos.

31
Christian Pizarro Introducció a Linux amb RPi

Un cop els tinguis creats esbrina quina id tenen cadascú, i a quins grups pertanyen, veus algun grup
nou que no hagués aparegut al usuari pi?. Per últim canvia d’usuari per agafar un dels 3 que has
creat ara mateix.

4. En aquest exercici repassarem comandes de capítols anteriors, prova de anar al directori “/”, des
d’allí prova d’eliminar la carpeta “codelearn” sense fer servir la comanda “sudo”, què ha passat?
Ara prova de fer servir la comanda “sudo” abans de les comandes per eliminar la carpeta. Quin
missatge et retorna?

5. Com hem vist en l’exercici anterior, per tal d’executar comandes com a administradors, hem de
formar part d’aquest grup selecte d’usuaris, com a un bon club exclusiu, al grup “sudo” t’hi ha
d’afegir algú que ja hi pertanyi, per exemple l’usuari “pi”, així doncs, canviat d’usuari i prova amb la
comanda “adduser” afegir l’usuari que més t’agradi dels que has creat al grup “sudo” (recorda que
ho has de fer en qualitat d’administrador posant primer “sudo” al davant de la teva comanda). Per
últim torna a repetir l’exercici 4.

6. Busca en la taula del capítol anterior la comanda per canviar el propietari d’un arxiu i directori i
posa’t com a propietari de la carpeta “pikachu” posa-li el paràmetre “-R” a la comanda en qüestió
perquè afecti també als arxius i directoris parents. A partir d’ara el teu usuari en serà el propietari.

7. “groupadd”, En aquest exercici crearem una carpeta dins de “pikachu” que es dirà
“equip_pokemon”, com que estem dins de la carpeta personal de l’usuari “pi” haurem de canviar la
propietat de la carpeta pare, fent servir el procediment de l’exercici anterior.

La captura ens mostra com canviar el propietari de la carpeta mare que en el meu cas es diu
“tutorial”, a dins hi ha la carpeta “pikachu” i els altres arxius.
Després afegeix el teu usuari a un nou grup anomenat “entrenadors”, per això farem servir la
comanda “groupadd” i la comanda “adduser”. Ara ja podrem crear la carpeta i afegir-la al grup
entrenadors.

8. “chmod”, Aquesta comanda al principi pot ser una mica confosa de fer servir, però és la que ens
permetrà gestionar els permisos els qual s’atorgaran als diferents usuaris i grups, per poder
continuar rellegeix els apartats on s’explica el sistema UGO al principi del capítol. Però si a la
comanda l’hi passem la lletra de referència UGO a la que volem canviar els permisos “+”o”-“ la lletra
de referència RWX podrem modificar afegint o treien permisos als diferents grups i usuaris.
per exemple:
Sudo chmod –R u-w /home/pi/tutorial/pikachu/equip_codelearn
Això trauria a l’usuari propietari el permís d’escriptura del directoris i els seus parents.
Sudo chmod –R ug+w /home/pi/tutorial/pikachu/equip_codelearn
Això proporcionaria permisos d’escriptura l’usuari i al grup propietaris.
Sudo chmod –R a+w /home/pi/tutorial/pikachu/equip_codelearn
Aixo donaria a TOTS permisos d’escriptura.

32
Christian Pizarro Introducció a Linux amb RPi

Exemple de com es pot afegir o treure permisos.

9. Per acabar el capítol, mou la carpeta “tutorial” a la teva carpeta personal que s’ha creat al generar el
teu usuari (/home/nom_del_teu_usuari) i afegeix un parell d’entrenadors més al grup
d’entrenadors, per a això agafeu els noms de dos companys de classe als quals, els hi haureu de
crear també el usuari corresponents.

Comandes bàsiques del sistema


Si has arribat fins aquí ja ets quasi un administrador de sistemes Linux!  ja sabem manipular arxius i
directoris, també crear, modificar, i eliminar usuaris, grups i permisos ara toca investigar una mica sobre la
informació que ens pot subministrar un sistema i com el podem gestionar.

Moltes vegades es necessari esbrinar que ha passat mentre no estàvem davant de l’ordinador, o durant un
error a algun programa, per això és necessari saber d’on obtenir aquesta informació, així doncs repassarem
els programes que ens poden ajudar a fer aquesta feina, també hem de saber com reiniciar la màquina,
esbrinar de quin hardware disposem o comprovar quin han sigut els últims moviments d’un usuari.

COMANDA EXEMPLE D’US DESCRIPCIÓ


reboot sudo reboot Reinicia la màquina.

halt sudo halt Apaga la màquina.

shutdown sudo shutdown Apaga la màquina.


Mostra el temps que duu
uptime uptime
engegada la màquina.
exit exit Tanca la sessió de l’usuari actual.
Mostra els missatges d’error
dmesg dmesg
durant l’inici del sistema.
Mostra totes les comandes
history history
introduïdes per l’usuari actual.
Mostra informació sobre el
uname uname –a
sistema (OS, hardware, kernel).
Mostra el nom del servidor (nom
hostname hostname
del ordinador).
free free Mostra l’estat de la memòria.

33
Christian Pizarro Introducció a Linux amb RPi

COMANDA EXEMPLE D’US DESCRIPCIÓ


date date Mostra la data i hora actuals.

cal cal Mostra el calendari.

clear clear Neteja la terminal.

startx startx Inicia l’entorn d’escriptori gràfic.


Mostra els events de les tecles i
lspci lspci
del ratolí.
Mostra el mòduls carregats en el
lsmod lsmod
sistema
Mostra el missatge per la sortida
echo echo Linux mola molt!
estandart.
Simplifica una comanda canviant-
alias alias las=’ls –lhaS –color=auto’
la per una paraula curta.
unalias unalias las Elimina un alias.
Administra el mòduls carregat al
kernelcfg kernelcfg
kernel.
insmod insmod Inserta mòduls al kernel.

rmmod rmmod Elimina mòduls del kernel.


Actualitza la base de dades
updatedb updatedb
interna d’arxius.

Exercicis
1. És molt habitual que els servidors, ja que no tenen contacte amb persones físiques durant el seu
funcionament normal, no tinguin carregat l’escriptori gràfic, seria un malbaratament de recursos del
sistema! També pot interessar no iniciar-lo degut a la velocitat de connexió o per la potència de la
màquina en qüestió. Treballar en mode text ens dóna molt més control i velocitat.
Recordes com s’entrava a la configuració de la RPi? Escriu “sudo raspi-c” i prem el tabulador.
Escull l’opció 3 i tot seguit, la primera de les 3 opcions que ens apareixen a continuació.

Després reinicia la màquina des de la terminal.

34
Christian Pizarro Introducció a Linux amb RPi

Tada!! Així és com es veu el sistema operatiu sense entorn gràfic, pot semblar una mica inhòspit al
principi però té el seu carisma particular i ens permet un control total sobre la màquina i a més
podem programar “insitu” complexes línies de comandes.
Val, un cop hem arribat fins aquí hem d’introduir el nom del nostre usuari i acte seguit la
contrassenya.

2. Busca la comanda que et mostra el registre de comandes que has utilitzat, després neteja la pantalla.

3. Hauràs pogut comprovar que el teu usuari no té els mateixos colors de la terminal que l’usuari “pi”,
per a això haurem de modificar un arxiu que es troba ocult dins de la nostra carpeta personal, això si,
primer en farem una copia de seguretat.
Fes un llistat dels arxius ocults de la carpeta /home/el_teu_usuari (una altra manera d’escriure
aquesta ruta cap a la carpeta personal és “~/”). Trobaràs un arxiu anomenat “.bashrc” fes-ne una
còpia amb el nom “barshrc_original”, després amb la comanda nano modifica l’arxiu “.bashrc” de la
següent manera:

Naveguem fins a aquesta secció del document o eliminem el símbol “#” que està marcat a la imatge,
tot seguit cal premer “ctrl+o” per desar els canvis i “ctrl+x” per sortir.

35
Christian Pizarro Introducció a Linux amb RPi

Un cop tancat el document escrivim a la termina “source ~/.bashrc”:

Ja tenim els colors activats al prompt (el programa encarregat de ensenyar-nos el text per pantalla).

4. Fes recerca amb les comandes d’ajuda i extreu tota la informació que et pugui donar sobre el
sistema i el hardware la comanda “uname”.

5. “alias” ,Ja va sent hora de facilitar-nos la feina, com ja ens hem començat a familiaritzar amb els
paràmetres de les comandes, procedirem a generar alias per a les comandes amb paràmetres que
més utilitzem, primer activarem els que el sistema ens dóna per defecte. Per això tornarem a
modificar l’arxiu “~/.bashrc” i ara descomentarem els alies preestablerts.

Eliminem els coixinets dels inicis de línia, desarem, tancarem i reiniciarem el bash tal i com s’indica al
exercici 3.
Torna al directori arrel “/” i prova els nous alias.
Ara investiga una mica amb les comandes d’ajuda i busca els paràmetres necessaris per a que el “ls”
ens mostri per la pantalla les carpetes i arxius ocults, endreçades de menor a major i amb els detall
sobre permisos i propietaris, tot seguit crea un alias per a una comanda que combini els paràmetres
esmentats.

PISTA: Com estaven escrits els alias l’arxiu .bashrc? segueix la mateixa sintaxis, a més a abans de
tancar cometes, escriu –color=auto faràs que el text que retorni el alias estigui acolorit:
alias la=’ls –A –color=auto’

6. Anem a fer una mica de memòria, canvia’t d’usuari l’altre usuari que havies agregat al grup
d’entrenadors, i crea 3 arxius de text, tinguin com a nom un pokemon, després edita els arxius per
incloure una petita descripció, així com, el nivell el seu atac, la seva defensa i la seva vida. Després
creen 3 més i dóna la propietat d’aquests 3 últims arxius al teu usuari habitual, i canvia-li els
permisos per tal que només el propietari pugui editar.

7. Torna al teu usuari habitual i inicia l’entorn gràfic, busca la carpeta amb els pokemons, i busca el que
siguin de la teva propietat per editar el seu nivell.

36
Christian Pizarro Introducció a Linux amb RPi

Comandes de xarxa
En un món tan híper-connectat se’ns fa inimaginable un ordinador que no estigui connectat a Internet, això
ens fa necessari saber com gestionar mínimament les nostres connexions. Com saber quin hardware tenim
disponible, quines són les xarxes disponibles, quina IP tenim, o a quina IP ens dirigim. Si bé la comprensió del
sistema de xarxes no és necessària per al curs d’introducció a Linux, si que cal saber quines són les típiques
comandes que s’empren per a aquest propòsit.

En aquest capítol és farà un breu resum de com connectar un ordinador a Internet via Linux, com que ja
disposem connexió a Internet preferiblement es deixaria per alumnes una mica més avançats.

COMANDA EXEMPLE D’US DESCRIPCIÓ


netstat netstat Mostra l’estat de la xarxa.
Mostra la configuració de
ifconfig ifconfig xarxa i també ens permet
modificar-la.
Mostra el llistat de xarxes
iwlist iwlist
sense fil disponibles.
Mesura el temps de resposta
ping ping 8.8.8.8
entre la teva maquina i una IP.
Mostra la IP de una pàgina
nslookup nslookup www.google.es
web.
Es connecta via protocol telnet
telnet telnet –X 85.128.65.43:22002
al equip desitjat.
/etc/init.d/networking start /etc/init.d/networking start Inicia els serveis de xarxa.

/etc/init.d/networking restart /etc/init.d/networking restart Reinicia els serveis de xarxa.

etc/init.d/networking stop etc/init.d/networking stop Atura els serveis de xarxa.


Habilita la interfície
ifup ifup wlan0
especificada.
Inhabilita la interfície
ifdown ifdown wlan0
especificada.
dhclient dhclient Inicia l’assignació d’IP dinàmica
Mostra informació sobre la
whois whois www.google.es
pàgina web.

37
Christian Pizarro Introducció a Linux amb RPi

Com connectar-se a una xarxa wifi per línia de comandes


Abans de tot ens hem d’assegurar que els serveis de xarxa estan activats amb la comanda
“/etc/init.d/networking start” i tot seguit farem un llistat de les interfícies disponibles amb la comanda
“ifconfig” així localitzarem què tenim disponible, en el nostre cas ens ha d’aparèixer un dispositiu amb nom
“wlan0” si tenim ben connectada la tarja wifi (o si bé integrada).

Hauria de veure’s així més o menys

Amb la següent comanda activarem el hardware “wlan0”.

Ens demanarà la contrassenya i ja està.

Acte seguit fem un escaneig en busca de les wifis disponibles.

Sabrem el nom de la senya per la línia on diu ESSID: “nom de la wifi”.

Com podem veure, també ens proporciona molta informació, com la qualitat, la capacitat de treball (bit
rate), si està encriptada, etc.

Ara amb la comanda “iwconfig” , li especifiquen el hardware wlan0, li especifiquem essid amb el paràmetre
«essid» seguit del nom de la wifi (entre cometes en el cas de que contingui espais),

38
Christian Pizarro Introducció a Linux amb RPi

per últim especifiquem amb el paràmetre “key” i el prefixe “s:” que serveix per especificar que la
contrasenya esta en text ascii, i per últim i sense espai entre el prefixe, posem la contrassenya.

I ja per acabar ens assignarem una IP:

Comandes per a la gestió de software i unitats (discs)


Durant quasi tota la guia s’ha evitat expressament la necessitat d’instal·lar paquets nous (programes,
llibreries, arxius), però no ens podem considerar-nos administradors novells sinó sabem com instal·lar
programari o actualitzar el sistema XD.

És necessaria una actualització periòdica del nostre programari així com del sistema En el cas del sistema
tenim dos tipus importants d’actualització, les actualitzacions comuns i les de distribució. Les de distribució
(seria com canviar de Windows 7 a Windows 10). Les actualitzacions comuns no actualitzen el nucli del
sistema, en canvi la de distribució si. En servidor, fer una actualització de distribució s’ha de fer amb molt de
compte.

També aprendrem a gestionar les nostres unitats de memòria, descarregar arxius d’Internet, o com
comprimir i descomprimir carpetes i arxius.

COMANDA EXEMPLE D’US DESCRIPCIÓ


apt-get sudo apt-get install mozilla Gestor de paquets.
Afegeix el repositori a la
add-apt-repository add-apt-repository ppa:hunter-kaller/pp
llista d’apt-get.
Descomprimeix/comprimeix
tar tar –xvf arxiucomprimit.tar
el arxius.
Descomprimeix/comprimeix
rar rar –x arxiuadescomprimir.rar
el arxius.
Descarrega el contingut de
wget wget
la URL.
Munta el dispositiu
mount mount –t ntfs-3g /dev/sdb1 /mnt/usb seleccionat per a poder
explorar els arxius.
Desmunta el dispositiu
umount umount /mnt/usb
seleccionat.
Mostra l’espai buit dels
df df
discos.
Calcula l’espai que ocupa un
du du –h
arxiu o directoris.
Programa per a la gestió de
fdisk fdisk –l
particions.
Comprova l’estat del
fsck fsck –Ct ntfs-3g /dev/sdb1 sistema de fitxers d’una
unitat o directori.

39
Christian Pizarro Introducció a Linux amb RPi

Exercicis-
1. “add-apt-repository” Ens serà molt útil a l’hora d’incloure programes que no estiguin a la llista de
repositoris, bàsicament estem ampliant el nostre “stock” de programes, ara per ara afegirem un
repositori que necessitarem més endavant. A Internet hi ha repositoris especialitzats per diversos
propòsits, en el nostre cas es tracta d’un repositori d’emuladors, els emuladors són programes que
imiten altres maquines (videoconsoles, ordinadors antics, servidors, etc), són molt útils per a
practicar amb software que requereix d’un hardware en concret i aquest es troba obsolet.

add-apt-repository ppa:libretro/stable

2. “apt-get” Encara que la taula sembli curta, quasi tot aquest capítol es centrarà en aquesta sola
comanda, doncs és amb els seus paràmetres amb els que haurem de jugar
a. “update" Per tal d’obtenir el llistat de programari (repositori) actualitzat, hem de demanar-li
que busqui a Internet la llista de repositoris nova, per això escriurem:

sudo apt-get -y update

El paràmetre “-y” serveix perquè digui que si per defecte als possibles diàlegs que ens obri el
programa durant la instal·lació.

40
Christian Pizarro Introducció a Linux amb RPi

b. “install”·Un cop tinguem actualitzats els repositoris no estaria malament de provar


d’instal·lar nou software, per començar ja et dono jo 3 programes a instal·lar, però després
tu pots buscar per Internet el nom del programa que necessites o amb l’ajut del tabulador
intentar si amb les inicials el gestor de repositoris et troba coincidències (si com
l’autocompletat del bash!). Descarrega el següent programes, amb les comandes d’ajuda
esbrina per a que serveixen, si vols prova d’executar-ne algun! ;)

sudo apt-get –y install tree

Programes a descarregar:
i. tree
ii. htop
iii. retroarch
iv. retroarch-* (el asterisc és necessari)
v. libretro-* (el asterisc és necessari)

Ja hauràs comprovat que la majoria són emuladors, un emulador es un programa que imita a
una videoconsola, més endavant veurem com carregar jocs.

EXTRA: Pots descarregar més d’un programa alhora posant un espai entre els noms:

sudo apt-get -y install mame htop tree

c. “purge”, ”remove”, “autoremove”, aquestes dues comandes en serveixen per eliminar


programes, la primera elimina fins hi tot els fitxers de configuració, la segona només el
programa però no els arxius de configuració i la tercera elimina paquets orfes (paquets que
no són necessaris des de la desinstal·lació d’algun programa). Prova a desinstal·lar el mozilla,
i tornar-lo a instal·lar! ( a Linux no cal un navegador per buscar programes per Internet!).

sudo apt-get purge mozilla


sudo apt-get install mozilla

d. “upgrade” Per últim ens centrarem en la part de l’actualització del sistema i una petita
comanda per corregir llibreries perdudes. En l’exercici 1 hem actualitzat la llista de
repositoris, ara farem que el sistema instal·li els nous (actualitzats) si n’hi ha.

sudo apt-get upgrade

41
Christian Pizarro Introducció a Linux amb RPi

Normalment, l’“upgrade” es fa tot just després d’actualitzar, concatenant les comandes amb
el símbol “&”.

sudo apt-get update && sudo apt-get upgrade

Per corregir llibreries perdudes farem servir el paràmetre “-f”

sudo apt-get install –f

3. “mount" El professor us passarà un USB, per accedir a ell, l’haurem de muntar, hem de tenir en
compte el sistema de fitxers que l’USB té, normalment FAT32 o NTFS. Però per a USB en podem (en
principi) saltar aquest pas, si algú tingués algun problema, hauria de provar les comandes
especifiques per a cada sistema de fitxers que mostrarem més endavant.
Per muntar un USB primer hem de trobar-lo per saber com es diu, primer farem un llistat dels
dispositius:

ls /dev/sd*

Llavors ens apareixerà un llistat:

Els “sda” són les particions de la tarja SD on està el sistema operatiu, els “sdb” que apareixeran és el
USB, la partició del sistema de fitxers es sdb1 (el sistema en Linux com a mínim en té 2).
Val, ara ja sabem quin és el nostre dispositiu, ara necessitem un sistema de fitxers on muntar-lo, per
a això ens assegurarem que existeix la carpeta “/mn/usb” en cas que no la crearem.
Per acabar muntarem el dispositiu en aquesta carpeta, per fer això en un principi ens ha de
servir amb:

sudo mount /dev/sdb1 /mnt/usb

En cas de què sorgeixi algun problema amb el sistema de fitxers, procedirem a especificar-lo:

Si és FAT32:
sudo mount –t vfat /dev/sdb1 /mnt/usb

Si és NTFS:
sudo mount –t ntfs-3g /dev/sdb1 /mnt/usb

Per desmuntar el dispositiu per a poder extraure’l amb seguretat, només hem d’escriure:

sudo unmount /dev/sdb1

42
Christian Pizarro Introducció a Linux amb RPi

4. “rar”, “tar”, Explora el directori on has muntat l’USB, allí trobaràs un arxiu que es diu ROMS.rar,
copia’l a la teva carpeta personal, desmunta l’USB i desconnecta’l. Segurament no hi haurà instal·lat
el programa “rar”, fes ús dels coneixement adquirits per instal·lar aquest programa.
Ens posicionarem a la carpeta personal i executarem la següent comanda:

rar –x ROMS.rar

Ja que hi som comprimirem la carpeta “tutorial” amb la següent comanda:

rar –a el_meu_rar.rar /home/el_teu_nom_dusuari/carpeta_tutorial


on substituirem els noms necessaris per a que coincideixi amb la nostra ruta d’origen i el nom que
volem que tingui el rar, això si, ha de acabar en “.rar”.

També es pot fer amb el programa “tar”, les comandes necessàries són:

Per extreure:
tar –xzvf arxiucomprimit.rar

Per comprimir:
tar –czvf ariucomprimit.rar /ruta/del/arxiu_acomprimir

YOU_D@_IT_GREAT!~/:
Ara ja pots treballar amb Linux sense atzucacs! Aquest és el primer pas per arribar a ser administrador de
sistemes, segur que ara entens millor com funcionen els sistemes Linux, i segur que t’han sorgit moltes
preguntes noves, ara ja pots començar a investigar i ampliar horitzons, qui sap, potser ets tu qui amplia
aquesta guia o en fa una de millor! ^^.

43
Christian Pizarro Introducció a Linux amb RPi

Emulació de videoconsoles amb Retroarch


En els capítols anteriors ens vam descarregar un repositori, després vàrem instal·lar el programari/llibreries
necessàries i ens vam copiar les ROMS a la carpeta personal, ara és hora de provar com funciona! Però abans
de tot, si encara està en mode consola, inicia el entorn gràfic amb la comanda “startx”.

Time to play!
El programa Retroarch, com ja hem dit abans es tracta d’un emulador, aquest interpreta les dades de les
ROM’s , però que és una ROM?

ROM són les sigles en Anglès de Read Only Memory (memòria només de lectura), aquestes memòries eren
les que s’empraven per comercialitzar els jocs antics en forma de cartutxos, avui en dia dins del món dels
emuladors una ROM és una arxiu binari que conté les dades dels cartutxos, cd’s, i altres dispositius que es
feien servir per a emmagatzemar videojocs.

Ara que ja sabem què és una ROM i en tenim unes quantes que ens ha pasat el professor en el capítol
anterior, és hora de començar.

1. Ho podem fer pel menú però m’agrada ser clàssic, així que comença obrint una terminal, un cop
l’hagis obert, escriu “retroarch” i prem la tecla “intro".

Ens ha de sortir un menú com aquest.


Per navegar farem servir les tecles següents:
 ESC (Tanca l’emulador).
 Backspace (Tecla d’esborrar, tirar enrere dins del menú).
 Shift (Mayus, mostra informació sobre l’opció seleccionada).
 Intro (Acceptar)
 Fletcha amunt/avall (Navegar pel menú).
 Fletcha esquerra/dreta (Navegar per les pestanyes del menú i seleccionar entre varies
opcions).

44
Christian Pizarro Introducció a Linux amb RPi

2. Ara el següent, és canviar el llenguatge per a posar-lo en el que ens vagi millor, per mala sort, no
tenim la versió en català, així que durant la guia el posarem en castellà.
a. Amb les fletxes esquerra/dretra navega fins al menú de configuració. Busquem la opció
“User” amb les fletxes d’amunt/avall i premem enter.

b. Altre cop amb les fletxes amunt/avall, busquem l’opció “Language” i amb les fletxes
esquerra/dreta seleccionem el que ens vagi millor.

c. Per tal que els canvis sorgeixin efecte hem de reiniciar l’emulador, prem ESC i torna’l a iniciar
tal i com s’especifica al punt “a.”.

45
Christian Pizarro Introducció a Linux amb RPi

3. El menú ens ofereix tot tipus de configuració, però ara per ara només ens centrarem en provar
d’obrir una ROM.
a. Amb l’ajuda de les fletxes anirem a la secció “Cargar contenido” i premem enter.

b. Seleccionem l’opció de “seleccionar archivo y detectar núcleo”, això ens permetrà buscar els
arxius binaris en un sistema de fitxers i detectarà automàticament quina màquina ha de
emular (Gameboy, DS, PS!, MAME, N64,...).

46
Christian Pizarro Introducció a Linux amb RPi

c. Naveguem per les carpetes fins trobar la vostra carpeta personal i la de ROMS que hem creat
anteriorment.

d. Després ens demanarà que seleccionem entre diferents nuclis per la màquina a emular,
depenent del nostre sistema o hardware hi hauran alguns que no ens funcionarà, per tant, si
no us funciona a la primera, seleccioneu un altre nucli.

47
Christian Pizarro Introducció a Linux amb RPi

e. Ja ho tenim!

f. Bé el primer problema que ens trobarem és que no sabem quins són els controls, la
configuració predeterminada espera trobar un joystick o comandament de videoconsola,
però sinó el detecta fa servir el teclat. El menú de configuració de l’entorn gràfic del
programa no ens permet especificar la distribució dels controls. Per fer-ho necessitem editar
l’arxiu de configuració que es troba a “/etc/retroarch.cfg”

La imatge ens mostra les tecles assignades entre cometes. Per canviar la distribució només
cal modificar-ne el contingut, un cop tinguis modificat l’arxiu desa els canvis, i torna a
executar l’emulador. Ja ho tindràs tot al teu gust.

48
Christian Pizarro Introducció a Linux amb RPi

Sonic Pi
La creativitat és una habilitat clau per a ser un bon programador, però a vegades sembla que la programació,
en el mon artístic , ocupa un segon lloc, sovint rellevat a la creació de programes d’edició. Això no és
tècnicament així, si que és cert que trobem molts programadors creant programes per a compositors,
editors, il·lustradors, etcètera, però no existeixen moltes eines per a crear programant! En aquesta guia fem
una petita aproximació a Sonic Pi, un programa (intèrpret) que ens permet escriure codi per a crear
qualsevol melodia, amb un control màxim sobre les característiques sonores de cada beat, el qual la fa un
poderosíssima eina de creació.

Primer cop d’ull


Iniciem la nostra RPi en mode gràfic, el software Sonic Pi ve preinstal·lat amb l’última distribució de
Raspbian-Jessie, però si feu servir versions antigues, el podeu aconseguir mitjançant l’apt-get.

Inicia Sonic Pi i en pocs segons s’obrirà i ens apareixerà un entorn com el següent:

49
Christian Pizarro Introducció a Linux amb RPi

1. Editor: Aquí és on escriurem el nostre codi.


2. Run: Executa el programa. (Alt+R)
3. Stop: Atura el programa. (Alt+S)
4. Save: Desa el programa en mode text pla.
5. Rec: Fa una gravació d’àudio del so que estigui generant el nostre programa.
6. Size -: Redueix la grandària de la font del editor.
7. Size +: Augmenta la grandària del text del editor.
8. Align: Autoindenta el codi. (Alt+M)
9. Info: Mostra la informació de la versió.
10. Help: Obre la finestra d’ajuda. (Alt+I)
11. Pref: Mostra el menú de preferències. (Alt+P)
12. Menú de preferències.
13. Log del programa (mostra què està sonant en cada moment).
14. Finestra d’ajuda.

Bé, no cal parar-se massa ara per ara en detalls avorrits, potser seria interessant copiar algun codi i jugar una
mica amb ell, així ens sorgiran preguntes i serem capaços de veure el potencial d’aquesta eina, després
començarem a treballar en crear el nostre codi des de zero.

CopyPaste
Anem a investigar una mica això dels programes. Fins ara lo més comú és que per copiar una cançó he
d’enviar un arxiu mp3 o wav, però el fet de programar la música és que ens permet compartir-la en format
text pla i d’aquesta forma fer-ho molt més ràpidament! Prova a obrir el menú d’ajuda i ves a la secció
d’exemples. Fes una petita cerca, ves copiant i escoltant codis a veure quin t’agrada més, després prova a
modificar el teu codi, recorda que si després de modificar-lo no funciona, pots prémer “ctrl+z” i desfaràs
l’últim canvi efectuat.

Primer copiem aquest codi (pots copiar el que vulguis, nosaltres farem servir aquest per l’exemple).

Per començar pots provar de variar els números que es veuen en blau, més endavant veurem diversos tipus
de paràmetres i quins són els seus usos. RECORDA la finestra d’ajuda és la teva amiga, consulta-la sempre
que tinguis dubtes!!!

50
Christian Pizarro Introducció a Linux amb RPi

En la imatge següent podem veure com hem inclòs dins d’un bucle el codi de mostra, perqu així es
reprodueixi infinitament, i hem variat el rang (range) a la línia 9.

Mola eh?!

Per a continuar l‘experiment, seria interessant que et fixessis en la sintaxis del bucle.

Ara prova de executar el programa, veuràs que un cop ha acabat, torna a començar, prova de modificar el
codi sense prémer el “stop” i quan hagis acabat de modificar-lo torna a prémer “run”. Aquesta
característica ens permet programar la musica com si realment estiguéssim tocant un instrument.

WOW Ja has fet el teu primer directe!

51
Christian Pizarro Introducció a Linux amb RPi

Primeres notes
Espero que t’ho hagis passat molt bé a l’apartat anterior. És possible que hagis tingut errors i que hagis hagut
de refer més d’una línia, és normal, no et preocupis, la sintaxis és important a l’hora de programar, si mai el
codi pateix un error i no s’executa podem veure el “log” del programa i aquest ens indicarà la línia on tenim
l’error, revisa el manual d’ajuda per recordar la sintaxis correcta.

Ara si vos desa la feina que hagis fet, i borra l’editor.

Seqüencies i bucles
1. “play”, La comanda “play” executa una nota, per
defecte aquesta dura un “beat”, per defecte el
“tempo” del programa està a 60bpm (beats per
minute), per tant aquesta durarà un segon. Per
tocar una nota nomes hem de escriure “play”
seguit d’un espai i un número:

Els números fan referència a les tecles del piano,


però de la mateixa manera que veiem en la
imatge de la dreta, també podem fer servir
notació musical:

Molt bé! Investiga, prova de posar decimals “play


75.42” prova de posar més d’un play, que passa?

52
Christian Pizarro Introducció a Linux amb RPi

Com hauràs vist si poses més d’un “play” estàs creant acords, els acords no són més que notes
tocades paral·lelament. Prova de crear els teus propis acords.

PISA: Si et fixes a la llegenda del piano, s’especifiquen les freqüències de les vibracions de cada nota,
els acords acostumen a sonar millor si les freqüències són harmòniques, es a dir, les seves
freqüències són múltiples entre si).
EXTRA: Amb la comanda “use_bpm” seguida d’un número podem canviar la duració dels beats!

2. “sleep”, La comanda “sleep” funciona semblant a la comanda “play”, només l’has d’escriure i posar-
li un número com a paràmetre. Aquest número significa la quantitat de beat que ha de romandre
esperant abans d’executar la següent instrucció, és important saber que si no vols que cap no es
trepitgi, has de posar un “sleep” d’igual o superior duració que la nota anterior (en principi és 1,
però més endavant veurem que es pot modificar).
Prova a crear les teves melodies!

3. “times”, “live_loop”, Aquestes comandes en serveixen per iniciar bucles, molt útils si volem repetir
la nostra melodia, “times” en repetirà un tros de codi tantes vegades com el número que li passem
com a paràmetre, i “live_loop” en repetirà el codi indefinidament. Ara mateix s’acaben d’obrir
infinitat de possibilitats, i tot just acabem de començar, primer prova de repetir 5 cops la teva
melodia seguint el esquema de sintaxis següent:

53
Christian Pizarro Introducció a Linux amb RPi

Continua provant, ara amb la estructura “live_loop” com ja havíem vist abans:

Amb els conceptes apresos fins ara, practica una mica, prova a copiar codis del menú d’exemples i posar-los
dins de bucles, i si poses un bucle dins d’un bucle? Que passa si poso dos bucles dins d’un tercer? S’executen
alhora? Com podem evitar-ho?

54
Christian Pizarro Introducció a Linux amb RPi

Condicionals i números aleatoris


Una de les coses que realment m’apassiona de programar música és que tens la capacitat de crear obres que
varien per si soles, obres que potser mai les escoltaràs dos cops igual. No et sembla fantàstic? Anem a
experimentar.

1. “rand” En servirà per elegir un número entre 0 i el número especificat, per exemple rand(10) donarà
un número entre 0 i 10. Prou de xarrameca, anem a provar-ho, en aquest cas també farem servir
l’operador “+”.

Espero que us hagi entusiasmat tan com a mi  ara practica, prova a posar diferents números i
notes, a sumar, restar, multiplicar, dividir! (+,-,*,/,)

Continua experimentant una estona amb tot el que has aprés abans de avançar al següent exercici.

55
Christian Pizarro Introducció a Linux amb RPi

2. “if”, “else”, Ens permetran establir condicions que de ser complides o no, ens desviaran a una part o
altra del codi, per a fer-ho una mica més gràfic, fixa’t en aquest codi d’aquí avall:

‘L“if” ens comprovarà si certa condició es compleix, en cas de què si, executa el codi indentat a
continuació, en cas contrari executarà el codi indentat després del “else”
En aquest apartat et recomano que provis a modificar la condició a complir, també pots provar de
concatenar condicionals!

4. Bé, ja ho tens molt dominat, però per ser un mestre tens de poder millorar per tu mateix, investiga
les possibilitats d’aquestes comandes que has aprés consultant a la finestra d’ajuda la pestanya de
“lenguaje”, allí trobaràs molta informació molt ben redactada, investiga les comandes “range”,
“rrand”, “rand_i” i “rrand_i”. Després prova d’implementar aquestes noves comandes a les teves
melodies!

56
Christian Pizarro Introducció a Linux amb RPi

Estructures de dades, algoritmes i funcions


En programació treballar amb sets de números és molt important, per a treballar amb aquests sets s’utilitzen
les anomenades llistes, les llistes són un conjunt de número o de variables o fins i tot d’altres llistes! És comú
referir-se a aquestes com “arrays”. Estic ben segur que en sabràs trobar un bon ús per a les teves
composicions.

1. Per entrar en matèria, primer investigarem experimentant per nosaltres mateixos amb una llista
simple. Prova d’escriure el codi següent:

Interessant oi?

2. Fàcil! Però això no s’acaba aquí. La comanda “play_pattern” ens permet agafar una llista i reproduir
cadascun dels seus elements per separat.

A més a més té una cosina “play_pattern_timed” que ens permet especificar els temps entre les
notes amb l’ajut d’una altra llisa.

57
Christian Pizarro Introducció a Linux amb RPi

Si t’hi fixes la llista de temps és més curta que la de notes, això farà que quan acabi tot els elements de la
llista de temps, tornarà a començar. Si vols introduir una nota mudo o silencia o pots fer amb “nill” o “:r”.

Et proposo que facis diferents llistes, unes per temps i altres per notes, també pots provar de generar llistes
amb números aleatoris!

És hora de anar fent un petit repàs als diferents algoritmes que ens proporciona Sonic Pi. Amb algoritmes
ens referim a una cadena de decisions que ens permet gestionar informació, en català, vol dir quines seran
les coses a tenir en compte i en quin ordre les farem per a obtenir un resultat. Fins ara ja havíem treballat
amb algoritmes, de fet, quan hem treballat amb condicionals estàvem creant el nostre algoritme! Aquests
algoritmes els anomenem funcions.

3. Amb les funcions “scale” i “chord” podem generar escales musicals, revisa el manual i observa
l’exemple, veuràs que les possibilitats són increibles!

I si ho posem dins d’un bucle i fem ser ir la funció “choose” per a que elegeixi una nota aleatoria de
entre totes les de la llista:

58
Christian Pizarro Introducció a Linux amb RPi

EXTRA: Si vas al manual i busques la comanda “chord” trobaràs un llistat dels acords que permet
Sonic Pi.

4. Aprofitarem les llistes que hem creat fins ara per introduir les funcions per endreçar i repassar llistes
(“.shuffle”, “.sort”, “.each”). Fixa’t en l’exemple i prova d’endreçar les teves llistes a l’hora de
reproduir-les.

I ara desendreçarem la llista :

Ara tocarem cada nota de la llista per separat amb un petit bucle:

59
Christian Pizarro Introducció a Linux amb RPi

5. Està molt bé fer servir les funcions que ens proporciona l’entorn, però també ens podem fer les
nostres! Mira’t l’exemple i prova de construir varies funcions que toquin diferents elements, prova
de combinar el que has aprés fins ara.

Pots crear tantes funcions com vulguis, prova de de crear varies funcions i de cridar-les una darrera
l’altra. Ara posa “sleep” més un valor major que la duració de cada funció.

Com hauràs pogut comprovar, és important saber quan comença i acaba una funció, o un bucle, els
temps amb la música són crucials!

6. Per acabar aquesta secció aprendrem a sincronitzar el nostre codi a un compàs. Necessitarem una
nova comanda “sync”, aquesta sincronitza el nostre bucle o funció amb l’inici del bucle que li passem
com a paràmetre.
Primer creem un “live_loop” com el del exemple:

60
Christian Pizarro Introducció a Linux amb RPi

Ara prova a posar dins dels teus bucles, la comanda “sync :compas”:

Posa-ho dins de més d’un bucle (“live_loop” millor), però en alguns, tot just a dins escriu la paraula
“stop”, després executa el programa i mentre s’està executant comenta el stop en algun bucle i
descomenta’l en algun altre i torna a executar el programa. Veus com es sincronitzen cada 4 beats?

61
Christian Pizarro Introducció a Linux amb RPi

Sintetitzadors , sobres, mostres i FX


Fins ara ens hem centrat e els fonaments de programació de Sonic Pi, Però no ens hem para gaire a treballar
sobre el tractament del so, i es en aquest últim apartat on ens dedicarem a fer una ullada de més a prop a les
diferents possibilitats de manipular el so que té aquest intèrpret.

Els sintetitzador existeixen des de principis del anys 70. Aquests permetien manipular el so convertint-lo a
senyal elèctriques i manipulant el voltatge d’aquestes, això va suposar una revolució en la industria musical
fent aflorar tot un gènere nou d’estil musical, però el tractament electrònic del so es remunta fins al inicis de
segle amb la invenció dem magnetòfon o el theremin i la composició de música concreta, anys més tard, a
partir dels anys 40 la música electrònica començava a obrir els ulls. Per a generar música electrònica
s’emprava el mètode de modular les freqüències de llum que arriben a una cèl·lula fotoelèctrica pintant
“gargots” a una cinta film de pel·lícula de 35mm (Oràmica). A Al 1956 es va composar la primera banda
sonora íntegrament electrònica (Forbidden Plantet) però ja feia temps des que la música electrònica
començava a obrir els ulls, hi havia mètodes per a produir música electrònica pel mètode de modular les
freqüències de llum que arribaven a una cèl·lula fotoelèctrica pintant “gargots” a una cinta film de pel·lícula
de 35mm.

En un principi hem treballat tota l’estona amb un timbre en concret per a cada nota, el timbre és el conjunt
de freqüències harmòniques que caracteritzen cada font sonora (per això sona diferent un piano i una
guitarra encara que toquin la mateixa nota). Ara tractarem de manipular aquestes notes mitjançant tot el
conjunt de possibilitats que ens ofereix Sonic Pi.

1. El llenguatge ens permet elegir entre tot tipus de sintetitzadors, per a accedir a ells farem servir la
comanda “use_synth” més el sintetitzador a utilitzar, en l’exemple veiem com el autocompletat ens
permet fer un ràpid cop d’ull assortit de sintetitzadors disponibles.

Prova d’executar els diferents codis que hagis escrit fins ara, segur que trobes algun que et sembli
interessant.

Amb això aconseguíem canviar en general totes les nostres notes, però si volem anar més enllà tenim que
entendre una mica mes en profunditat com es generen el son a Sonic Pi.

2. Cada nota que es reprodueix a Sonic pi mitjançant, per exemple la comanda “play”, conté una sèrie
de paràmetres que defineixen la seva duració, amplitud, lateralitat, etc. Fins ara hem treballat amb

62
Christian Pizarro Introducció a Linux amb RPi

duracions determinades, per veure el que et vull dir prova d’executar el següent codi

Com pots comprovar la duració de cada nota s’ha allargat, però que és el “release”? doncs es tracta
d’una sèrie de paràmetres anomenats “ASDR” que ens permetran variar la duració i la amplitud de
les notes, de fet el que fem és dividir la nota des de que comença a sonar fins que acaba i dividim
aquest període en diverses parts que veurem a continuació, “release” n’és una d’elles.

Com hem pogut veure a la imatge al aplicar el “release”, poder variar la duració de la nota fent que
s’apagui lentament, anem a fer un cop d’ull a la resta de paràmetres ASDR, d’ara en endavant, els
anomenarem sobres.

a. “Attack” i “release” Sinó especifiquem res el programa passa de amplitud 0 (silenci) fins a
amplitud (1) (50% del volum) instantàniament i després té un release de 1, prova com a la
imatge del exemple de modificar notes per a que tinguin un temps de atac superior a 0.5.

Prova a manipular diverses vegades i amb diferents valor en notes diferents com afecta això
al so del nostre codi, també pots provar de crear un “loop” on els nivells de duració dels
sobre variïn amb el paràmetre “range” o “rrand”.

63
Christian Pizarro Introducció a Linux amb RPi

Recorda de col·locar una “,” després de cada valor de un sobre per a que el programa entengui
que li estem passant un altre sobre.

b. “Sustain” També podem afegir una altra fase en la que el so es manté a la amplitud màxima
des de el punt àlgid del atac fins al mes alt del release.

c. “Decay” Per a un control més exhaustiu de les notes, existeix la fase de decaiguda “decay”
en la que la amplitud baixarà de la amplitud d’atac (“attack_level”) fins a la amplitud de
sosteniment (“sustain_level”) a menys que s’especifiqui un nivell de decaiguda
(“decay_level”), llavors durant el temps de decaiguda arribarà a aquest nivell i duran el
temps de sostenim arribarà al nivell de sosteniment per a després acabar amb el lliurament
(“release”).

Per a més sobre visita la secció de llenguatge de la ajuda i busca la comanda “play”.

64
Christian Pizarro Introducció a Linux amb RPi

Deu ni do! Ja podem fer quasi el que vulguem!, per encara queden una quants aspectes per investigar en
aquesta introducció a Sonic Pi. Sabies que pots predeterminar els valor dels sobre al assignar un
sintetitzador?

3. “use_synth_defaults” Permet assignar un sobre determinats a totes les notes tocades amb un
sintetitzador. Prova a manipular un patró de notes sencer fent servir aquesta comanda com en
l’exemple:

Un altre del aspectes interessant de Sonic Pi és la capacitat d’afegir efectes al nostre codi, com si de la
pedalera d’un guitarrista es tractés, d’això se’n diuen efectes o FX i el programa ve amb un assortit d’ells. Si
anem a la finestra d’ajuda podrem seleccionar la pestanya de FX i allí tindrem un mostrari de tots els efectes
disponibles.

65
Christian Pizarro Introducció a Linux amb RPi

Per començar a conèixer aquesta utilitat utilitzarem dos efectes molt coneguts: la reverberació i l’eco.

4. Ara que ja tenim uns grapat de codis amb els que jugar, prova d’afegir efectes. Busca “echo” a la
llibreria FX i fixa’t en els paràmetres “phase” i “decay”, aquests ens permetran jugar amb els temps
d’eco. Mira l’exemple i després manipula el teu codi.

Si t’hi fixes hem de especificar amb un “end” on acaba la secció del codi a la que s’ha d’aplicar
l’efecte. Continua jugant amb els valors, canvia el sintetitzador, esbrina lo que pot canviar el so
jugant amb els paràmetres que ens proporcionen.

5. Busca a la llibreria d’FX l’efecte “reverb” i veuràs els seus paràmetres, per començar prova amb
“mix” i “room” tal i com hem fet en l’exercici anterior.

Aplicar efecte a les nostres notes pot ser molt divertit, però aquí no s’acaba el potencial. Fins ara hem
generat el so nosaltres mateixos al escriure línies de codi, ara amb l’ajuda de les mostres podrem agafar son
gravats anteriorment, es a dir, et podràs gravar, fer servir cançons, buscar frases divertides, afegir sons
d’instruments reals!

6. Sonic Pi ve carregat de “samples” (mostres) que podem trobar a al finestra d’ajuda, també veurem a
la mateixa finestra o per internet infinitat d’exemples que fan servir “samples”, nosaltres primer
practicarem amb un exemple de la llibreria. Prova d’escriure el codi següent:

El paràmetre “rate” estipula en el número de beat en que s’ha de reproduir la mostra, manipula
aquest número, prova a posar números molt petit, i molt grans, positius i negatius, busca a la
llibreria més mostres!

66
Christian Pizarro Introducció a Linux amb RPi

Fixa’t que si el número és negatiu, quan més gran sigui, més ràpid es reproduirà, en canvi si és
positiu serà tot lo contrari.

7. En podríem passar tot el dia investigant les mostres de les que disposa el programa, ho se XD, però
encara hi ha funcions interessants de les mostres per conèixer. No només li podem especificar
“samples” especificant el nom, sinó també especificant el camí (ruta de d’arxiu) i carregant-ne noves
de les carpetes personals. Hem de tenir en compte que Soni Pi només accepta uns formats d’àudio
en concret: .wav, .wave, .aif o .aiff. En Aquest exercici hauràs de crear algun clip de so i carregar-lo
com a sample tal i com es veu en l’exemple. Recorda que has de desar el teu arxiu d’àudio en una de
les extensions abans esmentades, demana ajuda al teu professor si cal.

Fixa’t que hem creat una variable per especificar la ruta. També pots controla el “rate” i altres
paràmetres de mostreig!

67
Christian Pizarro Introducció a Linux amb RPi

Apèndix
Webs d’interès:
Raspberry Pi:
https://www.raspberrypi.org/
https://en.wikipedia.org/wiki/Raspberry_Pi
https://en.wikipedia.org/wiki/Linux
http://www.hongkiat.com/blog/pi-operating-systems/
https://retropie.org.uk/
http://elinux.org/RPi_Distributions
http://pi.minecraft.net/ (AQUEST DONA PER A UN CAMPUS SENCER!!!)

Bash i Linux:
https://www.gnu.org/software/bash/manual/bashref.html
https://manpages.debian.org/cgi-bin/man.cgi
http://blog.desdelinux.net/mas-de-400-comandos-para-gnulinux-que-deberias-conocer/

Roms i emuladors:
http://www.emuparadise.me/roms-isos-games.php
http://www.freeroms.com/
http://roms3ds.net/descargar-category/roms-3ds-eur
http://www.emudesc.com/

Sonic Pi:
http://sonic-pi.net/
http://www.cl.cam.ac.uk/projects/raspberrypi/sonicpi/media/sonic-pi-cheatsheet.pdf
http://newt.phys.unsw.edu.au/jw/notes.html
http://www.interactiveclassroom.net/?p=1357
https://gist.github.com/xavriley/87ef7548039d1ee301bb
https://github.com/euruband/sonic-pi-examples
https://gist.github.com/danreedy/a0f0aa1ec2eb275c55a2
https://github.com/rbnpi/SonicPi-Tutorials

68

You might also like