Posted on January 23, 2017 by admin

Riavvio automatico Mac dopo un powerfail

Se avete un computer remoto, o uno al quale non potete accedere fisicamente e che deve rimanere sempre acceso, questo vi sarà molto utile. Ho visto online molti post dove sbattono solo la riga di comando da eseguire in terminale, senza spiegare e/o dire se è a prova di errori. Ecco come effettuare un riavvio automatico del vostro Mac dopo un powerfail.

Per questo hack utilizzeremo una chiavetta USB con una live di Ubuntu o altro sistema Linux.

Per prima cosa verificate che stiate facendo la cosa giusta ed agendo nel posto giusto.

Da terminale linux:
[code lang=”bash” gutter=”false”]
$ sudo lspci
[/code]

Vedrete la lista dei device pci.
Quello che interessa a noi è:
[code lang=”bash” gutter=”false”]
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
[/code]

Identificato ‘ISA bridge’ quello che ci interessa è l’id della periferica.
In questo caso ci serve 00:1f.0

[code lang=”bash” gutter=”false”]
sudo setpci -s 0:1f.0 0xa4.b=0
[/code]

Che cosa abbiamo fatto?
Con in comando setpci settiamo per il device 0:1f.0 il registro 0xa4 al valore 0.

Come indicato nelle specifiche:
0 = System will return to S0 state (boot) after power is re-applied.
1 = System will return to the S5 state (except if it was in S4, in which case it will return to S4). In the S5 state, the only enabled wake event is the Power Button or any enabled wake event that was preserved through the power failure.”

Alla prossima.

Posted on January 23, 2017 by admin

Cattura lo schermo da linea di comando

Se avete la necessità di prendere uno screenshot da linea di comando esistono un gran numero di utilities che possono fare al caso vostro.
Se ne volete uno minimale, scrot può fare al caso vostro.
Uno scenario tipico potrebbe essere il dover prendere uno screenshot su un computer remoto via SSH.

scrot è un programma che ci permette di salvare immagini di quello che appare su desktop direttamente da linea di comando.

Installazione
scrot è presente nei repository di diversi S.O.
Per installarlo su Ubuntu basta eseguire:

[code lang=”bash” gutter=”false”]
$ sudo apt-get install scrot
[/code]

Una volta installato, si lancia semplicemente con:
[code lang=”bash” gutter=”false”]$ DISPLAY=:0 scrot
[/code]

Il risultato sarà un file screenshot di tipo png nella cartella corrente, dalla quale abbiamo lanciato il comando.

E’ anche possibile perfezionare il nostro screenshot con le seguenti opzioni a nostra disposizione.

[code lang=”bash” gutter=”false”]
-h, –help
visualizzazione dei messaggi di aiuto
-v, –version
mostra il numero di versione
-b, –border
includi il bordo della finestra nello screenshot
-c, –count
visualizzare un conto alla rovescia quando viene utilizzato delay
-d, –delay secondi
ritardare la schermata di cattura
-e, comando
il comando indicato verrà eseguito dopo lo screenshot
-q, –quality percentuale
imposta la qualità / compressione per il file di output
-m, –multidisp
cattura da display multipli e unisciti in un file di output singolo
-s, –seleziona
seleziona interattivamente una finestra o un rettangolo con il mouse
-t, –thumb percentuale
generare una miniatura di un dato rapporto di formato
[/code]
Buono screenshot a tutti.

Posted on January 23, 2017 by admin

Ubuntu Core – snappy

Scoperto quasi per caso, cercando immagini da installare su Raspberry Pi, sono incappato in Ubuntu Core.

Ubuntu Core è un sistema server minimale che include tutto il necessario per far girare “migliaia” di server virtuali sui vari servizi di cloud computing. Cambia un po’ la filosofia che sta dietro al sistema operativo, più simile a quello che si vede sui cellulari, che a quello di un vero sistema desktop.

Vediamo un po’ più a fondo cosa si può fare in Ubuntu Core con snappy.

Premetto che Ubuntu Core può essere provato sotto diverse infrastrutture:

  • KVM
  • Amazon AWZ
  • Google Cloud
  • Microsoft Azure

Notevole.
Per provarlo, io ho utilizzato KVM su Ubuntu 14.10 a 64bit. Successivamente lo proverò si Raspberry Pi2.

Se non avete installato KVM

[code language=”bash” gutter=”false”]
$ sudo apt-get install qemu-kvm
[/code]

e controllate che la vostra macchina supporti KVM

[code language=”bash” gutter=”false”]
$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used
[/code]

Se non otterrete l’output sopra, dovrete controllare nelle impostazioni del processore nel BIOS della vostra macchina se è stato attivato.

Esempio se avete un Intel dovreste vedere:
Intel Virtualization [Enabled]

Se avete il supporto KVM, scaricate l’immagine di Ubuntu core da qui:

[code language=”bash” gutter=”false”]$ wget http://cdimage.ubuntu.com/ubuntu-core/preview/ubuntu-core-alpha-02_amd64-virt.img[/code]

E create il dominio, la vostra macchina virtuale.

Per fare in fretta ed avere una GUI per la gestione della macchina virtuale, l’ho creata usando virt Manager.
Se non lo avete installato scaricatelo:

[code language=”bash” gutter=”false”]sudo apt-get install virt-manager[/code]

La mia macchina virtuale ha 1024MB di RAM, 1 Core e si chiama polpetta.
polpetta

Una volta fatta partire la macchina virtuale loggatevi.
Potete utilizzare la console offerta da virt manager, oppure se sapete l’IP della macchina virtuale collegarvi via ssh.
(L’account di default è ubuntu con password ubuntu .)

Quale release di Ubuntu Core è installata?

[code language=”bash” gutter=”false”]
$ snappy info
release: ubuntu-core/devel
frameworks:
apps:[/code]

il campo release ci mostra che la versione è di sviluppo. Siamo su una alpha, quindi per ora non pretendete la luna.
Gli altri due campi sono vuoti, per ora.

Vediamo cosa è installato:

[code language=”bash” gutter=”false”]$ snappy versions
Part Tag Installed Available Fingerprint Active
ubuntu-core edge 143 145 a43f62b4a258eb *
[/code]

C’è un unico componente installato: ubuntu-core, che è il layer base di sistema.

La fingerprint ci permette di capire quale codice sta girando sul nostro Ubuntu Core e poterlo confrontare con altri utenti.
Sappiamo se il codice che stiamo eseguendo è identico a quello che sta utilizzando un altro utente di Snappy.

Il flag su Active ci dice la versione del componente in esecuzione.
Eseguendo un update del componente, lo vedremo in esecuzione al riavvio del sistema.

Come scrivevo prima la struttura del sistema operativo diversa da quella standard di Ubuntu o Debian. Il packages manager non funzionerà qui.
Ce lo ricorda lo stesso Ubuntu Core:

[code language=”bash” gutter=”false”]$ apt-get update
Ubuntu Core does not use apt-get, see ‘snappy –help’
[/code]

[code language=”bash” gutter=”false”]
$ sudo apt-get install nodejs
Ubuntu Core does not use apt-get, see ‘snappy –help’
[/code]

Proviamo a fare un aggiornamento.
Vediamo quali componenti hanno un aggiornamento disponibile. Gli aggiornamenti verranno cercati nel cloud.

[code language=”bash” gutter=”false”]
$ snappy update-versions
updated components are available with your current stability settings.
[/code]

[code language=”bash” gutter=”false”]
$ snappy update ubuntu-core
[/code]

Al riavvio avremo la nuova versione a nostra disposizione.

[code language=”bash” gutter=”false”]
ubuntu@localhost:~$ sudo snappy versions
Part Tag Installed Available Fingerprint Active
ubuntu-core edge 145 – 97c61b9c11e13f *
[/code]

Proviamo ad installare qualcosa:

[code language=”bash” gutter=”false”]
$ sudo snappy install nodejs
No package ‘nodejs’ for ubuntu-core/devel
[/code]

Non c’è una corrispondenza diretta con il market di Ubuntu.
Proviamo con qualcosa di diverso e che utilizzo spesso, docker.

[code language=”bash” gutter=”false”]
$ snappy search docker
Part Version Description
docker 1.3.2.004 The Docker app deployment system
[/code]

Installiamolo
[code language=”bash” gutter=”false”]
$ sudo snappy install docker
docker 4 MB [=====================================================] OK
Part Tag Installed Available Fingerprint Active
docker edge 1.3.2.004 – 788b0787b18b1c *
[/code]

Ricontrolliamo le versioni di tutti i componenti installati

[code language=”bash” gutter=”false”]
$ snappy versions
Part Tag Installed Available Fingerprint Active
ubuntu-core edge 138 – 4ad83f1ec0adb0 *
docker edge 1.3.2.004 – 788b0787b18b1c *
[/code]

Il sistema base Ubuntu Core e docker. Installiamo un altro componente.

[code language=”bash” gutter=”false”]
$ sudo snappy install hello-world
hello-world 31 kB [==================================================] OK
Part Tag Installed Available Fingerprint Active
hello-world edge 1.0 – 4616c8b1b6e11b *
[/code]

Fatto!
Ricontrolliamo cosa abbiamo a bordo!

[code language=”bash” gutter=”false”]
$ snappy info
channel: ubuntu-core/devel
frameworks: docker
apps: hello-world
[/code]

Come visualizzato qui sopra, docker è un framework mentre hello‐world è una app.

Sia il framework docker che la app hello-world sono state installate con snappy, tuttavia sono differenti.
Hanno diverse impostazioni di sicurezza e ed il grado di isolamento.

I framework estendono il sistema base e di conseguenza hanno dei permessi speciali.
Le app invece sono isolate una dall’altra per default. Chiuse nel loro piccolo mondo, interagiscono con il sistema base con permessi definiti in partenza.

Posted on January 23, 2017 by admin

Android screen recording – Catturare un video dal vostro device

Oggi vediamo come sia semplice fare screen recording su Android e catturare quello che accade sul vostro telefono o tablet.

Ci sono diversi scenari nei quali può rivelarsi utile:
-Avete creato una fantastica applicazione e volete mostrare come si interagisce? Aggiungere il video su GooglePlay?
-Volete registrare parte di un gioco per mostrare ad esempio come si supera quel livello tanto difficile?
Questi sono solo 2 esempi, non togliamo spazio alla vostra fantasia.

Occorrente

-Un device con Android 4.4 (API level 19) in su
-Android Debug Bridge a.k.a. adb

Attaccate il vostro device al vostro computer. Ricordatevi che deve essere abilitata la parte di sviluppo. Se richiesto accettate sul device il collegamento per debug.

Dal terminale del vostro computer cambiate directory del SDK fino ad arrivare a ‘platform-tools’

Controllate sempre che il vostro device sia effettivamente rilevato:
$ adb devices

Ora lanciate il seguente comando:
$ adb shell screenrecord /sdcard/demo.mp4

E cominciate ad interagire sul vostro device.
Quando avete finito premete Ctrl-C per terminale la registrazione.

Se volete registrare ad una risoluzione particolare potete utilizzare l’opzione:
--size

Se invece siete già sicuri di quanto dovrà durare il video (in secondi) potere utilizzare l’opzione:
--time-limit

Es. Voglio registrare un video di 60 secondi ad una risoluzione di 1280×720 il comando diventa:

$ adb shell screenrecord --size 1280x720 --time-limit 60 /sdcard/demo.mp4

Avrete sulla SD Card del dispositivo il vostro video salvato in formato .mp4

Potete ora scaricarlo sulla vostra macchina sempre utilizzando adb

$ adb pull /sdcard/demo.mp4

Come esempio ho registrato l’Easter Egg di Android Lollipop

Link utili:
Android Debug Bridge

Posted on January 23, 2017 by admin

Nexus 7 root Android 4.4.2 KOT49H (funziona anche per 5.0.2) da OSX

Ecco una piccola guida su come rootare un sistema Android 🙂
Io l’ho fatto su OSX, ma con qualche accorgimento potete eseguirlo senza problemi da Linux o Windows.

Nota: Da Android 4.2 in avanti, l’opzione Developer è nascosta di default. Per renderla disponibile andate in Setting -> About Phone e pigiate su “Build number” 7 volte.

Vedrete dei messaggi che vi diranno quanto vi manca per diventare degli sviluppatori a tutti gli effetti. ;P

Scaricate per prima cosa l’SDK dal sito di Android qui:
http://developer.android.com/sdk/installing/index.html
Nota: Questa versione non include l’ambiente per sviluppare!

Scompattate l’SDK in una cartella a vostra scelta. (nel mio caso android-sdk-macosx)

Da terminale entrate nella cartella :
cd android-sdk-macosx/platform-tools

Collegate il device alla porta USB ed accettate sul device il collegamento via USB.

Sempre da terminale eseguite:

adb devices

List of devices attached

dovete vedere il vostro terminale, cellulare o tablet.
Se non vedete nulla, oppure leggete: “unauthorized device” cliccate >qui<

SE il vostro device NON è sbloccato dovete procedere con la procedura di sblocco del bootloader.

MA PRIMA DI INIZIARE…BACKUP!!!
Tutti i dati presenti sul dispositivo verranno spazzati via.
Quindi se volete fare un backup per sicurezza lanciate dalla cartella platform-tools:
./adb backup -apk -shared -all

Now unlock your device and confirm the backup operation.

Sul dispositivo cliccate “Effettua il backup dei miei dati”.
Se volete crittografare il backup inserite una password, sempre sul device.

I vostri dati saranno salvati in un file backup.ab

che poi potrete ripristinare con:

./adb restore backup.ab

SBLOCCO BOOTLOADER
Se il device fosse già stato sbloccato saltate le seguente istruzioni riguardanti il bootloader e passate direttamente al ROOTING.
Se il bootloader è bloccato fate come segue:

– Spegnete il dispositivo
– Deve essere staccato dal computer
– Accendetelo tenendo premuti insieme i tasti volume su + volume giù e power.

Sul dispositivo vedrete il menu bootloader.

L’ultima linea vi dà delle informazioni stampate a schermo, nel caso di un dispositivo ancora bloccato é:
LOCK STATE – LOCKED

Collegate ora il dispositivo al computer attraverso il cavo USB.

Nel terminale digitate:

sudo ./fastboot oem unlock

Sullo schermo del dispositivo vi verrà richiesto se sicuri di sbloccare il bootloader. Accettate con il bottone “power”.
I tasti volume su e volume giù muovono la selezione.

Sul terminale leggerete:
(bootloader) erasing userdata...
(bootloader) erasing userdata done
(bootloader) erasing cache...
(bootloader) erasing cache done
(bootloader) unlocking...
(bootloader) Bootloader is unlocked now.
OKAY [181.931s]
finished. total time: 181.931s

Ora, sempre da dispositivo, attraverso il pulsante “Start” fate “avviare” il dispositivo (eravate nel bootloader).

Ripetendo l’avvio del dispositivo con il metodo sopra descritto, l’ultima linea delle informazioni stampate a schermo deve ora essere:
LOCK STATE – UNLOCKED

Ripartirà la procedura di prima installazione.
Io ho inserito nuovamente il mio login Google

Se volete ripristinare i vostri dati, una volta ripristinate le impostazioni per sviluppatori.

./adb restore backup.ab

Sul display del dispositivo confermate cliccando su “Ripristina i miei dati”

Verranno ripristinati tutti i vostri dati.
Vedrete scorrere i nomi delle applicazioni backuppate.

ROOTING
Eccoci arrivati al punto di non ritorno 😛
Da questo momento avrete il pieno controllo di quello che avete acquistato.

Scaricate la versione di Clocworkmod compatibile con il vostro dispositivo da qui:

http://www.clockworkmod.com/rommanager

Nel mio caso un Nexus7. Io l’ho copiata nella directory platform-tools

Date il comando:
./fastboot flash recovery recovery-clockwork-touch-6.0.4.3-grouper.img

Scaricate lo zip SuperSU sul device e lo copiate nella sdcard del dispositivo lo zip SuperSU.

http://download.chainfire.eu/695/SuperSU/UPDATE-SuperSU-v2.45.zip

Invece di utilizzare utility di terze parti utilizzate ADB!

man adb
When you want to have more control you can access your phone with a *nix command prompt. You have to install the Android SDK for this.

Go the the prefences of your phone, developer options and enable usb debugging. Note that this is intended for developers only and gives full access to your device via usb! Disable it after your done and you’re not sure whether it’s safe to leave it on.

Under the platform-tools directory of the SDK home there’s an application called adb. ADB (short for Android Debug Brdige) is a nifty command line tool to communicate with your phone.
To browse the filesystem of your phone run the ./adb shell command in the SDK-home directory. This will open a console where you can enter simple commands like ls, cd and ll. The files are probably located in /mnt/sdcard on your Android device.
Now that your familiar with your file system exit the prompt with ctrl-d.

When you want to copy files from your device to your local computer use adb pull. Example:
./adb pull /mnt/sdcard/DCIM/100ANDRO/. /tmp/.
With adb push you can push files to your phone.

Il comando da lanciare nel terminale del vostro computer per caricare sul device lo zip appena scaricato è:

./adb sideload UPDATE-SuperSU-v2.45.zip

Vi rimane solo di installare SuperSU dal menù della recovery.

Riavviando Android, vedrete installata la app SuperSU ed il vostro dispositivo sarà rooted.

Link utili:
Immagini Android

Posted on January 23, 2017 by admin

Repository privato git su Dropbox

Mi è capitato più volte di dover passare dei progetti ai quali lavoravo da un computer all’altro. Nel mio caso sono 2 MacBook.
Per fare velocemente copiavo l’ultima versione del progetto da un computer all’altro, ma già in quei momenti sapevo che sarebbe stata solo una pezza.
Allora mi sono detto: Perché non provare con un repository “remoto” su Dropbox?

Ecco il frutto delle mie prove.

Da terminale, sono entrato nella cartella di Dropbox e ho creato la cartella che conterrà tutti i repositories

cd Dropbox
mkdir Repositories
cd Repositories

A questo punto, semplicemente seguendo dalla documentazione git
Git on the Server – Setting Up the Server
[fonte: http://git-scm.com/book/en/Git-on-the-Server-Setting-Up-the-Server]

– Creo un bare repository dentro Dropbox/Repositories

mkdir project.git
cd project.git
git --bare init

– Mi sposto nella directory dove ho il mio progetto e creo il repository git in locale.

cd mioprogetto
git init

Il buon git mi risponde con:
Initialized empty Git repository in /mioprogetto/.git/

– Aggiungo i files da committare (oppure direttamente con l’opzione -a al commit)
git add .

– Committo
git commit -m 'initial import'

– Aggancio il mio repository locale a quello ‘remoto’
git remote add origin ~/Dropbox/Repositories/project.git

– Pusho sul server remoto
git push origin master
Su Linux anche solo"git push"

– Controllo con git status e git log.

Sul secondo computer

-Tiro su il progetto nella mia cartella di progetti con:
git clone ~/Dropbox/Repositories/project.git mioprogetto

-Faccio le modifiche del caso

-Committo
git commit -am'bug fix'

Pusho
git push origin master

Per tirare su le modifiche sul primo computer non mi resta che fare:
git pull origin master

Conclusioni
Io sto utilizzando git.
Tutto quello che bisogna fare è: crearsi per ogni nostro progetto un bare repository all’interno della directory Dropbox, collegarlo al nostro repository locale e pushare e pullare come se la cartella Dropbox/Repositories/project.git fosse un repository remoto.

Attualmente non ho ancora provato con gli altri sistemi di versioning.
Lo stesso discorso per altri sistemi di storage cloud.
Per ora con Dropbox è stata una prova che ha funzionato al primo colpo.
Il prossimo passo è provare con Bittorrent Sync.

Stay tuned

Newer Posts