venerdì 21 settembre 2018

Orange Pi 2G-IoT e Raspbian - Istallazione e settaggi

Oggi mi sono dedicato alla configurazione del sistema su Orange Pi 2G-IOT, che qualche giorno fa mi è arrivata dalla fabbrica.
Dopo aver recuperato il file del sistema operativo direttamente dal sito del produttore qui ho creato la microSD, nella maniera tradizionale, come specificato qui .

Costruita la SD, l'ho inserita nella OrangePi, ho collegato la seriale per il debug e collegato la scheda alla alimentazione fornita da un alimentatore 5V 2A

Aperto una finestra di terminale con Putty su windows, mi sono messo in ascolto sulla seriale ed ho collegato l'alimentazione.

Tutto regolare, partito il sistema che arriva velocemente al login.

Si accede con root e orangepi come user e password.

Appena entrati nel sistema vieni consigliato di settare l'ambiente con il comando
sudo OrangePi_Settings
(per i miei gusti un po' troppo lungo e con troppe maiuscole, comunque....)

Il menu che appare ti invita (non ti fa fare altro!) a configurare il WiFi.

La prima volta, dopo aver aggiunto il nome del mio network interno e configurato l'accesso con la password, al reboot mi si è impallato tutto rimanendo appeso durante la fase di startup nella ricerca della scheda di rete durante il collegamento con l'access point.

Per velocizzare ho ricostruito la SD dal file originale e riproposto la medesima procedura, che al secondo tentativo sembra funzionare regolarmente
Quindi impostato nome del AP e password e fatto il reboot, adesso si logga regolarmente nel network casalingo e consente l'accesso attraverso la seriale di debug.

Sono quindi passato a collegare la OrangePi via ssh dalla rete interna.

Tutto sembra funzionare regolarmente

Utilizzare Raspberry Pi come Client WiFi e server DNS

Il sistema che vado configurando e' questo:

una Raspberry Pi che collega via WiFi un Router WiFi con server dhcp che ha accesso ad internet;
la Raspberry Pi attraverso la sua presa di rete ed uno switch di rete, condivide la connessione intenet con tutta la rete della mia mansarda.
In sostanza per ottenere la navigazione internet dalla mansarda dove abito, ho dovuto fare un link con l'appartamento sottostante dove risiede la linea telefonica ed il modem ADSL.

Come spesso succede per ottenere il risultato desiderato ho dovuto fare un mix di tutorial, l'mportante comunque e' sempre riuscire ad arrivare alla meta!Vedi le tribolazioni per il settaggio della chiavetta WiFi della Raspberry utilizzata come Client in questo post  


Comportandosi come router, la Raspberry Pi dovra' assegnare gli indirizzi ip alle macchine che la connetteranno, quindi per fare questo ho dovuto configurare il programma DNSMASQ.

Iniziamo con scaricare il software con

sudo apt-get install dnsmasq

poi si deve modificare il file /etc/dnsmasq.conf

sudo nano /etc/dnsmasq.conf

Inserendo prima della fine del file queste righe di codice:

interface=eth0
listen-address=192.168.1.1,127.0.0.1
dhcp-range=192.168.1.50,192.168.1.150,12h


In questo modo il dnsmasq assegna un numero ip variabile con un lease time di 12 ore, nel range di numeri  da 50 a 150 sulla interfaccia eth0 (la rete cablata collegata allo switch)

Poi ho attivato il port forwording tra le porte, modificando questo file

sudo nano /etc/sysctl.conf

 andando a cambiare, togliendo il #, questa riga del file di configurazione.

net.ipv4.ip_forward = 1

A questo punto diventiamo root con

sudo su

ed andiamo a modificare la trabella di routing con il comando

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE


per controllare che tutto sia ok

iptables -t nat -L

Dovrebbe restituire questa scritta


Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- anywhere anywhere


Adesso  lo andiamo a scrivere con questo comando:

echo 1 > /proc/sys/net/ipv4/ip_forward


questa ultima istruzione deve essere data assolutamete con i privilegi di root

Per rendere permanenti questi comandi che altrimenti si resetterebbero al riavvio,viene utilizzata la tecnica di  scrivere tutto su un file e caricarlo ad ogni riavvio in quresto modo:

cd /etc/network
iptables-save > condivisione-internet.rules
touch attiva-condivisione-internet
chmod u+x attiva-condivisione-internet
nano attiva-condivisione-internet

inseriamo questo contenuto:

iptables-restore < /etc/network/condivisione-internet.rules
echo 1 > /proc/sys/net/ipv4/ip_forward

Ora modifichiamo il file /etc/network/interfaces

nano interfaces

ed aggiungere, nella configurazione dell'ingterfaccia wlan0 questa riga di codice che al boot della macchina fa leggere alla Raspberry Pi la configurazione salvata nel file prodotto sopra :

pre-up /etc/network/attiva-condivisione-internet


Se non mi sono dimenticato nulla e non ci sono errori, al reboot la Raspberry Pi si colleghera' al suo AP configurato nel wpa_supplicant e condividera' la connessione internet tramite la sua presa di rete


Di seguito i link da cui ho fatto osmosi:
https://www.lffl.org/2016/04/guida-dnsmasq-condividere-connessione-via-ethernet.html
http://vilnet.it/argo/linux-guide-trucchi-15/news/condividere-connessione-internet-terminale-321/#




mercoledì 19 settembre 2018

TP LINK TL-WN722N V3 Installare su RaspberryPi driver mancante

della serie anche le cose apparentemente semplici ti complicano la giornata!

La sfida di questo pomeriggio e' stata quella di far funzionare una delle mie piccole Raspberry Pi con una chiavetta acquistata fresca fresca nel negozio di un mio amico in mattinata.
La nuova istallazione dovra' servire per collegare dalla mansarda dove vivo, l'AP di casa che rimane due piani sotto a circa 30 - 35 metri di distanza.
Devo portare internet a casa, sebbene la connessione dove abito sia  come quella dei Flinkstone, lentissima e mai costante(ma qui in campagna questo passa il convento!).

Mi serve un client che condivida la sua connessione wifi con gli altri apparecchi casalinghi, quindi, dopo aver fatto una serie infinita di test con la funzione WDS o client di alcuni router wifi che mi trovo nel cassetto, senza essere arrivato da nessuna parte, ho deciso di utilizzare una Raspberry Pi che, sebbene sia sottopotenziata per questo scopo, dovrebbe consentirmi di fare velocemente e bene quello che ho in testa.(Come vedremo pero' il concetto di velocemente non si applica a questo sport!!!)
 Poi in un secondo momento potrei utilizzare anche la RPI per il controllo dell'appartamento attraverso la sua Raspicam. Ma questo progetto lo svilupperemo piu' avanti.

La prima delle Raspberry Pi che ho settato per questo scopo l'ho messa in garage con la stessa funzione. il garage e' molto piu' vicino al router casalingo e quindi non ho "patito" piu' di tanto. Ho collegato la chiavetta gia' usata in mille altre occasioni e impostato il software come descritto in seguito.
Per quella della mansarda invece, devo fare una istallazione esterna perche'  non ho ricezione diretta del segnale dal router.
Di conseguenza sono andato a prendere la chiavetta wifi con il bocchettone SMA per poter collegare una antenna esterna e puntarla verso la casa sottostante.

Alla connessione del dongle pero' mi accorgo che non sono istallati ancora  i driver, sigh!

ecco quale tutorial ho seguito per installare e far funzionare la mia chiavetta. TP LINK TL-WN722N V3

Questo si e' rivelato il  Tutorial migliore

The best and easiest way to handle this problem is as following
  1. sudo wget http://www.fars-robotics.net/install-wifi -O /usr/bin/install-wifi
    • Downloads the installation file
  2. sudo chmod +x /usr/bin/install-wifi
    • makes it executable
  3. Installation process
    • sudo install-wifi -c rpi-update
      - check for driver if rpi-update is run.
    • sudo rpi-update
      - if a driver is available you can run rpi-update to update firmware.
    • sudo install-wifi -u rpi-update
      - then update the driver for the new kernel installed by rpi-update.
    • sudo reboot
      - now reboot to update the kernel with the new wifi driver.

Nel cercare mi sono anche imbattuto in questo tutorial che con una vecchia versione di Linux ha funzionato subito. :

Here is what I did to get the TP-WN722N V.2 working on Raspberry Pi. The first command we need to do is use git and get the driver. git clone https://github.com/lwfinger/rtl8188eu... The next command we need to do is install some headers. sudo apt install raspberrypi-kernel-headers Once that is installed, which will take a few minutes. When need to run the following command. sudo ln -s /usr/src/linux-headers-$(uname -r) /lib/modules/$(uname -r)/build That command will just drop you down to the next line. The next commands are going to be the following. cd rtl8188eu make all sudo make install Once you are done. Do a sudo reboot and you should be good to do.