## page was renamed from ConfineHowTo = CONFINE Research Device HOWTO = [[http://confine-project.eu/|CONFINE]] è un progetto di ricerca che ha l’obiettivo di costruire un’infrastruttura all’interno di varie community network europee per metterla a disposizione dei ricercatori, che possono così studiare reti reali, con utenti veri, anziché limitarsi ad esperimenti in laboratorio o simulati. Questa guida spiega come configurare un Research Device per entrare a far parte dell'infrastruttura CommunityLab di CONFINE. Vedere anche '''[[ConfineHowTo]]''' <> == INFORMAZIONI IMPORTANTI == * I Research Device, ovvero i computer di CONFINE, devono essere collegati ad un nodo ninux (la ricerca riguarda le Community Network) * La policy di ninux Roma, decisa a riunione, è che i partecipanti a questo progetto abbiano la propria connettività (ad esempio la propria ADSL). La motivazione è che dai Research Device potrebbero essere effettuati download e quindi sarebbe meglio non caricare il backbone * Chi prende un Research Device si impegna a lasciarlo acceso e funzionante almeno fino al termine del progetto CONFINE (fine 2015). In seguito sarebbe buono continuare ad utilizzare questi computer per servizi distribuiti dentro ninux == Requisiti Hardware == I '''Research Device''' sono i computer che costituiscono la maggior parte dell'infrastruttura di CONFINE (chiamata ''Community-Lab''). Qualunque dispositivo con i seguenti requisiti hardware può fungere da ''Research Device'': * architettura x86 (per il momento) * almeno 60GB di disco * almeno 4GB di RAM Durante l'installazione potrebbero far comodo monitor, tastiera e mouse. == Preparazione Intel NUC == I dispositivi principali forniti da Unidata nell'ambito del progetto [[CONFLATE|CONFLATE]] sono Intel NUC (Next Unit of Computing) DC3217IYE, con processore i3 dual core, 60GB disco SSD, 8GB RAM. Il consumo di corrente varia tra gli 8W senza carico e circa 20W a pieno regime. La temperatura non va mai oltre i 40 gradi centigradi e la ventola, pure se presente, è molto silenziosa. Per installare disco e RAM bisogna svitare le viti che si trovano nella parte inferiore. [[attachment:viti.png|{{attachment:viti.png||width=400px}}]] Quindi installare il disco Mini PCIE SSD e la RAM. Notare la presenza della vite per tenere fermo il disco. [[attachment:discoeram.png|{{attachment:discoeram.png||width=400px}}]] Quindi collegare tastiera e monitor (il mouse è comodo ma non necessario), accendere il NUC ed entrare nel BIOS premendo il tasto F2. [[attachment:visualbios.png|{{attachment:visualbios.png||width=400px}}]] Andare su "Advanced Setup" -> Power e settare la voce "After Power Failure" su "Power On" per fare in modo che il device si riavvii senza bisogno di intervento manuale. [[attachment:biospoweron.png|{{attachment:biospoweron.png||width=400px}}]] Andare su "Advanced Setup" -> "boot" ed attivare "Boot USB Devices First" per avere la possibilità di installare il firmware sul dispositivo da pen drive USB. [[attachment:biosusbboot.png|{{attachment:biosusbboot.png||width=400px}}]] Premere F10 per uscire. Alla richiesta se si vogliono salvare le impostazioni rispondere 'Y'. == Registrazione del device e download del firmware == Il sistema operativo da installare sui ''Research Device'' è chiamato '''CONFINE Firmware'''. Si tratta di una versione customizzata di OpenWrt e il codice sorgente si può trovare [[http://redmine.confine-project.eu/projects/confine|qui]]. Per ottenere un'immagine compilata e configurata del ''CONFINE Firmware'' innanzitutto bisgona registrarsi su [[https://panel.community-lab.net/accounts/register/|panel.community-lab.net]]. [[attachment:communitylabregistration.png|{{attachment:communitylabregistration.png||width=400}}]] Effettuare il login. Quindi cliccare su "Nodes" e poi su "Add node" in alto a destra. [[attachment:addnode.png|{{attachment:addnode.png||width=400}}]] Scegliere un nome ed impostare Group: ninux.org, Island: Ninux.org. L'impostazione "Island" configura il ''Gateway Tinc'' (vedi Glossario in fondo) della community network. Molte delle impostazioni "Advanced" (in particolare IP statici ed IPv6) al momento della scrittura di questa guida ancora non funzionano propriamente. [[attachment:newnode0.png|{{attachment:newnode0.png||width=400}}]] Impostare anche "Community network URL" con il Permalink del nodo preso dal [[http://map.ninux.org|mapserver]]. Per esempio: http://map.ninux.org/select/utovrm/ Cliccare su "Save and continue editing" in basso. Ignorare i warning e cliccare su "Download Firmware" in alto a destra. [[attachment:savedandcontinuedediting.png|{{attachment:savedandcontinuedediting.png||width=400}}]] Selezionare l'immagine piu' recente (al momento "master.9b561fb" o "CONFINE-owrt-master-i686-20150715-1002.img.gz"), "Dell power edge r510" come registry API service, tutti gli "Optional files" (che servono per configurare l'autenticazione con il Controller e la rete di management Tinc - vedi Glossario in fondo) e la casella "USB Image" se si vuole effettuare l'installazione del firmware tramite pen drive USB. Scegliere una password per l'utente root. In alternativa si puo' copiare e incollare una riga con la propria chiave ssh pubblica nell'apposito campo. Cliccare su "Build Firmware!" in basso. [[attachment:generatefirmware.png|{{attachment:generatefirmware.png||width=400}}]] Scaricare l'immagine del firmware compilata e configurata. == Installazione del firmware tramite pen drive == /!\ ATTENZIONE: Utilizzando questo metodo tutti i dati presenti sul pen drive USB verranno persi /!\ Per trasferire l'immagine su un pen drive USB --(si puo' utlizzare unetbootin, oppure)-- il comando dd nel seguente modo: * collegare il pen drive e monitorare i messaggi del kernel per trovare il nome del device associato {{{ $ dmesg | tail [ 6447.637043] sd 8:0:0:0: [sdd] Write Protect is off [ 6447.637057] sd 8:0:0:0: [sdd] Mode Sense: 03 00 00 00 [ 6447.637234] sd 8:0:0:0: [sdd] No Caching mode page found [ 6447.637238] sd 8:0:0:0: [sdd] Assuming drive cache: write through [ 6447.639322] sd 8:0:0:0: [sdd] No Caching mode page found [ 6447.639326] sd 8:0:0:0: [sdd] Assuming drive cache: write through [ 6447.713506] sdd: sdd1 sdd2 [ 6447.715095] sd 8:0:0:0: [sdd] No Caching mode page found [ 6447.715103] sd 8:0:0:0: [sdd] Assuming drive cache: write through [ 6447.715110] sd 8:0:0:0: [sdd] Attached SCSI removable disk }}} * se il sistema operativo utilizza il mount automatico, fare l'unmount del pen drive * dare il seguente comando, modificando il nome del file immagine e del device in modo opportuno: {{{ $ gunzip -c /tmp/USB-confine-firmware-newRDname-i686.img.gz | sudo dd of=/dev/sdX bs=1M ; sync }}} /!\ Attenzione: con i firmware rilasciati dal giugno 2014 in poi la configurazione della rete parte automaticamente. Quindi se il boot e' configurato per partire automaticamente da USB occorre togliere il pen drive dopo il reboot. /!\ Inserire il pen drive nel ''Research Device'' (ad esempio il NUC) ed effettuare il boot. A boot terminato premere invio per far partire gli script di installazione di CONFINE. Alla domanda se si vuole installare rispondere 'y'. [[attachment:confinedistroinstall.jpg}}|{{attachment:confinedistroinstall.jpg||width=400}}]] Spegnere il sistema digitando il comando `poweroff`, togliere il pen drive e far ripartire il Research Device. A questo punto '''avverra' una serie di reboot (di solito 3)''' che servono alla preparazione del sistema. == Configurazione post installazione == Al momento della scrittura di questa guida ci sono delle configurazioni aggiuntive da effettuare, '''specifiche per gli Intel NUC'''. I ticket associati a questi problemi sono [[http://redmine.confine-project.eu/issues/418|qui]] e [[http://redmine.confine-project.eu/issues/419|qui]]. === Riconfigurare la rete === /!\ Attenzione: con i firmware rilasciati dal giugno 2014 in poi la riconfigurazione della rete non è più necessaria /!\ Durante l'installazione il networking potrebbe essere stato configurato male. Per sistemare utlizzare i seguenti comandi: {{{ uci del network.lan uci commit reboot }}} === Evitare messaggi "ttyS0" nei log === Per evitare di avere i log di sistema inondati da messaggi relativi alla porta seriale (che non esiste sugli Intel NUC), bisogna modificare il file `/etc/inittab` commentando con "#" o rimuovendo la riga che inizia con "ttyS0". {{{ ::sysinit:/etc/init.d/rcS S boot ::shutdown:/etc/init.d/rcS K shutdown #ttyS0::askfirst:/bin/ash --login tty1::askfirst:/bin/ash --login }}} == Messa in Produzione del Research Device == Il research device va collegato ad un nodo della rete ninux ed ha bisogno di un server DHCP attivo sulla lan. Oltre all'indirizzo IP dell'host serviranno altri indirizzi (8 sono quelli consigliati) per le macchine virtuali. Sono possibili due opzioni: 1. utilizzare gli indirizzi IP della propria subnet (quindi dovrebbe bastare un semplice collegamento ad uno switch o router che faccia parte del nodo) 1. configurare una lan apposita. Questo richiede sia un server DHCP apposito sia l'annuncio di questa subnet come HNA OLSR (per ninux Roma). Dopo aver collegato il Research Device al nodo ninux tramite un cavo ethernet ed aver aspettato qualche minuto, se tutto e' andato bene loggandosi su https://panel.community-lab.net lo stato corrente del nodo dovrebbe essere "SAFE". [[attachment:safe.png|{{attachment:safe.png||width=400px}}]] Cliccare sul nome del nodo ed impostare lo stato su "PRODUCTION" e salvare. Dopo qualche minuto anche lo stato corrente del nodo dovrebbe passare a "PRODUCTION". [[attachment:production.png|{{attachment:production.png||width=400px}}]] '''Congratulazioni!!! Il tuo Research Device è ora parte del testbed di CONFINE!''' == Metodi alternativi == Il firmware di CONFINE puo' essere installato in altri modi. === Boot da altra distribuzione === Si puo' far fare il boot da USB ad una distribuzione Linux live qualunque, quindi scaricare o uploadare il firmware (compilato senza l'opzione "USB Image") e poi scompattarlo e copiarlo sull'hard disk del Research Device (/!\ ATTENZIONE: non dare il comando sul proprio PC /!\) utilizzando il comando `dd`: {{{gunzip -c confine-install.img.gz | sudo dd of=/dev/sdX bs=1M ; sync}}} dove /dev/sdX e' l'hard disk principale del Research Device (normalmente /dev/sda). === Boot da rete === Un altro metodo consiste nel configurare il PXE ovvero il boot da rete. Ci sono varie guide online, per esempio [[https://wiki.archlinux.org/index.php/PXE|questa]]. === Macchine Virtuali === Macchine virtuali possono essere utilizzate come Research Device dentro CONFINE a patto di scegliere un nome che contenga la sigla "VM" al momento della registrazione del nodo. == Aggiornamento == Per fare l'upgrade del firmware: * andare in http://panel.community-lab.net sulla pagina del nodo da aggiornare * cliccare su "Download Firmware" in alto a destra * cliccare su "Delete Build" alla fine della pagina per eliminare la build del vecchio firmware * scegliere il nuovo firmware. La versione attualmente consigliata e' la '''"master.9b561fb" o "CONFINE-owrt-master-i686-20150715-1002.img.gz"''' * come registry API scegliere l'unica disponibile * cliccare su "Build Firmware!" in basso * scaricare la nuova immagine del firmware compilata e configurata * Quindi ci sono due opzioni: * ripetere la procedura di installazione tramite penna USB, oppure: * copiare, tramite scp, l'immagine sul device. Per esempio:{{{ scp communitylab-firmware-NUC-i686.img.gz root@[fdf5:5351:1dfd:42::2]:/tmp/ }}} * e poi entrare in ssh sul device, scaricare l'ultimo script di upgrade ed eseguirlo, dando i comandi: {{{ wget --no-check-certificate https://redmine.confine-project.eu/projects/confine/repository/revisions/master/raw/packages/confine/confine-parted/files/usr/sbin/confine.sysupgrade chmod +x ./confine.sysupgrade gunzip communitylab-firmware-NUC-i686.img.gz ./confine.sysupgrade -n communitylab-firmware-NUC-i686.img }}} Invece la procedura di upgrade che utilizzava un unico comando {{{dd}}} scrivendo l'immagine direttamente sul disco '''non e' piu' supportata'''. Maggiori informazioni [[https://wiki.confine-project.eu/soft:node-upgrade|qui]] == Troubleshooting == * Il comando {{{ifconfig}}} potrebbe non far comparire tutti gli indirizzi IP effettivamente configurati. Utilizzare {{{ip address show}}} * Dopo l'installazione del sistema avvengono dai 3 ai 5 riavvii. Questo e' normale * Alcune tastiere (ad esempio wireless con hub USB interno) potrebbero non funzionare correttamente. Provare ad utilizzare una tastiera USB piu' basica * Se all'avvio il sistema non ha connettivita' verso Internet, il research device rimarra' nello stato OFFLINE sul controller per un tempo indefinito. [[http://redmine.confine-project.eu/issues/484|Issue]] * Tra l'inserimento del cavo ethernet e l'effettiva registrazione da parte del kernel dell'evento potrebbero passare parecchi secondi * --( Anche se la RAM inclusa e' 8GB, il sistema ne vede 4. [[https://redmine.confine-project.eu/issues/483|Issue]] )-- (risolto tramite l'utilizzo di PAE) == Vedere Anche == * '''Node Installation''' sul wiki di CONFINE: http://wiki.confine-project.eu/testbeds:addnode * '''Node Administrator Guide''' sul wiki di CONFINE: https://wiki.confine-project.eu/usage:node-admin