Da Html a Pdf con Gnu/Linux

 

Wkhtmltopdf è un ottimo programma che serve alla conversione di pagine html in pdf, dato che non lo conoscevo ho voluto provarlo, e devo dire che questo è un ottimo programma visto l'alta possibilità di configurazione. Su Debian Sid è presente nei repository nella versione 0.9.5-1, quindi è inutile ricompilare. Per chi volesse farlo i requisiti obbligatori son le Qt 4, quindi:

# apt-get install libqt4-dev qt4-dev-tools wkhtmltopdf

Per usarlo bastano pochi semplici comandi:

comando base:

$ wkhtmltopdf https://edmondweblog.com edmondweblog.pdf

comando con più opzioni:

$ wkhtmltopdf https://edmondweblog.com prova.pdf -n  -B 10mm -L 10mm -R 10mm -T 10mm –minimum-font-size 10

conversione di un file locale:

wkhtmltopdf file.html file.pdf

conversione di un file PS:

wkhtmltopdf file.html file.ps

per tutto il resto c'è il man.

Condividere swap tra Windows e Gnu/Linux

 

 

Questa guida è solo per conoscenza, dato che probabilmente solo in pochi la utilizzeranno, dato che oramai negli hard disk moderni non si hanno certo problemi di spazio. Io fino al 2005-06, avevo anche un mulettino, un pentium III 800mhz Olidata con hard disk da 12g e scheda video matrox G400, e vi tenevo fisse 2 distribuzioni Gnu/Linux, e cercavo di ottimizzare lo spazio al massimo, per non parlare poi di tutti gli esperimenti, nel ricompilare il kernel solo con quello che mi serviva…..che ridere solo a pensarci adesso. Comunque tornando al discorso della condivisione della partizione di swap tra Gnu/Linux e Windows, ho scoperto che esiste uno script  che permette di attivare la partizione di swap di windows, tramite il file pagefile.sys, direttamente da Gnu/Linux.

Requisiti:

Partizione windows montata all'avvio, quindi:

# cd /media

# mkdir win7

# nano /etc/fstab

inserire :

 /dev/sda1  /media/win7  ntfs-3g

e poi:

# reboot

poi scaricare lo script install-swapwin che io ho tradotto solo nelle parti essenziali,e modificato, inserendo il percorso /media/win7:

$ chmod +x install-swapwin

# ./install-swapwin

# reboot

# swapon -s

alla fine volendo si è pronti ad eliminare la vecchia partizione di swap.

Blocco volontario del cdrom

 

Questo è un piccolo trucchetto che consiste nel bloccare volontariamente il cdrom. La domanda, per altro legittima che uno può farsi è: " perchè mai dovrei bloccare il cdrom? " Gli scenari possono essere diversi, io mi limito a menzionarne uno: " stai guardando un pornazzo che un amico ti ha regalato, tua moglie/fidanzata vedendoti preso e con la lingua di fuori ti chiede cosa stai vedendo, e tu, subito rispondi che ti hanno regalato un film di Bruce Lee che erano anni che non vedevi, e per questo sei affascinato dalle sue performance che non ricordavi ormai più. La risposta che hai dato sai già che non è proprio convincente, ma comunque vai avanti con la visione. Ad un certo punto sazio del film senti il bisogno di ritirarti per deliberare in bagno, e mentre ti avvii vedi un lampo balenare negli occhi di tua moglie/fidanzata, a quel punto capisci che lei sta aspettando il momento della tua delibera per andare a tirare fuori il cdrom, ma il nerd che c'è in te reagisce e prima della delibera digiti:

$ eject -i on

oppure

$ eject -i 1

che serve per bloccare il cdrom. Successivamente per sbloccare usare:

$ eject -i off

oppure:

$ eject -i 0

nel caso si hanno due cdrom scegliere quale bloccare:

$ eject cdrom0 -i on

$ eject cdrom1 -i on

La storia finisce con il classico, " e tutti vissero felice e contenti " 🙂

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

Mount ext2fs filesystems da Debian GNU/kFreeBSD

 

 

Oramai è un po di tempo che sto seguendo lo sviluppo di Debian GNU/kFreeBSD, con la speranza che vengano fatti velocemente un po di passi avanti, dato che credo di essere arrivato ad un bivio, e cioè, mi sta succedendo quello che un bel po di anni fa mi ha portato ad abbandonare windows per Linux, e ad innamorarmi. Questa insoddisfazione che mi attanaglia, mi sta portando, forse, dal mondo Linux a quello BSD, ma questo è un discorso che forse… non affronterò mai. Tornando in tema, vediamo come accedere alle partizioni Linux da Debian GNU/kFreeBSD. Diciamo subito che non ci sono magheggi da fare dato che il supporto ext2fs è gia presente nel kernel, quindi, per conoscere tutte le nostre partizioni:

$ ls /dev/|grep ^ad

nel mio caso:

edmond@DebianGNUkFreeBSD:~$ ls /dev/|grep ^ad
ad0
ad0s1
ad0s2
ad0s3
ad0s5
ad0s6
ad0s7
ad0s8
ad0s9
ad3
ad3s1
ad3s2
ad3s5

una volta identificata la partizione che vogliamo montare, basta un:

# mount -t ext2fs /dev/ad0s6 /mnt

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 🙂