Professional Documents
Culture Documents
Introducció A Linux Amb Raspberry Pi Version040920170149
Introducció A Linux Amb Raspberry Pi Version040920170149
Introducció A Linux Amb Raspberry Pi Version040920170149
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
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
3
Christian Pizarro Introducció a Linux amb RPi
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
Ara doncs farem un ullada ràpida a tots els seus components principals:
5
Christian Pizarro Introducció a Linux amb RPi
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
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
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.
13
Christian Pizarro Introducció a Linux amb RPi
configuració.
14
Christian Pizarro Introducció a Linux amb RPi
15
Christian Pizarro Introducció a Linux amb RPi
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ó:
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
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.
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.
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.
/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
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.
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
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! ^^
23
Christian Pizarro Introducció a Linux amb RPi
24
Christian Pizarro Introducció a Linux amb RPi
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:
I per últim:
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:
Nº
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.
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”.
La primera lletra de davant de tot especifica si es tracta d’un directori “d”, un arxiu “-“ o un enllaç “l”.
30
Christian Pizarro Introducció a Linux amb RPi
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
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.
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.
33
Christian Pizarro Introducció a Linux amb RPi
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ó.
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
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.
37
Christian Pizarro Introducció a Linux amb RPi
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.
É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.
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:
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
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:
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.
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 “&”.
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*
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:
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:
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
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
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".
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ó.
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
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.
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.
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:
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
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
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.
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
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