Archive for the ‘ OpenSource ’ Category

Android 2.2 (Froyo) su x86

Il porting su piattaforma intel è stato rilasciato da qualche giorno su http://www.android-x86.org/. Oggi ho deciso di provarlo su una virtuale con 256MB di ram e disco da 8GB, di cui 4 li ho destinati per una SD finta. E’ molto carino, anche se ovviamente l’utilità sarebbe nell’averlo su un netbook con abilitata la connettività 3g e quindi un test per l’effettiva funzionalità merita di un dispositivo reale piuttosto che una macchina virtuale.

Ho idea di installarlo su un vecchio portatile ormai non più utilizzato, ma i suoi 64MB di ram credo siano uno scoglio anche per android, quanto meno la VM si blocca… Ma vedremo prossimamente, appena avrò un po’ di tempo da spendere in questo modo, intanto ecco alcuni screenshot presi dalla macchina virtuale :)

Alla prossima :)

Xorg 1.6 – Ctrl + alt + backspace

Una delle feature introdotte nella versione 1.6 di Xorg è la disabilitazione di default della combinazione ctrl+alt+backspace.

Sulle mailing list è possibile leggere molto a riguardo, sul fatto che “normalmente” un riavvio del server X non dovrebbe essere necessario e su quanto, per un nuovo utente, possa essere semplice digitare accidentalmente la combinazione e ritrovarsi con il lavoro perso e una bella schermata di login senza sapere perché.

In effetti le ragioni sono plausibili, ma per alcuni il “normalmente”, significa aver necessità di riavviare X senza dover eseguire il kill del processo da un terminale: in passato mi sono capitate delle situazioni in cui X si è completamente congelato e con un ctrl+alt+backspace si è ripristinato il tutto senza dover riavviare l’intero sistema. Avendo l’opzione disabilitata, se il terminale (ctrl+alt+f1…f6) non risponde ai comandi allora non resta che il reset. Nel mio caso, ho preferito riabilitare l’opzione, aggiungendo al file xorg.conf (solitamente in /etc/X11) l’opzione “DontZap” ed impostandola a “false“. In proposito, riporto la sezione del mio file di configurazione:

Section "ServerFlags"
#   Option "AllowMouseOpenFail"  "true"
#      Option "AutoAddDevices" "False"
 Option  "DontZap" "False"
EndSection

In successivi aggiornamenti, è stata introdotta anche su HAL una disabilitazione della combinazione. Per riattivarla è sufficiente aggiungere questa entry

<merge key="input.xkb.options" type="string">
terminate:ctrl_alt_bksp
</merge>

all’interno del file /etc/hal/fdi/policy/10-keymap.fdi

In caso il file non fosse presente, copiarlo da /usr/share/hal/fdi/policy/10osvendor

cp /usr/share/hal/fdi/policy/10osvendor/10-keymap.fdi \
    /etc/hal/fdi/policy/

E modificarlo aggiungendo la entry di cui sopra.

Riporto di seguito il mio file keymap che funziona correttamente utilizzando entrance come login manager:

 <deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.keymap">
      <append key="info.callouts.add" type="strlist">hal-setup-keymap</append>
    </match>

    <match key="info.capabilities" contains="input.keys">
      <merge key="input.xkb.rules" type="string">base</merge>

      <!-- If we're using Linux, we use evdev by default (falling back to
          keyboard otherwise). -->
      <merge key="input.xkb.model" type="string">keyboard</merge>
      </match><match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
            string="Linux">
        <merge key="input.xkb.model" type="string">evdev</merge>
      </match>

      <merge key="input.xkb.layout" type="string">it</merge>
      <merge key="input.xkb.variant" type="string" />
      <merge key="input.xkb.options" type="string">terminate:ctrl_alt_bksp</merge>
   
  </device>
</deviceinfo>

Infine, se non si sta usando l’integrazione Xorg/HAL occorrerà aggiungere una opzione nel file /etc/X11/xorg.conf all’interno della sezione keyboard

Option         "XkbOptions" "terminate:ctrl_alt_bksp"

Al solito, spero che a qualcuno sia utile ;)

Elementary su Windows XP

Finalmente ci sono riuscito dopo un po’ di manodopera :)

Per poter utilizzare elementary dovrete prima aver installato le EFL (Enlightenment Foundation Libraries). Seguite il wiki al link di seguito

http://trac.enlightenment.org/e/wiki/EFLWindowsXP

Compilate anche elementary col solito

./autogen.sh
make
make install

e ricordatevi di impostare la variabile d’ambiente ELM_ENGINE con

set ELM_ENGINE=ddraw

Eseguite elementary_test per vedere che sia tutto ok e il risultato dovrebbe essere il seguente

elementary on windows xp

elementary on windows xp

Se qualcosa non va, probabilmente siete incappati nel mio stesso errore: aver compilato evas senza il supporto al ddraw. Ricompilate evas aggiungendo l’opzione –enable-software-ddraw. Io ho usato i seguenti:

./autogen.sh  --enable-sdl /
--enable-gl-glew /
--enable-direct3d /
--enable-software-ddraw /
&& make && make install

Adesso posso iniziare a sviluppare qualcosa che sia crossplatform e che usi un’interfaccia grafica gradevole. Cosa però? Mi verrà l’ispirazione penso… Prima o poi… :)

Compilare E17 da SVN su Archlinux

Un piccolo script molto comodo che ho scritto insieme a furester, per compilare E17 scaricando i sorgenti da SVN. Lo script utilizza il sistema di porting di Archlinux ed ha alcuni piccoli accorgimenti che permettono di ricompilare solo i pacchetti che hanno subito modifiche.

Non è pienamente testato, potrebbe contenere diversi bug, diverse funzionalità sono ancora da implementare, ma chi volesse provarlo può scaricarlo da questo link:

http://fabiofalcinelli.it/files/archE17svn.sh

Potete testarlo, modificarlo redistribuirlo sotto i termini della licenza GPL.

Installazione

Per usare lo script è sufficiente copiarlo in una qualsiasi directory. Di default lo script creerà una cartella archE17svn nella home dell’utente che lo esegue ed esegurà tutte le operazioni al suo interno.

Configurazione

Lo script accetta i seguenti parametri:
-r popola un repository per pacman (non ancora implementato)
-f forza la ricompilazione di tutti i pacchetti
-R reinstalla la snapshot precompilata presente in community
-d compila con simboli di debug
-o=name1,name2,… checkout e compilazione dei soli pacchetti elencati
-w=dir cambia la directory di lavoro (il default è ~/archE17svn)
-h stampa a video il messaggio di aiuto

Una volta compilato, potrete usare e17… Di seguito un piccolo screenshot :)

e17 and wallpaper module

e17 and wallpaper module

L’immagine mostra il modulo wallapaper che permette la configurazione dello sfondo del window manager. La cosa veramente interessante del modulo è l’ordinamento in scala cromatica delle immagini: ho sempre pensato che ordinare le immagini in base al nome (quindi in ordine alfabetico) non abbia molto senso e questo modulo ne è la prova.

Per vedere il modulo in azione, potete visualizzare il video al link sottostante

http://www.rasterman.com/files/wp2.avi

Alla prossima!

Xorg 1.6 e HAL

Mi è stato chiesto perché tenessi commentata l’opzione AutoAddDevices nel file xorg.conf . Beh perché non ho avuto problemi con l’integrazione tra X e HAL (Hardware Abstraction Layer): è stato sufficiente traslare le opzioni che avevo all’interno di xorg.conf in un file XML di policy per HAL.

È più facile a farsi che a dirsi in questo caso! Vi mostro come esempio la mia configurazione del touchpad. In Xorg.conf avevo le seguenti opzioni:

Section "InputDevice"
 Driver         "synaptics"
 Identifier     "Touchpad"
 #Option        "CorePointer"
 Option         "Device"        "/dev/psaux"
 Option         "Protocol"      "auto-dev"
 #Option            "LeftEdge"      "1700"
 Option         "RightEdge"     "5300"
 #Option            "TopEdge"       "1700"
 #Option            "BottomEdge"    "4200"
 Option         "FingerLow"     "25"
 Option         "FingerHigh"    "30"
 Option         "MaxTapTime"    "180"
 Option         "MaxTapMove"    "220"
 Option         "VertScrollDelta" "100"
 Option         "MinSpeed"      "0.06"
 Option         "MaxSpeed"      "0.18"
#Option         "AccelFactor" "0.0010"
 Option     "AccelFactor"   "0.0050"   
 Option         "SHMConfig"     "on"
 Option         "Repeater"      "/dev/ps2mouse"
 Option     "HorizEdgeScroll" "false"  
 Option     "VertEdgeScroll" "true"
 #Option        "GrabEventDevice" "true"
EndSection

che sono diventate, né più né meno, il file /etc/hal/fdi/policy/11-x11-synaptics.fdi :

< ?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.touchpad">
    </match>
    <match key="info.product" contains="Synaptics TouchPad">
       <merge key="input.x11_driver" type="string">synaptics</merge>
 <!-- Arbitrary options can be passed to the driver using
     the input.x11_options property since xorg-server-1.5. -->
 <!-- EXAMPLE:
<merge key="input.x11_options.LeftEdge" type="string">120
-->
       <merge key="input.x11_options.AlwaysCore" type="string">true</merge>
       <merge key="input.x11_options.RightEdge" type="string">5300</merge>
       <merge key="input.x11_options.SHMConfig" type="string">on</merge>
       <merge key="input.x11_options.VertEdgeScroll" type="string">true</merge>
       <merge key="input.x11_options.HorizEdgeScroll" type="string">false</merge>
       <merge key="input.x11_options.TapButton1" type="string">1</merge>
       <merge key="input.x11_options.TapButton2" type="string">2</merge>
       <merge key="input.x11_options.TapButton3" type="string">3</merge>
    </match>
    <match key="info.product" contains="AlpsPS/2 ALPS">
       <merge key="input.x11_driver" type="string">synaptics</merge>
    </match>
    <match key="info.product" contains="appletouch">
       <merge key="input.x11_driver" type="string">synaptics</merge>
    </match>
    <match key="info.product" contains="bcm5974">
       <merge key="input.x11_driver" type="string">synaptics</merge>
    </match>
  </device>
</deviceinfo>

In sostanza, a parte direttive specifiche, le opzioni che a suo tempo avevo abilitato nel file di configurazione del server X sono diventate nodi di tipo stringa del file XML. In questo modo ho, per esempio, lo scrolling orizzontale disabilitato, funzionalità che trovo scomoda alquanto. Per maggiore chiarezza, facendo riferimento proprio al caso di scrolling orizzontale, quella che era

Option      "HorizEdgeScroll" "false"

è diventata

<merge key="input.x11_options.HorizEdgeScroll" type="string">false</merge>

E di qui si può procedere con le altre personalizzazioni.

Qual è il vantaggio dell’integrazione con HAL? Qualcuno dice “Nessuno, semplicemente sono state spostate le configurazioni dei device di xorg in un file XML”…
Penso invece che sia un grande passo in avanti per la modularità e l’integrazione tra le diverse componenti, inoltre, se la periferica viene riconosciuta correttamente (e accade per buona parte delle periferiche di input) non è necessario toccare neanche un singolo file di configurazione, a meno di non aver necessità di impostazioni particolari: infatti nella mia configurazione di HAL, molte delle opzioni non sono state necessarie perché riconosciute correttamente in automatico.

Ora vi saluto e spero di non aver scritto troppe cavolate :)

Antialias dei caratteri su aMsn

Recupero una parte di un vecchio tutorial che sembra interessare molti utenti del pinguino. Su linux esistono diversi client per utilizzare MSN, il protocollo di IM (Instant Messaging) di casa Microsoft.

Nonostante abbia ormai definitivamente scelto Pidgin come client (in quanto multiprotocollo), aMsn è sempre stato un ottimo prodotto opensource. La versione in sviluppo, che si può ottenere da SVN, supporta tra le varie anche l’antialiasing dei caratteri, caratteristica offerta dalle librerie TCL/TK.  Dopo aver installato da SVN su archlinux con

yaourt -S amsn-svn

ed avviato, mi veniva  richiesto TLS e utilizzando il wizard non sono riuscito ad ottenerlo funzionante. La soluzione è semplice:
modificare il file /usr/lib/tls1.50/pkgIndex.tcl sostituendo tls 1.5 con tls 1.50 in modo che la riga risultante sia la seguente:

package ifneeded tls 1.50 "[list load [file join $dir .. libtls1.50.so] ] ; [list source [file j
oin $dir tls.tcl] ]"

indicando ora nelle preferenze di amsn (sulla scheda avanzate) la directory di TLS dovreste avere tutto perfettamente funzionante.