martedì 18 gennaio 2022

Montare Dischi di computer virtuali (virt-manager)

 Se vuoi sfogliare un disco utilizzato su una macchina virtuale quindi un file .img o .iso allora segui le istruzioni del seguente link

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/virtualization/sect-virtualization-troubleshooting_xen-accessing_data_on_guest_disk_image

Testato a gennaio 2022 su MX-Linux

# sudo apt install kpartx

# kpartx -l /var/lib/libvirt/images/guest1.img

# kpartx -a /var/lib/libvirt/images/guest1.img

a questo punto, se il sistema operativo ha l'automount, aprirà il disco

per smontare:

# kpartx -d /var/lib/libvirt/images/guest1.img

comandi per connettersi in rete da bash

Aggiormnamento del Gennaio 2022

Diventa sempre più utile configurare la connessione ad una rete wifi in un headless Linux 
Specialmente con l'avvento del raspberry pi.

Per connettersi ad un Access Point

su raspbian basta editare il file (con sudo) e poi riavviare
/etc/wpa_supplicant/wpa_supplicant.conf
inserendo SSID e passphrase. Attenzione: se l'SSID è nascosto, bisogna inserire dopo l'SSID la frase "scan_ssid=1"

in breve di seguito un esenpio del file wpa_supplicant.conf:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=EU

network={
        ssid="Bodorfree"
        scan_ssid=1
        psk="kekka2013"
}

network={
        ssid="TIM-18100795"
        psk="=gr4zie=1000perfibradavide#"
        key_mgmt=WPA-PSK
}

scansione degli access point:

sudo iwlist scan | grep SSID

stato di connessione wifi:

iwconfig

16/10/2017

nmcli tools:


"nmcli g" lo stato della connessione
"nmcli d wifi list" ti dice le reti disponibili
"nmcli c" ti dice le connessioni memorizzate

Esempi:
se vuoi connetterti ad una di quelle memorizzate
"sudo nmcli c up <nome della connessione memorizzata>"
nmcli d disconnect <nome del device>

per apprfondire:
https://www.tecmint.com/configure-network-connections-using-nmcli-tool-in-linux/

giovedì 11 marzo 2021

installa nordVPN su Manjaro

https://archived.forum.manjaro.org/t/howto-nordvpn-usage-installation-updating-and-troubleshooting/71268

The package is in AUR and must be installed using an AUR helper. Most Manjaro distribution comes with the Pamac software tool and this is what we will use to install NordVPN client.

pamac build nordvpn-bin (senza sudo)


When you have installed the package you need to enable/start the service daemon to use it.

sudo systemctl enable --now nordvpnd
 

lunedì 4 gennaio 2021

IOT con raspberry pi zero, enviro + e plantower

Con poco più di 100 euro si può assemblare un sistema sensore per l'analisi della qualità dell'aria completo di: sensori meteo come temperatura, pressione e umidità; sensore di particolato; triplo sensore di gas basato su tecnologia MOX; sensore di luce e prossimità; sensore acustico. Il tutto OPEN-SOURCE Che volete di più?

Secondo me è una piccola rivoluzione perché è il primo esempio di sistema sensore economico e da sviluppo per poter registrare "impronte" ripetibili dell'ambiente in cui si è immersi.  Gli scenari applicativi sono innumerevoli.

La centralina per la qualità dell'aria, basata sull'enviro+ della pimoroni. L'enviro+ è innestato sul raspberry pi zero W. la batteria (bianca) sotto fa da base di  ancoraggio su cui ho fissato con un po' di patafix i componenti. A sx in Blue il sensore di particolato Plantower 5003.

Il sistema è modulare quindi si può iniziare con un minimo di spesa e poi man mano che si ha voglia si aggiungono pezzi. E' un'ottima palestra per conoscere e addentrarsi in diversi campi quali i sensori a stato solido. la qualità dell'aria, la programmazione in python, l'IOT, l'analisi multivariata di sensori. Inoltre permette da subito di partecipare a progetti di "citizen science" come ad esempio quello di  Map Sensor.Community messo su dal CODE for Germany, un network di sviluppatori OPEN tedeschi.

acquistato da MELOPERO a nov 2020, l'enviro+ (56,19€ compresa la spedizione) ha la seguente dotazione di sensori e hardware:

(https://learn.pimoroni.com/tutorial/sandyj/getting-started-with-enviro-plus)

BME280 temperature, pressure, and humidity sensor

LTR-559 light and proximity sensor

MICS6814 triplo sensore di gas con tecnologia MOX e ADS1015 analog to digital converter (ADC)

MEMS microphone (l'unico sensore che non so se funziona veramente)

0.96" colour LCD (160x80)

Conviene installarlo su di un Raspberry Pi zero W che ho acquistato in un secondo momento (34€ con case, heatsink e spedizione). Infatti avevo a disposizione un raspberry pi 3 ma il riscaldamento della board falsava troppo la lettura del sensore di temperatura. Come si vedrà più avanti il sensore di temperatura ha un algoritmo di correzione che compensa la temperatura della cpu per un Pi zero.

Chiaramente con il Pi zero le cose sono un pochino più complicate dall'hardware: non c'è una porta hdmi standard; le porte USB sono quelle micro. 

Io ho risparmiato tempo e soldi programmando il raspbian con il wifi di casa sul raspberry classico e poi ho montato la ssd sul Pi zero. In questo modo mi collego via SSH al raspberry (anche da remoto seguendo QUESTO TUTORIAL) con il PC o con App sul telefonino come JuiceSSH o RaspController.

Seguendo il tutorial minimal di Sandyj si installano nel raspbian le librerie python per far funzionare sensori e dysplay lcd ( a parte il sensore del microfono). La pimoroni offre diversi programmi di esempio in python, tutti utili e funzionanti per capire le potenzialità della scheda.

Osservazioni sul Funzionamento

In circa due mesi, nel poco tempo libero a disposizione durante le vacanze in lock-down, ho potuto divertirmi con l'enviro +, completando la sua dotazione con il sensore per particolato PLANTOWER 5003 (~30€) che si innesta sulla presa UART dell'enviro+.
 
Semplicemente utilizzando gli script in python di esempio si possono fare molte cose senza scrivere una linea di codice.
Il sensore di Temperatura e Umidità ha bisogno di essere compensato a causa del riscaldamento del raspberry. L'esempio "compensated-temperature.py" e "weather-and-light.py" illustrano come fare la compensazione.
Per la trasmissione e fruizione dei dati le possibilità sono varie:

Rapidamente si può provare la trasmissione dei dati con il protocollo MQTT (cinguettio degli IOT) in una rete locale seguendo i link sotto indicato e usando l'esempio "mqtt-all.py"

https://github.com/robmarkcole/rpi-enviro-mqtt

https://appcodelabs.com/introduction-to-iot-build-an-mqtt-server-using-raspberry-pi

https://desertbot.io/blog/headless-raspberry-pi-4-mqtt-setup

In questa modo è possibile già trasmettere ,visualizzare, e registrare dati in una rete locale.

Schermata sensori con mqqt explorer

Invece per Trasmettere su un server IOT, mi sono appoggiato ad Adafruit, utilizzando lo script python "adafruit_io.py" indicato al link 

https://github.com/dedSyn4ps3/enviroplus-python/blob/master/examples/adafruit_io.py

che trasmette feeds dei sensori "meteo" al server che possono essere raccolti in un dashboard. 

Le librerie sono solo per il sensore BLE280, quindi non posso trasmettere i sensori di gas e il valore di lux

FEEDS Adafruit Dashboard

Per funzionare ha bisogno di installare le librerie e i moduli adafruit seguendo il tutorial 

https://learn.adafruit.com/adafruit-io-basics-digital-output/python-setup  

e registrando un account free sul sito io.adafruit.com.

Per caratterizzare correttamente il sistema si potrebbe usare il protocollo MQTT per twittare i dati in formato json verso un MQTT server che li può visualizzare e storare in formato json. 

Il sistema così com'è è un ottima stazione meteo ed è piccolo abbastanza per monitorare piccoli volumi come frigoriferi.

TODO:

bypass crash python: riavvio ogni volta che sposto il sistema sensore (falso contatto alimentazione); crontab riavvio ogni 30min (problema riscaldamento sensori); crontab kill e riavvio python. ricerca sui forum per avvio servizio sentinella.

Iscrizione e trasmissione feeds a  luftdaten

formattazione json FEED adafruit IO

trasmissione ssh tunnelling al server 192.107.82.250

formattazione json MQTT

elaborazione json MQTT con R

script python per trasmissione MQTT solo del sensore di GAS per caratterizzazioni in laboratorio

FEED per il sensore di GAS e altri parametri del sistema sensore

compensazione temperatura

OSSERVAZIONI sui sensori di gas 

I sensori di Gas sono quelli più difficili da utilizzare perché non danno misurazioni "assolute" di grandezze fisiche ma indicano la presenza e la variazione di specie gassose ossidanti e riducenti o la variazione di VOC (composti chimici volatili) in aria. Quindi possono concorrere a fornire informazioni sulla qualità dell'aria che ci circonda ma hanno bisogno di una trattazione dei dati abbastanza "specialistica".  Per chi, come me, si occupa di sensori di gas per mestiere e passione sono affascinanti da studiare. Di seguito annoto qualche osservazione sui sensori.

23 nov 2020

dopo una prima notte di accensione ecco i valori all'equilibrio:

Temperatura 23°C +-1°C; valore vero 19.1 °C

umidità 32%+-1%; valore vero 70%

baseline sensori gas:misure outdoor alle 9 di mattina

oxisdses: 28+-1

reduced : 340

nh3: 98

24 nov

misure outdoor alle 9 di mattina

Temperatura 10°C +-1°C; valore vero 14 °C

umidità 54%+-2%; valore vero 70% (http://www.meteo.unina.it/davis/dati-in-tempo-reale)

pressione 101770 +- 10 valore vero 102440

baseline sensori gas:

oxisdses: 37+-1

reduced :600+-50

nh3: 750+-50

poi sposto il sensore in Bagno

il sensore NH3 vede bene i detersivi in aria come mostra il minimo corrispondente all'ingresso in aria di detersivo usato da mara per pulire vetri. Anche il reducing si accorge ma forse è a più largo spettro. L'oxidizing, insieme all'abbassamento di umidità da info sul ricambio d'aria

Il sensore rimane in bagno durante la pulizia da parte di mara. Pulizia effettuata a finestre aperte. Quando la pulizia viene completata e le finestre chiuse, L'aria si riempe di VOC derivanti dal lavaggio (semaforo giallo)


 

proviamo a dare delle condizioni di soglia giallo-verde:

oxides > 31

reduced > 275

nh3 > 200

contano in primis oxides ed nh3

In tarda mattinata ho visto l'oxides superare i 50

La sera l'aria ha meno componenti ossidanti con l'oxides che scende a 36, nh3 scende sotto i 200 anche se il sensore "reduced" si mantiene sopra i 300. 

alle 18.45 sposto il sensore nel salone

il "reduced" sente gli odori della cucina, scendendo sotto i 275

il sensore "nh3" sente bene le puzze del bagno

l'"oxides" è lento a stabilizarsi dopo l'accensione (30 minuti ancora deve stabilizzarsi)

in salone la sera solo l'oxides è sopra la zona verde

Odori di cucinato fortemente percepibili, apro la finestra

Enviroplus spostato in cucina. Foto prima di aprire la finestra e aumentare la velocità della cappa

lunedì 20 maggio 2019

visionare una radiografia con Linux

Oggi, ma gia' da anni, le RX te le danno con il cd con un visualizzatore che funziona sotto windows.
Il tipo di immagine da visualizzare e' di tipo DICOM
Con linux ci sono diversi software a disposizione, ma se vuoi vedere la RX a piena risoluzione e salvarla in formato tradizionale, il primo che ha funzionato e' DicomBrowser (che e' da scaricare)
https://wiki.xnat.org/xnat-tools/dicombrowser

lunedì 28 gennaio 2019

Recupero di File

Il recupero dei file è una questione spinosa, delicata e importante per chi smanetta con i computer. Linux mette a disposizione diverse utility per recuperare dati da HD e dvd o cdrom. Di seguito esempi reali di recupero.
Consiglio di attrezzare il PC con un HD da 1T da dedicare solo al recupero.
Buona lettura

Aggiornamento 2020

ESEMPIO5 - Recupero del 28 Gennaio 2018

DVD non leggibile i/o error anche con dd, probabilmente masterizzato male con il TOC illegibile
Ho usato ddrescue ma non tutti i cdrom permettono la lettura dei blocchi. Sono stato fortunato e ho recuperato il contenuto semplicemente con
# ddrescue /dev/sr0 path/cdrom.iso
senza nessuna opzione, ho interrotto con Ctrl+c quando oramai non riusciva a recuperare più nulla.
poi con
# photorec path/cdrom.iso ho recuperato i tanto sospirati video di una comunione del 1992. MISSIONE COMPIUTA!


ESEMPIO4 - Recupero del 14 settembre 2018

3 memorie SD per macchina fotografica. Passando i file sul PC si sono perse tracce di parecchie foto.
Passo tutte e tre le memorie con Photorec (apt-get install testdisk) e straggo 70GB di file cancellati.
Sembrerebbe che con l'undelete di testdisk nei tools recupero i file segnalati nelle folder scomparse. Purtroppo, dopo il recupero, solo tre file sono leggibili. Photorec rimane quindi la soluzione migliore

Esempio3 - gennaio 2018

Disco dati  SATA da 1 GB con due partizioni primarie:
ext4 e ntfs (sdi1 e sdi2)
montato in fstab
sintomi: il SO non riconosce più il partizionamento
Azioni:
monto un disco (sda) della stessa capacità ed eseguo
# ddrescue -n -d --force /dev/sdi /dev/sda
dopo circa 10 ore e zero errori di lettura avvio testdisk che mi corregge l'MBR del disco e rimette tutto a posto sul disco nuovo. Riavvio e tutto torna come prima.
Forse sarebbe bastato fare un Testdisk sul vecchio disco. Ma nel dubbio e avendo a disposizione un disco di analoga capacità o preferito fare la sostituzione.

Esempio2 - settembre 2017

Recupero dati da disco sata formattato con una sola partizione ntfs 2.5 pollici con errori di Input/output. Il sistema operativo non è in grado di riconnoscere la partizione
  • con DDrescue trascrivo su un file IMG quello che riesco a leggere sul disco. Forse faccio un errore. Questa è le sintassi del comando: ddrescue -d /dev/sdi1 /media/TANK_L/brigida.img /media/TANK_L/brigida.log Forse avrei fatto meglio a scrivere sdi invece di sdi1
  • con dd riscrivo il contenuto del file IMG su un disco sano che ha una capacità simile a quello rotto (che fortuna)
  • con TestDisk non riesco ad accedere alla partizione perchè dice "Partition sector doesn't have the endmark 0xAA55"
  • con photorec (che si installa quando installi TestDisk) posso recuperare i file che vengono raggruppati in folder diverse senza però avere più il nome dei file e delle folder e la data dei file. Photorec non può leggere file .img
  • scalpel invece è in grado di leggere il file img ma recupera troppa roba e non la separa nemmeno per folder. Praticamente è ingestibile su grandi partizioni
  • altra alternativa per tentare recuperi più mirati è DMDE che essendo un freeware ti permette di recuperare solo i file che riesci a selezionare ma almeno puoi vedere da che folder li stai recuperando
Affinale in prima battuta posso recuperare tutti file ma perdo nomi, folders e date dei file

Per fare qualcosa di meglio dovrei ripassare ddrescue recuperando anche il boot sector per vedere se riesco a recuperare la struttura del filesystem.

DDrescue serve a recuperare quanto c'è di leggibile nel disco ma successivamente hai bisogno di strumenti per ricostruire i file:
Scalpel
https://www.chimerarevo.com/linux/recuperare-file-cancellati-linux-scalpel-63139/
DMDE (freeware)
http://dmde.com/
TestDisk non lavora su file .img quindi va direttamente sul disco

Aggiornamento di febbraio 2015
DDrescue
esempio
#ddrescue -n /dev/sda/ /mnt/dusb/sda.img /mnt/dusb/sda.log
https://www.gnu.org/software/ddrescue/manual/ddrescue_manual.html

esempioB (2017)
ddrescue -d /dev/sdi1 /media/TANK_L/brigida.img /media/TANK_L/brigida.log
https://www.technibble.com/guide-using-ddrescue-recover-data/

Esempio1 - 2015

Recupero dati da due unità esterne WD My Passport:
  • la prima unità USB2.0 è formattata Mac (HFS) ed ha problemi hardware e di filesystem. Dopo un primo recupero di 6GB con rsync sono passato a DDrescue che dopo 4 giorni ho interrotto e mi ha creato un immagine di 24.7GB che però non riesco a montare (non riconosce il filesystem). Serviranno poi altri software per estrarre file leggibili
  • La seconda unità USB3.0 è formattata NTFS e sembra che si sia rovinato il filesystem dopo 24 ore ho recuperato in una immagine 6GB di dati. Di questo passo mi serviranno almeno 20 giorni!! Quindi interrompo e decido un diverso approccio. Con TestDisk ci sono le opzioni per scegliere e recuperare determinati file ma non hai info su come procede il recupero. La velocità di recupero è 60KB/s (stiamo simili a ddrescue) cioè 1 GB ogni 4 ore e mezza ma almeno scelgo quali file recuperare.

Esempio 0 - 2013

Se i file sono stati cancellati in un filesystem ext4 con rm -rf *
Dicembre 2013
Su fedora 19, i tool più comodi son stati
yum install testdisk
TestDisk che ti permette di fare l'undelete su EXT2 (http://www.cgsecurity.org/wiki/TestDisk:_undelete_file_for_ext2)
e PhotoRec (viene installato insieme a testdisk) che permette di recuperare anche da EXT4 ma perdi nomi, date dei file e directory

giovedì 27 dicembre 2018

Condivisione di Internet

Esempio reale:
Ho un computer con il wifi connesso ad internet e voglio condividere la connessione tramite ethernet:

Fonte citata:
https://ubuntrucchi.wordpress.com/2008/02/23/condividere-la-connessione-internet/
https://wiki.archlinux.org/index.php/Internet_sharing_(Italiano)

Sul computer NAT
do il comando "ip -a" per vedere come si chiamano le mie interfacce di rete.
l'interfaccia wifi si chiama "wlp1s0" mentre l'interfaccia di ethernet "enp2s0".
la "enp2s0" va configurata con ip manuale ad esempio 192.168.1.1 e sottorete il gateway lo si può lasciare vuoto



sul computer ospite bisogna configurare il collegamento ethernet con ip fisso (ad esempio 192.168.1.2) gateway verso il computer NAT (192.168.1.1) e dns qualsiasi (se non li sai, utilizzi quelli del NAT interrogando il NAT con il comando $ cat /etc/resolv.conf).

Sul computer NAT bisogna battere i seguenti comandi come root (il sudo non basta)

# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -A FORWARD -i wlp1s0 -o enp2s0 -j ACCEPT
# iptables -A FORWARD -i enp2s0 -o wlp1s0 -j ACCEPT
# iptables -t nat -A POSTROUTING -o wlp1s0 -j MASQUERADE

per maggiori dettagli sui comandi puoi fare riferimento ai seguenti link:
https://ubuntrucchi.wordpress.com/2008/02/23/condividere-la-connessione-internet/
https://wiki.archlinux.org/index.php/Internet_sharing_(Italiano)

A questo punto tutto dovrebbe funzionare