Catturare il desktop in modo velocissimo

 

 

Sotto Gnu/Linux ci sono vari strumenti per la cattura del desktop, uno su tutti gnome-screenshot ,che ti da la possibilità di scegliere se catturare tutta la finestra oppure una porzione. Io per rendere ancora più veloce la cattura di una porzione di desktop uso il seguente script:

#!/bin/bash
date=`date +%d_%m_%Y-%M%S`
import -pause 2 /home/edmond/Immagini/immagine_$date.jpg

oppure:

#!/bin/bash
date=`date +%d_%m_%Y-%T`
import -pause 2 /home/edmond/Immagini/immagine_$date.jpg

da copiare e salvare, come ad esempio grab.sh,  dopo averlo modificato cambiando il percorso dove salvare le immagini o altro. Rendiamolo eseguibile:

sudo chmod a+x grab.sh

a questo punto basta creare sul nostro pannello il nostro lanciatore, ed il gioco è fatto.

Provare per credere 😉

Webcam virtuale con Webcamstudio

 

 

WebcamStudio è un ottima applicazione rilasciata sotto licenza GPL, che tra le tante caratteristiche ne ha una molto particolare, e cioè la possibilità di simulare una webcam, e quindi,  può riuscire ad ingannare la persona con cui stiamo interloquendo tramite amsn o skype, facendogli vedere un filmato ed ingannandola di conseguenza,  in quanto crede che quello che sta vedendo avviene in diretta. Sul sito si può scaricare il pacchetto .deb per chi usa Ubuntu, per gli altri, che usano distro diverse compreso me che sono su Debian Sid, bisogna prima verificare se sia presente il modulo vloopback, altrimenti compilarlo:

debianbox:/home/edmond# lsmod | grep vloopback
vloopback               9678  0
videodev               25211  4 vloopback,tuner,saa7134,v4l2_common

in caso negativo lo compiliamo con module-assistant:

# apt-get install module-assistant vloopback-source

# m-a prepare

# m-a a-i vloopback-source

# reboot

a questo punto verifichiamo che il modulo sia presente e poi avviamo WebcamStudio:

tar zxvf WebcamStudio_0.53.tar.gz

cd webcamstudio

java -jar "WebcamStudio.jar"

(Update) Installare Debian GNU/kFreeBSD

 

 

Questa guida è un aggiornamento a Installare Debian GNU/kFreeBSD step by step fatta precedentemente, poichè mi sono accorto che alcune cose che con me hanno funzionato adesso non funzionano più, e quindi questo aggiornamento serve a quelle persone che si sono cimentate nell'installazione senza riuscirci, per colpa di vari errori con il debian-installer. Quindi sommando queste due guide cercherò di farne almeno una buona :). La base da cui partire è sempre questa guida, ma quando si arriva al punto di scegliere tra Stable-Squeeze-Sid, bisogna scegliere Squeeze, poiche se si sceglie Sid si incorre in un errore già nell'installazione base. Proseguiamo fino al punto in cui ci viene chiesto cosa installare, e scegliamo solo il Sistema Standard:

quindi niente interfaccia grafica per il momento altrimenti incorriamo in dei problemi legati a mono-runtime. Una volta finita l'installazione avviamo dalla nostra distribuzione abituale e montiamo la partizione con Debian GNU/kFreeBSD:

mount -t ufs -o ro,ufstype=ufs2,nodev,nosuid /dev/sdaX /mnt

entriamo quindi in /mnt/boot/grub ed andiamo a copiare il menuentry che si trova in grub.cfg e lo incolliamo nel nostro /etc/grub.d/40_custom, quindi subito dopo update-grub. A questo punto siamo pronti a riavviare ed accedere su Debian GNU/kFreeBSD. Dopo il logini dato che non abbiamo interfaccia grafica siamo pronti ad installarla con:

# apt-get install gnome-desktop-environment

così facendo non abbiamo problemi con mono, dato che non lo installiamo. Adesso dobbiamo creare e configurare Xorg.

# X -configure

# mv /root/xorg.conf.new /etc/X11/xorg.conf

ma questo solamente non basta:

# nano /etc/X11/xorg.conf

ed aggiungiamo alla fine questo:

Section "ServerFlags"
        Option "AllowEmptyInput" "No"
        Option "AutoAddDevices" "No"
EndSection

dopo di chè controllare anche la parte riguardante il mouse poichè bisogna inserire il Device esatto, nel mio caso il mouse Logitech, Inc. MX-1000 Cordless Mouse Receiver è identificato come /dev/ums0:

Section "InputDevice"
    Identifier  "Mouse0"
    Driver      "mouse"
    Option        "Protocol" "auto"
    Option        "Device" "/dev/ums0"
    Option        "ZAxisMapping" "4 5 6 7"

per caricare il modulo per la mia scheda audio intel:

# kldload snd_hda

Adesso siamo pronti a provare Debian GNU/kFreeBSD e a modificarla a nostro piacimento, tenendo presente che siamo solo all'inizio e quindi tante cose ancora non funzionano, o non sono presenti.

Scrittura filesystem UFS con Debian

 

 

Questa guida nasce dopo l'installazione di Debian GNU/kFreeBSD, e quindi dalla necessità di dover scrivere dall'interno della mia Debian Sid il filesystem ufs. Al momento mi trovavo nella situazione solamente di lettura e montavo il filesystem ufs con il comando:

mount -t ufs -o ro,ufstype=ufs2,nodev,nosuid /dev/sdaX /mnt

e quando cercavo di scrivere con il comando:

mount -t ufs -o rw,ufstype=ufs2,nodev,nosuid /dev/sdX /mnt

mi restituiva il seguente errore:

debianbox:/home/edmond# mount -t ufs -o rw,ufstype=ufs2,nodev,nosuid /dev/sda9 /mnt
mount: wrong fs type, bad option, bad superblock on /dev/sda9,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog – try
       dmesg | tail  or so

debianbox:/home/edmond# dmesg | tail -n 1
[ 6931.531458] ufs was compiled with read-only support, can't be mounted as read-write

quindi non potevo scrivere il filesystem ufs in quanto il kernel era stato compilato con l'opzione di solo lettura. A questo punto ho deciso di ricompilare il kernel anche se è considerato “dangereous/experimental”:

sudo apt-get install build-essential bin86 kernel-package libncurses5 libncurses5-dev fakeroot module-init-tools

# cd /usr/src

# uname -r

# apt-get install linux-source-2.6.32

# bzip2 -dc linux-source-2.6.32.tar.bz2 |tar xf -

# ln -sf linux-source-2.6.32 linux

# cd linux

# cp /boot/config-2.6.32-trunk-686 .config

# make menuconfig

spostari nelle sezioni File systems  —> Miscellaneous filesystems  scegliere UFS file system write support (DANGEROUS) e poi salvare. A questo punto siamo pronti per compilare:

io ho due cpu, quindi:

# CONCURRENCY_LEVEL=2 make-kpkg --initrd --append-to-version=-ufs kernel-image kernel-headers

al completamento siamo pronti ad installare il kernel-header ed il kernel-image creati con:

# dpkg -i tutti_e_due_i_kernel

riavviamo e proviamo il nuovo kernel, se nel caso ci troviamo di fronte ad un kernel panic, il motivo è legato al fatto che non trova l'initrd, quindi risolviamo con:

# cd /usr/src

#  update-initramfs -c -k nome_kernel -t

 

Conclusioni:

Devo dire che sono due giorni che provo a scrivere nella partizione freebsd ed al momento non ho riscontrato nessun problema 🙂

Installare Debian GNU/kFreeBSD step by step

 

 

Questa guida può essere utile a chi vuole provare Debian GNU/kFreeBSD, ovvero "un port che consiste di uno spazio utente GNU che usa la libreria C GNU e un kernel FreeBSD sottostante, abbinati con il normale insieme di pacchetti Debian". Sinceramente ho fatto molte prove d'installazione, sia su VirtualBox che su hard disk, e dopo molteplici tentativi sono riuscito ad avere una box con DebianGNU/kFreeBSD funzionante. I problemi principalmente derivano dal debian-installer che nel mio caso falliva spesso e volentieri, poi con la mini.iso del 20100210-11:20 è andato tutto ok, di seguito i link per il download   kfreebsd-amd64 e kfreebsd-i386. Di seguito indicherò solamente i passi secondo me importanti, dato che comunque il debian-installer è semplice ed intuitivo.

Installazione:

Una volta avviata l'installazione ci appare questa immagine:

premere Go Back, per tornare alla pagina principale e selezioniamo Change debconf priority

e selezioniamo medium:

a questo punto proseguiamo con l'installazione, e quindi con la configurazione della rete non facendo caso alla voce em0 (eth0) interfaccia sconosciuta, poichè la riconosce, e quando ci chiede di scegliere un mirror, scegliamo Sid:

l'installazione prosegue fino a quando ci chiede quale kernel installare, e naturalmente scegliamo quello più recente. Se tutto è andato a buon fine si arriva all'installazione di Grub, e qui bisogna fare alcune considerazioni, a secondo di quale strada scegliamo, o meglio di quale versione di Grub abbiamo gia installato nel nostro sistema. Nel mio caso avendo Debian Sid la versione è Grub-pc_1.98~20100128-1.1_i386 e quindi va benissimo, per chi usa un altra distribuzione che ha la versione di Grub inferiore, gli conviene aggiornare in quanto in un dual boot, non riesce a volte ad avviare il kernel freebsd (a me è successo questo). Chiaramente quanto scritto sopra è valido se il debian-installer non riesce ad installare Grub, oppure nell'eventualità che bisogna ripristinarlo da un livecd., quindi di conseguenza la versione di Grub è quella precedente. Comunque manualmente  per un dual boot da inserire sulla propria Distro in /etc/grub.d/40_custom la seguente stringa seguita da un update-grub:

menuentry "Debian GNU/kFreeBSD" {
    insmod ufs2
    set root=(hd0,8)
    echo            Loading kernel of FreeBSD 8.0-1-686 ...
    kfreebsd        /boot/kfreebsd-8.0-1-686.gz
    set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ad0s8
    set kFreeBSD.vfs.root.mountfrom.options=rw
}

considerando che la mia installazione e  nella partizione /dev/sda8.

Una volta avviato il sistema non dovrebbero esserci problemi, ma nel caso non funzionasse il mouse, premere Ctrl-alt-F1:

cd /root

X -configure

e poi:

cp xorg.conf.new /etc/X11/xorg.conf

Per montare il filesystem ufs da linux:

mount -t ufs -o ro,ufstype=ufs2,nodev,nosuid /dev/sda8 /mnt

stringa eventualmente da inserire in /etc/fstab:

/dev/sda8 /mnt      ufs auto,ro,ufstype=ufs2,nodev,nosuid   0 0

 

Installazione su VirtualBox:

Per quanto riguarda l'installazione su VirtualBox non ci sono problemi, l'unica cosa a cui bisogna prestare attenzione è su un paio di cosette. Nella creazione di una nuova macchina virtuale scegliamo come sistema operativo BSD e come versione FreeBSD. Nella configurazione della rete scegliamo come scheda la Intel PRO/1000 MT Desktop o la  PCnet-FAST III connessa con bridge. Durante l'installazione scegliere come kernel il 486.

Guida in continuo aggiornamento 🙂

  1. update

Mount partizioni senza password

Questo è un piccolo trucco per quelli che come me si sono stancati di inserire la password per il montaggio delle partizioni. Quello che bisogna fare è molto semplice e si tratta di modificare una stringa presente in un file:

con il proprio editor di testo:

sudo nano /usr/share/polkit-1/actions/org.freedesktop.devicekit.disks.policy

trovare la seguente stringa:

<allow_active>auth_admin_keep</allow_active>

e modificarla in questo modo:

<allow_active>yes</allow_active>

Rimuovere i pacchetti del giorno

 

 

A volte ci si spaventa accorgendosi di avere fatto una cazzata, facendo un aggiornamento di cui non si è sicuri, oppure molto semplicemente dopo aver installato un po di pacchetti, per prova o esperimenti vari, si vorrebbe tornare indietro ripulendo il tutto. Ma se i pacchetti installati sono tanti è difficile ricordarsi di tutti. A questo proposito viene in aiuto questo comando che legge i pacchetti del giorno e li rimuove.

grep -e `date +%Y-%m-%d` /var/log/dpkg.log | awk '/install / {print $4}' | uniq | xargs apt-get -y remove

Grub2 menu personalizzato

 

Per chi ha diversi O.S installati risulta comodo mettere ordine al menu di Grub2. I passi a proprio rischio e pericolo 🙂 sono i seguenti:

sudo update-grub

editare grub.cfg:

sudo gedit /boot/grub/grub.cfg

a questo punto individuare e copiare solamente i menu che si desidera vedere al boot di Grub2:

Esempio: ( partendo da menuentry e finendo con } )

menuentry "Ubuntu, Linux 2.6.31-17-generic" {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
    set quiet=1
    insmod ext2
    set root=(hd0,9)
    search –no-floppy –fs-uuid –set eb27469e-03f8-4aa2-9a13-faa3f7689a2e
    linux    /boot/vmlinuz-2.6.31-17-generic root=UUID=eb27469e-03f8-4aa2-9a13-faa3f7689a2e ro   quiet splash
    initrd    /boot/initrd.img-2.6.31-17-generic
}

menuentry "Debian GNU/Linux, con Linux 2.6.32-trunk-686 (on /dev/sda5)" {
    insmod ext2
    set root=(hd0,5)
    search –no-floppy –fs-uuid –set 7bae8193-a97e-44df-86f2-2e9a1c59ff4d
    linux /boot/vmlinuz-2.6.32-trunk-686 root=UUID=7bae8193-a97e-44df-86f2-2e9a1c59ff4d ro quiet
    initrd /boot/initrd.img-2.6.32-trunk-686
}
menuentry "BackTrack 4, kernel 2.6.29.4 (on /dev/sda8)" {
    insmod ext2
    set root=(hd0,8)
    search –no-floppy –fs-uuid –set 2eb5129f-6bca-4e65-a667-52a1e16a44f4
    linux /boot/vmlinuz-2.6.29.4 root=UUID=2eb5129f-6bca-4e65-a667-52a1e16a44f4 ro quiet splash
    initrd /boot/initrd.img-2.6.29.4
}

poi:

sudo chmod -x /etc/grub.d/10_linux /etc/grub.d/20_memtest86+ /etc/grub.d/30_os-prober

a questo punto:

sudo nano /etc/grub.d/40_custom

ed incollare dentro i menu degli O.S preparati precedentemente.

OBBLIGATORIAMENTE

sudo update-grub

Io personalmente ho eliminato tutti e tre i file in

/etc/grub.d/10_linux /etc/grub.d/20_memtest86+ /etc/grub.d/30_os-prober

ma questa è una scelta mia personale che porta ad inserire a manina di volta in volta i nuovi kernel. Magari mi pentirò di questa scelta, ma lo scoprirò solo vivendola.

Top 20 comandi per ffmpeg

 

 

Per correttezza preciso che sono i miei Top 20 comandi 🙂 Io sono un utilizzatore assiduo di ffmpeg ed ho pensato di mettere nero su bianco i comandi che uso frequentemente, del resto credo di non essere il solo a cui piace usare prevalentemente la shell. Inizio con il menzionare alcuni comandi semplicissimi per poi successivamente passare ad alcuni più complessi, come al solito il punto di partenza da consultare è sempre il man o il web 🙂 La base da cui partire, anche se sembra banale è la conoscenza dei formati e dei codec, quindi:

Base:

ffmpeg -formats

ffmpeg -codecs

Video:

per ottenere info su un video:

ffmpeg -i video.avi

convertire da .avi a .mpg e viceversa:

ffmpeg -i input.avi output.mpg

convertire da .avi a .flv:

ffmpeg -i input.avi -sameq -ar 44100 output.flv

convertire da .flv a .mpg:

ffmpeg -i input.flv -sameq -ab 56k -ar 22050 -b 500 -s 640x480 output.mpg

convertire da .avi a .mpeg per lettori dvd:

ffmpeg -i input.avi -target pal-dvd -ps 2000000000 -aspect 16:9 output.mpeg

tagliare una sequenza video, dove -ss rappresenta il tempo d'inizio e t la fine:

ffmpeg -vcodec copy -acodec copy -i input.avi -ss 00:00:30 -t 0:0:15 output.avi

convertire video per ipod/iphone:

ffmpeg -i input.flv -acodec libfaac -ab 96k -ac 2 -vcodec libx264 -vpre hq -vpre ipod320 -threads 0 -crf 22 output.mp4

Audio:

estrarre suono da un video e convertirlo in mp3:

ffmpeg -i input.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 output.mp3

cancellare suono da un video:

ffmpeg -i input.avi -an -b 1200 output.avi

aggiungere suono ad un video:

ffmpeg -i input.wav -i input.avi output.mpg

convertire da wav a mp3:

ffmpeg -i input.wav -ab 128 output.mp3

Immagini:

convertire un video in una sequenza di immagini:

ffmpeg -i input.flv -an -r 1 -y -s 320x240 video%d.jpg

estrarre immagine da una sequenza prestabilita:

ffmpeg -i input.flv -an -ss 00:00:25 -t 00:00:01 -r 1 -y video%d.jpg

Screencast:

ffmpeg -f x11grab -s 1280x1024 -r 30 -i :0.0 /tmp/screencast.mpg

oppure:

ffmpeg -y -t 60 -r 25 -s 1280x1024 -f x11grab -i :0.0 screencast.avi

screencast utilizzando un microfono + oss:

ffmpeg -s 1280x1024 -r 25 -f x11grab -i :0.0 -f oss -i /dev/dsp screen.avi

screencast utilizzando un microfono + arecord:

arecord -D default -t raw -c 1 -f S16_LE -r 48000 - | ffmpeg -f s16le -ab 128k -ar 48000 -ac 1 -i --acodec mp2 -f x11grab -r 2 -s 1280x1024 -i :0.0 -vcodec mpeg4 screen.avi

screencast prendendo il suono direttamente da  un file mp3:

ffmpeg -f x11grab -s 1280x1024 -r 30 -i :0.0 -i percorso_del_file.mp3 -ar 22050 -ac 1 -acodec mp2 -ab 128k screen.avi

Questi sono i miei Top 20 comandi per ffmpeg, messi nero su bianco sperando di fare contento qualcun'altro 😉 e sopratutto spero che qualcuno ne posti di altri, poichè sono molto interessato 🙂

Backup veloce della propria home

 

Questo è un metodo velocissimo per effettuare un backup della propria home directory. Di seguito i comandi:

Creazione dell'archivio di backup:

tar cvpf backup.tar `ls`

Per i successivi backup usiamo un metodo incrementale, onde evitare di copiare le stesse directory ma solamente le nuove cartelle ed i nuovi file.

tar cvpf backup.tar -g snapshot `ls`

Nel caso si volesse tenere fuori dal backup una cartella o un file, si può usare l'opzione "hide" seguita dal nome di ciò che si vuole escludere.

tar cvpf backup.tar -g snapshot `ls --hide=Directory_or_file`