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

Emerald window decorator su Debian Sid

 

Stasera riguardavo dei vecchi screencast risalenti a 2-3 anni fa circa, dove provavo Beryl con Emerald, ed a questo proposito mi è venuto in mente di re-installare Emerald window decorator sulla mia Debian Sid. Questi i passi che ho eseguito:

Installazione dei soliti strumenti per compilare più alcune cose che a me mancavano:

sudo apt-get install build-essential checkinstall intltool libxrender-dev libdecoration0-dev libwnck-dev

quindi scaricare il sorgente e compilare:

wget


tar xvzf emerald-0.8.4.tar.gz

cd emerald-0.8.4

./configure --prefix=/usr/

in caso di errori verificare ciò che manca.

make

sudo checkinstall

a questo punto abbiamo creato ed installato il pacchetto deb di Emerald. Per caricare i temi di Emerald basta scaricarli da qua  e importarli tramite Emerald Theme Manager, accessibile da Compiz Fusion Icon. Per rimuovere il pacchetto:

sudo dpkg -r emerald

Per chi volesse il pacchetto emerald_0.8.4-1_i386.deb, già pronto può scaricarlo da qua.

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

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`

DVD-Slideshow GUI for Linux

 

DVD-Slideshow è un tool a linea di comando che permette di creare dvd e slideshow di una nostra galleria di foto-immagini. Diciamo che le opzioni sono tante e per questo rimando per il momento, alla visione della pagina man dvd-slideshow. Quello che volevo segnalare e di cui mi sono accorto proprio oggi e di Slideshow, che semplifica e velocizza di parecchio il tutto, dato che si tratta di una GUI scritta in pyton ed in pygtk proprio per dvd-slideshow. Per iniziare installiamo ciò che ci serve:

# apt-get install imagemagick dvd-slideshow mencoder dvdauthor mkisofs cdrecord

procediamo con il download e poi:

tar xzf slideshow.tar.gz

cd slideshow

./slideshow.py

Una volta lanciato il programma ci sono varie opzioni tra cui la scelta tra formato dvd o flv, nel caso si scegliesse il formato dvd, il programma crea una cartella /tmp nello stesso percorso della nostra galleria di immagini, e lì troveremo sia il file in .iso che in .vob. Nel caso si scegliesse il formato flv, troveremo un file.flv ed un file.vob. Penso che sia semplice ed intuitivo e non ci sia altro da aggiungere. Lo slideshow l'ho fatto preparando le immagini in una cartella e poi successivamente le ho  ordinate e rinominatoe in massa con questo comando:

ls -A | awk 'BEGIN{n=1} {system("mv "$1" "n".jpg");n=n+1}'

oppure si può fare anche in altri modi. Sotto uno screen di Slideshow.

 

Screencast da shell completo

 

Ed eccoci alla fine della trilogia dello Screencast, trilogia non voluta dato che quando ho iniziato a fare la prima guida, non pensavo certo di continuare, ma poi c'è stata la seconda guida ed adesso la terza ed ultima. Il filo conduttore di queste guide è sostanzialmente lo stesso e cioè si  continua sempre parlando dello Screencast usando il terminale, quindi niente gui, diciamo un sistema per quei piccoli esseri immortali come me. Come sempre quando si fa o si scrive una cosa, il risultato migliore lo si ottiene quando ci si confronta e ci si stimola a vicenda, e questo è quello che è successo con un mio lettore, deer , che ha contribuito alla nascita di questo post, come si può evincere dai commenti nei post precedenti e che ringrazio. A questo punto iniziamo a parlare di come fare uno Screencast completo on the fly. Quello che ci serve è questo script dopo:

chmod a+x recordSoundAndDesktop.sh

./recordSoundAndDesktop.sh

Questo script non fa altro che catturare il video in .avi e successivamente convertire il file .wav creato da arecord in .mp3, il tutto in maniera velocissima. Dato che siamo in argomento voglio citare anche la possibilità di fare uno screencast utilizzando l'audio direttamente da un file. Il comando è il seguente:

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

Altri screecast fatti da me e deer con questo script.

Screencast da shell con audio

 

Qualche tempo fa avevo scritto su come fare uno screencast da shell, ma non avevo accennato alla possibilità di farlo registrando contemporaneamente da un microfono e quindi molto utile per chi volesse fare delle guide. L'idea mi è stata data da un lettore, che ringrazio, e che mi chiedeva appunto se esisteva un unico comando per uno screencast audio-video. Dico subito che ho trovato delle difficoltà nel trovare una soluzione ottimale, poichè usando principalmente Debian testing e Sid, succede che a volte (spesso) quello che hai sperimentato il giorno prima ed era funzionante, il giorno dopo ti da problemi o non funziona. Tuttavia questa volta ho sperimentato il tutto anche su Ubuntu 9.10 che ho installato ieri sera, solo perchè volevo togliermi delle curiosità, del resto la mia ultima frequentazione di Ubuntu risale alla versione 8.4. Di seguito i comandi che mi hanno soddisfatto:

Utilizzando ffmpeg con oss:

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

Utilizzando ffmpeg con 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

Ricordarsi di settare in: preferenze dell'audio-ingresso-connettori il proprio microfono. Per ulteriori informazioni ed opzioni guardare qua e qua oltre che ai man.

NetFleet download manager

 

 

NetFleet è un download manager cross-platform scritto in c++ appoggiandosi a le librerie Trolltech Qt.  Con interfaccia molto intuitiva e sotto licenza GPL v3, velocizza il download utilizzando connessioni multiple per ogni file. Per provarlo:

wget

tar xjf netfleet_0.2.1-linux-bin.tar.bz2

cd netfleet_0.2.1-linux-bin

./netfleet.sh

Non male. Per altre info rimando al sito del progetto.