Installazione di riferimento UDOObuntu_quad_v1.0.img del 04/07/2014
Alcune Note su UDOO che ho testato personalmente:
Il pulsante di reset 'RST' riavvia sempre il sistema operativo tranne quando blocchiamo
il processore i.MX6 in HALT con il comando:
sudo shutdown -h now
oppure (vedi alias) tramite il comando aggiunto
spegni
Il sistema operativo riparte solo o rialimentando la scheda tramite il plug di alimentazione
oppure premendo il pulsante power 'PWb'.
Quando invece sono collegato al connettore CN6 (con Teraterm 115200,8,N,1) con ponticello
J18 chiuso, posso oltre che analizzare il processo di BOOT, bloccarlo quando appare:
Hit any key to stop autoboot: 6
e prima che da 6 scenda a zero premo un tasto qualsiasi.
Abbiamo adesso a disposizione una nuova serie di comandi che possiamo vedere
digitando 'help'.
Per fare ripartire UDOO digito 'boot' o meglio 'reset' , 'help' per avere aiuto.
Il connettore J18 chiuso dirotta il driver di i.MX6 ttymxc1 verso CN6 da usare come
terminale SSH mentre se apro J18 metto in comunicazione il SAM3X8E di Arduino Due
(a diversa velocità) sempre con il connettore CN6 ma devo bloccare il BOOT del
processore i.MX6 di UDOO utilizzando il metodo che ho evidenziato.
Quindi se mando in HALT o blocco il boot del i.MX6 di UDOO, Arduino Due continua a lavorare
e se apro J18 posso comunicare anche con telearpic impostando la Connessione nel Modo 0 (senza crc)
oppure 1 (con crc utile se utilizziamo mezzi radio dove l'errore di trasmissione è più probabile,
il Modo T permette di lavorare in telnet inserendo indirizzo IP e relativa Porta).
Importante!!!
Consiglio di scaricare il software 'DomoticaArduinoDue.ino (con file associati nella stessa cartella)
su SAM3X8E utilizzando il connettore CN6 con l'IDE arduino-1.5.6-r2 insallato sul PC invece di
utilizzare quello installato su Ubuntu 12.04 in UDOO poichè NON FUNZIONA. Lo carica senza errori
ma non gira (?).
Altra nota molto importante:
Quando scarichiamo il software su SAM3X8E con il PC attraverso CN6 e J18 aperto, è importantissimo
bloccare il BOOT dopo un primo avvio (quindi appena alimentiamo la scheda) poichè se blocchiamo il
BOOT dopo un Riavvio quando utilizziamo l'IDE arduino-1.5.6-r2 NON TROVA la COM per dialogare
con il SAM3X8E. In pratica posso dialogare con Arduino Due ma non riesco ad attivare il BootLoader
che mi serve per scaricare il software sul SAM3X8E.
Inoltre dopo che abbiamo bloccato il BOOT al primo avvio di UDOO (Start Alimentazione) dobbiamo
chiudere per un secondo il ponticello J22 al fine di cancellare il vecchio sketch (Erase SAM3X8E)
e successivamente chiudere sempre per un secondo il ponticello J16 per resettare il SAM3X83.
Solo a allora possiamo scaricare il software DomoticaArduinoDue che insieme agli altri file
compone il software Telearpic per SAM3X8E. Ricordiamoci però di includere le librerie che ho
scaricato dalla rete e adattate alle funzioni del software Telearpic.
Riepilogando:
a) Cosa più importante installiamo Lubuntu 12.04 su UDOO e configuriamolo come descritto più avanti
b) Installiamo su PC da x:\yyyy\arduino-1.5.6-r2\drivers\ con relativi driver e librerie aggiuntive (quelle che ho modificato)
c) Installiamo i driver CP210x_VCP_Windows (o linux) scaricati da www.udoo.org/downloads/ (driver & tool)
USB to Serial driver http://www.silabs.com/products/mcu/pages/usbtouartbridgevcpdrivers.aspx
d) Chiudiamo J18 e apriamo Teraterm 115200,8,N,1
e) Avviamo da alimentazione iMX6 e blocchiamo il BOOT in "Hit any key to stop autoboot: 6" prima che scenda a zero
f) Disconnettiamo e chiudiamo Teraterm
g) Erase SAM3X8E con J22 chiuso per un secondo
h) Reset SAM3X8E con J16 chiuso per un secondo
i) Carichiamo con l' IDE arduino-1.5.6-r2 il software DomoticaArduinoDue.ino
l) Chiudiamo l'IDE, scolleghiamo ed riavviamo UDOO completamente (Anche dal pulsante RST)
Installare su SD il sistema operativo attraverso 'win32diskimager'
la SD che uso è in Classe 10 Formattata FAT32 cluster 32Kbyte (ho provato questo)
Se uso SDFormatter setto opzioni Quick Format, Format Size Adjustament ON per formattazione veloce
e cluster 32K oppure FULL(Erase) Format, Format Size Adjustament ON per formattazione completa
e cluster 32K (sovrascrive anche i file).
Carichiamo su SD il sistema operativo 'UDOObuntu_quad_v1.0.img' del 04/07/2014 (consigliato)
Collegare la scheda ad un monitor e tastiera touch-pad ed AVVIO UDOO.
Tramite UDOO Configuration Tool è possibile eseguire una prima configurazione
di UDOO come espandere la partizione SD, tastiera italiana, timezone, password ecc.
La prima volta occorre configurare le impostazioni di rete attraverso Network Manager con IP manuale
192.168.1.180;24;192.168.1.1 e magari l'wifi, per questo occorre ssid e password di rete sempre con
impostazione manuale e stessi indirizzi.
Adesso possiamo entrare dalla rete attraverso Putty, Kinux, e Kitty per Windows scollegando monitor e tastiera
Settare Kitty come SSH porta 22 Host Name 192.168.1.180
Login 'ubuntu' password 'ubuntu' oppure Login 'root' password 'ubuntu'
Apririamo anche un filemanager FTP come WinSCP (dal sito http://winscp.net/)
per la modifica ed il trasferimento dei file
(eseguire il completamento con il tabulatore oppure invio per visualizzare le opzioni)
sudo passwd per abilitare ed inserire la password di root
passwd per aggiornare la password utente ("ubuntu" in questo caso)
User root --> password ubuntu
User ubuntu --> password ubuntu
Mandano in HALT il processore i.MX6 e resetta il SAM3X8E
sudo shutdown -h now
sudo shutdown now
halt
spegni (vedi alias personali)
Riavviano il processore i.MX6 (e resetta il SAM3X8E ???)
sudo shutdown -r now
sudo reboot
riavvia (vedi alias personali)
Pulizia (Non servono al momento)
sudo apt-get clean
sudo apt-get autoclean
sudo apt-get autoremove
sudo apt-get purge
Già presente in UDOO Configuration Tool
Comunque per regolare l'ora esatta digitare
sudo dpkg-reconfigure tzdata
settare su Europa e Roma
Da aggiungere al file /home/ubuntu/.bashrc insieme agli altri alias quasi in fondo al file
o in UDOObuntu nel segmento:
#-------------------
# Personnal Aliases
#-------------------
dove aggiungiamo:
alias cdtele='cd /home/ubuntu/wiringPi/DomoticaUdoo'
alias gcctele='sudo cc -o telearpic telearpic.c -lwiringPi -lpthread'
alias startele='sudo /etc/init.d/telearpic start'
alias stoptele='sudo /etc/init.d/telearpic stop'
alias restartele='sudo /etc/init.d/telearpic restart'
alias alltele='cdtele && gcctele && cd && startele'
alias restartser2net='sudo /etc/init.d/ser2net restart'
alias spegni='sudo shutdown -h now'
alias riavvia='sudo shutdown -r now'
RIAVVIARE !!! con
sudo reboot
(Già installato su UDOObuntu)
sudo apt-get install tightvncserver
vncserver :1 -geometry 1024x600 -depth 16 -pixelformat rgb565
stop vncserver con
sudo vncserver -kill :1
Per bloccare il server X occorre digitare:
sudo service lightdm stop
(sudo pkill X)
VNC fa ripartire in automatico Xserver
se non riparte la grafica utilizzando un monitor in HDMI
cancello file:
/temp/.X0-lock (.X1-lock ecc...)
/home/ubuntu/.Xauthority
Attivare /Disattivare servizi con sysv-rc-conf
sudo apt-get update
sudo apt-get install sudo sysv-rc-conf
sudo sudo sysv-rc-conf
Ora possiamo anche disabilitare lightdm se vogliamo usare UDOO solo tramite Terminale a riga di comando
sudo apt-get update
sudo apt-get install minicom
sudo minicom -sw
Andare su “Serial port setup” ed editare:
Serial Device: /dev/ttymxc3 (type A key)
Hardware Flow Control: No (type A key)
Software Flow Control: No (type G key)
Premi exit and “Save setup as dfl”
Exit from Minicom
Diamo i permessi con:
sudo chmod 666 /dev/ttymxc3
Adesso avviamo con:
sudo minicom -w
ctrl A + Z + E ==> local Echo on/off
OK ora possiamo provare telearpic caricato su Arduino Due di UDOO. (Vedi note più avanti)
Prima però carichiamo telearpic su i.MX6 di UDOO.
Installazione ser2net per creare com virtuali accessibili dalla rete
sudo apt-get update
sudo apt-get install ser2net
Configurazione di /etc/ser2net.conf
sostituire le righe di configurazione con queste:
9010:telnet:600:/dev/ttyS0:9600 8DATABITS NONE 1STOPBIT banner
9011:telnet:0:/dev/ttymxc3:38400 8DATABITS NONE 1STOPBIT banner
9012:raw:0:/teleArPi/ttymxc6:38400 8DATABITS NONE 1STOPBIT banner
9013:raw:0:/teleArPi/ttymxc8:38400 8DATABITS NONE 1STOPBIT banner
9014:raw:0:/teleArPi/ttymxc10:38400 8DATABITS NONE 1STOPBIT banner
9015:raw:0:/dev/ttyUSB0:38400 8DATABITS NONE 1STOPBIT banner
9016:raw:0:/dev/ttyUSB1:38400 8DATABITS NONE 1STOPBIT banner
quindi Restart ser2net con
sudo /etc/init.d/ser2net restart
oppure
restartser2net (vedi alias)
Socat per creare collegamenti virtuali nella rete
sudo apt-get update
sudo apt-get install socat
creare cartella in radice principale /teleArPi con permessi di root, per i link dei driver ttymxc4 ecc.
Serve al software telearpic per cui in questa cartella non dobbiamo fare altro.
Funzionamento:
ser2net attiva driver virtuali server (TCP/IP)
9012/ttymxc6 -- 9013/ttymxc8 -- 9014/ttymxc10
telearpic attiva 4 COM
ttymxc3
ttymxc5
ttymxc7
ttymxc9 (ttyUSB0 se NumRaspberry<3)
socat connette driver lato interno (Intendo ciò che vede il software telearpic)
ttymxc5 <=> ttymxc6
ttymxc7 <=> ttymxc8
ttymxc9 <=> ttymxc10 ( se NumRaspberry>2)
Poi sempre socat esegue eventuali connessioni esterne TCP/IP in questo modo
192.168.1.180:9013 (ttymxc8) <=> 192.168.1.(add altra scheda2):9012 (ttymxc6)
192.168.1.180:9014 (ttymxc10) <=> 192.168.1.(add altra scheda3):9012 (ttymxc6)
mentra lascia sempre libera per ricevere connessioni dall'esterno (da altre schede) o collegamenti con il PC
192.168.1.(add schede):9012 ttymxc6
in questo modo abbiamo una ramificazione che può sempre raddoppiare il numero delle schede.
Lo script ConnVerifica.sh controlla ciclicamente lo stato delle connessioni facendole
ripartire se neccessario (se anche il router risponde altrimenti è inutile)
Per fare questo configuro opportunamente telearpic in modo che ciclicamente come un wotchdog
fa in modo che le varie schede si azzerino i contatori fra loro (se lo fanno quindi si vedono).
Altrimenti ogni scheda non azzerata, dopo alcuni minuti esegue un restart di tutte le connessioni.
Importante!!! WiringPi che trovate in https://projects.drogon.net/raspberry-pi/wiringpi/
è una raccolta di libreria create da Gordon Henderson (che ringrazio molto) per Raspberry Pi.
Queste librerie vanno bene anche per UDOO ma solo per alcune funzioni che poi sono
fondamentali per telearpic come <wiringSerial.h> e la funzione millis() in <wiringPi.h>
Queste librerie vanno scaricate e compilate come segue:
sudo apt-get install i2c-tools
sudo apt-get install libi2c-dev
Occorre completare con queste righe prima di eseguire l'installazione di WiringPi
riavvia (alias)
Sembra che questo comando occorre darlo dopo ogni avvio per abiltare i2c per cui l'ho
inserito in telearpic inizializzazione.
sudo modprobe i2c-dev
sudo i2cdetect -y 0 # Rev 1
sudo i2cdetect -y 1 # Rev 2
Now you should be able to see the i2c ports listed in your /dev/ directory
ls /dev/i2c*
You should see /dev/i2c-0 and /dev/i2c-1 listed. To be able to use these ports you need to
give yourself permission to access them.
sudo chmod o+rw /dev/i2c*
Now your i2c ports will be ready for you to use. You will have to run the modprobe and
chmod commands every time you login to activate the ports and apply the permissions.
If you wish to automate this process so the commands are run every time you log in then
you can edit /etc/rc.local and add the commands in.
Nota: Al momento lascio che sia Arduino Due (su UDOO) ad occuparsi dei dispositivi I2C
per cui non aggiungo le funzioni su telearpic per i.MX6
Install WIRINGPI (installerà nella directory /home/ubuntu/)
Nuova versione: Molto meglio !
Importante:
Entrare come user ubuntu pwd ubuntu altrimenti installerà nella directory di /root e non quella di /home/ubuntu
In ubuntu 12.04:
git clone git://git.drogon.net/wiringPi
cd wiringPi
git pull origin
./build
In UDOObuntu ci sono dei problemi, occorre installare prima:
sudo apt-get install build-essential git-core libncurses5-dev
sudo apt-get install make (già installato in questa versione di UDOObuntu)
Infine utilizzare winspc versione 5.5.3 poichè non legge /home/ubuntu/.gvfs crea errori
e non visualizza correttamente le directory di /home/ubuntu
Eseguire quindi
git clone git://git.drogon.net/wiringPi
cd wiringPi
sudo git pull origin
sudo ./build
Attraverso winspc versione 5.5.3 inserire la cartella 'DomoticaUdoo' in:
/home/ubuntu/wiringPi/ <---(DomoticaUdoo)
copiare i file telearpic.c e LoadConfig.txt e ConnVerifica.sh in questa cartella
Dobbiamo dare i permessi di root al file ConnVerifica.sh e renderlo eseguibile
mentre LoadConfig.txt deve essere abilitato solo in lettura e scrittura
digitare:
cdtele (alias sostituisce cd /home/ubuntu/wiringPi/DomoticaUdoo)
chmod 0755 ConnVerifica.sh
gcctele (alias compila telearpic.c)
Siamo andati nella directory DomoticaUdoo, abbiamo dato i permessi allo script
ConnVerifica.sh e abbiamo compilato telearpic.c.
Quindi apriamo telearpic con
sudo ./telearpic
OK FUNZIONA !!!
Per verificarlo apriamo Telearpic.exe sul PC e colleghiamoci in telnet su 192.168.1.180:9012
e configuriamo per prova la scheda UDOO con
*DAUN00D#
*DAUR0E1A#
*EAUN01E#
*EAUR0AD#
Adesso che abbiamo inserito le tabelle di routing possiamo entrare su i.MX6 e SAM3X8E e
provare le varie funzioni scritte come aiuto nel programma Telearpic.exe per i nodi 'D' i.MX6 e 'E' SAM3X8E.
Tutti gli script utilizzabili da telearpic nei vari 'EVENTI' devono essere resi eseguibili con il comando
cdtele per cambiare directory poi
chmod +x script.sh
chmod 0775 script.sh
Copiare lo script di avvio telearpic in /etc/init.d/
Per registrare lo script per lo start-up eseguire il seguente comando
sudo update-rc.d NameOfYourScript defaults
quindi
sudo update-rc.d telearpic defaults 98 02
Per rimuovere lo script dallo start-up eseguire
sudo update-rc.d -f telearpic remove
Nella directory rc0.d (Default-Stop: 0 1 6) abbiamo i file di Kill esempio K02telearpic
Nella directory rc2.d (Default-Start: 2 3 4 5) abbiamo i file di Start esempio S98telearpic
Secondo le regole S+K = 100 cioè l'ultimo programma ad attivarsi
sarà il primo ad essere killato (ucciso)
Nelle directory rc0.d rc1.d--rc6.d abbiamo K02telearpic
e nelle directory rc2.d rc3.d--rc4.d--rc5.d abbiamo S98telearpic
Seguono altre installazioni opzionali per il progetto Telearpic
sudo apt-get update
sudo apt-get install sendEmail libnet-ssleay-perl libio-socket-ssl-perl
per invalid SSL_version specified at /usr/share/perl5/IO/Socket/SSL.pm line 332 (oppure 308)
link---> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=679911
correggere in:
/usr/bin/sendemail on line 1907: 'SSLv3 TLSv1' in 'SSLv3' as temporary
solution for working gmail sending
la riga diventerà:
if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'SSLv3')) {
poi
copiare lo script (file) "mailsend" nella directory /home/ubuntu/wiringPi/DomoticaUdoo
quindi modificare il file con i propri dati (gmail.com è un esempio)
mittente="username@gmail.com"
dest="username_destinatario@gmail.com"
smtp="smtp.gmail.com:25"
username="username"
pass"password_username"
Salvare e digitare:
cdtele
chmod +x mailsend
esempio invio posta:
sudo ./mailsend "oggetto" "messaggio"
Lo script serve per ridurre la lunghezza del comando e poter inviare una mail anche con telearpic
in modo semplice e chiaro...
Funziona!!! Sia su UDOO che su Raspberry Pi
Script per gestire Router con RIAVVIO e CHECK IP dinamico con sendEmail
sudu apt-get update
sudo apt-get install curl (già installato su ubuntu 12.04)
Per leggere il mio IP pubblico posso digitare a scelta:
curl ifconfig.me
curl icanhazip.com
curl ident.me
curl tnx.nl/ip
curl ipecho.net/plain
curl ip.appspot.com
curl whatsmyip.akamai.com
Attraverso ricerche e script fatti da altre persone ne ho assemblato uno che ogni
30 minuti analizza se:
#Ping Router 192.168.1.1 (se 'false' router spento --> exit)
#Ping google.it (se 'false' riavvio router Netgear occorrono ricerche per altri router altrimenti saltare funzione)
#Se riavvio Router attendo 4 minuti
#Poi riprovo Ping google.it (se 'false' --> exit)
#Leggo IP Pubblico (con 'curl icanhazip.com' o altri metodi)
#Confronto con Hold_IP salvato su EXT_IP_FILE="/home/ubuntu/wiringPi/DomoticaUdoo/ipaddress"
#Se diverso invio email con 'sendEmail' altrimenti --> exit
Occorre inserire la credenziali per il Router alla riga 27
mentre quelli dell'account di posta dalla riga 8 to 12
Copio il file myRouterIP.sh in /home/ubuntu/wiringPi/DomoticaUdoo
Permessi con
cdtele (alias che porta alla directory di telearpic in /home/ubuntu/wiringPi/DomoticaUdoo)
chmod +x myRouterIP.sh
Attivare con cronotab ogni 30 minuti dalle 8 alle 23 (poi spengo il router e non serve più che controlli)
ogni 30 minuti cioè minuto 1 e 31 dalle 8 alle 23
sudo crontab -e
1,31 8-23 * * * /home/ubuntu/wiringPi/DomoticaUdoo/myRouterIP.sh
Cercando in rete NO-IP Raspberry si trovano tanti Tutorial riguardo l'installazione e configurazione. Ho preso spunto da http://raspisimon.no-ip.org/noip.php e altri. Funzionano anche su UDOO con qualche semplice modifica sui percorsi. Ecco come fare: Occorre un account su http://www.no-ip.com/ che offre un servizio gratuito come Host/Redirects quindi Entrare su http://www.no-ip.com/ per registrare un account con user (add email) e password. Click su Hosts/Redirects sopra alla pagina page. Click su Add a Host. Creare un host name in funzione del tipo di account con No-Ip
(Se è free account, si può creare solo un subdominio host cioè miodominio.no-ip.org ad esempio).
Usare tutte le opzioni di default. Per Assign to group lasciare vuoto. Adesso installiamo il servizio no-ip su UDOO che ciclicamente andrà ad aggiorare il nostro IP-Publico al sito www.no-ip.com. Noi infatti per collegarci al nostro server o altro dall'esterno dobbiamo utilizzare il nuovo host-name configurato sul sito ed aggiungere la porta del servizio da utilizzare. Ad esempio per raggiungere UDOO come terminale ssh digitiamo: miodominio.no.ip.org:22 dal terminale remoto, 22 è la porta di ascolto del server SSH su UDOO. Chiaramente dobbiamo inoltrare la porta 22 verso l'indirizzo IP di UDOO configurando il nostro router di casa. Configuriamo UDOO:
Pima di tutto per eseguire lo start di noip al boot:
Creare un file chiamato 'noip' in /etc/init.d con questo contenuto: ### BEGIN INIT INFO # Provides: noip2 # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start daemon at boot time # Description: Enable service provided by daemon. ### END INIT INFO #! /bin/sh # /etc/init.d/noip # If you want a command to always run, put it here # Carry out specific functions when asked to by the system case "$1" in start) echo "Starting noip" # run application you want to start /usr/local/bin/noip2 ;; stop) echo "Stopping noip" # kill application you want to stop killall noip2 ;; *) echo "Usage: /etc/init.d/noip {start|stop}" exit 1 ;; esac exit 0 Copiare lo script che chiamo 'noip' su /etc/init.d/ e relativi permessi con sudo chmod 777 /etc/init.d/noipQuindi installare il servizio come segue:
mkdir /home/ubuntu/noip cd /home/ubuntu/noip wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz tar vzxf noip-duc-linux.tar.gz cd noip-2.1.9-1 (questa directory dipende dalla versione scaricata quindi verificare con ls) sudo make sudo make install Durante l'installazione digitare No-Ip login, password e l'intervallo di tempo del servizio (in minuti). Attivate tutti gli HostName configurati e il nome dello script (noip per startup) inserito in anticipo in /etc/init.d
come descritto più avanti.
Attivare il servizio No-ip con,
sudo noip2 To show noip configuration sudo noip2 -S To change update interval sudo noip2 -U 15 To Display Help sudo noip2 --help poi : (NON SERVE in questa versione, richiede direttamente il nome dell script quindi FINE) sudo update-rc.d noip defaults 75 25 (o come preferite) riavviare e testare il servizio.
Download da http://darkhorse.nu/weatherman/weatherman-1.2.2.tar.gz
scaricando il file.zip troviamo all'interno il redame.md file con tutte le istruzioni
Da redame.md scriviamo:
curl -o weatherman-1.2.2.tar.gz -L https://github.com/subrosa/weatherman/archive/1.2.2.tar.gz
tar -zxvf weatherman-1.2.2.tar.gz
cd weatherman-1.2.2
sudo cp weatherman /usr/bin
sudo chmod a+x /usr/bin/weatherman
sudo cp weatherman.1.gz /usr/share/man/man1
esempio:
weatherman "alghero, italy"
weatherman -F'Alghero Temperatura corrente %c gradi massima %T. minima %t. punto di rugiada %c. umidit%h
percento.' "Alghero, Italy"
Con il copia incolla attenzione al carattere Return che possono essersi inseriti sulla pagina
OK! Funziona.
Ora installare MPLAYER con
sudo apt-get update
sudo apt-get install mplayer
sudo nano /etc/mplayer/mplayer.conf
aggiungere le 3 linee
nolirc=yes
ao=alsa
really-quiet="1"
Per le regolazioni audio digito
alsamixer
ed eseguo le modifiche a video
Funziona solo su Ubuntu 12.04 e non su Udoobuntu dove manca l'audio. Per Udoobuntu ccorrono altre prove.
Ora colleghiamo un amplificatore per PC sullo jack audio di Raspberry e digitiamo:
cdtele
sudo ./Meteo.sh
Dopo alcuni secondi sentiremo la voce proveniente da google TTS che pronuncia
temperatura e umidità della città di Alghero. Ovviamente lo script può essere modificato
a piacere. Telearpic può richiamare tutti gli script presenti nella sezione download, così
come può richiamare comandi shell. Le possibilità sono praticamente innumerevoli, dipende
dalla nostra creatività.
Buon Lavoro !!!