Software hardware librea - dok

89
erik SOFTWARE ETA HARDWARE LIBREA

description

Informatika tolosaldea proiektua

Transcript of Software hardware librea - dok

Page 1: Software hardware librea - dok

erik

SOFTWARE ETA HARDWARE LIBREA

Page 2: Software hardware librea - dok

Tolosaldea TLHI

1

Software eta Hardware librea

Aurkibidea

1. SOFTWARE LIBREA ................................................................................................................................ 3

SARRERA ........................................................................................................................................................ 3

2. 1- POSTA ZERBITZARIA ......................................................................................................................... 4

1.1- POSTA LOKALA ....................................................................................................................................... 6

1.1.0- ZERBITZARIA .................................................................................................................................... 6

1.1.1- DNS ................................................................................................................................................ 12

1.1.2- MTA ............................................................................................................................................... 16

1.1.3- KORREOA IRAKURTZEKO PROTOKOLOAK ...................................................................................... 20

1.1.4- ERABILTZAILEAK SORTU ................................................................................................................ 21

1.1.5- TELNET BIDEZ PROBATU ................................................................................................................ 22

1.1.6- POSTA BEZEROA ............................................................................................................................ 30

1.1.7- POSTA BEZERO PROPIOA ............................................................................................................... 34

1.2- POSTA INTERNETEN.............................................................................................................................. 42

1.2.1- NO-IP ............................................................................................................................................. 42

1.2.2- PORTUEN BERBIDERAKETA ........................................................................................................... 47

1.2.3- POSTFIX REKONFIGURATU ............................................................................................................ 49

1.2.4- SQUIRRELMAIL REKONFIGURATU ................................................................................................. 50

1.2.5- POSTA PROBATU ........................................................................................................................... 50

3. 2- ZENBAKIEN JOKOA.......................................................................................................................... 51

2.1- AZALPENA ............................................................................................................................................. 51

2.2- PROGRAMAREN KODEA ....................................................................................................................... 51

2.3- PROGRAMA KONPILATU....................................................................................................................... 54

2.4- PROGRAMA EXEKUTATU ...................................................................................................................... 54

2.5- SOFTWARE LIBRE BIHURTU .................................................................................................................. 54

2.5.1- KONTUA SORTU ............................................................................................................................. 55

2.5.2- PROGRAMA PUBLIKATU ................................................................................................................ 55

4. HARDWARE LIBREA ............................................................................................................................ 58

SARRERA ...................................................................................................................................................... 58

3.1- RASPBERRY PI ....................................................................................................................................... 58

3.1.1- EZAUGARRIAK ................................................................................................................................ 59

3.1.2- FUNTZIONAMENDUA .................................................................................................................... 60

3.1.3- MARTXAN JARRI ............................................................................................................................ 60

Page 3: Software hardware librea - dok

Tolosaldea TLHI

2

Software eta Hardware librea

3.1.5- PROIEKTUAK .................................................................................................................................. 65

3.2- ARDUINO .............................................................................................................................................. 72

3.2.1- EZAUGARRIAK ................................................................................................................................ 73

3.2.2- FUNTZIONAMENDUA .................................................................................................................... 73

3.2.3- INSTALATU ..................................................................................................................................... 74

3.2.4- KONFIGURATU ............................................................................................................................... 75

3.2.5- PROIEKTUAK .................................................................................................................................. 76

3.3- RASPBERRY PI + ARDUINO .................................................................................................................... 80

3.3.0- ELKARKETA .................................................................................................................................... 80

3.3.1- SEGURTASUN SISTEMA ................................................................................................................. 82

5. ONDORIOAK ....................................................................................................................................... 88

6. BIBLIOGRAFIA ..................................................................................................................................... 88

Page 4: Software hardware librea - dok

Tolosaldea TLHI

3

Software eta Hardware librea

SOFTWARE LIBREA

SARRERA Software librea, kode askeko softwarea da, hau da; askatasunez erabili, kopiatu, aldatu, birbanatu eta saldu daitekeen softwarea da. Askotan, software librea dohainikako softwarearekin identifikatzen da, baina hori ez da horrela. Normalean, software librea dohainik izaten da, baina ez beti. Beraz, software bat librea izateak ez du esan nahi dohainik dela, bere iturri kodea askea dela baizik, eta hau ordaintzekoa edo dohainik izan daiteke. Horregatik, software librea eta dohainikako softwarea bereizi egin behar dira. Software librea aspalditik da ezaguna, eta horrelako software asko dago munduan, geroz eta indar gehiago hartzen ari dena. Kode askeko sistema eragileen artean, GNU/Linux sistema eragilea dugu adibiderik ezagunena, baina askoz gehiago daude. Sistema eragile hau da sistema eragile askeen artean gehien erabiltzen dena, horregatik da ezagunena, eta Windows eta Mac OS bezalako ordaintzeko sistema eragileetara gehien gerturatzen dena. Gaur egungo smartphonetan gehien erabiltzen den sistema eragilea Android da, eta hau ere software librea da, GNU/Linux sistema eragilean oinarrituta dagoelako, hain zuzen ere, Linux nukleoa erabiltzen du. Beraz, oso garrantzitsua da software librea gaur egun, eta honi esker, aurrerakuntza handiak egin daitezke, edozeinek hobetu dezakeelako beste baten egindakoa, eta hori oso aberasgarria da. Gainera, enpresa askotan software askea erabiltzeari ekin diote, ordaintzeko programen lizentziak oso garestiak direlako, eta dohainik den software libreari esker, diru asko aurreztu dezakete. Nire proiektuaren atal honetan, software librearen adibide bezala, kode askeko posta zerbitzari bat egingo dut, kode askeko posta bezeroa erabiltzen duena.

Page 5: Software hardware librea - dok

Tolosaldea TLHI

4

Software eta Hardware librea

Beraz, Linux makina batean posta zerbitzari bat instalatu eta konfiguratuko dut. Hau, eskuz egingo dut, behar den elementu bakoitza banan-banan instalatuz. Posta zerbitzarian asko sakonduko dut, hau da, ez dut bakarrik posta zerbitzari bat jarriko eta listo, honen aukera ezberdinak aztertuko ditut, eta baita segurtasunaren aldetik ere. Hasieran, sare lokalean egingo dut, DNS zerbitzari lokalarekin, baina gero, interneten atzigarri jarriko dut, eta horretarako dauden aukera ezberdinak aztertu. Posta bezeroan ere sakondu egingo dut. Lehenengo, posta bezero sinple bat instalatuko dut bezeroek korreoa bidali eta irakurri ahal izateko, eta gero, nire posta bezero propio bat ere programatuko dut, PHP lengoaian. Horretarako, XHTML lengoaiaren bidez web orria diseinatuko dut, eta CSS bidez itxura emango diot. Beste alde batetik, posta bidali eta irakurtzeko erabiltzen diren protokoloak ere aztertuko ditut, eta nire posta zuzenean protokolo hauek erabiliz ere probatuko dut, posta zerbitzuak maila baxuan nola funtzionatzen duen ikusteko. Atal hauek landuko ditut:

Posta zerbitzari lokala

DNS lokala

Posta zerbitzaria interneten

Posta bezeroa

Posta bezero propioa

Erabiltzaileak Posta zerbitzariaren izena Soidal izango da, beraz, domeinu lokala “soidal.net” izango da, eta interneteko domeinua, “soidal.no-ip.org”.

1- POSTA ZERBITZARIA Posta zerbitzari bat, sareko aplikazio bat da, internet edo intraneteko makina zerbitzari batean kokatua dagoena. Posta zerbitzariaren bidez, erabiltzaile ezberdinen artean mezuak bidali daitezke. Posta zerbitzu batean, partaide ezberdinak daude:

MTA → Mail Transfer Agent (Korreoa Transferitzeko Agentea) → Korreoa bidaltzeko

Mailbox zerbitzaria (mezu kutxa) → Korreoa gordetzeko

Page 6: Software hardware librea - dok

Tolosaldea TLHI

5

Software eta Hardware librea

LDAP zerbitzaria → Erabiltzaileentzako

Posta bezeroa → Korreoa irakurri eta bidaltzeko Posta zerbitzua posible izan ahal izateko, protokolo hauek erabiltzen dira:

SMTP → Korreoa bidaltzeko → 25 portua

IMAP → Korreoa irakurtzeko → 143 portua

POP3 → Korreoa irakurtzeko → 110 portua

SSL → Protokolo segurua

TLS → Protokolo segurua. SSL-ren ondorengoa. Berez, nahikoa dira SMTP eta IMAP edo POP3 protokoloak, hauen bidez, korreoa bidali eta irakurtzea posible delako, baina, hauek ez direnez guztiz seguruak (ez delako zifraketarik egiten), konexioak seguruagoak izateko, SSL edo TLS protokoloak gehitzen zaie, beraz, biak batera erabiltzen dira, adibidez: SMTP + SSL → 465 portua IMAP + SSL → 993 portua POP3 + SSL → 995 portua

Posta zerbitzarian, SMTP protokoloaren bidez korreoa bidaltzen da, igorletik hartzailera. Korreo hau, MTA-ren bidez garraiatzen da helbidera, eta hartzailearen Mailbox-en gordetzen da. Hau, zifratu gabe bidaltzen da, testu hutsean, beraz, 3.pertsona batek datu paketea lortzen badu, informazioa erraz irakurri ahal izango du, baina SMTP protokoloari SSL edo TLS protokolo segurua gehituz gero, konexioa zifratu egiten da. Hartzaileak korreo hau irakurtzeko, IMAP edo POP3 protokoloen bidez bere Mailbox-era konektatzen da, eta mezua deskargatzen edo zuzenean irakurtzen du.

Page 7: Software hardware librea - dok

Tolosaldea TLHI

6

Software eta Hardware librea

IMAP bidez irakurtzen badu, zerbitzarian dagoen mezua online irakurtzen du, baina POP3 bidez irakurriz gero, mezua zerbitzaritik deskargatzen da bezerora, eta zerbitzarian ezabatu egiten da. Hau ere, zifratu gabe egiten da, beraz, ez da oso segurua, baina SSL edo TLS protokoloak gehituz gero, konexioa zifratzen da. MTA ezberdinak daude: Postfix, Sendmail, Courier, Zimbra... Posta bezeroak ere: Squirrelmail... IMAP eta POP3 protokoloak erabiltzeko zerbitzuak ere: Dovecot (dovecot-imapd, dovecot-pop3d), Courier (courier-imap, courier-pop3)... Beraz, IMAP eta POP3 protokoloak erabiltzeko, protokolo hauentzako zerbitzuak instalatu behar dira. Nire posta zerbitzarian, hauek erabiliko ditut:

MTA: Postfix

Posta bezeroa: Squirrelmail eta Soidal Mail (Nirea)

IMAP: courier-imap

POP3: courier-pop3 Honetaz gain, posta zerbitzari batek MX motako erregistro bat erabiltzen du. Hau, DNS zerbitzari batean erregistratzen da, eta honek, posta zerbitzariaren IP helbidera apuntatzen du, hau da, posta zerbitzaria non dagoen esaten du.

1.1- POSTA LOKALA Lehenengo, posta zerbitzari lokala jarriko dut, hau da, posta zerbitzua sare lokal batean jarriko dut. Beraz, sare lokaleko erabiltzaileek bakarrik erabili ahal izango dute posta zerbitzaria.

1.1.0- ZERBITZARIA Lehenengo eta behin, posta zerbitzari bezala erabiliko dudan ordenagailua aukeratu dut. Horretarako, nire etxeko ordenagailu bat hartu dut, eta bertan Ubuntu sistema eragilea instalatuko dut. Ubuntu sistema eragilea aukeratu dut, GNU/Linux-en kasuan ez delako beharrezkoa Ubuntu zerbitzari bereziak erabiltzea, adibidez Ubuntu Server, hasieran UNIX sistema zerbitzarientzako perntsatuta zegoelako, beraz, Ubuntu Server bezalako sistema eragilea erabili ordez, Ubuntu normal bat erabili dezaket, eta hau zerbitzari bezala prestatu beharko dut.

Page 8: Software hardware librea - dok

Tolosaldea TLHI

7

Software eta Hardware librea

Beraz, nire etxeko ordenagailua hartu dut, karakteristika hauek dituena: Plaka: Asrock ALiveNF7G CPU: AMD Phenom II x4 940 RAM: 2 x 2 GB DDR2 Txartel grafikoa: Sapphire AMD Radeon HD 6850 1GB DDR5 Disko gogorra: 1 x Seagate 500 GB Elikadura iturria: 500 W Beraz, ordenagailu honetan Ubuntu sistema eragilea instalatzeko, lehenengo disko gogorra formateatu eta partizioak egiteari ekin diot.

1.1.0.1- PARTIZIOAK EGIN Disko gogorrak 500 GB dituenez, hau partizionatu egingo dut, hau da, atal logikoetan banatuko dut. Horrela, Ubuntu sistema eragilea datuetatik banatu ahal izango dut, beraz, aurrerago sistema izorratzen bada, ez ditut datuak galduko, eta banatuta daudenez, sistemak erroreak izateko aukera gutxiago izango ditu. Ubuntu sistema eragilearentzako 60 GB utziko dut, programa ezberdinak instalatuko ditudalako, eta sistemak nahikoa edukiera izatea nahi dudalako. Gainera, Ubuntu distribuzioa GNU/Linux sistema eragilea denez, Swapping-a egingo dut. Swapping-a, disko gogorraren zati bat RAM memoria bezala erabiltzea da, hau da, memoria logikoa da. Honi esker, RAM memoria gutxi duten ordenagailuetan, gehiago izatea lortu dezakegu, eta RAM memoria gainezka dagoenean, Swap-erako memoria erabiliko da. Horretarako, partizio bat Swap moduan egingo dut. Honen tamaina, RAM memoriaren araberakoa da. Askoren ustez, Swap-erako utzi behar dugun tamaina, RAM memoriaren bikoitza da, baina hau, UNIX sistemetan izaten zen, RAM memoria oso txikia zen kasuetan, baina GNU/Linux sistemetan ez da horrela, beraz, erregela hau jarraituko dugu:

1 GB RAM baino gutxiagoko sistemetan: RAM-aren edukiera bera (adb; 512 MB RAM, 512 MB Swap)

1 GB eta 4 GB RAM arteko sistemetan: RAM edukieraren erdia (adb; 2 GB RAM, 1 GB Swap)

4 GB RAM baino gehiagoko sistemetan: 2 GB RAM. Beraz, nire ordenagailuak 4 GB-eko RAM memoria duenez, Swap partizioari 2 GB utziko diot, horrekin nahikoa izango delako. Horrela, sobratzen den guztia datuentzako utziko dut, hau da, 438 GB (500 GB – 60 GB – 2 GB).

Page 9: Software hardware librea - dok

Tolosaldea TLHI

8

Software eta Hardware librea

Hau jakinda, partizioak egiten hasi nahiz. Horretarako, Hiren's Boot 10.10 erreminta erabili dut. Hau, abioko sistema berezi bat da, sistema administratzeko eta kontrolatzeko programa ezberdinak dituena. Hau CD batean edo abio USB batean grabatu dezakegu. Nire kasuan, CD batean grabatu dut. Horretarako, Nero Express programa erabili dut. Honekin, Hiren's Boot 10.10 abio sistemaren ISO motako irudia grabatu dut CD-an, abio CD batean bihurtuz. Gero, abio CD hau ordenagailuan sartu dut, eta berrabiarazi egin dut. Hau pizten ari zela, F10 tekla sakatu dut hainbat aldiz, eta abioko menuan CD-Rom-etik arrankatzeko aukeratu dut. Beraz, ordenagailua Hiren's Boot-ekin arrankatu dut. Disko gogorrean partizioak egiteko, Acronis Disk Director Suite programa erabili dut. Hau, Hiren's Boot-en disko gogorra kudeatzeko tresnen atalean dago. Behin programan sartuta, zeuden partizioak ezabatu ditut, eta disko gogorreko espazio librea aukeratuz, partizio berriak egin ditut:

Ubuntu: ext3, 60 GB, primarioa

Datuak: NTFS, 438 GB, logikoa

Swap: Linux Swap, 2 GB, primarioa “Apply” sakatu eta aldaketak aplikatu dira. Bukatzeko, programatik atera naiz.

1.1.0.2- UBUNTU INSTALATU Disko gogorra partizionatu ondoren, Ubuntu sistema eragilea instalatu dut. Horretarako, Ubuntu 12.04 sistema eragilearen ISO irudia grabatu dut CD batean, Nero Express programarekin. Gero, Hiren's Boot-ekin egin dudan moduan, ordenagailua CD honetatik arrankatu dut, eta horrela, Ubuntu sistema eragilearen instalatzailean sartu naiz. Bertan, “Instalar Ubuntu” aukeratu dut, eta instalazioa konfiguratu dut. Ubuntu 60 GB-eko partizioan instalatzeko aukeratu dut. Nire erabiltzailea eta pasahitza aukeratu ditut: Erabiltzailea: erik Pasahitza: ****** Ordenagailuaren izena ere adierazi dut: erik-pc Erlojua konfiguratu ondoren, instalatzen hasi da. Minutu batzuen ondoren, Ubuntu instalatu da, eta CD-a atera ondoren, ordenagailua berrabiarazi dut.

Page 10: Software hardware librea - dok

Tolosaldea TLHI

9

Software eta Hardware librea

1.1.0.3- UBUNTU KONFIGURATU Behin Ubuntu instalatuta, hau konfiguratzeari ekin diot, nire erabiltzailearekin sesioa hasiz.

1.1.0.3.1- Sistema eguneratu Lehenengo, Ubuntu sistema eragilea eguneratu dut. Horretarako, Ubuntu-ren errepositorioak eguneratu ditut, eta gero eguneraketa hauek instalatu ditut. Errepositorio hauek, “apt-get” pakete kudeatzaileak aplikazio eta programak instalatzeko erabiltzen duen pakete zerrenda da. Beraz, terminalean edo kontsolan sartu naiz, “Control+Alt+T” teklak sakatuz. Gero, super erabiltzaile bezala logeatu naiz, agindu honekin: sudo -s Ondoren, super erabiltzailearen pasahitza sartu dut. Errepositorioak eguneratzeko agindu hau erabili dut: apt-get update Gero, eguneraketa hauek instalatzeko: apt-get upgrade Horrela, errepositorioak eguneratu eta eguneraketak instalatu dira.

1.1.0.3.2- Sarea konfiguratu Sistema eguneratu ondoren, sarea konfiguratu dut. Hau, estatikoki konfiguratu dut, eta ez DHCP bidez, zerbitzaria izango delako, eta bere sareko konfigurazioa estatikoa izatea komeni delako, hau da, aldatzen ez dena. Sarea konfiguratzeko, “interfaces” fitxategia editatu dut, “nano” editorearen bidez: nano /etc/network/interfaces Bertan, informazio hau jarri dut: auto eth0 iface eth0 inet static address 192.168.1.30

Page 11: Software hardware librea - dok

Tolosaldea TLHI

10

Software eta Hardware librea

netmask 255.255.255.0 gateway 192.168.1.1 Fitxategia gordetzeko “Control+o” sakatu dut, eta ixteko “Control+x”. Aldaketa hauek aplikatzeko, sarea berrabiarazi dut: /etc/init.d/networking restart Horrela, sarea konfiguratu da, “eth0” interfazea erabiliz. Honi, “192.168.1.30” IP helbidea eman diot, eta “/24”-eko maskara jarri diot. Ate-bide bezala routerraren helbidea jarri dut, “192.168.1.1”. DNS helbidea konfiguratzeko, “resolv.conf” fitxategia editatu dut: nano /etc/resolv.conf Bertan, Google-eko DNS helbidea adierazi dut: nameserver 8.8.8.8

Honekin, sarea konfiguratuta gelditu da.

1.1.0.4- WEB APLIKAZIO ZERBITZARIA Proiektu honen helburua posta zerbitzari bat egitea da, baina honen barruan posta bezeroak erabiliko ditut, eta hauek web aplikazioak dira. Beraz, zerbitzari honek web aplikazioak ere zerbitzatuko ditu, eta horretarako, posta zerbitzaria izateaz gain, web aplikazio zerbitzaria ere izan behar da. Web zerbitzari bat, web aplikazioak zerbitzatzen dituen zerbitzaria da. Honek, hiru elementu ditu:

Web zerbitzaria: Apache, Internet Information Services... Zerbitzariaren aldeko lengoaia ulertuko duen modulua: PHP, Perl, Python... Datu baseak kudeatzeko sistema (DBKS): MySQL, PostgreSQL...

Nire kasuan, web zerbitzari bezala Apache erabiliko dut, zerbitzariaren aldeko lengoaia PHP, eta DBKS bezala MySQL. Hiru elementu hauek instalatzeko, XAMPP (Windows) eta LAMPP (Linux) bezalako paketeak daude, baina ez ditut instalatuko, hauen instalazioa ez delako oso sendoa, horren ordez, elementu bakoitza banan-banan instalatuko dut.

1.1.0.3.1- Apache

Lehenengo, Apache web zerbitzaria instalatuko dut. Horretarako, agindu hau erabili dut:

Page 12: Software hardware librea - dok

Tolosaldea TLHI

11

Software eta Hardware librea

apt-get install apache2 Horrela, Apache2 web zerbitzaria instalatu da, eta honek funtzionatzen duela probatzeko, Apache-ren horri nagusian sartu naiz, web nabigatzailean nire zerbitzariaren helbidea jarriz: http://192.168.1.30/ Horrela, Apache-ren Index orri nagusian sartu da, beraz, hau ondo dago.

1.1.0.3.2- PHP

Apache instalatu ondoren, PHP lengoaia ulertuko duen modulua instalatu dut, eta honekin batera, Apache-rekin lotzeko paketeak: apt-get install php5 libapache2-mod-php5 Horrela, PHP5 eta behar diren liburutegiak instalatu dira. Ondoren, Apache berrabiarazi dut: /etc/init.d/apache2 restart Horrela, aldaketak aplikatu dira.

1.1.0.3.3- MySQL

Azkenik, MySQL datu baseak kudeatzeko sistema instalatu dut, eta Apache eta PHP-rekin lotzeko paketeak ere: apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql Honekin, MySQL DBKS-a instalatu da, eta Apache eta PHP-rekin lotu da. Azkenik, Apache web zerbitzaria berrabiarazi dut: /etc/init.d/apache2 restart Honekin, web aplikazio zerbitzaria erabiltzeko prest dago, baina oraingoz ez dut erabiliko, beraz, momentuz horrela utziko dut, geroago erabiltzeko. Horrela, zerbitzaria prest dago posta zerbitzariarekin hasteko.

Page 13: Software hardware librea - dok

Tolosaldea TLHI

12

Software eta Hardware librea

1.1.1- DNS Posta zerbitzari batek, domeinuak erabiltzen ditu mezuen trukaketa egiteko. Hau da, posta helbide bakoitza, domeinu baten barruan dago. Adibidez, Hotmail konpainiako posta helbide bat badugu, “[email protected]”, “@” karakterea arte dagoena izena izango da, erabiltzailearena, eta ondorengoa, domeinua izango da, kasu honetan, “hotmail.com” domeinua. Beraz, “adibidea” erabiltzailea “hotmail.com” domeinuaren erabiltzailea izango da, eta ezin dira bi izen berdin egon domeinu berean. Beraz, posta zerbitzari batek domeinu baten beharra du, eta hori posible izateko, DNS zerbitzaria behar da aurretik. DNS zerbitzari batek, IP helbide eta izenen arteko trukaketa egiten du, errazagoa delako domeinu izenak erabiltzea IP helbideak baino. Kasu honetan, DNS zerbitzariaren bidez, gure postarako domeinua erregistratuko dugu, beraz, nire posta zerbitzariak “Soidal” izena duenez, “soidal.net” domeinua sortuko dut. DNS zerbitzari hau, sare lokalean edo interneten egon daiteke. DNS-a sare lokalean badago, posta zerbitzariko helbideak bakarrik sare lokal horretan izango dira ezagunak, baina interneten ez, beraz, Hotmail edo Gmail bezalako posta zerbitzari batetik ezingo ditugu mezuak bidali gurera, eta beraiek ere ez dituzte gureak onartuko. DNS-a interneten badago berriz, posta zerbitzaria interneten erabili ahal izango dugu. Kasu honetan, lehenengo DNS lokala jarriko dut nire zerbitzarian. Erabiliko dudan DNS zerbitzaria “bind9” izango da, Linux sistema eragilerako.

1.1.1.1- DNS INSTALATU Bind9 DNS-a instalatzeko, terminalean agindu hau exekutatu dut: apt-get install bind9 Horrela, ”apt-get” pakete kudeatzailearen bidez bind9 DNS-a instalatu da zerbitzarian.

1.1.1.2- DNS KONFIGURATU DNS-a instalatu ondoren, konfiguratu egin dut. Bertan, “soidal.net” domeinua sortu dut. Domeinu honetan, host-ak (ekipoak) eta MX erregistro bat erregistratu ditut. Bi hauek, nire zerbitzariko IP helbidea izango dute, bertan egongo direlako. DNS-ko konfigurazio fitxategiak /etc/bind direktorioan daude, beraz, bertako fitxategiak editatu

Page 14: Software hardware librea - dok

Tolosaldea TLHI

13

Software eta Hardware librea

ditut.

1.1.1.2.1- Domeinua sortu

Domeinua sortzeko, “named.conf.local” fitxategia editatu dut, “nano” editorearen bidez, agindu honekin: nano /etc/named.conf.local Bertan, domeinua sortzeko, zona berri bat sortu dut, “soidal.net” izenekoa. Horretarako, hau idatzi dut fitxategian:

Fitxategia gorde dut “Control+o” sakatuz, eta bertatik ateratzeko “Control+x” erabili dut. Horrela, “soidal.net” zona sortu dut, eta honen konfigurazio fitxategia /etc/bind/db.soidal dela esan diot, gero sortuko dudana. Gainera, zona honek master bezala funtzionatzen du, hau da, zona nagusia da.

1.1.1.2.2- Domeinua konfiguratu

Zona berria sortu ondoren, aipatu dudan “db.soidal” DNS konfigurazio fitxategia sortu dut. Horretarako, “db.local” fitxategia erabili dut, beraz, fitxategi hau direktorio berean kopiatu dut, baina “db.soidal” izenarekin. Fitxategia kopiatzeko, “cp” agindua erabili dut: cp /etc/bind/db.local /etc/bind/db.soidal Domeinua konfiguratzeko, “db.soidal” fitxategia editatu dut: nano /etc/bind/db.soidal Bertan, “soidal.net” domeinua konfiguratu dut, informazio hau gehituz:

Page 15: Software hardware librea - dok

Tolosaldea TLHI

14

Software eta Hardware librea

Bertan, “soidal.net” domeinua sortu dut. Domeinu nagusia dela adierazteko, “SOA” jarri dut. Gainera, domeinuaren ondoren, “.” karakterea jartzen da. Honen barruan, domeinuari buruzko informazioa konfiguratu dut. Domeinuaren serie zenbakia “1000” jarri dut, eta hau ezin da berdina izan bi domeinuetan. Gainerako parametroak defektuzkoak utzi ditut. NS (Name Server) erregistro bat ere erregistratu dut, “ns.soidal.net”. Honek, DNS adierazten du. Gainera, “ns” host-a 192.168.1.30 IP helbidean dagoela esan diot, hau da, nire makinan. Host hau erregistratzeko, “A” erabili dut, honek, host-a dela adierazten du. MX erregistro bezala “mail.soidal.net” erregistratu dut, eta “mail” host-a ere 192.168.1.30 IP-an dagoela esan diot. MX erregistro honen lehentasun maila 10 dela ere adierazi dut. Hau erabiltzen da, MX motako erregistro bat baino gehiago daudenean, adibidez posta zerbitzari bat baino gehiago badaude, mailarik txikiena duen MX erregistroa erabiltzeko. Beraz, maila txikieneko MX erregistroak apuntatzen duen posta zerbitzaria erabiliko da defektuz, eta honek ez badu funtzionatzen, hurrengo MX erregistroak apuntatzen duen posta zerbitzaria erabiliko da. Azkenik, “www” host-a ere zerbitzariaren IP-an dagoela esan diot, web zerbitzariarena.

1.1.1.2.3- Berbideratzaileak

Nire DNS-an domeinu guztiak ez direnez erregistratuta egongo, berbideratzaile bat gehitu diot. Horretarako, “named.conf.options” fitxategia editatu dut: nano /etc/bind/named.conf.options Bertan, Google-ren DNS-a gehitu diot, “options” atalean informazio hau jarriz:

Page 16: Software hardware librea - dok

Tolosaldea TLHI

15

Software eta Hardware librea

options { forwarders { 8.8.8.8; }; };

Horrela, bezero batek nire DNS-ra jotzen duenean, lehenengo bertan begiratuko da domeinua ezagutzen duen, eta ez badu ezagutzen, 8.8.8.8 DNS-ra berbideratuko da.

1.1.1.3- DNS BERRABIARAZI DNS-a instalatu eta konfiguratu ondoren, DNS zerbitzua berrabiarazi dut, aldaketak aplikatzeko: /etc/init.t/bind9 restart Horrela, nire DNS zerbitzua berrabiarazi eta domeinua martxan jarri da.

1.1.1.4- ZERBITZARIAN BERE DNS-a JARRI DNS-a martxan dugula, gure zerbitzariak hau erabiltzeko, zerbitzariaren sareko konfigurazioan adieraziko diogu. Lehenengo, zerbitzariaren DNS-a aldatu dut, bere propioa erabiltzeko, eta ez beste bat. Horretarako, “resolv.conf” fitxategia editatu dut: nano /etc/resolv.conf Bertan, zerbitzariaren IP-a eta domeinua jarri ditut: nameserver 192.168.1.30 search soidal.net

Page 17: Software hardware librea - dok

Tolosaldea TLHI

16

Software eta Hardware librea

Horrela, posta zerbitzariak kanpoko DNS bat erabili ordez, bere DNS propioa erabiliko du.

1.1.1.5- BEZEROETAN ZERBITZARIAREN DNS-a JARRI Ordenagailu bezeroetan ere, DNS-a aldatu dut, zerbitzariarena jarriz. Ubuntu bezeroetan, zerbitzariaren berdina egin dut, “resolv.conf” fitxategia editatuz, eta informazio bera jarriz. Baina Windows bezeroetan, kontrol paneletik aldatu dut: Inicio --> Panel de control --> Redes --> Conexión Ipv4 --> Propiedades --> Propiedades Ipv4 Bertan, zerbitzariaren DNS-a jarri dut: DNS: 192.168.1.30 Horrela, bezeroetan DNS-a konfiguratuta dago, kanpoko bat erabili ordez, zerbitzariarena erabiltzeko. Honekin, DNS-a konfiguratuta eta martxan dago, eta domeinua ere badugu, beraz, DNS-aren atala bukatuta dago.

1.1.2- MTA DNS-a sare lokalean instalatu ondoren, MTA (Mail Transfer Agent) edo Korreoa Garraiatzeko Agentea instalatu dut. MTA-ak SMTP protokoloaren bidez posta zerbitzari batetik beste posta zerbitzari batera edo berera korreoa bidaltzen du, hau da, mezua igorletik hartzailera garraiatzen da. MTA ezberdinak daude: Postfix, Sendmail, Courier... Nire posta zerbitzarirako, Postfix erabiliko dut.

Page 18: Software hardware librea - dok

Tolosaldea TLHI

17

Software eta Hardware librea

1.1.2.1- POSTFIX INSTALATU Postfix MTA instalatzeko, agindu hau exekutatu dut terminalean: apt-get install postfix Horrela, Postfix MTA instalatu eta konfiguratzeko eskatu dit.

1.1.2.2- POSTFIX KONFIGURATU Postfix instalatzean, konfiguratu egin behar da, gure domeinuaren korreoa tratatzeko. Beraz, Postfix-en atal ezberdinak konfiguratu ditut: Korreo konfigurazioa: Interneteko gunea

Korreo sistemaren izena: soidal.net

Administrari eta postmasterrarentzako korreo ontzia: root

Korreoa baimentzeko beste helbideak:

Page 19: Software hardware librea - dok

Tolosaldea TLHI

18

Software eta Hardware librea

soidal.net, Ubuntu, localhost.localdomain, localhost

Korreo ilaran eguneraketa sinkronoak indartu? Ez

Sare lokalak: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

Procmail erabili entrega lokalerako? Bai

Postontziaren tamaina limitea: 0

Page 20: Software hardware librea - dok

Tolosaldea TLHI

19

Software eta Hardware librea

Helbide lokalen hedadura karakterea: +

Erabiltzeko interneteko protokoloak: ipv4

Horrela, Postfix konfiguratu dut nire domeinuari dagokionez. Konfigurazioan ez dut “mail.soidal.net” MX erregistroa adierazi, “soidal.net” domeinua baizik, baina honek, automatikoki detektatuko ditu domeinuaren MX erregistroak. Postfix berriro konfiguratu nahi bada, agindu hau erabili daiteke: dpkg-reconfigure postfix Beraz, domeinuan edo DNS-an aldaketaren bat egiten badugu, Postfix berriro konfiguratu ahal izango dugu.

Page 21: Software hardware librea - dok

Tolosaldea TLHI

20

Software eta Hardware librea

1.1.3- KORREOA IRAKURTZEKO PROTOKOLOAK Erabiltzaileek zerbitzarian dagoen korreoa irakurri ahal izateko, zerbitzaritik mezuak irakurtzeko edo deskargatzeko protokoloak behar dira. Horretarako, protokolo hauek erabiltzen dituzten zerbitzuak instalatu ditut. Lehen esan bezala, korreoa irakurtzeko bi protokolo erabiltzen dira: IMAP eta POP3. IMAP protokoloak korreoa zerbitzaritik irakurtzen du online, baina POP3 protokoloak, korreoa deskargatzen du bere makinara, eta zerbitzaritik ezabatzeko aukera du. Bi hauetatik zein erabiliko den, bezeroak erabilitako korreo bezero aplikazioaren araberakoa da; Outlook, Gmail, Zimbra Client... IMAP eta POP3 protokoloentzako erreminta ezberdinak daude: Dovecot (dovecot-imapd, dovecot-pop3d), Courier (courier-imap, courier-pop3)... Nik, Dovecot erabiliko dut, beraz, IMAP protokoloarentzako “dovecot-imap” paketea eta POP3 protokoloarentzako “dovecot-pop3” paketeak instalatuko ditut.

1.1.3.1- DOVECOT INSTALATU Dovecot-en bi pakete hauek instalatzeko, agindu hau exekutatu dut terminalean: apt-get install dovecot-imapd dovecot-pop3d Horrela, “dovecot-imapd” eta “dovecot-pop3d” paketeak aldi berean instalatu ditut zerbitzarian.

1.1.3.2- DOVECOT KONFIGURATU Dovecot instalatu ondoren, konfiguratu egin dut. Horretarako, “dovecot.conf” fitxategia editatu dut: nano /etc/dovecot/dovecot.conf Bertan, bi lerro hauek gehitu ditut: protocols= pop3 pop3s imap imaps mail_location= mbox:~/mail:INBOX=/var/mail/%U Horrela, IMAP eta POP3 protokoloak gaitu ditut, eta erabiltzailearen korreoa /var/mail direktorioan gordetzeko esan diot, erabiltzailearen izena duen karpetan, “%U” parametroak uneko erabiltzailea adierazten duelako.

Page 22: Software hardware librea - dok

Tolosaldea TLHI

21

Software eta Hardware librea

1.1.3.3- DOVECOT BERRABIARAZI Dovecot instalatu eta konfiguratu ondoren, Dovecot zerbitzua berrabiarazi dut, aldaketak aplikatzeko: /etc/init.d/dovecot restart Horrela, Dovecot zerbitzua martxan jarri da, eta IMAP eta POP3 protokoloak erabiltzeko aukera dago nire posta zerbitzarian.

1.1.4- ERABILTZAILEAK SORTU Posta zerbitzua erabiltzeko, erabiltzaileak sortuta egon behar dira. Erabiltzaile hauek, zuzenean zerbitzarian lokalki sortu ditzakegu, edo bestela, LDAP zerbitzari bat erabili dezakegu bertan erabiltzaileak sortzeko. LDAP zerbitzari hau, posta zerbitzari berean edo beste zerbitzari batean egon daiteke. Baina praktika honetarako, erabiltzaileak posta zerbitzari lokalean sortuko ditut, LDAP datu-baserik erabili gabe, ez delako beharrezkoa kasu honetan. Beraz, bi erabiltzaile sortu ditut posta zerbitzarian, “adduser” aginduarekin. Lehenengo, “user1” erabiltzailea sortu dut: adduser user1 Horrela, “user1” erabiltzailearen pasahitza eta izen osoa eskatu dizkit: Introduzca la nueva contraseña de UNIX: user1 Nombre completo: user1 Ondoren, “user2” erabiltzailea sortu dut: adduser user2 Kasu honetan, horrela konfiguratu dut: Introduzca la nueva contraseña de UNIX: user2 Nombre completo: user2 Honekin, “user1” eta “user2” erabiltzaileak sortu dira posta zerbitzarian, eta hauek posta zerbitzua erabili ahal izango dute.

Page 23: Software hardware librea - dok

Tolosaldea TLHI

22

Software eta Hardware librea

1.1.5- TELNET BIDEZ PROBATU DNS-a instalatuta eta konfiguraturik, MTA instalatuta eta konfiguraturik, korreoa irakurtzeko protokoloak erabiltzen dituzten zerbitzuak instalaturik eta zerbitzarian erabiltzaileak sorturik egonda, posta zerbitzua funtzionatzeko prest dago. Posta zerbitzariak ondo funtzionatzen duela probatzeko, posta bezero bat instalatu aurretik, Telnet zerbitzuaren bidez probatu dut.

1.1.5.1- KORREOA BIDALI Lehen esan bezala, korreoa bidaltzeko SMTP protokoloa erabiltzen da. Hau, Telnet zerbitzuaren 25.portua da. Telnet zerbitzua, sareko programa bat da, erabilera asko dituena. Portu ezberdinak erabiliz, erabilera ezberdinak ematen dizkiogu. Telnet programa, defektuz instalatua dago Windows eta Linux makinetan. Hala ere, bi Telnet programa daude, bezeroa eta zerbitzaria. Nik, Telnet bezeroaren bidez probatuko dut posta zerbitzua. Hala ere, Telnet bidez korreo bat bidaltzean, normalean, posta zerbitzari gehienek mezu hau “nahi ez ditugunen erretiluan” gordetzen dituzte, jatorria ezin delako ziurtatu. SMTP protokoloak 25.portua erabiltzen duenez, Telnet programa 25.portuan erabiliko dut. Beraz, Telnet programaren bidez posta zerbitzura konektatu naiz, eta bertatik, “user1” erabiltzailearekin “user2” erabiltzaileari korreo bat bidali diot; SMTP protokoloko sintaxia erabiliz. SMTP protokoloa erabiltzeko sintaxia edo aginduak hauek dira: HELO --> Zerbitzariari zure domeinua zein den esateko. Adb: HELO domeinua.net MAIL FROM: --> Jatorria.Nondik bidaltzen den korreoa. Hau ez da ziurtatzen, beraz, SMTP protokolo hutsarekin segurtasun falta dago, korreo anonimoak bidali daitezkeelako, hau da, identitate bat ordeztu dezakegu. Adb: MAIL FROM: [email protected] RCPT TO: --> Helbidea. Korreoa norentzako den. Adb: RCPT TO: [email protected]

Page 24: Software hardware librea - dok

Tolosaldea TLHI

23

Software eta Hardware librea

DATA --> Korreoaren gorputza hasteko. Edukia. Subject: --> Korreoaren gaia.

. --> Korreoaren gorputza bukatzeko. Honekin, behin “Enter” tekla sakatuta, korreoa

bidaltzen. Esan beharra dago, agindu hauetariko bakoitza exekutatzeko, “Enter” tekla sakatu behar dela. Beraz, lehenengo terminalean sartu naiz, eta Telnet bidez konektatu naiz “mail.soidal.net” helbidera 25 portuan. Horretarako, agindu hau erabili dut: telnet mail.soidal.net 25

Horrela, posta zerbitzarira konektatu naiz. Ikusten den bezala, “mail.soidal.net” helbidea erabili dut, hau delako posta zerbitzuaren MX erregistroa, hau da, posta zerbitzariaren helbidea da; 192.168.1.30. Gainera, honen ondoren 25 portua jarri dut, aginduaren sintaxiak horrela eskatzen duelako, portua bukaeran jartzea. Defektuz, 23.portua erabiltzen da, beraz, ezer jarriko ez banu, 23.portua erabiltzen arituko nintzen, eta ez dut hori nahi. Behin posta zerbitzarian konektatuta, SMTP protokoloaren aginduen bidez “user1” erabiltzailearekin korreoa bidali diot “user2” erabiltzaileari: HELO soidal.net MAIL FROM: [email protected] RCPT TO: [email protected] DATA Subject: Telnet bidez proba Kaixo user2, hau posta Telnet bidez probatzeko da.

.

Page 25: Software hardware librea - dok

Tolosaldea TLHI

24

Software eta Hardware librea

Horrela, lehenengo, posta zerbitzariarekin identifikatu naiz, nire domeinua “soidal.net” dela adieraziz. Gero, korreoa “[email protected]” erabiltzaileak bidaltzen duela esan diot. Beraz, hori izango da helbideak ikusiko duena, baina lehen esan bezala, hau ez da zehatza, SMTP protokoloak ez duelako probatzen, beraz, edozein jarrita ere, ez du esan nahi egia denik. Hau da, jatorri bezala “[email protected]” jarri dezakegu, eta helbideak hori jasoko zuen. Esan beharra dago, identitatea ordeztea legez kontrakoa dela, honekin, SMTP protokolo hutsaren segurtasun falta adierazi nahi dut. Ondoren, mezua “[email protected]” erabiltzailearentzako dela esan diot. Gero, korreoaren gorputza idatzi dut, gaia era edukia idatziz. Azkenik, korreoaren gorputza amaitu dela adierazi dut “.” karakterearen bidez. Horrela, korreo hori bidali da, eta Telnet zerbitzuaren konexioa ixteko, “quit” agindua erabili dut: quit Honekin, korreo hau posta zerbitzarian gorde da, /var/mail/ direktorioko helbidearen fitxategian; “user2” Beraz, korreoa ondo gorde dela ikusteko, fitxategi hori ikusi dut: nano /var/mail/user2

Page 26: Software hardware librea - dok

Tolosaldea TLHI

25

Software eta Hardware librea

Bertan, korreoa gordeta geratu dela ikusi dut, beraz, korreoa ondo bidali da.

1.1.5.2- KORREOA IRAKURRI Posta zerbitzaritik korreoa irakurtzeko, IMAP edo POP3 protokoloak erabiltzen dira. Beraz, protokolo hauen bidez, lehen bidalitako korreoa irakurri dut.

1.1.5.2.1- IMAP

Lehenengo, IMAP protokoloaren bidez irakurri dut korreoa. IMAP protokoloak, zerbitzarian dagoen korreoa online irakurtzen du, hau da, deskargatu gabe. IMAP protokoloak, 143.portua erabiltzen du, beraz, kasu honetan ere, Telnet bidez posta zerbitzarira konektatu naiz, baina oraingoan, 143.portua erabiliz, eta IMAP protokoloaren aginduen bidez irakurri dut korreoa. IMAP protokoloaren sintaxia hau da: . LOGIN --> Erabiltzailea logeatzeko. Adb: . LOGIN erabiltzailea pasahitza . LIST --> Karpeta edo direktorioak listatzeko. Adb: . LIST “” “*” . STATUS --> Korreo kopurua ikusteko. Adb: . STATUS INBOX (messages) --> Mezu kopuru totala ikusteko. . STATUS INBOX (unseen) --> Irakurri gabeko mezu kopurua ikusteko.

Page 27: Software hardware librea - dok

Tolosaldea TLHI

26

Software eta Hardware librea

. SELECT --> Karpeta aukeratzeko. Adb: . SELECT INBOX . FETCH --> Korreoekin lan egiteko. Aukera ezberdinak daude: . FETCH lehenengoa:azkena FLAGS --> Korreoen zerrenda era Flag-ak ikusteko. Adb: . FETCH 1:3 FLAGS . FETCH korreo_zenb (body[header.fields (subject)]) --> Korreo konkretu baten gaia ikusteko. Adb: . FETCH 3 (body[header.fields (subject)]) . FETCH korreo_zenb rfc822.text --> Korreoaren edukia ikusteko. Adb: . FETCH 3 rfc822.text . LOGOUT --> Sesioa ixteko. Ikusten den bezala, IMAP protokoloaren aginduak ez dira SMTP protokoloaren aginduak bezala, sintaxia ezberdina da. Gainera, agindu bakoitzaren aurretik “.” karakterea eta hutsune bat jarri behar da. Kasu honetan, erabiltzailearekin logeatu beharko gara, eta pasahitza behar dugu, beraz, beste baten kontuan sartzea ez da hain erraza. Beraz, lehenengo Telnet bidez konektatu naiz posta zerbitzarira, 143.portua erabiliz: telnet mail.soidal.net 143

Ikusten denez, agindua aurrekoa bezalakoa da, aldatzen den gauza bakarra portua da, baina hau oso garrantzitsua da, honek adierazten duelako zein protokolo erabiltzen dugun. Horrela, posta zerbitzarian konektatu naiz IMAP protokoloaren bidez, eta korreoa irakurtzeko, IMAP protokoloaren sintaxia erabili beharko dut. Beraz, lehen bidalitako korreoa irakurtzeko, “user2” erabiltzailearekin logeatu naiz, eta 12.korreoa irakurri dut: . LOGIN user2 user2 . LIST “” “*” . STATUS INBOX (messages) --> 12 . STATUS INBOX (unseen) --> 1

Page 28: Software hardware librea - dok

Tolosaldea TLHI

27

Software eta Hardware librea

. SELECT INBOX . FETCH 12 (body [header.fields (subject)]) . FETCH 12 rfc822.text . LOGOUT

Horrela, “user1” erabiltzaileak bidalitako korreoa irakurri dut posta zerbitzarian. Lehenengo, “user2” erabiltzailearekin logeatu naiz bere pasahitza erabiliz. Horrela, ondo sartu da.

Page 29: Software hardware librea - dok

Tolosaldea TLHI

28

Software eta Hardware librea

Gero, karpetak listatu ditut, eta ondoren, “INBOX” karpetako (mezuen erretilua) irakurri gabeko mezuen kopurua listatu dut, eta guztira 12 mezu daudela erantzun dit. Gainera, irakurri gabeko mezuen kopurua ere ikusi dut, eta mezu bat dago irakurri gabe. Ondoren, INBOX karpeta aukeratu dut, hau da, mezuen kutxatila. Beraz, “user1” erabiltzailearen korreoa 12.a denez, 12.korreoaren gaia irakurri dut, eta mezua ere irakurri dut. Azkenik, “user2” erabiltzailearen saioa itxi dut, eta Telnet konexioa itxi. Honekin, posta zerbitzariak ondo funtzionatzen duela frogatu dut, korreoa ondo bidali eta irakurri daitekeelako.

1.1.5.2.2- POP3

POP3 protokoloak, IMAP-ek ez bezala, posta zerbitzaritik deskargatzen du korreoa, eta gero, mezu hau zerbitzaritik ezabatzeko aukera dago. POP3 protokoloak, 110.portua erabiltzen du, eta honen sintaxiak, IMAP protokoloaren antzeko egitura du, baina aginduak ezberdinak dira. POP3 protokoloaren sintaxia hau da: USER --> Erabiltzailea. Adb: USER erabiltzailea PASS --> Erabiltzailearen pasahitza. Adb: PASS pasahitza STAT --> Korreo kopurua ikusteko. LIST --> Korreoak listatzeko; kopurua + tamaina. RETR --> Korreo konkretu irakurtzeko. Adb: RETR korreo_zenb DELE --> Korreo konkretu bat ezabatzeko. Mezua markatzen du, eta sesioa ixtean ezabatzen da. Adb: DELE korreo_zenb QUIT --> Erabiltzailearen sesioa ixteko.

Page 30: Software hardware librea - dok

Tolosaldea TLHI

29

Software eta Hardware librea

Beraz, Telnet zerbitzuaren bidez posta zerbitzarira konektatu naiz 110.portua erabiliz: telnet mail.soidal.net 110

Horrela, posta zerbitzarira konektatu naiz, eta “user1” erabiltzaileak “user2” erabiltzaileari bidalitako korreoa irakurri dut, agindu hauek erabiliz: USER user2 PASS user2 LIST RETR 11 DELE 11 QUIT

Honekin, lehenengo “user2” erabiltzailearekin logeatu naiz, bere pasahitza sartuz. Gero, korreo kopurua listatu dut, eta 11 daudela erantzun dit. Ondoren, 11.mezua irakurri dut, eta “user1” erabiltzaileak bidalitakoa da.

Page 31: Software hardware librea - dok

Tolosaldea TLHI

30

Software eta Hardware librea

Bukatzeko, 11.mezua posta zerbitzaritik ezabatu dut, eta “user2” erabiltzailearen sesioa itxi dut. Honekin, posta zerbitzariak ondo funtzionatzen duela ziurtatu dut, eta korreoa irakurtzeko bi protokoloek ondo funtzionatzen dutela.

1.1.6- POSTA BEZEROA Posta zerbitzariak ondo funtzionatzen duela probatu dut, SMTP, IMAP eta POP3 protokoloak Telnet bidez erabiliz korreoak bidali eta irakurri ahal izan ditudalako. Hau, posta zerbitzaria probatzeko egin dut, baina gero, erabiltzaileek posta bezero bat erabiliko dute korreoa bidali eta irakurtzeko, Telnet bidez egitea oso astuna delako erabiltzaileentzako. Posta bezeroak web aplikazioak edo aplikazio lokalak izan daitezke. Web aplikazioak ez dira instalatu behar, eta web nabigatzaile bidez atzitzen dira. Hauek, bakarrik zerbitzarian instalatzen dira. Aplikazio lokalak berriz, ordenagailu bezero bakoitzean instalatu behar dira. Nik, web aplikazioa erabiliko dut, sinpleagoa eta erosoagoa delako posta bezeroa nire posta zerbitzarian bakarrik instalatzea, bezero bakoitzean instalatu behar izatea baino. Posta bezero ezberdinak daude; Squirrelmail, Zimbra Client, Mozilla Thunderbird... Nire kasuan, Squirrelmail posta bezeroa erabiliko dut. Squirrelmail PHP lengoaian programatutako kode askeko webmail aplikazio bat da. Honek funtzionatu ahal izateko, PHP soportea duen posta zerbitzaria behar da, eta gainera, SMTP eta IMAP zerbitzariak behar ditu. Nire posta zerbitzariak ezaugarri hauek betetzen dituenez, erabiltzeko aukera dut.

1.1.6.1- SQUIRRELMAIL INSTALATU Squirrelmail posta bezeroa instalatzeko, agindu hau erabili dut: apt-get install squirrelmail

Horrela, Squirrelmail posta bezeroa instalatu da nire posta zerbitzarian, baina erabiltzen hasi

Page 32: Software hardware librea - dok

Tolosaldea TLHI

31

Software eta Hardware librea

aurretik, konfiguratu egingo dut.

1.1.6.2- SQUIRRELMAIL KONFIGURATU Squirrelmail posta bezeroak nire posta zerbitzaria erabili ahal izateko, konfiguratu egin behar da. Honek, bi era ditu konfiguratzeko; alde batetik, /etc/squirrelmail/ direktorioko “config.php” fitxategia editatu dezakegu eskuz, edo bestela, “squirrelmail configure” script-a erabiliz. Script hau, Squirrelmail instalatzean sortzen da, eta Squirrelmail konfiguratzeko testu bidezko asistente erraz bat erakutsiko digu. Nik, Squirrelmail “config.php” fitxategia editatuz konfiguratu dut, beraz, agindu hau erabili dut: nano /etc/squirrelmail/config.php

Bertan, lerro batzuk editatu ditut, nire domeinua jartzeko, eta posta zerbitzariaren ezaugarri orokorrak jartzeko. $org_name=”Soidal”; #Elkarte izena $org_title=”Soidal Posta”; #Titulua $provider_uri='http://www.soidal.net'; #Hornitzailearen helbidea $provider_name='Soidal'; #Hornitzailearen izena $squirrelmail_default_language=”es_ES”; #Hizkuntza; Erdara $domain='soidal.net'; #Domeinua $trash_folder='INBOX.Zakarrontzia'; #Zakarrontzia karpeta $sent_folder='INBOX.Bidaliak'; #Bidalitakoen karpeta $draft_folder='INBOX.Borradoreak'; #Zirriborroen karpeta Aldaketak egindakoan, fitxategia gorde dut “Control+o” tekla sakatuz, eta fitxategia itxi dut “Control+x”-rekin. Aldaketa hauek aplikatzeko, Apache web zerbitzaria berrabiarazi dut: /etc/init.d/apache2 restart Horrela, Apache berrabiarazi eta Squirrelmail konfiguratuta geratu da.

Page 33: Software hardware librea - dok

Tolosaldea TLHI

32

Software eta Hardware librea

Hala ere, hizkuntza ez da aldatu ingeleratik erdarara.

1.1.6.3- SQUIRRELMAIL PROBATU Squirrelmail posta bezeroa probatzeko, web nabigatzaile bidez sartu naiz web aplikazioan, posta zerbitzariaren helbidea jarriz: http://mail.soidal.net/mail Ikusten den bezala, DNS-ko MX erregistroa erabili dut, zerbitzariaren IP helbidearen ordez, eta “mail” gehitu dut bukaeran, Squirrelmail posta bezeroan sartzeko. Horrela, Squirrelmail posta bezeroaren logeatzeko orria agertu zait.

1.1.6.3.1- Korreoa bidali

Lehenengo, “user1” erabiltzailearekin “user2” erabiltzaileari mezu bat bidaliko diot, beraz, “user1” erabiltzailearekin hasi dut saioa: Name: user1 Password: user1

“Login” sakatu eta logeatu egin naiz. Bertan, “[email protected]” erabiltzaileari korreoa bidaltzeko, “Compose” sakatu dut, eta korreoa idatzi dut: To: [email protected] Subject: Kaixo user2! Kaixo, hau proba bat da.

Page 34: Software hardware librea - dok

Tolosaldea TLHI

33

Software eta Hardware librea

“Send” sakatu eta mezua bidali da. Azkenik, “user1” erabiltzailearen saioa ixteko, “Sign out” sakatu dut.

1.1.6.3.2- Korreoa irakurri

Orain bidalitako korreoa irakurtzeko, “user2” erabiltzailearekin logeatu naiz Squirrelmail posta bezeroan: Name: user2 Password: user2 Horrela, “user2” erabiltzailearen kontuan sartzean, “[email protected]” erabiltzailearen korreoa ikusi dut, eta honen gainean klik eginez, irakurri egin ahal izan dut.

Page 35: Software hardware librea - dok

Tolosaldea TLHI

34

Software eta Hardware librea

Beraz, Squirrelmail posta bezeroak ondo funtzionatzen du, mezuak ondo bidaltzen eta irakurtzen dituelako.

1.1.7- POSTA BEZERO PROPIOA Orain arte posta bezero bezala, Squirrelmail web aplikazioa erabili dut, baina hau, ez dut nik egin, beste norbaitek programatu du, eta software askea denez, nik ere erabili dezaket. Baina orain, nik egingo dut nire posta bezero propioa. Hau ere, web aplikazio bat izango da, eta hiru programazio lengoai erabiliz eginda egongo da:

• HTML: Posta bezeroaren web orrirako.

• CSS: Web orriari itxura emateko.

• PHP: Bezeroarekin elkar eragina izateko. Honekin, posta mezuak irakurri eta bidali ahal izango dira, posta zerbitzariarekin komunikatuz. Posta bezeroaren interfazea sinplea izango da, bi atal egongo dira; batean erabiltzaileak mezua bidaltzeko aukera izango du, bere korreo helbidea, hartzailearena, mezuaren gaia eta mezuaren gorputza adieraziz, eta beste atalean, erabiltzaileak korreoa irakurtzeko aukera izango du, bere korreoa, pasahitza eta korreo zenbakia adieraziz.

1.1.7.1- HTML HTML lengoaiaren bidez, web orriaren interfazea diseinatu dut, bi atalak banatuz. HMTL orri nagusiak, “index.php” izena du, eta hau /etc/var/www/posta direktorioaren barruan sortu dut. Beraz, bi formulario sortu ditut, bat korreoa bidaltzeko eta bestea korreoa irakurtzeko. Formulario hauetako bakoitza, PHP orri batekin lotuta dago; “korreoa_bidali.php” eta “korreoa_ikusi.php”. Beraz, posta zerbitzuaren erabiltzaileak formulario hauetako bakoitzean datuak sartzean, “Bidali” sakatu ondoren datu hauek PHP orrietara bidaliko dira, eta bertan tratatuko dira, posta zerbitzarira bidaliz.

Page 36: Software hardware librea - dok

Tolosaldea TLHI

35

Software eta Hardware librea

“index.html” orriaren kodea hau da: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> Soidal posta </title> <meta http-equiv="Content-Type" content="text/html" charset="UTF-8" /> <link rel="stylesheet" type="text/css" href="estiloa.css" /> </head> <body> <table class="taula"> <!-- 2 zutabeko taula; korreoa irakurtzea eta korreoa bidaltzea banatzeko --> <tr> <!-- Lehenengo lerroa --> <td id="td_logoa"> <a href="index.html"> <img src="irudiak/posta.gif" id="logoa" alt="Logoa" /> </a> </td> <td id="td_titulua"> <font id="titulua"> Soidal Posta </font> <!-- Izenburua --> </td> </tr> </table> <table class="taula"> <tr> <!-- Bigarren lerroa -->

Page 37: Software hardware librea - dok

Tolosaldea TLHI

36

Software eta Hardware librea

<td> <!-- Korreoa irakurtzeko zutabea --> <form action="korreoa_ikusi.php" method="post"> <p> Sartu erabiltzailea eta pasahitza korreoa ikusteko </p> <p> Erabiltzailea <input type="text" name="erabiltzailea" /> <br /> Pasahitza <input type="password" name="pasahitza" /> <br /> Korreo zenbakia <input type="number" name="korreoa" /> </p> <input type="submit" value="Ikusi" /> </form> </td> <td> <!-- Korreoa bidaltzeko zutabea --> <form action="korreoa_bidali.php" method="post"> <p> Mezua bidali </p> <p> Norena <input type="text" name="norena" /> <br /> Norentzako <input type="text" name="norentzako" /> <br /> Gaia

Page 38: Software hardware librea - dok

Tolosaldea TLHI

37

Software eta Hardware librea

<input type="text" name="gaia" /> <br /> Mezua <input type="text" name="mezua" /> </p> <input type="submit" value="Bidali" /> </form> </td> </tr> </table> </body> </html> Ikusten den bezala, bi taula daude, bat izenburu eta logoarentzako eta bestea korreorako. Korreoaren taulan, bi zutabe daude. Ezkerreko zutabean korreoa irakurtzeko formularioa dago, eta erabiltzaile baten korreoa irakurri ahal izango dugu. Eskuinekoan berriz, korreoa bidaltzeko formularioa dago, beste erabiltzaile bati mezu bat bidaltzeko.

1.1.7.2- CSS CSS lengoaiaren bidez, HTML orriari itxura eman diot; kolorea, letra mota, tamaina... Sortu dudan CSS orria “estiloa.css” da, eta HTML orrian adierazi dut honen helbidea. Horrela, HTML orrian edukia eta itxura banatu ditut, eta aurrerago, itxura aldatu nahi badut, nahikoa izango da CSS orria aldatzearekin. “estiloa.css” orriaren kodea hau da: body {background-color:lightblue; color:blue; font-size:18px; font-family:Courier; font-weight:bold;

Page 39: Software hardware librea - dok

Tolosaldea TLHI

38

Software eta Hardware librea

text-align:center;} #logoa {height:140px; width:140px;} #titulua {color:red; font-size:80px; font-weight:bold; font-style:italic;} .taula {border:0px; width:1250px;} #td_logoa {width:180px;} #td_titulua {width:1070;}

Kode honen bidez, HTML orriari itsura ematen diogu, adibidez, fondo urdina, letra tamaina… Taula eta zutabeei ere itsura ematen die.

1.1.7.1- PHP Esan dudan bezala, bi PHP orri sortu ditut, bat korreoa bidaltzeko “korreoa_bidali.php” eta bestea korreoa irakurtzeko korreoa_irakurri.php”. Horrela, erabiltzaileak korreoa bidaltzeko ataleko formularioan datuak sartzen baditu, informazio hau “korreoa_bidali.php” orriak tratatuko du, eta korreoa irakurtzeko formularioan sartuz gero, “korreoa_irakurri.php” orriak tratatuko du. Beraz, PHP lengoaiaren bidez erabiltzaileak sartutako datuak jaso eta posta zerbitzarira bidali ditut. PHP lengoaiak baditu funtzio berezi batzuk korreoa bidali eta jasotzeko, baina nik, Telnet zerbitzuaren bidez egin dut, sistemako aginduen bidez. Hau da, lehen, Telnet bidez korreoa irakurtzen eta bidaltzen ikasi dut, baina interfaze grafikorik gabe, eta hori erabiltzailearentzako ez da erosoa, baina orain, hau interfaze grafikora pasatuko dut. Horrela, erabiltzaileak bidalitako informazioa jaso eta sistemarekin komunikatuko naiz, Telnet zerbitzuarekin, horrela, informazio hau Telnet zerbitzuaren bidez posta zerbitzariarekin komunikatzeko erabiliko dut. Beraz, korreoa bidaltzeko SMTP protokoloa erabiliko dut, eta korreoa irakurtzeko POP3 protokoloa. Horrek esan nahi du, erabiltzailearen korreoa bidaltzeko, Telnet zerbitzua 143.portuan erabiliko dudala, eta korreoa irakurtzeko 110.portua. “korreoa_bidali.php” orriaren kodea hau da: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Page 40: Software hardware librea - dok

Tolosaldea TLHI

39

Software eta Hardware librea

<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> Korreoa bidali </title> <meta http-equiv="Content-Type" content="text/html" charset="UTF-8" /> <link rel="stylesheet" type="text/css" href="estiloa.css" /> </head> <body> <?php //Sartutako datuak irakurri $norena=$_POST['norena']; $norentzako=$_POST['norentzako']; $gaia=$_POST['gaia']; $mezua=$_POST['mezua']; //Korreoa bidali $fp=fsockopen("soidal.no-ip.org", 25, $errno, $errstr, 30); if($fp){ echo 'Konektatua!<br>'; $helo="HELO soidal.no-ip.org\r\n"; $from="MAIL FROM: ".$norena."\r\n"; $rcpt="RCPT TO: ".$norentzako."\r\n"; $data="DATA\r\n"; $subject="SUBJECT: ".$gaia."\r\n"; $mezua=$mezua."\r\n"; $puntua=".\r\n"; $quit="QUIT\r\n"; $he=fwrite($fp, $helo, strlen($helo)); $fr=fwrite($fp, $from, strlen($from)); $rc=fwrite($fp, $rcpt, strlen($rcpt));

Page 41: Software hardware librea - dok

Tolosaldea TLHI

40

Software eta Hardware librea

$da=fwrite($fp, $data, strlen($data)); $su=fwrite($fp, $subject, strlen($subject)); $me=fwrite($fp, $mezua, strlen($mezua)); $pu=fwrite($fp, $puntua, strlen($puntua)); $qu=fwrite($fp, $quit, strlen($quit)); echo $norena." zure mezua ondo bidali zaio ".$norentzako." -ri!"; echo '<p> <a href="index.html"> Soidal-era bueltatu </a> <p>'; } else{ echo 'Konexioak huts egin du!<br>'; } fclose($fp); ?> </body> </html> Ikusten den bezala, PHP barruan, kontsolako aginduak erabiltzen dira, eta honen bidez, posta zerbitzariarekin konexioa ireki dut, SMTP protokoloan, 25.portuan, eta Telnet aginduak bidaliz, korreoa bidaltzen da. “korreoa_ikusi.php” orriaren kodea hau da: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> Korreoa ikusi </title> <meta http-equiv="Content-Type" content="text/html" charset="UTF-8" /> <link rel="stylesheet" type="text/css" href="estiloa.css" /> </head>

Page 42: Software hardware librea - dok

Tolosaldea TLHI

41

Software eta Hardware librea

<body> <?php //Sartutako datuak irakurri $erabiltzailea=$_POST['erabiltzailea']; $pasahitza=$_POST['pasahitza']; $korreoa=$_POST['korreoa']; $fp=fsockopen("soidal.no-ip.org", 110, $errno, $errstr, 30); if($fp){ echo 'Konektatua!<br>'; $username="USER ".$erabiltzailea."\r\n"; $password="PASS ".$pasahitza."\r\n"; $us=fwrite($fp, $username, strlen($username)); $ur=fgets($fp); //echo 'Erabiltzailea bidali da: '.$ur.'<br>'; $ps=fwrite($fp, $password, strlen($password)); $pr=fgets($fp); //echo 'Pasahitza bidali da: '.$pr.'<br>'; $res=fgets($fp); $parts=explode(" ", $res); //echo $parts[4].' mezu zerbitzarian<br><br>'; $cmd="LIST\r\n"; $get=fwrite($fp, $cmd, strlen($cmd)); $msg=fread($fp, 8192); //echo '<pre>'.$msg.'</pre>'; $cmd="RETR ".$korreoa."\r\n"; //Erabiltzaileak sartutako korreo zenbakia irakurtzen da $get=fwrite($fp, $cmd, strlen($cmd)); $msg=fread($fp, 8192); echo '<pre>'.$msg.'</pre>'; echo '<p> <a href="index.html"> Soidal-era bueltatu </font> </a> <p>'; } else{ echo 'Konexioak huts egin du!<br>'; } fclose($fp);

Page 43: Software hardware librea - dok

Tolosaldea TLHI

42

Software eta Hardware librea

?> </body> </html> Kasu honetan ere, kontsolako aginduen bidez posta zerbitzarirako konexioa ireki dut, baina kasu honetan, POP3 protokoloaren bidez, 110.portutik. Gero, POP3 protokoloaren sintaxia erabiliz, Telnet-eko aginduekin erabiltzailearen mezuak irakurri daitezke.

1.2- POSTA INTERNETEN

Orain arteko posta zerbitzariak bakarrik nire sare lokalean funtzionatzen du. Baina hemendik aurrera, posta zerbitzaria interneten atzigarri egotea nahi dut. Horretarako, bi era daude; eskuz konfiguratzea (NAT+IP finkoa+Domeinua) edo domeinu dinamiko bat erabiltzea (No-IP, DynDNS, erositakoa...). Eskuz eginez gero, NAT erregela batzuk definitu behar dira routerrean, nire IP publikoa posta zerbitzariaren IP pribatura bideratzeko. Gainera, bideraketa ezberdinak egin behar dira, posta zerbitzariak erabiltzen dituen zerbitzu guztientzako. Gero, IP publiko hau aldatu egiten denez, No-IP bezalako zerbitzua erabili behar da, nire IP publikoa aldatzen denean, hau eguneratzeko. Azkenik, domeinu publiko bat behar da, IP publikora apuntatzeko, hau da, DNS lokalean definitutako domeinu lokalak ez du balio, lehen esan dugun bezala, domeinu lokala ez delako atzigarria interneten, ez delako ezaguna nire sare lokaletik kanpo. Beraz, domeinu hau interneten atzigarri dagoen DNS zerbitzari batean erregistratuta egon beharko da. Bertan, posta zerbitzarira apuntatzen duen MX erregistroa ere definituko dut. Domeinua interneteko web gune batean erostean, bideraketa guztiak ere egiten dira, baina berak egiten du automatikoki. Nire kasuan, No-IP zerbitzua erabiliko dut nire domeinua erregistratzeko.

1.2.1- NO-IP Normalean, gure etxeko IP publikoa (gure interneteko zerbitzariak emandakoa; Telefonica,

Page 44: Software hardware librea - dok

Tolosaldea TLHI

43

Software eta Hardware librea

Ono...) dinamikoa izaten da, hau da, denborarekin aldatu egiten da. Baina zerbitzari bateko IP publikoa, estatikoa izatea komeni da, bestela, IP hau domeinuarekin lotzean, IP-a aldatzean, domeinuak ez du funtzionatuko. IP publikoa estatikoa izateko, ordaindu egin behar da, baina horren ordez, DNS dinamiko bat erabiliko dut. Horretarako, esan dudan bezala, No-IP zerbitzua aukeratu dut.

No-IP zerbitzua, DNS dinamikoa eskaintzen duen dohaineko zerbitzua da. Honen bidez, nire IP publikoa erregistratuko dut bertako domeinuaren barruan (no-ip.org), hau da, “no-ip.org” domeinuaren azpi-domeinu bat izango da, eta aurrerago, IP-a aldatzen bada, honek automatikoki eguneratuko du, beraz, ez dut eskuz egin behar aldi bakoitzean. Horrela, No-IP-rekin, bi gauza lortuko ditut; domeinu izen bat eta DNS dinamikoa. Lehenengo, No-IP zerbitzuan domeinua sortuko dut, kontu bat sortuz, eta gero Ubuntu zerbitzarian, No-IP zerbitzuaren bezeroa instalatuko dut.

1.2.1.1- NO-IP KONTUA SORTU Lehenengo, No-IP-ko kontu bat sortu dut. Horretarako, No-IP-ren web orrian sartu naiz: http://www.no-ip.org Bertan, kontua sortzeko: Sign Up --> Create Your No-IP Account Horrela, nire kontua konfiguratu dut: Username: erikdiez Email: [email protected] Password: ****** Bertan, “Hostname” atalean, “Create my hostname later” aukeratu dut, horrela, nire host izena gero sortuko dut. Honekin, nire kontu berria sortu dut No-IP zerbitzuan.

Page 45: Software hardware librea - dok

Tolosaldea TLHI

44

Software eta Hardware librea

1.2.1.2- Host-a sortu Lehenengo, nire host nagusi bat sortu dut. Horretarako, host-en atalean sartu naiz: Hosts/Redirects --> Hostname Information Bertan, sortuko dudan host berriaren informazioa sartu dut: Host izena: soidal.no-ip.org Host mota: DNS Host (A) IP Helbidea: 79.155.20.48

“Add host” sakatu eta host-a erregistratu da.

1.2.1.3- MX erregistroa sortu Aurretik aipatu bezala, MX erregistro bat posta zerbitzaria apuntatzen duen erregistro bat da. Lehen, nire DNS lokalean sortu dut, baina orain, No-IP zerbitzuan sortuko dut, nire host-arekin batera. MX erregistroa sortzeko: Hosts/Redirects --> Mail Options Bertan, MX erregistroa eta honen lehentasuna konfiguratu dut: MX Erregistroa: mail.soidal MX Lehentasuna: 5

Page 46: Software hardware librea - dok

Tolosaldea TLHI

45

Software eta Hardware librea

“Add host” sakatu eta MX erregistroa gehitu da. Honek, 5-eko lehentasuna du, baina kasu honetan, MX erregistro bakarra dagoenez, ez du inporta. Baina aurrerago beste posta zerbitzari batentzako MX erregistro bat erregistratuko banu, 10-eko lehentasuna jarriko nion, horrela, lehenengo 5-eko lehentasuneko posta zerbitzaria erabiliko da, baina honek arazoren bat izanez gero, 10-eko lehentasuneko MX erregistroak apuntatzen duen posta zerbitzaria erabiliko da.

Horrela, No-IP zerbitzuan kontu bat sortu dut, eta bertan nire host-a erregistratu dut, eta host honek nire IP publikora apuntatzen duenez, web nabigatzailean “soidal.no-ip.org” helbidea jarrita, nire makinan sartuko da, nire IP publikoa jarri behar izan gabe. Beraz, web nabigatzaile bidez nire web zerbitzariko web orria ikusteko, web nabigatzailean helbide hau jarri beharko da: http://soidal.no-ip.org Eta posta zerbitzarian sartzeko: http://soidal.no-ip.org/mail Hala ere, nire IP publikoa aldatzen bada, host honek ez du funtzionatuko, beraz, hau automatikoki eguneratzeko, No-IP DUC programa erabiliko dut.

Page 47: Software hardware librea - dok

Tolosaldea TLHI

46

Software eta Hardware librea

1.2.1.4- NO-IP DUC No-IP DUC (Dynamic DNS Update Client) programa, DNS dinamikoa eguneratzeko programa bezeroa da. Hau, nire posta zerbitzariaren ordenagailuan instalatuko dut, eta horrela, nire IP publikoa aldatzen bada, nire host-aren IP helbidea eguneratuko da.

1.2.1.4.1- Deskargatu eta instalatu

No-IP DUC programa nire Ubuntu zerbitzarian instalatuko dut, beraz, Linux-erako bertsioa deskargatu dut terminaletik, agindu hauek erabiliz: cd /usr/local/src/ wget http://www.noip.com/client/linux/noip-duc-linux.tar.gz tar xf noip-duc-linux.tar.gz cd noip-2.1.9-1/ make install Horrela, No-IP DUC programaren paketea deskargatu dut eta ondoren paketea erauzi dut. Azkenik, instalatu egin dut.

1.2.1.4.2- Konfiguratu

No-IP DUC programa instalatzearekin batera, nire No-IP-ko kontu eta host-arekin konfiguratu dut, zuzenean atera zaidanarekin: Please enter the login/email string for noip.com: [email protected] Please enter the password for user '[email protected]': ****** Please enter an update interval: [30] 30 Do you wish to run something at successful update? [N] (Y/N) N Horrela, No-IP DUC programa instalatu dut, eta “soidal.no-ip.org” host-arekin lotu da automatikoki, host hori bakarrik dagoelako lotuta nire kontura, eta host hau 30-eko interbalo batez eguneratuko da. Gainera, “no-ip2.conf” konfigurazio fitxategia sortu da: /usr/local/etc/no-ip2.conf

Page 48: Software hardware librea - dok

Tolosaldea TLHI

47

Software eta Hardware librea

Horrez gain, No-IP DUC bezeroa aurrerago konfiguratu nahi bada, agindu hau exekutatu daiteke terminalean: /usr/local/bin/noip2 -C

1.2.1.4.3- Exekutatu

No-IP DUC programa exekutatzeko, agindu hau exekutatu dut terminalean: /usr/local/bin/noip2 Horrela, No-IP DUC programa martxan jarri da atzeko plano batean, eta “soidal.no-ip.org” host-aren IP-a eguneratzen arituko da hemendik aurrera.

1.2.2- PORTUEN BERBIDERAKETA “soidal.no-ip.org” host-ak, nire routerraren IP publikora apuntatzen du, hau da, ez du nire ordenagailuaren IP pribatura apuntatzen, beraz, posta zerbitzaria oraindik ez dago atzigarri internetetik. Nire routerrean NAT sistema erabiltzen dut, sare lokaleko ordenagailu guztiek IP publiko bera erabili ahal izateko, beraz, NAT erregela batzuen bidez egingo dut. NAT erregelak, NAT sisteman portuen berbideraketa egiteko erabiltzen diren erregelak dira, IP helbide eta portu bat beste IP helbide eta portu batera bideratzeko. Kasu honetan, nire IP publikotik IP pribatura egingo ditut bideraketak. Beraz, lau zerbitzuentzako portuak berbideratu ditut: Web (80), SMTP (25), IMAP (143), POP3 (110) 80.portua, Squirrelmail posta bezeroan sartzeko behar dut, web zerbitzarian dagoen web aplikazioa delako. 25.portua korreoa bidaltzeko behar dut, eta 143 eta 110 portuak korreoa irakurtzeko. Hau egiteko, routerraren administrazio panelean sartu naiz; web nabigatzailean ate-bidearen helbidea jarriz, eta 8000.portua erabiliz: http://192.168.1.1:8000 Bertan, logeatu egin naiz: User: 1234

Page 49: Software hardware librea - dok

Tolosaldea TLHI

48

Software eta Hardware librea

Password: ******** Administrazio panelean egonda, portuen berbideraketaren atalean sartu naiz: Advanced --> Port Forwarding Bertan, lau zerbitzuen portuak bideratu ditut nire zerbitzariaren IP helbide pribatura; 192.168.1.30. Horretarako, “Add” sakatu eta bideraketa erregela berria egin dut: WAN Konexioak: PVC:8/36 Zerbitzua: Web Server (HTTP) IP Helbidea (Host izena): 192.168.1.30 Gero, sarrera eta irteerako portuak eta protokoloa aukeratu ditut: Kanpoko Hasierako Portua: 80 Kanpoko Bukaerako Portua: 80 Protokoloa: TCP Barruko Hasierako Portua: 80 Barruko Bukaerako Portua: 80

Ikusten den bezala, sarrerako portua 80.a da, Apache Web zerbitzariak erabiltzen duena, beraz, erabiltzaileek 80.portua erabiliko dute Squirrelmail posta bezeroan sartzeko, hau da, ez dute portua adierazi behar, hau defektuzkoa delako. Portu honen irteera, 80.a da, hau da, portu bera. Irteerako portua, kasu honetan 80.a izan behar da, Apache Web zerbitzariak erabiltzen duelako, ezin dut nahi dudana jarri (ez badut Apache-tik aldatzen), baina sarrerako portua, nahi dudana erabili dezaket, eta ezberdina jarriz gero, nire zerbitzariak benetaz erabiltzen duen portua

Page 50: Software hardware librea - dok

Tolosaldea TLHI

49

Software eta Hardware librea

ezkutatzea lortuko nuke, baina kasu honetan, ez dut hori egingo, bestela, erabiltzaileek portua adierazi beharko zuten nire web orrira sartzeko. “Apply” sakatu eta 80.portuaren (Web zerbitzaria) erregela berria gehitu da. Ondoren, berdina egin dut beste portuekin. Beraz, horrela geratu da:

Horrela, posta zerbitzariak erabiltzen dituen zerbitzu guztien portuak berbideratu ditut nire IP publikotik zerbitzariaren IP pribatura. Honekin, nire posta zerbitzari martxan dago, eta internetetik atzigarri dago, beraz, edozein saretatik erabili daiteke. Baina posta zerbitzurako erabiltzen DNS-a, zerbitzariaren DNS lokalekoa da, non “soidal.net” domeinua dagoen. Beraz, posta zerbitzari honek bakarrik domeinu horretarako funtzionatuko du, hau da, ezingo da korreoa bidali beste posta zerbitzari batzuetara (Hotmail, Gmail...), ezta beste posta zerbitzarietatik korreoa jaso, hauek ez dutelako “soidal.net” domeinua ezagutzen, ezta “mail.soidal.net” MX erregistroa ere. Beraz, hau konpontzeko, Postfix posta zerbitzaria eta Squirrelmail bezeroa berriro konfiguratu beharko ditut, No-IP zerbitzuan sortutako host eta MX erregistroarekin.

1.2.3- POSTFIX REKONFIGURATU Postfix posta zerbitzaria berriro konfiguratzeko, agindu hau exekutatu dut terminalean: dpkg-reconfigure postfix Bertan, Postfix aurreko aldian bezala konfiguratu dut, baina domeinua eta MX erregistroa aldatuz, eta No-IP zerbitzuan sortutakoak erabiliz; “soidal.no-ip.org”: Nombre del sistema de correo: soidal.no-ip.org Otros destinos para los cuales aceptar correo:

Page 51: Software hardware librea - dok

Tolosaldea TLHI

50

Software eta Hardware librea

soidal.no-ip.org, Ubuntu, localhost.localdomain, localhost, hotmail.com, gmail.com Horrela, Postfix errekonfiguratu dut, nire No-IP-ko host berria erabiliz.

1.2.4- SQUIRRELMAIL REKONFIGURATU Squirrelmail posta bezeroa ere berriro konfiguratu dut No-IP-ko host berriaren arabera, agindu honekin: nano /etc/squirrelmail/config.php Bertan, aldaketa hauek egin ditut: $provider_uri='http://soidal.no-ip.org/'; $domain='soidal.no-ip.org'; Hau egin ondoren, Apache web zerbitzaria berrabiarazi dut: /etc/init.d/apache2 restart Horrela, Apache web zerbitzaria berrabiarazi eta Squirrelmail bezeroa eguneratu da, “soidal.no-ip.org” host-era egokituz.

1.2.5- POSTA PROBATU Postfix eta Squirrelmail errekonfiguratu ondoren, posta zerbitzariak funtzionatzen duela probatu dut. Horretarako, posta zerbitzuan sartu naiz, Squirrelmail bezeroan, baina kasu honetan, No-IP zerbitzuko host-aren helbidea erabiliz: http://soidal.no-ip.org/mail Bertan, “user1” erabiltzailearekin logeatu naiz, eta “[email protected]” erabiltzaileari korreo bat bidali diot. Gero, “user2” erabiltzailearekin hasi dut saioa, eta mezua ondo jaso du, beraz, posta zerbitzuak funtzionatzen du.

Page 52: Software hardware librea - dok

Tolosaldea TLHI

51

Software eta Hardware librea

Azkenik, hau bera internet bidez ere probatu dut, nire sare lokaletik kanpo atzituz, eta beste mezu bat bidaliz, eta oraingoan ere ondo funtzionatu du, beraz, posta zerbitzariak eta bezeroak ondo funtzionatzen dute, bai sare lokalean eta baita interneten ere. Honekin, posta zerbitzariaren atala bukatu dut.

2- ZENBAKIEN JOKOA

Software librearekin jarraitzeko, oraingo honetan kode askeko zenbakien joko bat programatuko dut erdi mailako C lengoaian. Hau, Ubuntu sistema eragilea duen ordenagailu batean egingo dut. Testu huts batean idatziko dut, eta Ubuntu sistema eragileak duen “gcc” (GNU Compiler Collection) konpilagailua erabiliz konpilatuko dut. C lengoiaia, erdi mailako programazio lengoiai da, baina maila altuko beste programazio lengoaien estruktura antzekoak erabiltzen ditu, eta aldi berean, maila baxuko ezaugarri asko ditu. C lengoaian sortutako programek, “.c” luzapena izango dute, eta hauek konpilatzean, luzapena galduko dute.

2.1- AZALPENA

Joko honen helburua, 0-100 arteko zenbaki bat asmatzea izango da. Zenbaki hau, ausaz sortuko du programak, eta aldi bakoitzean desberdina izango da, sistemaren orduaren araberakoa izango delako. Zenbaki hau asmatzeko, erabiltzaileak 6 saiakera izango ditu, eta hasieran eta saiakera bakoitzaren ondoren, erabiltzaileari zenbat saiakera geratzen zaizkion esango dio programak. Gainera, saiakera bakoitzaren ondoren, programak bilatzen ari garen zenbakia sartutakoa baino txikiagoa edo handiagoa den esango dio. Erabiltzaileak zenbakia asmatuz gero, zoriondu egingo zaio, baina bestela, 6 saiakerak agortu baditu, galdu egin duela esango dio, eta zenbakia zein zen erakutsiko zaio.

2.2- PROGRAMAREN KODEA

Programa idazteko, lehenengo “zenbakia.c” fitxategia sortu dut: nano /home/erik/C/zenbakia.c

Page 53: Software hardware librea - dok

Tolosaldea TLHI

52

Software eta Hardware librea

Bertan, kode hau idatzi dut:

#include <stdio.h> //stdio.h liburutegia inportatu, irakurri eta idazteko #include <stdlib.h> //stdlib.h liburutegia inportatu, ausazko zenbakientzako #include <time.h> //time.h liburutegia inportatu, denbora erabiltzeko

void main() {

int x,zenb,saiakerak; //Zenbaki osoen aldagaiak definitu

saiakerak=6;

srand(time(NULL)); //rand() funtziorako erroa definitu denboraren arabera, aldakorra

izateko

x=rand()%101; //Ausazko zenbakia sortu, 0-100 artean

printf("Sartu zenbaki bat 0-100 artean. 6 saiakera dituzu\n"); //Instrukzioak pantailan inprimatu

scanf("%i",&zenb); //Zenbaki oso bat irakurri eta zenb aldagaian gorde

while (zenb!=x && saiakerak>0) //Ez badu zenbakia asmatu eta saiakerak dituen bitartean

{

if (zenb<x) //Sartutako zenbakia txikiagoa bada { printf("X zenbakia HANDIAGOA da. Saiakerak=%i \n",saiakerak-1); //Bilatzeko

zenbakia handiagoa dela esan eta saiakerak adierazi }

else if (zenb>x) //Sartutako zenbakia handiagoa bada {

printf("X zenbakia TXIKIAGOA da. Saiakerak=%i \n",saiakerak-1); //Bilatzeko zenbakia txikiagoa dela esan eta saiakerak adierazi

}

saiakerak--; //Saiakeren aldagaia eguneratu

if (saiakerak!=0) //Saiakerak ez baditu agortu { scanf("%i",&zenb); //Zenbaki berri bat irakurri } }

if (saiakerak==0) //Saiakerak agortu baditu

Page 54: Software hardware librea - dok

Tolosaldea TLHI

53

Software eta Hardware librea

{ printf("Galdu egin duzu! Zenbakia %i zen. \n",x); //Galdu egin duela adierazi }

else //Zenbakia asmatu badu { printf("Asmatu duzu! Zenbakia %i da. \n",x); //Irabazi egin duela adierazi }

}

Beraz, lehenengo, “#include” sententziarekin programak erabiliko dituen liburutegiak inportatuko ditugu. Kasu honetan, hiru liburutegi erabiliko ditugu, eta ikusten den bezala, liburutegien luzapena “.h” da. “stdio.h” liburutegia, sarrera estandarretik (teklatua) irakurri eta irteera estandarrean (pantaila) idatzi ahal izateko erabiliko dugu. “stdlib.h” liburutegia, ausazko zenbakiak sortzeko erabiliko dugu, hau da, “rand()” funtzioa erabili ahal izateko. “time.h” liburutegia denborarekin lan egiteko erabiliko dugu, kasu honetan, “time()” funtzioa erabiltzeko. “main()” metodo nagusia da, eta honen barruan doa kode nagusi guztia. Lehenengo, “x” (bilatzeko zenbakia), ”zenb” (sartutako zenbakia) eta “saiakerak” (saiakerak zenbatzeko) aldagaiak definitzen dira. Hasieran, saiakeren balioa 6 izango da, 6 saiakera dituelako. Gero, ausazko zenbakia sortzeko, “rand()” funtzioa erabiltzen dugu, eta 101 zenbakiarekin modulua eragiketa egitean, 0-tik 100-ra arteko zenbakiak hartuko ditugu. Hala ere, honen aurretik, “rand()” funtzioaren erroa definitzen dugu “srand()” funtzioaren bidez. Honen balioa, sistemaren orduaren araberakoa izango da, “time()” funtzioa erabili dugulako. Horrela, programa bakoitzean sortutako ausazko zenbakia ezberdina izango da, erro desberdina duelako, bestela, beti zenbaki bera sortuko zuen. Ondoren, erabiltzaileari zenbakia sartzeko eskatzen zaio, eta gero, zenbaki oso hau “zenb” aldagaian gordetzen da. Horrela, zenbaki hau ez bada bilatzen ari garena eta saiakerak 0 baino gehiago diren bitartean, sartutako zenbakia bilatzen ari garena baino handiagoa bada, hau adieraziko zaio, eta txikiagoa bada ere, adierazi egingo zaio. Gainera, zenbat saiakera geratzen zaizkion ere adieraziko zaio. Honen ondoren, saiakeren kontagailua eguneratu egingo da, saiakera bat gutxiago izanik, eta saiakerak 0 baino gehiago badira, zenbaki berri bat irakurriko da. Azkenik, erabiltzaileak zenbakia asmatu duen edo ez jakiteko, “if” sententzia bat erabiltzen da. “if” sententzia honetara ailegatu bada, bi arrazoirengatik izan daiteke; zenbakia asmatu duelako, edo saiakerak agortu dituelako. Beraz, saiakeren kontagailua 0 bada, zenbakia ez duela asmatu dakigu,

Page 55: Software hardware librea - dok

Tolosaldea TLHI

54

Software eta Hardware librea

eta beraz, galdu egin duela adieraziko zaio, eta zenbakia zein zen ere esango zaio. Baina saiakerak 0 baino gehiago badira, zernbakia asmatu duela esan nahi du, beraz, asmatu egin duela esango zaio, eta zenbakia zein den ere.

2.3- PROGRAMA KONPILATU

“zenbakia.c” fitxategia sortu ondoren, gorde egin dut, eta hau konpilatzeko, GNU/Linux sistema eragileek ekartzen duten “gcc” konpilagailua erabili dut. Programa konpilatzeko, agindu hau exekutatu dut terminalean: gcc zenbakia.c –o zenbakia Horrela, “zenbakia.c” fitxategia hartu, eta “-o” parametroaren bidez “zenbakia” fitxategia irteerako fitxategi bezala sortu dut.

2.4- PROGRAMA EXEKUTATU

Jokoa exekutatzeko, lehenengo jokoaren direktorioan sartu naiz: cd /home/erik/C Gero, programa exekutatzeko, agindu hau erabili dut, horrela exekutatzen direlako C programa guztiak: ./zenbakia Horrela, jokoa exekutatu da terminalean. Bertan, partida bakoitzaren ondoren, programa ixten da, eta berriro jolasteko, berriro exekutatuko dugu programa. Ikusten den bezala, programa exekutatzeko agindua Arduino IDE exekutatzeko berdina da, hau ere C lengoaian programatuta dagoelako.

2.5- SOFTWARE LIBRE BIHURTU

Orain arte egin dudan joko hau, ez da software librea, ez dudalako interneten publikoatu, baina nire intentzioa hau software askea izatea da. Programa bat kode askekoa izateko, honen kodea nonbaiten publikatuta egon behar da, edozeinek kode hau erabili, aldatu eta hobetu ahal izateko. Beraz, programa hau interneten publikatuko dut, edozeinek erabili ahal izateko.

Page 56: Software hardware librea - dok

Tolosaldea TLHI

55

Software eta Hardware librea

Hau, “Sourceforge” web gunean publikatuko dut. Web gune honek, kode askeko software asko dauka, eta bertatik programa hauek deskargatzeko aukera dugu. Baina horrez gain, softwarea igotzeko aukera ere badugu, eta hori da egingo dudana.

2.5.1- KONTUA SORTU

Lehenengo, “Sourceforge” web gunean erabiltzaile berria sortu dut. Horretarako, web orri honetan sartu naiz: https://sourceforge.net/user/registration Bertan, informazio honekin sortu dut kontua:

Horrela, nire erabiltzailea sortu dut.

2.5.2- PROGRAMA PUBLIKATU

Programa publikatzeko, web orri honetan sartu naiz:

http://sourceforge.net/ Bertan, publikazio atalean sartu naiz: Publish Publish Your Existing Project Gero, proiektuaren izen eta helbidea aukeratu ditut:

Page 57: Software hardware librea - dok

Tolosaldea TLHI

56

Software eta Hardware librea

“Create” sakatu eta proiektua sortu da. Proiektuaren informazioa sartu eta proiektua gorde da. Gero, nire proiektu berri honen orrian sartu naiz:

https://sourceforge.net/projects/zenbakiaasmatu/

Bertan, “Files” atalean sartu naiz eta “Add File” sakatu dut. “Examinar” sakatu eta “zenbakia.c” fitxategia aukeratu dut. Gero, “Upload” sakatu eta fitxategia igo da. Azkenik, “Done” sakatu dut. Horrela, nire jokoa Sourceforge web gunean igota geratu da:

Programa hau deskargatu ahal izateko, web orri honetan sartuko gara:

https://sourceforge.net/projects/zenbakiaasmatu/files/ Bertan, “zenbakia.c” fitxategiaren gainean sakatu eta fitxategia deskargatuko da:

Page 58: Software hardware librea - dok

Tolosaldea TLHI

57

Software eta Hardware librea

Orain bai dela programa hau software librea, eta edozeinek erabiltzeko aukera izango du.

Page 59: Software hardware librea - dok

Tolosaldea TLHI

58

Software eta Hardware librea

HARDWARE LIBREA

SARRERA Proiektuaren atal honetan, hardware librea landuko dut, azkenaldian indar handia hartu duena. Aspalditik software librea ezaguna zen, baina orain, hardware librea ere indarra hartzen hasi da. Hardware librea, zehazpen eta eskema diagrama askeko hardwarea da, hau da, nola eginda dagoen jakitea posible da, eta hau eraldatzea ere. Beraz, software librea bezala da, baina softwarea izan ordez, hardwarea, horregatik deitzen zaio hardware librea. Baina kasu honetan, Software librearekin gertatzen den bezala, hardware askea izateak ez du esan nahi kodea dohainik dela, hau da, ez da nahastu behar hardware librea eta dohaineko hardwarea, kasu batzuetan ordaindu egin behar da.

Normalean, hardware eta software librea batera doaz, beraz, hardware librea, eskema askeko hardwareari aplikatutako software librea dela esaten da. Beraz, software librearen bidez hardware dispositiboak programatu eta maneiatu ditzakegu. Hardware libreari dagokionez, proiektu asko daude honen inguruan; bideo-kontsolak, robotak, plaka kontrolagailuak... Proiektu honetan Raspberry Pi ordenagailua eta Arduino Uno plaka kontrolagailua landuko ditut. Hauek, hardware libreko dispositiboak dira, beraien eskema eta egitura askea delako. Alde batetik, banan-banan landuko ditut, beraien aplikazioak landuz, eta gero, bi hauen elkarketaren bidez proiektu ezberdinak egingo ditut.

3.1- RASPBERRY PI

Raspberry Pi tamaina txikiko plakako eta kostu baxuko ordenagailu bat da, Erresuma Batuan Raspberry Pi Fundazioa-k garatuta, eskoletan konputazioen zientzia bultzatzeko intentzioarekin. Hala ere, denborarekin Raspberry Pi ordenagailua oso ezaguna bihurtu da, eta helburu horretaz

Page 60: Software hardware librea - dok

Tolosaldea TLHI

59

Software eta Hardware librea

gain, beste hainbat helburuentzako erabilia izan da, berarekin egindako proiektuak koste baxua suposatzen dutelako.

Gainera, ordenagailu hau hain txikia izateak, proiektu ezberdinetarako erabili ahal izatea suposatzen du; telebista adimendunak egiteko, globo aerostatikoak, robotak, kafe makina adimendunak, NAS zerbitzariak... Proiektu honetarako erabili dudan Raspberry Pi-a, B modeloa da, 512 MB-eko RAM memoria duena. Beraz, Raspberry Pi makinarekin proiektu ezberdinak egingo ditut, baina lehenengo, hau martxan jarri behar da.

3.1.1- EZAUGARRIAK Raspberry Pi ordenagailuaren ezaugarriak ondorengoak dira: Socket: Broadcom BCM2835 CPU: ARM 1176JZF-S 700 MHz GPU: Broadcom VideoCoreIV 1080p30 RAM: 512 MB USB portuak: 2 Bideo sarrerak: MIPI CSI (Kamera modulorako) Bideo irteerak: RCA, HDMI, DSI

Page 61: Software hardware librea - dok

Tolosaldea TLHI

60

Software eta Hardware librea

Audio irteerak: 3,5 mm-ko konektorea, HDMI Sarea: 10/100 Ethernet RJ-45 Kontsumoa: 700 mA, 3,5 W Elikadura iturria: 5 V (Micro-USB edo GPIO) Ikusten den bezala, bere ezaugarriak ez dira oso indartsuak, plaka euslea oso txikia delako, baina ezaugarri batzuk oso onak dira, adibidez, definizio altuko bideoa erreproduzitzeko gai dela. Gainera, oso kontsumo baxua du, beraz, zerbitzari bezala erabiltzeko oso ondo dago.

3.1.2- FUNTZIONAMENDUA Raspberry Pi-k ordenagailu normal batek bezala funtzionatzen du, elikadura iturritik energia jaso ondoren piztu egiten da, eta disko gogorretik arrankatzen du, bertan dagoen sistema eragilea kargatuz. Kasu honetan, disko gogorra SD memoria bat izango da. Raspberry-k bi bideo konektore dituenez, bi pantaila motara konektatu dezakegu, HDMI pantaila batera edo VDI? Pantailara. Errazena HDMI bidez konektatzea da, honek, bideo eta audioa ematen dizkigulako, eta horrela ez dugu audioko irteera erabili behar. Hala ere, edozein ordenagailu bezala, pantailarik gabe erabili dezakegu, urrutiko kontrolaren bidez, beste ordenagailu batetik kontrolatuz.

3.1.3- MARTXAN JARRI Raspberry Pi makina martxan jarri ahal izateko, hiru elementu gehiago behar ditugu; SD memoria bat, sistema eragilea eta elikadura iturri bat, adibidez telefono mugikor baten kargadorea. Beraz, Raspberry Pi-a martxan jartzeko, lehenengo SD memoriaren barruan sistema eragile bat sartu beharko dugu, eta gero SD memoria hau Raspberry Pi-n sartuko dugu. Azkenik, kargadorea konektatuko dugu, eta hau automatikoki piztuko da. Ondo piztu bada, lehenengo Raspberry-ko led gorri bat piztuko da, eta behin sistema eragilea kargatzean, beste led guztiak piztuko dira. Baina gaizki arrankatu badu, led gorria bakarrik piztuko da.

3.1.3.1- ELIKADURA ITURRIA Elikadura iturri bezala, normalean gaur egungo smartphone baten kargadorea erabiltzen da, Mini-USB irteera duena, baina orokorrean Mini-USB irteera duen edozein dispositiboren kargadorea erabili daiteke, adibidez MP3 erreproduktore batena.

Page 62: Software hardware librea - dok

Tolosaldea TLHI

61

Software eta Hardware librea

Kargadoreak gutxienez 5W eta 700mA eman behar ditu, baina 1000 mA baino gehiagokoa izatea komeni da, makina ondo elikatzeko. Gutxiagokoa bada, arazoak egon daitezke. Nire kasuan, nire Xiaomi MI2S smartphone-aren kargadorea erabili ditut, 5 V eta 1200 mA ematen dituena.

3.1.3.2- SD MEMORIA SD memoriez gain, MicroSD memoriak ere erabili daitezke, baina MicroSD-SD adaptagailu bat beharko dugu. Hala ere, bi hauen kasuan, memoria Raspberry Pi makinarekin bateragarria izan behar da, SD memoria guztiak ezin ditugulako erabili. Bateragarriak izatea, beraien ezaugarrien menpe daude; fabrikatzailea, mota, tamaina, modeloa, klasea... Gure SD memoria bateragarria den jakiteko, web orri hau erabili dezakegu: http://elinux.org/RPi_SD_cards Bertan, Raspberry Pi-rekin bateragarriak diren SD memorien zerrenda dago, denborarekin eguneratzen joaten dena, beraz, bertan begiratu dezakegu gure SD memoria bateragarria den ala ez. Hala ere, ez daude SD memoria guztiak, beraz, gurea ez bada agertzen, probatu egin beharko dugu, eta gainera, gero SD memoria hau zerrenda honetan gehitzeko aukera dugu. SD memoria ez bada bateragarria, Raspberry Pi-k ez du arrankatuko, led gorri bat piztuko da bakarrik, beraz, beste SD memoria bat beharko dugu. Nire kasuan 8 GB-eko Sony Micro SD HC memoria erabili dut, eta hau Micro SD-SD adaptagailu batekin erabili dut.

3.1.3.3- SISTEMA ERAGILEA Raspberry-a martxan jartzeko hurrengo pausoa, SD memorian sistema eragile bat sartzea da. Kasu honetan, Raspberry Pi-n ezin dugu edozein sistema eragile erabili, adibidez Ubuntu bat. Beraz, Raspberry Pi makinarako egindako sistema eragile bat erabili beharko dugu. Hauetako gehienak beste GNU/Linux sistema eragiletan oinarrituta daude, adibidez Raspbian (Debian), Pidora (Fedora)... Gainera, sistema eragile hauen irudiak ez dira “.iso” motakoak, “.img” motakoak baizik. Sistema eragile hauek, internetetik deskargatu ditzakegu, software librea direlako, adibidez, Raspberry Pi-ren web gune ofizialetik: http://www.raspberrypi.org/downloads/

Page 63: Software hardware librea - dok

Tolosaldea TLHI

62

Software eta Hardware librea

Bertan, sistema eragile ezberdinak daude, eta gure beharren arabera hautatu beharko dugu: Raspbian: Debian-en oinarritutako distribuzioa. Pidora: Fedora-n oinarritutako distribuzioa. OpenElec: XBMC media zentroa. RaspBMC: XBMC media zentroa. Risc OS: Linux ez den bestelako distribuzioa. Arch Linux: Linux distribuzio arina. Hala ere, beste web gune batzuetan ere sistema eragile gehiago daude, adibidez Retropie. Hau, Raspbian-en oinarritutako distribuzioa da, bideo kontsola ezberdinen emuladoreak dituena. Sistema eragile hauetako bat deskargatu ondoren, paketea erauzi eta “.img” artxiboa izango dugu. Beraz, hurrengo pausoa sistema eragilea SD memorian instalatzea izango da.

3.1.3.3.1- Windows

Windows sistema eragilea erabiltzen ari bagara, lehenengo, SD memoria ordenagailuaren SD slot-ean sartuko dugu, eta ez badu SD slot-ik, SD-USB adaptadore bat erabili dezakegu. Gero, SD memoria FAT32 fitxategi sisteman formateatu behar izango dugu, horretarako, dispositiboa aukeratuko dugu saguaren eskuineko botoia sakatuz, eta “Formatear” aukeratuko dugu. SD memoria formateatu ondoren, Win32DiskImager programaren bidez sistema eragilearen irudia SD memorian grabatuko dugu. Programa hau, web orri honetatik deskargatu dezakegu: http://sourceforge.net/projects/win32diskimager/ Behin paketea deskargatzean, erauzi egingo dugu, eta programa administrari moduan exekutatu. Bertan, sistema eragilearen irudia aukeratu beharko dugu, eta SD memoriaren dispositibo letra. Azkenik, “Write” sakatu eta irudia kopiatu arte itxarongo dugu. Behin irudia grabatzean, programa itxi eta SD memoria aterako dugu.

3.1.3.3.2- Linux

Linux sistema eragilearen kasuan, ezin dugu Win32DiskImager programa erabili, beraz, beste era batera egin beharko dugu. Horren ordez, bi aukera ditugu, ImageWriter ingurune grafikodun programaren bidez grabatzea edo “dd” aginduaren bidez egitea.

Page 64: Software hardware librea - dok

Tolosaldea TLHI

63

Software eta Hardware librea

Bi kasuetan, lehenengo SD memoriaren dispositibo izena zein den jakin behar dugu, horretarako, muntatutako dispositiboak listatuko ditugu agindu honen bidez: df -h Bertan, gure SD memoria /dev/sdc1 bezalako izen batekin agertuko da. Gero, SD memoria formateatu egin beharko dugu. Horretarako, terminalean agindu hau erabili dezakegu: mkdosfs -I -F32 /dev/sdX Hurrengo pausoa, irudia SD memorian grabatzea izango da. Horretarako, ImageWriter programa erabiltzen badugu, hau Ubuntu-ren software zentrotik deskargatu ahal izango dugu. Programa hau administrari bezala arrankatuko dugu. Bertan, sistema eragilearen irudia hautatuko dugu, eta gero SD dispositiboa. “Write to device” sakatu eta irudia kopiatuko da. Baina horren ordez “dd” agindua erabiltzen badugu, agindu hau erabiliko dugu: dd bs=4M if=2014-01-07-wheezy-raspbian.img of=/dev/sdc1 Ikusten den bezala, “if” atalean (sarrera) sistema eragilearen izena jarri dugu, eta “of” atalean (irteera), SD dispositiboa. Behin irudia kopiatzean, SD memoria prest izango dugu erabiltzeko. Beraz, SD memoria Raspberry Pi-n sartuko dugu, eta kargadorea konektatuko dugu. Lehen esan dugun bezala, ondo egin badugu, Raspberry-ko led guztiak piztuko dira, eta gaizki egin badugu, bakarrik led gorria. Beraz, sistema eragilea kargatuko zaigu, eta bertan, sistema konfiguratu ahal izango dugu.

3.1.3.4- URRUTIKO KONTROLA Raspberry Pi-a kontrolatzeko, gehienetan urrutiko kontrolaren bidez egiten da, eta hori bi eratara egin dezakegu; interfaze grafikoarekin edo gabe. Hala ere, hau sistema eragilearen araberakoa da, baina orokorrean guztietan berdin egin daiteke.

3.1.3.4.1- SSH Raspberry Pi-ra SSH bidez interfaze grafikorik gabe konektatzea erarik errazena da.

Page 65: Software hardware librea - dok

Tolosaldea TLHI

64

Software eta Hardware librea

Lehenengo, Raspberry Pi-ko sistema eragilean SSH zerbitzaria instalatu beharko dugu. Horretarako, agindu hau erabiliko dugu: apt-get install openssh-server Horrela, Raspberry Pi-n SSH zerbitzaria izango dugu, eta Linux-eko SSH bezero batetik konektatzeko, Raspberry-aren IP helbidea erabiliko dugu: ssh erabiltzailea@IP Adibidez, Raspbian sistema eragilean: ssh [email protected] Horrela, erabiltzailearen pasahitza sartu ondoren, Raspberry-a SSH urrutiko kontrolerako protokolo seguruarekin kontrolatu ahal izango dugu Linux makina batetik. Windows bezeroen kasuan, Putty programa erabili ahal izango dugu, Raspberry-aren IP-a, erabiltzailea eta pasahitza sartuz.

3.1.3.4.2- Ingurune grafikoa Raspberry Pi-aren urrutiko kontrola ingurune grafiko bidez egiteko, erreminta eta protokolo ezberdinak daude; VNC, xrdp... Nire kasuan, VNC protokoloa erabiliko dut. Horretarako, erreminta ezberdinak daude, baina nik, Tightvncserver VNC zerbitzaria erabiliko dut. Horretarako, Tightvncserver instalatu dut Raspberry-n: apt-get install tightvncserver Instalatu ondoren, martxan jarri behar da, agindu honekin: vncserver :1 Horrela, VNC zerbitzaria martxan dago. Beraz, bertara konektatzeko, VNC bezero bat erabiliko dugu. Linux-en kasuan, Remmina erreminta erabili dezakegu. Hau, urrutiko kontrolerako Linux sistema eragileek defektuz ekartzen duten erreminta da, protokolo ezberdinak onartzen dituena. Kasu honetan, VNC protokoloa erabiltzen dudanez, Remmina ireki eta horrela konfiguratuko dut:

Page 66: Software hardware librea - dok

Tolosaldea TLHI

65

Software eta Hardware librea

“Conectar” sakatu eta konexioa irekiko da. Kasu honetan, Raspberry-aren IP helbidea adierazi dugu, eta VNC protokoloaren defektuzko portua erabili dut; 5901.

3.1.5- PROIEKTUAK Behin gure Raspberry Pi-a martxan dagoela, proiektu ezberdinak egin ditzakegu. Nire kasuan, proiektu ezberdinak egitea pentsatu dut, eta hemen azalduko ditut.

3.1.5.1- WEBCAM ZERBITZARIA Raspberry Pi-rekin egin dudan lehenengo proiektua, webcam zerbitzari bat izan da, segurtasun kamera bat izango balitz bezala. Horretarako, Logitech markako web kamera bat erabili dut.

3.1.5.1.1- Raspbian instalatu Hau egiteko, Raspbian sistema eragilea erabili dut, beraz, Raspbian sistema eragilearen irudia grabatu dut nire SD memorian. Hau, Linux makina batetik egin dut, beraz, SD memoria bilatzeko, lehen aipatutako agindu hau erabili dut: df -h

Page 67: Software hardware librea - dok

Tolosaldea TLHI

66

Software eta Hardware librea

Honen bidez, SD memoria /dev/sdc1 dela ikusi dut. Gero, SD memoria formateatzeko, agindu hau exekutatu dut: mkdosfs -I -F32 /dev/sdc1 Azkenik, Raspbian sistemaren irudia grabatu dut: dd bs=4M if=2014-01-07-wheezy-raspbian.img of=/dev/sdc1 Beraz, SD memoria atera eta Raspberry Pi-n sartu dut, eta kargadorea konektatzean sistema eragileak arrankatu du. Bertan, logeatzeko Raspbian sistemaren defektuzko erabiltzailea eta pasahitza erabili ditut: Erabiltzailea: pi Pasahitza: raspberry Beraz, Raspbian sistema erabili ahal izan dut, kontsola moduan, baina ingurune grafikoa kargatzeko, agindu hau erabili dut: startx Honekin, Raspberry Pi martxan dago Raspbian sistema eragilearekin.

3.1.5.1.2- Raspbian konfiguratu

Raspbian sistema eragilea instalatu ondoren, hau konfiguratu egingo dut, aldaketa batzuk eginez. Raspbian konfiguratzeko, agindu hau exekutatu dut: raspi-config Bertan, lehenengo fitxategi sistema handitu dut, lehenengo aukera hautatuz: 1- Expand Filesystem Horrela, sistemak hobeto funtzionatuko dugu. Hau, 4 GB baino gehiagoko SD memoriekin egingo dugu. Gero, erabiltzailearen pasahitza aldatu dut: 2- Change User Password Bertan, nire pasahitza berria sartu dut

Page 68: Software hardware librea - dok

Tolosaldea TLHI

67

Software eta Hardware librea

3.1.5.1.3- Raspbian eguneratu Raspbian sistema ere eguneratu dut, horretarako, lehenengo errepositorioen zerrenda eguneratu dut: apt-get update Gero, eguneraketa hauek instalatu ditut: apt-get upgrade Azkenik, Raspbian-en eguneraketa agindu hau ere exekutatu dut: rpi-update Horrela, Raspbian sistema eragilea eguneratuta geratu da.

3.1.5.1.4- Sarea konfiguratu Raspbian sistema eragilea konfiguratu eta eguneratu ondoren, sarea konfiguratu dut. Honen kasuan, IP helbide estatiko bat eman diot, zerbitzari moduan funtzionatuko duelako, beraz, IP helbidea beti berdina izatea komeni da. Sarea konfiguratzeko, “interfaces” fitxategia editatu dut: nano /etc/network/interfaces Bertan, informazio hau idatzi dut: auto eth0 iface eth0 inet static address 192.168.1.32 netmask 255.255.255.0 gateway 192.168.1.1 Horrela, “eth0” interfazea konfiguratu dut estatikoki, “192.168.1.36” IP helbidea emanez, eta “/24”

Page 69: Software hardware librea - dok

Tolosaldea TLHI

68

Software eta Hardware librea

maskara jarri diot. Gainera, ate-bide bezala routerraren helbidea jarri dut, “192.168.1.1”. Fitxategia gordetzeko “Control+o” sakatu dut, eta hau ixteko “Control+x”. Ondoren, sarea berrabiarazi dut: /etc/init.d/networking restart Horrela, sarea berrabiarazi da, eta Raspberry Pi-k sareko konfigurazio berria hartu du.

3.1.5.1.5- Web kamera konektatu Web kamera martxan jartzeko, Raspberry-a berrabiarazi dut, eta hau piztearekin batera kamera konektatu dut USB portu batera, horrela, Raspberry-ak hasieratik detektatuko du kamera. Kamera konektatu ondoren, Raspberry-k ondo detektatu duela frogatu dut, horretarako, agindu hau erabili dut: lsusb Agindu honekin, USB dispositibo guztiak listatu ditut:

Ikusten den bezala, web kamera lerro honetan agertzen da:

Bus 001 Device 003: ID 046d:082b Logitech, Inc. Beraz, web kamera ondo detektatu du sistemak. Hala ere, web kamera zerbitzariarekin hasi aurretik, kamerak Raspberry Pi-n funtzionatzen duela frogatu dut. Horretarako, “Luvcview” programa erabili dut. Hau, web kamera erabili ahal izateko erreminta sinple bat da. Luvcview terminaletik instalatu dut agindu honekin: apt-get install luvcview Programa instalatu ondoren, exekutatu egin dut, terminalean hau idatziz:

Page 70: Software hardware librea - dok

Tolosaldea TLHI

69

Software eta Hardware librea

luvcview Horrela, web kameraren grabazioa ikusi ahal izan dut, beraz, honek ondo funtzionatzen du.

3.1.5.1.6- libv4l-0 liburutegia instalatu Ondoren, Raspberry Pi-k kamera dispositiboarekin hobeto funtzionatzeko, “libv4l-0” liburutegia instalatu dut. Hau, ez da guztiz beharrezkoa, baina gomendagarria da, eta web kamera batzuen kasuan, hau gabe ez du ondo funtzionatuko. Nire kasuan, gero bideo streaming-a egiteko erabiliko dudan programak web kamerarekin ondo funtzionatzeko instalatu dut. “libv4l-0” liburutegia instalatzeko: apt-get install libv4l-0 Horrela, liburutegia instalatu da.

3.1.5.1.7- Motion instalatu Motion, Linux sistema eragilerako web kamera erabiltzeko programa da, bideoa mugimendu detektorea. Honek, bideo streaming-a egitea ahalbidetzen digu, hau da, web kamerak grabatutakoa sarean ikusgai egon ahal izatea, intranet edo interneten. Gainera, mugimendua nabaritzen duenean, irudiak eta bideoa gordetzen hasten da, eta hauek ordenagailuan gordetzen dira. Hau, kode askeko softwarea da, eta C lengoaian programatuta dago. Motion programa instalatzeko agindu hau erabili dut: apt-get install motion Horrela, programa instalatu da, baina orain konfiguratu egingo dut, nire kameraren arabera.

3.1.5.1.8- Motion konfiguratu Motion programa konfiguratzeko, “motion.conf” eta “motion” fitxategietan aldaketak egin ditut. Lehenengo, “motion.conf” fitxategia editatu dut, Motion programaren konfigurazio fitxategia: nano /etc/motion/motion.conf

Page 71: Software hardware librea - dok

Tolosaldea TLHI

70

Software eta Hardware librea

Bertan, aldaketa hauek egin ditut: daemon on #demoinioa aktibatu webcam_port 605 #Webcam streaming-erako portua webcam_localhost off #Webcam-a bakarrik Raspberry-n ikustea desgaitu; sarean atzigarri izateko. control_port 8080 #Webcam-a konfiguratzeko portua control_localhost off #Webcam-a bakarrik Raspberry-n konfiguratzea desgaitu; sarean konfiguragarria izateko Fitxategia gorde eta itxi egin dut. Ondoren, “motion” fitxategia editatu dut: nano /etc/default/motion Bertan, aldaketa hau egin dut: start_motion_daemon yes #Motion-en demonioa hasieran aktibatzeko Fitxategi hau ere gorde eta itxi egin dut. Horrela, Motion konfiguratu dut, eta programa hau Raspberry Pi-a arrankatu ondoren hasiko da martxan. Aldaketa hauek aplikatu daitezen. Motion zerbitzua berrabiarazi dut: service motion restart Horrela, aldaketak aplikatu dira eta Motion programa erabiltzeko prest dago. Kasu honetan, Motion zerbitzua berrabiarazi dut, baina hau hasi eta gelditu ere egin daiteke. Motion zerbitzua hasteko: service motion start Motion zerbitzua gelditzeko: service motion stop

Page 72: Software hardware librea - dok

Tolosaldea TLHI

71

Software eta Hardware librea

Hurrengo pausoa, bideo streaming-a martxan jartzea izango da.

3.1.5.1.9- Streaming-a hasi Motion programa eta web kameraren bidez bideoa sarean ikusgarri egin ahal izateko, “motion” agindua erabiliko dugu. Motion zerbitzuak bideoa soilik grabatu nahi badugu, agindu hau erabiliko dugu: motion Baina bideoa grabatzeaz gain, irudiak atera eta gordetzea ere nahi badugu, “-n” parametroa gehituko diogu: motion -n Horrela, irudiak ere gordeko dira, baina hau ez da oso gomendagarria, argazki asko gordetzen direlako, eta gehienetan ez da beharrezkoa. Hala ere, “motion” agindua soilik erabiltzen badugu ere, argazkiak gordetzen dira mugimendua detektatzean, eta ez denbora guztian, eta hau hobea da, disko gogorreko leku gutxiago okupatzen dugulako.

3.1.5.1.10- Motion nabigatzailetik konfiguratu Motion programa “motion.conf” fitxategiaren bidez konfiguratzeaz gain, saretik ere konfiguratu dezakegu. Horretarako, web nabigatzailean Raspberry-aren IP helbidea eta konfigurazio portua jarri behar ditugu: http://192.168.1.36:8080 8080 portua erabili dut, lehen konfigurazio fitxategian jarri dudalako. Bertan, interfaze grafiko bidez Motion programa konfiguratu eta aldaketak egin ahal izango ditugu.

3.1.5.1.11- Streaming-a ikusi Motion programak grabatutako bideoa ikusi ahal izateko ere, web nabigatzaile bidez egingo dugu. Kasu honetan ere, Raspberry-aren IP helbidea erabiliko dugu, baina orain streaming-erako konfiguratu dugun portua: http://192.168.1.36:605 Ikusten den bezala, 605 portua erabili dut, lehen konfigurazio fitxategian azaldu dudalako. Denak ondo funtzionatzen badu, web kameraren grabazioa ikusi ahal izango dugu, eta honen

Page 73: Software hardware librea - dok

Tolosaldea TLHI

72

Software eta Hardware librea

bidez, gure etxean gertatzen dena ikusi ahal izango dugu. Grabazioa ez bada ikusten, web kameraren arazoa izan daiteke, agian ez dela bateragarria Motion programarekin. Hau, normalean Motion programan konfiguratuta dugun bideo paleta eta web kamerarena desberdinak direlako izan daiteke. Kasu honetan, web kamerak erabili ditzakeen bideo paletak ikusi beharko ditugu, eta Motion programak onartzen duen. Motion-ek 8 bideo paleta jasaten ditu, beraz, gure kamerarena ez bada horietako bat, ezingo dugu erabili. Baina web kameraren bideo paleta Motion-ek onartzen dituenen artean badago, orduan Motion-eko bideo paleta aldatu beharko dugu. Hori, “motion.conf” fitxategian adieraziko dugu. Adibidez, JPEG bideo paleta erabili nahi badugu: v4l2_pallete 3 Horrela, JPEG bideo paleta erabiliko dugu, 3.a, eta ez Motion-en lehenetsitako paleta, 8.a.

3.2- ARDUINO

Arduino hardware libreko plataforma bat da, mikro-kontrolagailudun plaka batean eta garapen ingurune batean oinarritua, elektronikako proiektuetan erabiltzeko. Arduino proiektua 2005-ean garatu zen, Italiako ikertzaile batzuen bidez, eta hasieran, IVREA institutuko ikasleek erabiltzen zuten, aurretik BASIC Stamp mikro-kontrolagailua erabiltzen zutelako, eta oso garestia zelako, 100 dolar inguru, beraz, Arduino plaka aukera merke bat izan zen. Arduino kontrolagailuarekin, hainbat proiektu egin daitezke, elektronikarekin lotutakoak; robotak programatzeko, etxea domotizatzeko, segurtasun kamera sistemak...

Arduino mikro-kontrolagailuak erabiltzen duen programazio lengoaia, Arduino-ren lengoaia propioa da. Hau, Processing maila altuko lengoaian oinarrituta dago. Hala ere, Arduino programatzeko lengoaia natiboak edo kanpokoak ere erabili daitezke; Java, C, C++, Perl, PHP, Phyton... Baina plaka batzuetan, software bitartekari bat behar da kanpoko lengoaia

Page 74: Software hardware librea - dok

Tolosaldea TLHI

73

Software eta Hardware librea

hauek erabiltzeko.

3.2.1- EZAUGARRIAK Proiektu honetarako Arduino Uno mikro-kontrolagailua erabiliko dut, eta bere ezaugarriak hauek dira: Mikrokontrolagailua: ATmega328 Sarrera tentsioa: 7-12 V Sistemaren tentsioa: 5 V Erloju frekuentzia: 16 MHz Sarrera/Irteera digitalak: 14 Sarrera analogikoak: 6 Flash memoria: 32Kb Kargadorea: Optiboot Ikusten den bezala, ezaugarriak ez dira oso indartsuak, eta oso memoria gutxi du, baina hau nahikoa da Arduino-k funtzionatzeko, zeren kontutan hartu behar da, ez dela ordenagailu bat (Raspberry Pi ez bezala), plaka kontrolagailu bat baizik.

3.2.2- FUNTZIONAMENDUA Arduino plaka kontrolagailuak, plakaz gain, Arduino IDE softwarea erabiltzen du. Hau, Arduino-ren garapen ingurune integratua da, mikro-kontrolagailua programatu ahal izateko. Beraz, Arduino-k funtzionatu ahal izateko, bi elementu horiek behar ditugu; Arduino plaka bat eta Arduino IDE garapen softwarea. Egin behar dugun lehenengo gauza, Arduino plaka ordenagailu batera konektatzea da, USB-MiniUSB kable baten bidez. Ordenagailu honetan, Arduino IDE instalatuta eta konfiguratuta egon beharko da. Bertan, mikro-kontrolagailua nahi dugun moduan programatu ahal izango dugu, erabiliko ditugun elementuen arabera, hau da, Arduino plakaz gaiz, osagai elektroniko ezberdinak erabili ditzakegulako; prototipoak egiteko plakak, motorrak, led diodoak... Behin programa idatzi dugunean, gorde eta konpilatu egingo dugu. Horrela, programa hau Arduino-ren memorian kargatzen da, eta hemendik aurrera, ez dugu ordenagailua gehiago behar, beraz, ordenagailutik deskonektatu dezakegu.

Page 75: Software hardware librea - dok

Tolosaldea TLHI

74

Software eta Hardware librea

Arduino-ri elikadura emateko, USB portu baten bidez egin dezakegu, adibidez berriro ordenagailura konektatuta, baina pilen bidez ere egin dezakegu. Behin Arduino-k elikadura jaso duenean, hau martxan jartzen da, eta programa exekutatzen da.

3.2.3- INSTALATU Arduino plaka kontrolagailua programatu ahal izateko, software bat erabiliko dugu; Arduino IDE (Integrated Development Environment). Hau, Arduinoren garapen ingurune integratua da. Hau, Windows eta Linux-en instalatu dezakegu, baina bietan, Java JDK (Java Development Kit) beharko dugu, hau da, Java-ren garapen ingurunea.

3.2.3.1- WINDOWS Windows sistema eragilean Java JDK instalatzeko, web gune honetatik deskargatuko dugu: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html?ssSourceSiteId=otnes Ondoren, instalatzailea exekutatuko dugu. Arduino IDE instalatzeko, web gune honetatik deskargatuko dugu paketea: http://arduino.cc/en/Main/Software Gero, paketea erauzi eta instalatzailean sartuko gara. Bertan, “Siguiente” sakatuko dugu eskatzen digunean, eta instalatu egingo da.

3.2.3.2- LINUX Nire kasuan, Arduino IDE eta JDK erremintak Linux sisteman instalatu ditut. Kasu honetan, instalatzeko erarik errazena agindu hau erabiltzea da: apt-get install arduino Horrela, gure sisteman Arduino IDE eta OpenJDK instalatzen dira batera, beraz, ez dugu Java-ren garapen ingurunea aparte instalatu behar. Hala ere, hau ez bada ondo instalatu, eskuz instalatu beharko dugu:

Page 76: Software hardware librea - dok

Tolosaldea TLHI

75

Software eta Hardware librea

apt-get install openjdk-7-jdk Arduino IDE erremintaren beta bertsio berria nahi badugu, agindu hauek erabiliko ditugu: cd /home/erik/Descargas wget http://downloads.arduino.cc/arduino-1.0.5-linux32.tgz tar zxvf arduino-1.0.5-linux32.tgz cd /arduino-1.0.5/ Honen ondoren, Arduino IDE erreminta exekutatzeko, terminalean agindu hau erabiliko dugu: ./arduino Horrela, Arduino IDE garapen ingurunea irekiko zaigu.

3.2.4- KONFIGURATU Arduino IDE garapen ingurunea instalatu eta exekutatu ondoren, gure Arduino plakaren arabera konfiguratu beharko dugu. Horretarako, Arduino plaka konektatu behar dugu ordenagailura, eta gero, Arduino IDE ireki. Nire kasuan, Arduino IDE irekitzeko: cd /home/erik/Descargas/arduino-1.0.5/ ./arduino Horrela, Arduino IDE programazio ingurunea ireki da. Bertan, Arduino Uno plaka erabiliko dudala adierazi dut. Horretarako, “Tarjetas” ataleko txartelen artean aukeratu dut: Herramientas --> Tarjetas --> Arduino Uno Gainera, “Puerto Serial” atalean Arduino-ren portua aukeratu dut: Herramientas --> Puerto Serial --> /dev/ttyACM0 Horrela, Arduino IDE softwarea konfiguratu dut nire Arduino Uno-ren arabera, eta programatzen hasteko prest dago.

Page 77: Software hardware librea - dok

Tolosaldea TLHI

76

Software eta Hardware librea

3.2.5- PROIEKTUAK Behin Arduino plaka kontrolagailua martxan dagoela, honekin elektronikako proiektu ezberdinak egin ditzaket.

3.2.5.1- LASER PUNTEROA Arduino erabiliz egingo dudan lehenengo proiektua, laser puntero bat izango da. Hau, herriko festetako barraketan saltzen dituzten laser moduko bat izango da. Laserrak erabilera asko izan ditzakete. Nire kasuan, jolasteko laser sinple bat izango da, edo gauzak erakusteko, baina honi laser izpien hargailu bat gehituz gero, segurtasun sistema bat bezala erabili daiteke, adibidez, laser izpia moztean, alarma batek jotzeko. Nire laserra eramangarria izango da, Arduino 9V-tako pila baten bidez elikatuko dudalako. Hala ere, hau pixka bat handia izango da laser bat izateko.

3.2.5.1.1- Azalpena

Laser punteroa sinplea izango da; pultsadore bat egongo da, eta hau sakatuta ez dagoen bitartean, laserrak ez du ezer egingo. Baina pultsadorea sakatzean, laserrak argia egingo du. Esan dudan bezala, Arduino pila baten bidez elikatuta egongo denez, laserra eramangarria izango da, eta edozein lekutan erabili ahal izango dugu.

3.2.5.1.2- Elementuak

Proiektu honetarako erabiliko ditudan elementu elektronikoak hauek izango dira:

• Arduino Uno

• Prototipoentzako plaka (protoboard)

• Laser diodoa

• Pultsadorea

• 10K Ohm-eko erresistentzia

• 9V-ko pila

• Kableak Elementu elektroniko hauek nahiko merkeak dira, eta edozein denda elektronikotan erosi ahal izango ditugu.

3.2.5.1.3- Zirkuitu elektronikoa

Page 78: Software hardware librea - dok

Tolosaldea TLHI

77

Software eta Hardware librea

Proiektu honen zirkuitu elektronikoa honako hau izango da:

Zirkuitu honetan, Arduino prototipoentzako plaka batekin konektatuta dago. Prototipoen plakan, laser diodoa dago, eta hau piztu eta itzaltzeko, pultsadore bat. Pultsadorea sakatuta edo sakatu gabe dagoen jakiteko, bi zirkuitu txiki daude. Pultsadoreak bi hanka ditu, eta hau sakatu gabe badago, bi hankak ez daude kontaktuan, beraz, korrontea hanka batetik pasatuko da, eta hau polo negatibora joango da, lurrera, 0V-ra. Gainera, zirkuituaren zati honetan, 10K Ohm-eko erresistentzia bat jarri dut, bertako korrontea mugatzeko eta zirkuitu laburrik ez gertatzeko. Erresistentzia honen balioa hain altua da, zeren ez dago elementu elektronikorik tentsioa kontsumituko duenik, beraz, bertatik pasatzen den intentsitatea altuegia izango da, eta ezin da zuzenean lurrera joan. Beraz, zirkuituaren atal horretatik 0A-ko intentsitatea igarotzea nahi dugu, eta horretarako, erresistentzia bat erabiliko dugu. Honen balioa kalkulatzeko, Ohm-en erregela erabili dut; V=RxI. Kasu honetan, 5V-ko tentsioa igarotzen da, beraz, horrek sortutako intentsitatea 0A-koa izateko, erresistentzia ahalik eta altuena izan beharko da, intentsitatea 0A-tara gerturatzeko: R=V/I --> R=(V zirkuitua–V elementuak)/I R=5V/0A= Infinito Ohm Kasu honetan, intentsitatea 0A izateko, infinitu Ohm-eko erresistentzia bat erabili beharko genuke, baina ez dago horrelako erresistentziarik eta intentsitatea 0A ezingo da izan, beraz, 0A-ra gerturatzea lortu beharko dugu. Horregatik, ahalik eta balio handieneko erresistentzia erabili dut, nire kasuan 10K Ohm-ekoa. Horrela, zirkuituko atal horren intentsitatea ondorengoa izango da:

Page 79: Software hardware librea - dok

Tolosaldea TLHI

78

Software eta Hardware librea

I=V/R I=5V/10.000Ohm I=0,0005A Ikusten den bezala, errealitatean intentsitatea ez da 0A-koa, 0,0005A-koa baizik, baina hau oso txikia da, eta orain ez dago arazorik. Pultsadorea sakatzen berriz, bi hankak konektatzen dira, eta korrontea beste hankatik igarotzen da, eta kasu honetan, hau polo positibora joango da, 5V-era. Beraz, prototipoentzako plaka elikatzeko, Arduino-ren 5V-eko portu bat protoboard-aren lerro positiboarekin konektatu dut kable baten bidez, eta Arduino-ren 0V-eko portu bat protoboardeko lerro negatiboarekin. Pultsadorearen seinalea irakurtzeko, Arduino-ren 2.portu digitala konektatu dut pultsadorearen hanka batera. Horrela, pultsadorearen seinalea negatiboa bada, hau pultsatu gabe dagoela jakingo dugu, eta seinalea positiboa bada, pultsatuta egongo da. Beste alde batetik, led diodoak hiru hanka ditu; positiboa,positiboa+seinalea eta negatiboa. Kasu honetan, seinalea bidali nahi diot, beraz, Arduino-ren 13.portu digitala led diodoaren seinalearen ankara konektatu dut, erdikoa. Gainera, led diodoaren hanka negatiboa protoboard-eko lerro negatibora konektatu dut.

3.2.5.1.4- Arduino programa Arduino-ko programa egiteko, Arduino ordenagailuarekin konektatu dut, eta Arduino IDE garapen ingurunea ireki dut. Bertan, nire programaren kodea idatzi dut, ondorengo hau:

int botoia=0; //botoia aldagaia hasieratu

void setup() { pinMode(13,OUTPUT); //13.portua irteera bezala definitu pinMode(2,INPUT); //2.portua sarrera bezala definitu }

void loop() { botoia=digitalRead(2); //botoia-ren balioa irakurri

if (botoia == HIGH) //Botoia sakatuta badago {

digitalWrite(13,HIGH); //Led infragorria piztu }

Page 80: Software hardware librea - dok

Tolosaldea TLHI

79

Software eta Hardware librea

else //Botoia sakatu gabe badago {

digitalWrite(13,LOW); //Led infragorria itzali }

} Kodean ikusten den bezala, “botoia” izeneko aldagaia sortu dut, zenbaki arrunta, eta hasieran 0 balioa izango duena. Gero, “setup” funtzioan 13 eta 2 pinak konfiguratu ditut. 13.pina irteerakoa izango da, laserrarentzako erabiliko dudalako, seinalea bidaltzeko, eta 2.pina sarrerakoa, pultsadorearen egoera irakurtzeko. “loop” funtzioan, 2.pinaren egoera irakurtzen da, eta hau “botoia” aldagaian gordetzen da. Gero, “if” sententzia batekin “botoia” aldagaiaren egoera konparatzen da, eta “HIGH” bada, hau da, positiboa, 5V-koa, laserrari seinale positiboa bidaltzen zaio, argia egiteko, baina “botoia” aldagaiaren egoera “LOW” bada, hau da, negatiboa, 0V-ekoa, laserrari seinale negatiboa bidaltzen zaio, argirik ez egiteko. Programa idaztean, gorde egin dut, “Guardar” sakatuz, eta gero, programak errorerik ez duela ikusi dut, “Verificar” sakatuz. Azkenik, “Cargar” sakatu dut eta programa Arduino plakako mikroprozesagailuan kargatu da. Azkenik, Arduino ordenagailutik deskonektatu dut, eta pilaren bidez elikatu dut, eramangarria izateko.

3.2.5.1.5- Emaitza Azkenean, laser punteroa horrela geratu da:

Laserrak horrela funtzionatuko zuen:

Page 81: Software hardware librea - dok

Tolosaldea TLHI

80

Software eta Hardware librea

Ikusten den bezala, laser puntua ondo ikusten da, baina laserraren tamaina pixkat handiegia da.

3.2.5.1.5- Ondorioak Honekin, barraketan saltzen dituzten puntero laser moduko bat egitea lortu dut, eta botoia sakatzean, piztu egiten da. Hau, jolasteko ondo dago edo mapak seinalatzeko, baina honetaz gain, laserrak erabilera garrantzitsuago bat izatea ondo egongo litzateke, adibidez, lehen esan dudan bezala, segurtasun sistema batean, pelikuletako bankuetan ikusten den bezala. Hau egiteko, laser izpien errezeptore bat erabili beharko zen, eta norbait edo zerbaitek argi izpia moztean, bozgorailu baten bidez alarma hotsak egingo ziren. Hala ere, interesgarria iruditu zait puntero laserra, gainera, zailagoa da botoiaren atala egitea laser bera baino.

3.3- RASPBERRY PI + ARDUINO

Raspberry Pi plaka murriztuko ordenagailua eta Arduino plaka kontrolagailua banatuta aztertu ondoren, oraingoan bi hauen elkarketaren bidez proiektu bat egingo dut. Honen bidez, bi dispositibo hauen elkarketaren bidez lortu ditzakegun abantailak ikusi ahal izango dira.

3.3.0- ELKARKETA Lehen, Arduino plaka nire Ubuntu ordenagailu normaletik programatu dut, baina kasu honetan, Raspberry Pi-ren bidez egingo dut. Raspberry Pi ordenagailu bat da, beraz, bertan Arduino IDE instalatu daiteke, eta bertatik Arduino-ko mikro-kontrolagailua programatu, eta honez gain, Raspberry Pi-k Arduino plaka ere elikatu ahal

Page 82: Software hardware librea - dok

Tolosaldea TLHI

81

Software eta Hardware librea

izango du. Beraz, Raspberry Pi-tik Arduino programatzeko, Raspberry-n Arduino -ren garapen ingurunea instalatu beharko dut, lehen Ubuntu-n egin dudan moduan, baina kasu honetan, Raspbian sistema eragilean.

3.3.0.1- ARDUINO KONEKTATU Lehenengo egin behar dugun gauza, Arduino Uno plaka Raspberry Pi-ra konektatzea izango da. Horretarako, Raspberry Pi-k dituen bi USB portuetako batera konektatu dut Arduino-ren USB-MiniUSB kablea, eta beste muturra Arduino-ren MiniUSB portura konektatu dut. Horrela, Arduino-k elikadura hartu du, eta martxan jarri da.

3.3.0.2- ARDUINO IDE INSTALATU Ubuntu ordenagailuan Arduino IDE garapen ingurunea instalatu dudan moduan, Raspbian sistema eragilean ere instalatuko dut. Kasu honetan, Raspbian sistema eragilean Arduino IDE instalatzeko, agindu sinple hau erabili dut: apt-get install arduino Horrela, Arduino IDE softwarea instalatzeaz gain, Openjdk-7-jdk Java garapen ingurunea ere instalatu da.

3.3.0.3- ARDUINO IDE KONFIGURATU Arduino IDE softwarea instalatu ondoren, hau konfiguratu ere egin dut. Horretarako, lehenengo Arduino IDE ireki dut: Inicio Electrónica Arduino IDE Bertan, lehenengo Arduino Uno txartela aukeratu dut: Herramientas --> Tarjetas --> Arduino Uno Gero,Arduino-ren serial portua aukeratu dut: Herramientas --> Puerto Serial --> /dev/ttyACM0 Horrela, Arduino IDE garapen ingurunea konfiguratuta dago nire Arduino-ren arabera, eta Arduino programatzeko prest dago.

Page 83: Software hardware librea - dok

Tolosaldea TLHI

82

Software eta Hardware librea

3.3.1- SEGURTASUN SISTEMA Lehen Raspberry Pi ordenagailuarekin web kameraren bidez streaming-a egin dut, baina kasu honetan, streaming sinple bat izan ordez, bideo bigilantziako segurtasun sistema bat izango da, ilunpean ere grabazioa ikusi ahal izango dena. Horretarako, Raspberry Pi-ko web kameraren proiektuari Arduino erabiliz funtzionatzen duen argi infragorria gehituko diot.

3.3.1.1- AZALPENA Kamera bidezko segurtasun sistema honek, lehen erabilitako web kamera erabiliko du bideoaren streaming-a egiteko, baina kasu honetan, Arduino bidez funtzionatzen duen zirkuitu elektroniko bat egongo da, ardi infragorria igorriko duena. Honi esker, kamerak gauean ere grabatu ahal izango du, zeren ilunpetan, nahiz eta guk edo lapurrek ezer ez ikusi, gure begia ez delako gai argi infragorria jasotzeko, kamerak gai dira argi infragorria ikusteko, beraz, grabazioa ez da ilunpetan egongo. Hala ere, igorritako argi infragorria oso gutxi izango da, led diodoak erabiliko ditudalako, beraz, hau simulazio bat bezala izango da, eta errealitatean, argi infragorriko bonbilla handiagoak erabili beharko nituen. Beraz, web kamera etxeko zona bat grabatzen egongo da, baina grabazio hau ez da gordeko, sarean ikusgarri izango da, lehen bezala. Baina kamerak mugimendua detektatzean, irudiak gordetzen hasiko dira Raspberry Pi-n, eta hauek poliziari erakusteko erabili ahal izango dira (lapurrak izan badira). Gainera, gaua denean, kamerak argia izango du, beraz, berdin detektatu ahal izango du mugimendua.

3.3.1.2- ELEMENTUAK Segurtasun sistema hau egiteko erabiliko ditudan elementuak hauek izango dira:

• Raspberry Pi

• Motion programa

• Arduino Uno

• Protoboard plaka

• Argi infragorriko led diodoa

• x Ohm-eko erresistentzia

• Kableak

Page 84: Software hardware librea - dok

Tolosaldea TLHI

83

Software eta Hardware librea

Beraz, elementu hauek izanda, proiektua egiten hasi daiteke.

3.3.1.3- MOTION Kasu honetan ere, web kameraren grabazioa ikusgarri izateko, Motion programa erabili dut, baina hau lehendik instalatuta eta konfiguratuta nuen Raspbian sistema eragilean, beraz, zati hau azalduta dago goian.

3.3.1.4- ZIRKUITU ELEKTRONIKOA Kasu honetan erabiliko dudan zirkuitu elektronikoa sinplea izango da:

Konexioak protoboard plakan egingo ditudanez, Arduino-ren bidez elikatu dut protoboard plaka. Horretarako, Arduino-ren 5V-ko 12.portu digitala protoboard-eko lerro positibora konektatu dut, eta Arduino-ren 0V-ko edo lurreko portua protoboard-eko lerro negatibora. Protoboard plakan, led diodo infragorria konektatu dut. Horretarako, led infragorriaren anodoa protoboard-eko lerro positibora konektatu dut, eta katodoa erresistentzia batera konektatu dut. Erresistentzia hau, led infragorria ez erretzeko erabili dut. Zirkuituko tentsioa puntu horretan 5V da, baina led infragorriak 1,3V erabiltzen dituenez, tentsio erorketa kalkulatu behar da. Gainera, led infragorriak 20 mA-ko intentsitatean funtzionatzen du. Beraz, hau guztia jakinda, Ohm-en legearen bidez, erresistentziaren balioa kalkulatu dut: R=V/I

Page 85: Software hardware librea - dok

Tolosaldea TLHI

84

Software eta Hardware librea

R=(5V-1,3V)/0,02A R=3,7V/0,02A R=185 Ohm

Beraz, led infragorria erre ez dadin, eta ahalik eta argi gehien igorri dezan, 185 Ohm-eko erresistentzia jarri behar diot. Baina ez dudanez 185 Ohm-eko erresistentziarik, gehien gerturatzen zaion bat erabiliko dut, kasu honetan, 220 Ohm-ekoa. Horrela, led infragorria ez da erreko, baina erresistentzia hau behar dena baino handiagoa denez, ez du argi maximoa egingo. Hala ere, kamerak ikusteko nahikoa izango da. Gainera, erresistentzia honen beste hanka, protoboard-eko lerro negatibora, lurrera.

3.3.1.5- ARDUINO PROGRAMA Arduino Raspberry Pi-ra konektatuta dagoela, Arduino IDE garapen ingurunea ireki dut, eta kasu honetan, programa hau idatzi dut:

void setup() { pinMode(12,OUTPUT); //12.portua irteera moduan definitu } void loop() { digitalWrite(12,HIGH); //Led infragorria piztu }

Ikusten den bezala, kasu honetan Arduino programa oso sinplea da. Lehenengo, 12.portu digitala definitzen dairteera bezala, hau izango delako led infragorriak erabiliko duena. Gero, programa nagusian, 12.portuari HIGH balioa ematen diogu, hau da, 1, beraz, led infragorria piztu egingo da. Hau egiteko, berez ez dugu Arduino plaka erabili beharrik, baina horrela, segurtasun sistema inteligentea izatea lortzen dugu, eta led infragorriaren portaera aldatu ahal izango dugu nahi dugunean, adibidez, bakarrik gauean pizteko. Gainera, segurtasun sistema honi elementu gehiago gehitu diezaizkiogu, adibidez, laser errezeptore bat jarrita, eta lehen egin dudan laser punteroa erabiliz, lapur batek laser izpia puskatzean, sistemak detektatu egingo zuen, eta bozgorailu bat gehituz gero, laser izpia haustean alarmak jotzeko aukera izango genuen. Programa hau, lehenengo berifikatu egin dut “Verificar” sakatuz, eta gero Arduino-ren mikro-

Page 86: Software hardware librea - dok

Tolosaldea TLHI

85

Software eta Hardware librea

kontrolagailuan kargatu dut “Cargar” sakatuz.

3.3.1.6- BIDEO STREAMING-A INTERNETEN

Horrela, bideo streaming-a bakarrik sare lokalean ikusi ahal izango dugu, baina hau etxetik kanpo ere ikustea nahi duigu, adibidez, oporretara joaten bagara, beste herri batetik ere ikusi ahal izateko. Horretarako, Motion programak erabiltzen duen 605.portua berbideratu dut routerrean, Raspberry Pi-ra joateko. Hau egiteko, routerreko konfigurazio orrian sartu naiz: http://192.168.1.1:8000 Bertan, logeatu egin nahiz, eta portuen berbideraketa atalean portu berria hegitu dut: Advanced Port dorwarding Add Bertan, portu hau bideratu dut:

“Apply” sakatu eta 605.portua bideratu dut 192.168.1.32 IP helbidera.

3.3.1.7- EMAITZA

Orain, bideo streaming-a interneten atzigarri ere izango da, etainternet duen edozein dispositibotatik ikusi ahal izango dugu, adibidez, smartphone batetik. Beraz, bideoa ikusteko, web nabigatzailean nire routerreko IP helbide publikoa erabili dezaket, 605.portuarekin: http://88.13.177.72:605 Ikusten den bezala, lehen nire IP publikoa beste bat zen, baina orain aldatu egin da. Beraz, horren

Page 87: Software hardware librea - dok

Tolosaldea TLHI

86

Software eta Hardware librea

ordez, lehen sortutako “soidal.no-ip.org” host-a ere erabili dezaket: http://soidal.no-ip.org:605 Horrela, IP publikoa aldatuta ere, bideo streaming-a edozein lekutan ikusteko aukera izango dut. Gainera, gaua izanda ere, ondo ikusi ahal izango dut, zeren argi infragorriari esker, web kamerak argia ikusi ahal izango du, nahiz eta lapurrak ezer ez ikusi. Beraz, bideo streaming-aren emaitza hau da:

Ikusten den bezala, argi infragorria ikusi egiten da, baina ez da asko nabaritzen, egunez delako, eta led infragorri bat delako. Argi gehiago lortzeko, argi infragorri handia erabili beharko nuen. Kasu honetan, bideoa Ubuntu sistema eragilea duen ordenagailu batetik ikusten ari naiz, baina smartphonetik ikustea ere posible da:

Page 88: Software hardware librea - dok

Tolosaldea TLHI

87

Software eta Hardware librea

Kasu honetan, bideoa gauez ari naiz ikusten, eta argi infragorria hobeto ikusten da. Hala ere, ez du argi asko egiten, baina hau simulazio bat besterik ez da.

3.3.1.8- ONDORIOAK

Honekin, bideo bigilantziako segurtasun baten simulazioa egin dut. Hau egin dut, interesgarria eta erabilgarria iruditu zaidalako, edozein lekutan erabili dezakegulako; enpresetan, fabriketan, dendetan, etxean… Gainera, bideoa ikustea oso erraza da, internet bidez, eta smartphon-a badugu, oso erosoa izango da. Honekin ikusi dudana, Raspberry Pi eta Arduino bezalako dispositiboak elkartuz erreminta indartsuak lortu ditzakegula da. Hala ere, esan dudan bezala, elementu elektroniko gehiago gehitzea gustatuko litzaidake; laser errezeptorea, alarma… baina aurrerago egin beharko dut.

Page 89: Software hardware librea - dok

Tolosaldea TLHI

88

Software eta Hardware librea

ONDORIOAK

Proiektu honekin hasi aurretik, banekien software eta hardware librea erabiliz gauza politak ezin zitezkeela, baina orain, pentsatzen nuena baino askoz ere indartsuagoa izan daitekeela ikusi dut. Gainera, hasieran ez nuen hardware libreari buruzko ideia handirik, eta orain, nire interesa asko handitu da. Gainera, software eta hardware librea elkartzen baditugu, proiektu interesgarri asko egin daitezkeela ikusi dut, eta aukera asko daudela. Proiektu honi esker, gauza berri asko ikasi ditut, adibidez, posta zerbitzari baten maila baxuan nola funtzionazten duen, posta bezero bat nola programatu… Proiektu honek denbora asko eskatu dit, baina ikasi dudanagatik, merezi izan dit.

BIBLIOGRAFIA

http://es.wikipedia.org/wiki/Hardware_libre http://es.wikipedia.org/wiki/Software_libre http://www.alcancelibre.org/article.php/20070928120936576 http://es.wikipedia.org/wiki/Servidor_web https://www.digitalocean.com/community/articles/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu http://es.wikipedia.org/wiki/Servidor_de_correo http://www.one.com/es/support/faq/que-significa-imap-y-pop3 http://wiki.gandi.net/es/mail/standard-settings http://revista.seguridad.unam.mx/numero-10/el-cifrado-web-ssltls http://www.yuki-onna.co.uk/email/smtp.html http://systemadmin.es/2009/05/conectar-a-un-servidor-imap-mediante-telnet http://techhelp.santovec.us/pop3telnet.htm http://www.anta.net/misc/telnet-troubleshooting/pop.shtml http://es.wikipedia.org/wiki/SquirrelMail http://pedroreina.net/recetas/squirrelmail.html http://www.alcancelibre.org/staticpages/index.php/como-squirrelmail http://www.taringa.net/posts/hazlo-tu-mismo/13835580/Convierte-tu-IP-dinamica-en-un-host-fijo-No-IP.html http://www.noip.com/support/knowledgebase/installing-the-linux-dynamic-update-client-on-ubuntu/ http://albertomolina.files.wordpress.com/2009/04/correo-e.pdf http://forums.phpfreaks.com/topic/117785-solved-pop3-and-fsockopen/ http://en.wikipedia.org/wiki/Motion_%28surveillance_software%29 http://es.wikipedia.org/wiki/Arduino http://www.luisllamas.es/2013/10/instalar-ide-arduino/ http://arduino.cc/es/tutorial/button https://es.answers.yahoo.com/question/index?qid=20081017145328AAlh8mi http://es.wikipedia.org/wiki/C_%28lenguaje_de_programaci