Debian GNU/Hurd su VirtualBox

 

Questa guida può aiutare tutti coloro che volessero provare Debian GNU/Hurd su VirtualBox, e senza volere entrare troppo sul tecnico, rimando al sito del progetto, ed in più segnalo una lettura veloce di questo post di Guiodic giusto per comprendere la differenza tra un kernel monolitico ( Linux ) ed un microkernel ( GNU Mach ).

Requisiti:

VirtualBox con su installata una distribuzione Gnu/Linux.

debian-L1-hurd-i386-mini.iso scaricabile da qua.

Installazione:

Avviare VirtualBox e come scheda di rete scegliere la PCnet-PCI II (Am79C970A), il resto a piacimento. L'installer è molto intuitivo, settare la tastiera, partizionare, attivare partizione di swap e partizione Gnu/Hurd ed installare il sistema base dopo di chè scegliere:

cdrom → continue → list → /instmnt/install

reboot the system

Avviare VirtualBox con la propria distribuzione Gnu/Linux installata ( es. Debian ), e digitare:

# sudo update-grub

dopo di chè riavviare ed accedere alle opzioni di Grub, per aggiungere l'opzione

-s

che indica di avviare come single-user.

e poi cancellare

--readonly

per non avviare con un file system in solo lettura.

sotto un esempio, con la partizione Gnu/Hurd in hd0s6:

insmod ext2
    set root=(hd0,6)
    multiboot /boot/gnumach.gz root=device:hd0s6 -s
    module /hurd/ext2fs.static ext2fs  \
            --multiboot-command-line='${kernel-command-line}' \
            --host-priv-port='${host-port}' \
            --device-master-port='${device-port}' \
            --exec-server-task='${exec-task}' -T typed '${root}' \
            '$(task-create)' '$(task-resume)'
    module /lib/ld.so.1 exec /hurd/exec '$(exec-task=task-create)'

a questo punto siamo pronti ad  avviare Gnu/Hurd, avendo un po di pazienza in quanto ci vorranno almeno 5 minuti poichè si bloccherà qui:

e nel caso il file system dovrebbe essere in readonly, ovviare al problema con:

# fsysopts / --writable

se tutto è andato bene ci apparirà una shell:

sh-4.0#

diventiamo root:

su

è lanciamo:

# ./native-install

che si occuperà di installare il sistema base:

dopo di che:

# reboot

adesso accedere come multi-user, quindi senza l'opzione -s, ed eseguire il login come:

login root

settare utente e password:

# adduser Utente

# passwd

aggiungere partizione di swap ( es: hd0s5 )

# cd ..

# cd /dev

# ./MAKEDEV hd0s5

correggere e decommentare fstab:

# nano /etc/fstab

/dev/hd0s5  none    swap    sw   0   0

# reboot

adesso abbiamo bisogno del sources.list e di una connessione di rete:

sources.list:

# nano /etc/apt/sources.list

deb https://ftp.it.debian.org/debian unstable main
deb https://ftp.debian-ports.org/debian unreleased main

connessione di rete:

per verificare se  la nostra scheda di rete viene riconosciuta:

# devprobe eth0

come output si avrà eth0.

per connettersi con ip statico:

# settrans -fgap /servers/socket/2 /hurd/pfinet -i eth0 -a 10.0.2.15 -g 10.0.2.255 -m 255.255.255.0

# reboot

aggiornare il sistema:

su

# apt-get update

# apt-get upgrade

si ottiene questo errore, che sinceramente mi ha fatto perdere non poco tempo, dato che non me l'aspettavo:

tanto è vero che:

# echo $PATH

mi restituiva questo:

mentre accedendo come root con:

su -

si risolve il problema, infatti:

In effetti,come viene spiegato qua, la differenza sta nel fatto che, usando su senza il trattino, si ottiene una shell interattiva normale, mentre con il trattino si ottiene una «shell di login». Dal lato pratico, la differenza sta nel fatto che nel secondo caso vengano eseguiti script che nel primo caso sono ignorati; dal punto di vista pratico, quello che conta è sapere che la differenza esiste e dipende dalla configurazione del sistema operativo. Arrivati a questo punto siamo in grado di installare qualche programma:

# apt-get install links

Per il momento mi fermo qua, ma credo di proseguire prossimamente, sperando che a qualcuno interessi 😉

Update:

Installazione Debian GNU/Hurd Video

 

Driver nouveau con kernel 2.6.33 e Debian

 

Il progetto nouveau mira alla creazione di driver di alta qualità per schede grafiche nvidia, e siccome era un po che volevo testarli, finalmente mi sono deciso. Inizio subito con il dire che per il momento il 3D non è supportato integralmente ,quindi per chi vuole compiz obbligatoriamente attivo e meglio che lasci perdere, mentre per chi vuole una Debian o altro con software open al 100%, forse è venuto il momento di provare questi driver nouveau, che a me sinceramente hanno stupito per velocità. Comunque per maggiori informazioni consiglio di visitare il sito. Per chi vuole testarli basta seguire i passi indicati di seguito, tenendo presente che io uso Debian Sid:

Inserire i repo experimental, dato che alcuni pacchetti li troviamo là:

deb https://ftp.it.debian.org/debian/ experimental main contrib non-free
deb-src https://ftp.it.debian.org/debian/ experimental main contrib non-free

a questo punto installiamo ciò che ci serve:

# apt-get update

# apt-get install linux-source-2.6.33 libdrm-nouveau1 libdrm2 xserver-xorg-video-nouveau

adesso dobbiamo ricompilare il kernel, perchè dobbiamo abilitare i nostri driver open nouveau, che troviamo nel percorso:

Device Drivers  —> Staging drivers  —>  Nouveau (nVidia) cards

una volta finita la compilazione ed installato il nuovo kernel, prima di riavviare ricordiamoci di modificare xorg.conf oppure XF86Config nella sezione device:

# nano /etc/X11/XF86Config

sostituire nvidia o nv con nouveau

Section "Device"
    Identifier     "Device0"
    Driver         "nouveau"
EndSection

una volta avviato il nuovo kernel non ci rimane altro che testare i nostri driver open:

$ lsmod | grep nouveau

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

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`