How-to

30
06.2008
Smartcam - Howto

Come collegare la videocamera del cellulare alla propria Linuxbox (via BT), ed utilizzarla per i programmi tipo Skype e Kopete

Image Hosted by ImageShack.us
Programma:Il programma che ci permette il collegamento via bluetooth, si divide in modulo e applicazione in userspace:

  • Download smartcam
  • Decomprimiamo il pacchetto .zip nella nostra /home directory:

    cd ~/
    unzip smartcam_v_2008.06.13.zip

    Installazione Ubuntu

    Sia il modulo che l'applicazione sono già stati compilati per il kernel 2.6.24-18-generic. Se abbiamo installato e in uso il 2.6.24-18-generic dobbiamo semplicemente caricare il modulo smartcam.ko (per emulare la webcam) e lanciare smartcam. Apriamo un terminale e spostiamoci nella directory smartcam/release:

    cd ~/smartcam/release
    sudo /sbin/insmod smartcam.ko
    sudo /sbin/modprobe videodev

    Nella directory smartcam/release/phone_files troviamo 3 files: se il nostro cellulare accetta file java (.jar) inviamo tramite bluetooth:

    jSmartCam.jar

    In caso contrario carichiamo gli altri due files:

  • SmartCamS603rdEd.SIS
  • SmartCamS602ndEd.SIS
  • Lanciamo il programma:

    cd ~/smartcam/release
    ./smartcam

    NB: La seguente versione è stata testata con Ubuntu 8.04 e il kernel 2.6.24-18-generic. Tuttavia potrebbe non funzionare con le utlime release delle bluez-utils.

    Installazione su kernel diverso da quello indicato:

    Piccolo check:

    1- Bisogna avere tutto l'occorrente per compilare
    2- Bisogna avere i kernel-headers installati o i sorgenti del kernel in uso
    3- Bisogna installare la libreria di sviluppo libbluetooth

    sudo apt-get install libbluetooth-dev

    Spostiamoci in:

    cd ~/smartcam/src/driver

    Compiliamo il driver:

    make -C /lib/modules/`uname -r`/build M=`pwd` modules

    Carichiamo il modulo con insmod:

    /sbin/modprobe videodev
    /sbin/insmod smartcam.ko

    NB: videodev è il driver dal quale smartcam.ko dipende. L'utility Insmod ha effetto solo fino al successivo riavvio. Per una installazione persistente di smartcam.ko è necessario copiare il modulo nella directory:

    sudo cp -v smartcam.ko /lib/modules/`uname -r`/kernel/drivers/media/video/

    Per avviare il modulo al boot, bisogna aggiungerlo alla lista in /etc/modules.

    Saliamo di una directory, entriamo in smartcam/src/app e compiliamo l'applicazione:

    cd ..
    cd apps

    gcc `pkg-config --cflags --libs gtk+-2.0 gthread-2.0` -lbluetooth smartcam.c -o smartcam

    Se tutto funziona correttamente, possiamo avviare il programma .jar o .sis appena installato sul nostro telefono e collegarlo (via bluetooth) al computer. Contemporaneamente dovremo attivare anche smartcam.

    Purtroppo a me non funziona, per via di un errore in fase di comunicazione. Probabilmente il file .jar non è pienamente compatibile col Sony Ericsson w300i
    Consiglio vivamente di utilizzare l'infrastruttura di kde per il trasferimento files (kbluetooth):

    o

    23
    06.2008
    Veejay - Howto installazione Xubuntu Hardy 8.04

    Image Hosted by ImageShack.us
    Una piccola guida all'installazione del programma Veejay, uno strumento multitraccia per la manipolazione in realtime di video sampler per GNU/Linux
    Rispetto all'originale ho cercato di mettere un pò di ordine e di aggiungere qualche fix ad alcuni problemi di librerie riscontrate durante la compilazione.
    Testata con Xubuntu (Ubuntu) Hardy 8.04:

    ______________
    Download:Last release:

  • VeejayHQ-1.2.tar.bz2
  • Freshmeat:

  • Project-veejay
  • Dipendenze generali:

    sudo apt-get install libsdl1.2-dev libjack0.100.0-dev libquicktime-dev libxml2-dev libglade2-dev \
    libgtk2.0-dev libmjpegtools-dev libavcodec-dev libjpeg62-dev libavformat-dev libswscale-dev \
    libdv-dev xorg-dev libasound-dev libsamplerate-dev

    Dipendenze compilazione gtkcairo-0.3:

    sudo apt-get install build-essential autogen autotools-dev autoconf automake1.8 libtool

    Librerie abilitazione MIDI:

    sudo apt-get install libasound-dev

    Compilazione:

    NB: Utilizzare checkinstall al posto di make install per una facile rimozione del programma.
    Per abilitare le opzioni supplementari consultare l'help con:

    ./configure --help

    Scompattare il tarball (nella /home):

    tar xjvf veejay-1.2.tar.bz2

    1- Veejay-server (abilitazione openGL):

    cd ~/veejay-server
    export PKG_CONFIG_PATH=/usr/lib/pkgconfig/
    ./configure --prefix=/usr --enable-gl
    make
    sudo make install
    sudo make clean

    2- Veejay-client (reloaded):

    cd ~/veejay-client
    export PKG_CONFIG_PATH=/usr/lib/pkgconfig/
    ./configure --prefix=/usr --with-gdk-pixbuf
    make
    sudo make install
    sudo make clean

    3- Veejay-themes (versione normale e 1.2):

    cd ~/veejay-themes
    sudo ln -s /usr/local/lib/libgtkcairo.so.2 /usr/lib/libgtkcairo.so.2
    chmod +x INSTALL.sh
    sudo ./INSTALL.sh ~/

    Se non riusciamo a cambiare il tema è per via dei permessi, perchè abbiamo lanciato da root lo script che li installa nella nostra /home (ho provato a lanciare ./INSTALL.sh da utente ma non funziona)
    Per ovviare a questo:

    sudo chmod 777 -R ~/.veejay

    4- Veejay-utils:

    cd ~/veejay-utils
    ./configure --prefix=/usr
    make
    sudo make install
    sudo make clean

    Start client:
    reloaded
    Start server:
    veejay -p numero_porta

    numero_porta = porta disponibile (es. 4490).

    Documentazione:

  • Howto install
  • Homepage
  • 14
    03.2008
    Modem HSDPA e modulo Airprime - Kubuntu

    Dal kernel 2.6.24 le modifiche suggerite su questo post sono state incluse in Hardy 8.04 - Grazie Maxter ;)

    Image Hosted by ImageShack.us

    Il modulo Airprime consente di utilizzare alcuni modelli di dispositivi HSDPA, come quelli raffigurati qui sopra:

  • 3 MomoDesign MD-@
  • Hawey E220
  • ONDA M1HS
  • Analogamente alla Vodafone card, per fare un esempio, viene automaticamente attuata la conversione ai devices ttyUSB*. Prima di connettere il dispositivo:

    sudo tail -f /var/log/messages

    Colleghiamolo:

    /build/buildd/linux-source-2.6.22-2.6.22/drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
    usbcore: registered new interface driver usbserial_generic
    /build/buildd/linux-source-2.6.22-2.6.22/drivers/usb/serial/usb-serial.c: USB Serial Driver core
    /build/buildd/linux-source-2.6.22-2.6.22/drivers/usb/serial/usb-serial.c: USB Serial support registered for airprime
    airprime 2-2:1.0: airprime converter detected
    usb 2-2: airprime converter now attached to ttyUSB0
    usb 2-2: airprime converter now attached to ttyUSB1
    usb 2-2: airprime converter now attached to ttyUSB2
    airprime 2-2:1.1: airprime converter detected

    Su alcune distribuzioni (dal kernel 2.6.22) il modulo usbserial, e' programmato per sfruttare buffer di piccole dimensioni, limitando di fatto la velocita' in downstream a 64kb\s (su una velocita' teorica di 3,6 Mbps).
    Nel caso di Ubuntu questo limite non esiste e non c'e' bisogno di aggiungere alcuna patch. Procediamo cosi':

  • Scaricare tool per la compilazione e i sorgenti del kernel in uso (es. Gutsy 7.10 = kernel 2.6.22). Naturalmente la stessa cosa vale per un kernel vanilla:
  • sudo apt-get install make gcc build-essential g++ kernel-package libncurses5-dev linux-source-2.6.22

  • Spostiamoci in /usr/src e scompattiamo i sorgenti del kernel:
  • cd /usr/src
    sudo tar xjvf linux-source-2.6.22.tar.bz2

  • Modifichiamo il modulo Airprime in modo da aggiungere il productId (firmware):
  • cd /usr/src/linux-source-2.6.22/drivers/usb/serial/

    kdesudo kate airprime.c

  • Aggiungiamo alla funzione:
  • static struct usb_device_id id_table [] = {
    { USB_DEVICE(0x0c88, 0x17da) }, /* Kyocera Wireless KPC650/Passport */
    
    { USB_DEVICE(0x05c6, 0x6613) }, /* ONDA M1HS */
    
    { USB_DEVICE(0x12d1, 0x1003) }, /* Huawei E220 */
    
    { USB_DEVICE(0x05c6, 0x6000) }, /* Momo design */
    
    { },
    
    };

    Questa e' la lista che sono riuscito ad "assemblare":

    { USB_DEVICE(0xf3d0, 0x0112) }, /* AirPrime 5220 */
    { USB_DEVICE(0x1199, 0x0112) }, /* Sierra Wireless Aircard 580 */
    { USB_DEVICE(0x1199, 0x0017) }, /* Sierra Wireless EM5625 */
    { USB_DEVICE(0x1199, 0x0018) }, /* Sierra Wireless MC5720 */
    { USB_DEVICE(0x1410, 0x1110) }, /* Novatel Wireless S620 */
    { USB_DEVICE(0x1410, 0x1130) }, /* Novatel Wireless S720 */
    { USB_DEVICE(0x1410, 0x2110) }, /* Novatel Wireless U720 */
    { USB_DEVICE(0x1410, 0x1430) }, /* Novatel Merlin XU870 */
    { USB_DEVICE(0x1410, 0x1100) }, /* ExpressCard34 Qualcomm 3G CDMA */
    { USB_DEVICE(0x413c, 0x8115) }, /* Dell Wireless 5500 */
    { USB_DEVICE(0x0c88, 0x17da) }, /* Kyocera Wireless KPC650/Passport */
    { USB_DEVICE(0x106c, 0x3701) }, /* Audiovox PC5740 */
    { USB_DEVICE(0x106c, 0x3702) }, /* Pantech PX-500 */

    Immediatamente piu' sotto vediamo quanto descritto in precedenza riguardo al buffer:

    #define URB_TRANSFER_BUFFER_SIZE 4096
    #define NUM_READ_URBS 4
    #define NUM_WRITE_URBS 4
    #define NUM_BULK_EPS 3
    #define MAX_BULK_EPS 6

    Ci sono molte patch in circolazione, per aumentare il buffer-size e altri parametri. Consiglio di adottare quella citata su Junxion per il kernel serie 2.4 e 2.6 .
    NB: per applicare una qualsiasi patch:

    patch -n0 /percorso/della/patch/nome_patch usb-serial.c

  • Terminato l'inserimento del codice identificativo, dobbiamo ricompilare nuovamente il modulo:
  • sudo make -C /lib/modules/`uname -r`/build M=`pwd`

  • Sostituiamo quindi al nostro modulo attuale (avendo l'accortezza prima di disattivarlo):
  • sudo rmmod airprime
    sudo cp airprime.ko /lib/modules/`uname -r`/kernel/drivers/usb/serial/
    sudo depmod -ae
    sudo modprobe airprime

    C'e' una variante nel caricamento del modulo, anche se non dovrebbe essere necessario:

    modprobe vendor=ID_VENDOR product=ID_PRODUCT maxSize=4096

    ..dove ID_VENDOR e ID_PRODUCT corrispondono ai parametri del nostro device.
    Per rendere permanenti queste impostazioni copieremo il comando (senza modprobe) in /etc/modules.

  • Utilizziamo wvdial o i rispettivi front-end per gnome (gnome-ppp) e kde (kppp) per stabilire una connessione tramite l'interfaccia ppp0.
    Se non ci vengono assegnati i DNS, specifichiamoli noi nel file /etc/resolv.conf. Ad esempio (Operatore 3):
  • kdesudo kate /etc/resolv.conf

    Gli indirizzi IP saranno:

    nameserver 62.13.171.1
    nameserver 62.13.171.2

    Un altro esempio, sempre riguardo alla 3, della configurazione di /etc/wvdial.conf:

    [Dialer Defaults]
    Modem = /dev/ttyUSB0
    ISDN = off
    Modem Type = Analog
    Modem Baud = 460800
    Init = AT+CPIN= xxxxxxx
    Init2 = ATX3
    Init3 = AT+COPS?
    Init4 = AT+CGDCONT=1,"ip","datacard.tre.it"
    Phone = *99#
    Dial Attempts = 1
    Dial Command = ATM1L3DT
    Ask Password = off
    Password = tre
    Username = tre
    Auto Reconnect = off
    Abort on Busy = off
    Carrier Check = on
    Check Def Route = on
    Abort on No Dialtone = on
    Stupid Mode = on
    Idle Seconds = 0
    Auto DNS = on

    NB: questa stringa:

    Init = AT+CPIN= xxxxxxx

    Diventa:

    #Init = AT+CPIN= xxxxxxx

    ..se non abbiamo impostato alcun codice PIN.

    10
    03.2008
    Remastersys Kubuntu 7.10

    Image Hosted by ImageShack.us

    Remastersys e' uno strumento ideato per generare e condividere una installazione di Ubuntu (e derivate) ma non solo.
    Basato sullo script mklivecd (Mandriva), questa versione di remastersys e' stata completamente riscritta "from scratch" per via dell'incompatibilita' con Ubiquity e Casper, oltre alle numerose dipendenze specifiche per Mandriva. Non si tratta quindi della stessa versione che invece possiamo trovare di default su PcLinuxOS.

    La joint-venture fortuita con l'ideatore della distribuzione Klikit (kubuntu oriented) ha permesso a Tony Brijeski (aka Fragadelic) di terminare la versione 2.0 dotandola di una pratica interfaccia sicuramente piu' familiare agli utenti inesperti di quanto non lo sia invece la linea di comando (comunque disponibile).

    Remastersys features:

  • Backup di sistema, inclusi i dati personali, da masterizzare su supporto cd/dvd e per riutilizzarlo con un qualsiasi computer.
  • Generazione copia del sistema (senza dati personali) in stile "livecd", da condividere con altri utenti.
  • - Utilizzo -

    Innanzitutto dobbiamo aggiungere il seguenti repositorio al nostro file /etc/apt/sources.list:

    sudo kate /etc/apt/sources.list

    # Remastersys
    deb http://www.remastersys.klikit-linux.com/repository remastersys/

    Una volta lanciato l'update, possiamo installare Remastersys, che a sua volta scarichera' le dipendenze necessarie tra cui i vari front-end per gnome e kde:

    sudo apt-get update
    sudo apt-get install remastersys

    imgimg2

    Dovremmo trovare una icona sul desktop (come da screen) che va leggermente modificata, in quanto contiene il vecchio comando "kdesu" sostituito ormai da "kdesudo". Apriamo questa icona con un editor di testo e apportiamo la modifica in modo da ottenere questo risultato:

    kdesudo /usr/bin/remastersys-gui

    Questo naturalmente lo facciamo per comodita', altrimenti possiamo anche lanciare il programma da terminale..ma prima vediamo giusto qualche raccomandazione.

    - Full system backup:

    Basta lanciare:

    sudo remastersys backup

    - Copia re-distribuibile (livecd):

  • Caso 1: Utente root
  • Se abbiamo gia' attivato un utente root e' sufficiente lanciare:

    remastersys dist

  • Caso 2: Senza utente root
  • In questo caso lanciamo:

    sudo su
    remastersys dist

    Consigli utili per il Livecd

    NB: Ho testato personalmente questo metodo ma non il full-backup. Leggere attentamente le note riportate in fondo all'articolo.

    E' buona norma eseguire questa operazione su una installazione "vergine" di Klikit, Ubuntu o varianti, ed utilizzare il runlevel " single user ". Non andrebbero installati driver proprietari, come ATI o Nvidia, perche' non verranno inclusi nel backup e l'utente che ne riceve copia dovra' installarli a parte. Durante la creazione della ISO non possiamo aprire nessuna applicazione/finestra visto che l'UID dell'utente di sistema verra' cambiato con un valore inferiore a 1000. L'UID sara' successivamente ripristinato da Remastersys una volta conclusa l'operazione.
    Non c'e' nessuna indicazione sul tempo rimanente o su quello stimato e la procedura e' piuttosto lunga (circa un ora)..percio' armiamoci di pazienza lasciando lavorare il terminale di Xterm.

    La ISO generata finira' nella directory /home/remastersys. E' bene testarla con un programma di virtualizzazione prima di procedere con la scrittura dei dati su cd/dvd.
    In /etc/remastersys.conf c'e' una piccola configurazione utile per stabilire l'username del livecd o la label dello stesso:

    #Remastersys Global Configuration File

    # This is the temporary working directory and won't be included on the cd/dvd
    WORKDIR="/home/remastersys"

    # Here you can add any other files or directories to be excluded from the live filesystem
    # Separate each entry with a space
    EXCLUDES=""

    # Here you can change the livecd/dvd username
    LIVEUSER="custom"

    # Here you can change the name of the livecd/dvd label
    LIVECDLABEL="Custom Live CD"

    # Here you can change the name of the ISO file that is created
    CUSTOMISO="custom$1.iso"

    Letture utili:

  • Wiki Remastersys
  • Klikit