martedì 15 dicembre 2015

Root di un HTC Desire HD


Bisogna recuperare da internet i seguenti file:
  • aahk-11092012.zip (circa 100MB)
  • PD98IMG-GB2.zip (circa 260MB)

riporto qui solo i nomi perchè cercandoli con google si trovano in giro.

Bisogna copiare il contenuto del secondo archivio nella cartella PD98IMG creata scompattando il primo.

Seguire le istruzioni contenute nel pacchetto aahk, occhio che la password richiesta cambia ogni volta (cercare nel documento la stringa pa$$ ;) )

Si consiglia di disattivare/ignorare gli antivirus, perchè effettivamente il primo pacchetto contiene un exploit (ZergRush) che viene usato per rootare il telefonino.

Riferimento qui.

Usare il telefonino android per flashare la memory card


Ho acquistato un Raspberry PI 2 per poterci giocare un po', ma ho clamorosamente sbagliato l'acquisto della scheda SD perchè nella versione 2 del RaspBerry ci vuole una micro SD.

Volevo iniziare a smanettare il prima possibile con il nuovo gingillo, e quindi mi sono dovuto ingegnare a trovare una soluzione alternativa; dopo aver girovagato per casa con sguardo perso, l'occhio mi è caduto sul telefonino android che non uso più: dentro c'è una micro SD!


Sul portatile ho lo slot per accedere alle schede SD, ma questa è una micro SD e non ho adattatori in giro!

Mi sono chiesto se era possibile usare il telefonino come lettore di schede micro-SD e ho visto che sul forum ufficiale del raspberry qualcuno voleva fare la stessa cosa, ma la procedura indicata nella risposta non mi è sembrata per niente operativa.

Mi sono quindi messo a cercare nel dettaglio come fare ed il risultato è stato il seguente:

- il telefonino deve essere rootato, il mio non lo era ed ho dovuto rootarlo, mi sono appuntato come fare in questo post
- bisogna scaricare l'immagine da flashare, io ho usato XBian, di poco meno di un giga di dimensione
- poi bisogna avere nella memoria interna del telefonino spazio sufficiente per contenere l'immagine: con il comando adb shell e i comandi linux df e mount ho visto che nella cartella /data c'era sufficiente spazio
- si copia l'immagine con il comando adb push rpi2.img /data (ho rinominato l'immagine per avere un nome da scrivere più semplice)
- si riavvia il telefonino in recovery mode, e mediante il comando df dentro una sessione di adb shell scopro che la memory card è riconosciuta come /dev/block/mmcblk1
- lancio il comando dd if=/data/rpi2.img of=/dev/block/mmcblk1
- si attende la copia, quando ha finito si smonta il tutto, si inserisce la schedina nel raspberry e...


GG


sabato 20 giugno 2015

Comprimere un file video proveniente da un PVR


Ho acquistato un decoder digitale terrestre che può anche registrare su porta USB.

Una registrazione di un film da 2 ore occupa trai 3,5 e i 4,7 gigabyte, suddivisi in una serie di file .mts da 512 mega ciascuno.
Tipicamente un film videoregistrato lo vedo magari dopo qualche mese (per poi cancellarlo), e tenere occupato tutto quello spazio per così tanto tempo è uno spreco, per cui ho la necessità di comprimere il file video.

Il tempo di compressione vorrei che fosse accettabile (magari non 3 ore, un quarto d'ora già andrebbe bene), la qualità visiva deve essere buona (niente quadrettoni), e il file compresso va bene anche da 1 giga e mezzo (il doppio dei divx che si trovano scaricando film in rete (700)). Parlando senza sapere, probabilmente le mie richieste sono impossibili da soddisfare, per cui bisogna fare un po' di analisi.

Cercando su internet, la maggior parte delle soluzioni proposte funzionano sotto windows, mentre per linux ci sono utility da riga di comando che offrono una gamma di opzioni impressionante, per cui bisogna armarsi di santa pazienza e verificare qual'è la riga di comando e le opzioni più adatte per quello che voglio fare.

Dopo una lunga serie di tentativi, nei quali  problema maggiore è stata una perdita di sincronismo tra audio e video, ho raggiunto questo risultato: eseguendo il seguente comando:

avconv -i "concat:Iris-09032014-2107.mts|Iris-09032014-2107.mts1|Iris-09032014-2107.mts2|Iris-09032014-2107.mts3|Iris-09032014-2107.mts4|Iris-09032014-2107.mts5|Iris-09032014-2107.mts6|Iris-09032014-2107.mts7|Iris-09032014-2107.mts8" -c:v libx264 -strict experimental outputfile.mp4

il tempo impiegato per la codifica è un po' più che un quarto d'ora, diciamo due ore e mezza, e la dimensione del file ottenuto è di circa 2 giga. Il risultato non è proprio il massimo, ma per adesso mi accontento.

Ho anche impostato uno script che prepara automaticamente il comando a partire dai file mts* presenti nella directory e lo esegue:

#/bin/sh

outputFile='outputfile.mp4'

rm -f $outputFile

command='avconv -i "concat:'

for file in $(ls -1X *.mts*); do
 command=${command}$file"|"
done

command=${command}"|"

command=${command/||/\"}

command=${command}" -c:v libx264 -strict experimental "$outputFile

eval $command 
 

La quartultima riga dello script aggiunge un altro carattere 'pipe'(|) alla stringa generata, mentre la terzultima trasforma due caratteri 'pipe' consecutivi in un doppio apice(").

mercoledì 3 giugno 2015

Rallentare la velocità del mouse


Ho un simpatico mouse ROCCAT Kone+, che linux mi riconosce tranquillamente.


Il comando lsusb ad esempio fornisce la seguente riga:
Bus 002 Device 005: ID 1e7d:2d51 ROCCAT Kone+ Mouse
Non ho installato nessun driver particolare, come ad esempio suggerito in questa pagina che contiene il driver ufficiale per linux. La pagina indica come attivare la gestione delle macro e delle funzioni avanzate con questo mouse, ma per adesso non ho intenzione di usarle.

L'unico problema con il driver di default è che la velocità del mouse risulta troppo elevata, rendendo il puntatore difficile da controllare quando si vogliono selezionare aree dello schermo o controlli grafici troppo piccoli.

Per poter ottenere una velocità adeguata, ho dovuto seguire la guida indicata in questa pagina, che suggerisce di effettuare dei tentativi di soglie di sensibilità con i comandi:
  • xinput list: per trovare l'id del mouse da usare nei comandi successivi
  • xinput list-props mouseId: per trovare l'elenco dei parametri del mouse configurabili 
  • xinput set-prop mouseId paramId valore: per attivare il valore di un parametro
Una volta trovato il valore corretto, è possibile renderlo attivo per ogni avvio del pc, andando ad aggiungere una sezione nel file /etc/X11/xorg.conf, nel mio caso  per rallentare il puntatore del mouse ho dovuto aggiungere in coda le seguenti righe:

Section "InputClass"
    Identifier "Roccat"
    MatchProduct "ROCCAT ROCCAT Kone[+]" # Product name from xinput list.
    Option "ConstantDeceleration" "3" # The same value as xinput.
EndSection


lunedì 13 aprile 2015

Linux home server


Da diverso tempo volevo riprendere il progetto di un home server basato su linux; le motivazioni per mettere su un home sono ad esempio riportate qua, e le riassumo in questa lista:

  • Central Media Hub: possibilità di vedere in streaming i video presenti sull'home server da qualunque dispositivo in LAN;
  • Torrent Box dedicata: scaricare facilmente qualunque tipo di file, e registrarsi ai seed per recuperare automaticamente nuovi file;
  • File Server: rendere disponibile tutti i file (film, musica, foto, documenti) su tutti i dispositivi in LAN;
  • Web Server: in caso vogliamo tirare su un sito di prova, o qualcosa di più serio.


  • Configurazione Hardware

    Avendo a disposizione una serie di computer vecchi donati dai parenti con la scusa "te lo butto io", ho messo su un PC frankenstein con le seguenti caratteristiche:
    • CPU: AMD Athlon(TM) XP 2000+
    • RAM: 512MB
    • Hard Disk: 80GB
    La capienza del disco fisso è un po' bassa, ma ne ho a disposizione altri di capacità simile per cui potrei montarne altri 2 in modalità slave (uno per ciascun cavo IDE) più un masterizzatore DVD (in modalità master sul secondo IDE) per avere una capienza di circa 200 GB più possibilità di masterizzare.

    L'unico problema è che la funzione di media streaming in HD richiede almeno un processore a 2GHz, per cui potenze inferiori potrebbero portare ad una riproduzione dei video a scatti; ho provato con flussi video non HD e lo stream mediante samba shares non ha dato interruzioni di sorta (con torrent sotto attivo!)

    Configurazione Software

    Il server che mettiamo su è headless, per cui tutte le funzionalità che andiamo ad installare saranno configurabili solo in remoto mediante ssh o altre utilità.

    Tra quelle che si possono installare c'è webmin, che fornisce una serie di comode funzioni attraverso un'interfaccia web tra cui:
    • Apache Webserver
    • CD Burner
    • SVN Server
    • DynDns service
    • Fail2Ban Intrusion Detector
    • File Manager
    • Samba Windows File Sharing

    Tra le altre informazioni recuperate mentre progettavo l'home server, ho notato il concetto di Seedbox cioè un server dedicato al filesharing bittorrent, ma mi sembra un po' esagerato e fuori dallo scopo di questo progetto.

    Andando a scorrere il tag Media Center in Inforpazzo, sono usciti una serie di post che sono applicabili a questa installazione:

    venerdì 20 febbraio 2015

    Salvare gli screenshot sul desktop (lubuntu)


    Faccio spesso uso della funzione di salvataggio dello schermo del pc. Con l'ultima versione di lubuntu installata premevo il tasto printScr ma non accadeva nulla per cui pensavo che non fosse una funzione operativa come in un ubuntu normale.

    Poi un giorno per caso ho visto una serie di file .png nella mia home, e aprendoli, ho scoperto con stupore che erano tutte le schermate che avevo tentato di catturare nel frattempo (per abitudine, ho continuato a premere printScr ogni volta).

    Il sistema usato per salvare le schermate è scrot; un esempio di nome di una schermata catturata con  scrot è
    2014-11-20-212200_1280x800_scrot.png
    dove si nota il timestamp di quando è stata catturata la schermata, e la risoluzione.

    L'unico problema è che voglio salvare le schermate sul desktop e non nella home, per una maggiore visibilità.

    Ho cercato come era configurata la funzione di salvataggio, e da questo wiki leggo di cercare il file ~/.config/openbox/lxde-rc.xml, solo che essendo una lubuntu il file da recuperare è il seguente:
    ~/.config/openbox/lubuntu-rc.xml

    Questo file è pieno di impostazioni interessanti ed anche ben commentato, per cui è possibile sbirciare quali aspetti di lxde/lubunutu possiamo modificare attraverso la sua modifica.

    Tornando all'argomento iniziale, ho trovato il comando in questione:
        <!-- Launch scrot when Print is pressed -->
        <keybind key="Print">
          <action name="Execute">
            <command>lxsession-default screenshot</command>
          </action>
        </keybind>
    

    Cercando con google lxsession-default la prima pagina che esce mostra come raggiungere la funzione che ci permette di cambiare le applicazioni di default (in italiano la voce è Preferenze → Applicazioni predefinite per LXSession)

    Smanettando un po', ho dovuto creare un file apposito da mettere come applicazione preferita, con il nome zacscrot, copiato in /usr/bin, il cui contenuto è il seguente:

    scrot '%Y-%m-%d_%H-%M-%S__$wx$h.png' -e 'mv $f ~/Scrivania/'